Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Foundation Models触ってみた - iPhone Dev Sapporo — W...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Shuhei Shitamori
June 27, 2025
Programming
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Foundation Models触ってみた - iPhone Dev Sapporo — WWDC25 Recap
Shuhei Shitamori
June 27, 2025
More Decks by Shuhei Shitamori
See All by Shuhei Shitamori
その画像、 誰が‧いつ‧どこで‧どう作った? モバイルアプリで扱うC2PAとコンテンツの来歴
shitamori1272
0
53
Photography is Dead?
shitamori1272
1
110
Vision Proで実現する 『ながら運動』健康促進術
shitamori1272
0
170
時差×英語×リモートでの コミュニケーション術
shitamori1272
0
100
写真はもう信用できない?フェイク検出から来歴証明へ
shitamori1272
1
110
Apple SharePlayで 非対称クロスプレイ チャレンジ (SharePlay使ってみた編)
shitamori1272
0
220
Vision Proで広告フリーな世界を実現したい
shitamori1272
0
280
Wallet API, Verifier APIで実現するIDカード on iPhoneの世界
shitamori1272
1
3.8k
Other Decks in Programming
See All in Programming
パスワード再設定メールのURLについて知っておこう
uyuki234
0
200
あなたの await、OS まで届いてる? strace で覗く JavaScript の非同期
hasutosasaki
1
1.8k
SODA - FACT BOOK(JP)
sodainc
1
40k
最近”作らせてる” ローカルAIアプリの話
akit37
0
530
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
260
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
160
flutter_test のその先へ — Flutter アプリの LLM 機能に「評価」という品質保証を
kosukesaigusa
0
160
JIS keyboard support in Omarchy
lef237
0
180
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
170
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
250
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
250
Seven New Principles of Software Engineering
yegor256
0
400
Featured
See All Featured
HDC tutorial
michielstock
2
990
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Code Reviewing Like a Champion
maltzj
529
40k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
570
Color Theory Basics | Prateek | Gurzu
gurzu
1
510
How to Ace a Technical Interview
jacobian
280
24k
BBQ
matthewcrist
90
10k
Transcript
Apple Foundation Models 触ってみた WWDC 2025 - Foundation Models Framework
1
自己紹介 カナダのデジタルID スタートアップで働くiOS エンジニア 個人でVison Pro を購入、仕事に活かせないか模索中 経歴 北海道大学院 HCI
研: iPad 向けの透明なキーボードの提案 ヤフー株式会社( 現LY): 地図アプリ開発, R&D カナダへ移住してデジタルID スタートアップへ転職 帰国しフリーランスとして活動中 2
アジェンダ 1. Foundation Models フレームワーク概要 2. 主要機能と特徴 3. Guided Generation
(構造化生成) 4. Tool Calling (ツール呼び出し) 5. 実装例の紹介 6. まとめ 3
NotebookLM を作成しました Foundation Models に関する公式ドキュメントを詰め込みました。 不明瞭な点や疑問があった際に活用してください。 4
Foundation Models Framework とは アプリから利用できるオンデバイス大規模言語モデル 完全にプライベート - 第三者サーバーへの送信なし 無料 -
API コストなし オフライン動作 - ネット接続不要 import FoundationModels let session = LanguageModelSession(model: .default) let response = try await session.respond(to: "Swift でファイルを読み込む方法を教えて") print(response.content) // "Swift でファイルを読み込むには、FileManager を使用します。" 5
最低限の利用に必要なクラスは2 つのみ SystemLanguageModel 30 億パラメータの2 ビット量子化モデル (ChatGPT3.5 は3550 億) 現在提供されているモデルはgeneral
とcontentTagging の2 つ LanguageModelSession モデルとの対話セッションを管理 プロンプトの送信、応答の受信 6
基本的な使用方法 import FoundationModels // フレームワークのインポート let model = SystemLanguageModel.default //
指示を与えてセッションを作成 let session = LanguageModelSession( model: model, instructions: Instructions(" あなたは親切なSwift プログラミングの先生です。質問には1 行以内に簡潔に答えてください。") ) // プロンプトを送信して応答を受け取る let response = try await session.respond(to: "Swift でファイルを読み込む方法を教えて") print(response.content) // `FileManager` を使用してファイルを読み込むことができます。 // 過去の会話を再利用して質問に答えられる let response2 = try await session.respond(to: " もういっかい教えて。") print(response2.content) // `FileManager` を使用してファイルを読み込む方法です: ... 複数行のコード例が返される 誤動作を抑えるためInstructions はユーザーには触らせない 7
Foundation Models を拡張する機能 パラメータが少ないからか出力の質が低く知識も乏しい 以下の機能を活用して出力を改善する必要がある Guided Generation (構造化生成) @Generable @Guide
マクロで出力結果形式の定義・安定化 Tool Calling (ツール呼び出し) WebAPI やローカルデータにアクセスする方法を定義できる 知識の拡張やアクションを実行可能に 8
Guided Generation (構造化生成) @Generable マクロでレスポンス形式を定義 @Guide マクロで出力のガイドラインを設定 @Generable struct Recipe
{ @Guide(description: " レシピの名前を入力してください") let name: String @Guide(description: " 各手順を簡潔に説明して", .range(1...5)) let instructions: [String] @Guide(description: " 調理時間は分単位で指定して") let cookingTime: Int } // 構造化データとして直接取得 let recipe = try await session.respond(to: " パスタのレシピを作成して", generating: Recipe.self) print(recipe.name) // " ペペロンチーノ" print(recipe.instructions) // ["1. ニンニクを炒める", "2. パスタを茹でる", ...] print(recipe.cookingTime) // 20 9
Tool Calling (ツール呼び出し) API 等にアクセスできるカスタムツール定義してモデルの機能を拡張 struct WeatherTool: Tool { static
let name = "getWeather" static let description = " 指定した都市の天気情報を取得" @Generable struct Arguments { @Guide(description: " 天気を調べる都市名") var city: String } func call(arguments: Arguments) async throws -> ToolOutput { // WeatherKit 等を使用して実際の天気データを取得 let weather = await getWeatherData(for: arguments.city) return ToolOutput(weather) } 10
Tool Calling を利用したセッション let session = LanguageModelSession( model: .default, tools:
[WeatherTool()], instructions: Instructions(""" あなたは天気予報のアシスタントです。 ユーザーの質問に対して、必要に応じて天気ツールを使用してください。 """) ) // モデルが自動的にツールを呼び出して応答を生成 let response = try await session.respond( to: " 東京の今日の天気はどうですか?" ) 11
ユースケースを考える 多くのケースではサーバAI の方が質の高い応答 Foundation Models の特徴を活かす利用が求められる プライベート利用OK 完全無料 オフライン実行 (
間違ってもOK) 12
Apple のデモ-1 日記アシスタント 入力中の内容から 話を広げるための質問生成 (Private + Free) 13
Apple のデモ-2 Coffe Shop Game NPC との会話を自動生成 (Guided Generation,
Free) 連絡先内の知人がNPC として登場 (Tool Calling + Private) カレンダーイベントに基づく会話 (Tool Calling + Private) 14
自分でも考えてみる ひらがな埋めるフォームアプリ ユーザーが入力した氏名住所のひらがな蘭を自動で埋める (Private, Free, 間違ってもOK) LINE トーク履歴を元に相性診断アプリ 二人のトークから相性を診断 (Guided
Generation, Private) 連絡先から関係性を抽出 (Tool Calling, Private) 15
デモ 16
ひらがな埋めるフォームアプリの実装 Instructions let instructions = Instructions(""" あなたは日本語の漢字をひらがなに変換するアシスタントです。 入力された漢字や地名を正確にひらがなで読み方を返してください。 一般的な読み方を使用し、簡潔に答えてください。 ひらがなのみで回答し、他の文字は含めないでください。
""") 17
ひらがな埋めるフォームアプリの実装 Prompt 姓: 「田中」という姓の読み方をひらがなで教えてください。 名: 「太郎」という名前の読み方をひらがなで教えてください。 住所: 「東京都渋谷区」という地名の読み方をひらがなで教えてくだ さい。 18
LINE トーク履歴を元に相性診断アプリ の実装 Instructions let instructions = Instructions(""" あなたは恋愛関係や友人関係の相性分析の専門家です。 LINE
チャット履歴を分析して、二人の相性を客観的かつ建設的に評価してください。 分析観点:コミュニケーションの頻度とバランス、感情的な調和とサポート、 会話の深さと多様性、レスポンス傾向と相互理解、共通点と補完性 """) 19
LINE トーク履歴を元に相性診断アプリ の実装 Guided Generation @Generable struct AnalyzeResult { @Guide(description:
" 相性スコア(0-100 点)") let compatibilityScore: Int @Guide(description: " 相性分析のサマリー(4 行程度)") let compatibilitySummary: String @Guide(description: "person1 の感情を漢字1 文字で3 つ表現", .count(3)) let feelingsToPerson2: [KanjiFeeling] } 20
漢字の感情を表現する構造体 @Generable struct KanjiFeeling { @Guide(description: " 感情を表す漢字, 絶対に1 文字分の漢字を指定すること")
let kanji: String @Guide(description: " 感情の度合いを0-100 の整数で表現", .range(0...100)) let score: Int @Guide(description: " 漢字の感情に適したRGB 色値") let color: RGB } 21
Tool Calling struct ContactSearchTool: Tool { static let name =
"searchContact" static let description = " 指定された名前の連絡先情報を検索" @Generable struct Arguments { @Guide(description: " 検索する人の名前") var name: String } func call(arguments: Arguments) async throws -> ToolOutput { // 連絡先から年齢、職業、誕生日等の情報を取得 let contact = searchContactInfo(name: arguments.name) return ToolOutput(contact) } } 22
触ってみて プライベート情報から価値を作れるおもしろい機能 ただし、質の高い応答を得るためには工夫が必要 要考慮のエラーケースが多い デバイス・OS がFoundation Models 非対応 → Fallback
UI 必要 生成中に生成を依頼してエラー → 生成中状態の適切な管理 利用ガイドラインに違反 → ユーザーへ適切なフィードバック コンテキストサイズを超えた入力 → Session の再作成の自前実装 オフラインのふりをしたプライベート情報収集アプリ出てきそう... 23
まとめ Foundation Models の価値 プライバシー第一 - オンデバイス処理 完全無料 - API
料金なし 高性能 - 低遅延、オフライン動作 柔軟性 - Guided Generation + Tool Calling 24