Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Foundation Models で On-device AI を実現する / Founda...

Foundation Models で On-device AI を実現する / Foundation Models for On-device AI

Avatar for Yu Takahashi

Yu Takahashi

June 26, 2025
Tweet

More Decks by Yu Takahashi

Other Decks in Technology

Transcript

  1. 自己紹介 高橋 由 (Yu Takahashi) • レジチーム iOS アプリエンジニア •

    26 卒内定者アルバイト • 趣味 • 個人開発 • 旅行 • 研究で LLM 使って色々してます 2 X: @yutk_941
  2. Foundation Models とは? • オンデバイスで動作する LLM モデルがアプリで動かせる! • Apple Intelligence

    で使用しているモデルと同様 • 30億 (3B) のパラメータを持つ • (参考) Gemini Nano 2: 3.25B • オフラインでも動作する • プライバシーを保てる • アプリサイズが増加しない • 追加コストがかからない 4
  3. 得意不得意 不得意なタスク • 幅広い知識が必要 • 複雑な推論 • コード生成 • 計算

    そもそも不可 • マルチモーダル 6 得意なタスク • 要約 • テキスト抽出 • 分類 • 文章生成
  4. 主な機能 8 • ガイド付き生成 (Guided Generation) • ツール呼び出し (Tool Calling)

    • スナップショットストリーミング (Snapshot Streaming)
  5. ガイド付き生成 (Guided Generation) • 型安全な出力ができる • JSON や CSV などの生テキストを解析する必要がなくなる

    • @Generable • LLM 向けに自然言語の説明を追加できる • 型: Bool, Int, Float, Double, Decimal, Array • @Guide • 生成される値に制約をかけられる 9 @Generable struct SearchSuggestions { @Guide(description: "A list of suggested search terms", .count(4)) var searchTerms: [String] } https://developer.apple.com/videos/play/wwdc2025/286/?time=332
  6. 主な機能 • ガイド付き生成 (Guided Generation) • ツール呼び出し (Tool Calling) •

    スナップショットストリーミング (Snapshot Streaming) 10
  7. ツール呼び出し (Tool Calling) • モデルに最新の外部情報を与えられる • MapKit から特定の場所の情報を取得 • 連絡先やカレンダーへのアクセス

    etc… • ユーザーのプロンプトよりも優先される • @Generable と @Guide マクロで引数の説明を記述できる 11
  8. ツール呼び出し (Tool Calling) 12 struct GetWeatherTool: Tool { let name

    = "getWeather" let description = "Retrieve the latest weather information for a city" @Generable struct Arguments { @Guide(description: "The city to fetch the weather for") var city: String } func call(arguments: Arguments) async throws -> ToolOutput { let places = try await CLGeocoder().geocodeAddressString(arguments.city) let weather = try await WeatherService.shared.weather(for: places.first!.location!) let temperature = weather.currentWeather.temperature.value let content = GeneratedContent(properties: ["temperature": temperature]) return ToolOutput(content) } } https://developer.apple.com/videos/play/wwdc2025/286/?time=822
  9. • • • スナップショットストリーミング (Snapshot Streaming) 主な機能 13 ガイド付き生成 (Guided

    Generation) ツール呼び出し (Tool Calling) スナップショットストリーミング (Snapshot Streaming)
  10. 使ってみた感想 公式ドキュメント通りにやってみた • Xcode Playground Macro • ビルドし直さなくてもプレビュー感覚で応答が見れるのが便利! • ガイド付き生成

    (Guided Generation) *1 • 8割型失敗する… (6/30回成功) • ツール呼び出し (Tool Calling) *2 • WeatherKit を呼び出す • 全然呼び出されない… 15 *1: Generating Swift data structures with guided generation *2: Expanding generation with tool calling
  11. まとめ Foundation Models について • 構造化したレスポンスを得られるの良い • ツールを組み込むことで活用の幅が広がりそう • 「ちゃんと動けば」開発者ができることは格段に増えそう

    • 積極的に Feedback を送ろう! 今年の WWDC の感想 • Liquid Glass の見辛ささえ解消されてくれれば好き • デザイナーの要望を叶えたエンジニアは尊敬 17