今年も自分の勉強用に、日々セッションのサマリをやってみる。まずは、去年散々格闘した Foundation Models から。今年はオンデバイスモデルが大幅進化していたり、クラウドコンピューティングが利用できるようになったり、画像理解もできるようになったりと大幅進化を遂げて嬉しいのだが、何より、去年挫折した Spotlight + RAG のユースケースを、SpotlightSearchTool として公式に提供されたことは嬉しい。
What’s new in the Foundation Models framework
0:00 – Introduction
- Foundation Models framework 2年目のリリース概要
- 今年の 3 つのテーマ:
- OS の内外への連携の拡大
- より多様なモデルのサポート
- エージェント体験構築のための新しい基本要素
- フレームワークコアが オープンソース化
- 新パッケージ Foundation Models framework utilities も同時リリース
- OS リリース間でも更新され、最新の構成要素にアクセス可能
- このセッションを通してFMエコシステムに含まれる他のフレームワークも紹介する
2:34 – New on-device model
- オンデバイスモデルをゼロから再構築しより賢く
- tool calling の精度と論理処理能力の向上
- iOS 26.4 で追加された新 API:
- モデルの context size を検査
- instructions・prompts・transcripts のトークン数をカウント
- 動いているハードウェアに合わせてアプリを適応させるために活用
- ガードレールの継続的改善
- iOS 26.4 で誤検知を削減、iOS 27 でさらに改善予定
3:21 – Vision:image understanding
- オンデバイスモデルに Vision 機能が追加
- API は既存の prompt builder の自然な拡張
LanguageModelSessionを作成し、prompt にテキストと一緒に画像を添付して渡す(e.g.Bundle.main.url(forResource:withExtension:))- 画像の内容についてそのまま質問できる
ImageAttachmentがサポートする型:UIImage・NSImage・CGImage- Core Image 型
CoreVideoPixel Buffers- ファイル URL
- 任意のサイズ・アスペクト比をサポート(クロップ・パッディング不要)
- 注意:画像が大きいほどトークン消費とレイテンシが増加
4:20 – Private Cloud Compute (PCC)
PrivateCloudComputeLanguageModelが新登場- Apple Intelligence の各機能を動かしているのと同じモデル
- オンデバイスモデルより大幅に大きなモデル
- コンテキストウィンドウ:32,000 トークン
- reasoning 機能搭載 — 回答前に時間をかけて思考することで精度が大幅向上
- 使い方:
PrivateCloudComputeLanguageModelのインスタンスを作成しLanguageModelSessionに渡すだけcontextOptionsのreasoningLevelで思考の深さを指定- 推論が深いほど高品質だが計算コスト大
- メリット:
- アカウント設定・認証・API キーの保管が一切不要
- プロンプトは保存されない(プライバシー保護)
- 独立した研究者による検証が可能な仕組み
- watchOS 27 でも Foundation Models framework が利用可能に(PCC 経由)
- 料金:初回ダウンロードが 200 万件未満の開発者は無料。iCloud+ ユーザーはさらに利用枠が拡大
6:46 – Model abstraction layer
- 新しい
LanguageModelプロトコルでほぼあらゆる言語モデルを Framework 経由で利用可能に- ローカル・サーバー問わず
LanguageModelSessionのバックエンドとして使える - 既存のモデル
SystemLanguageModelPrivateCloudComputeLanguageModelはすでに準拠済み
- ローカル・サーバー問わず
- オープンソースで追加実装を公開:
CoreAILanguageModel— Apple Neural Engine 上で多様なローカルモデルを実行MLXLanguageModel— Mac の GPU 上で実行
7:32 – Partner model integrations
- Anthropic・Google が Swift パッケージを公開し、フロンティアモデルへのアクセスを提供
- 使い方:Swift Package Manager でパッケージを追加し、モデルを初期化して
LanguageModelSessionに渡すだけ- 呼び出し元のコードは変更不要
- 注意事項:
- 認証・課金はサードパーティごとに自前対応が必要
- API キーを絶対にアプリバイナリに埋め込まないこと — OAuth などの安全な仕組みでアクセストークンを取得し Keychain に保存
- トークン使用量の追跡:
SessionとResponseにusageプロパティが追加- 使用トークン数・キャッシュから読んだ入力トークン数・推論に使ったトークン数を把握可能
9:40 – System tools:Vision and Spotlight
- Vision framework を使った2つの組み込みツールが追加
BarcodeReaderTool— バーコードから情報を読み取りOCRTool— 画像から構造化テキストを抽出- モデルが単独では難しい視覚情報の推論をサポート
SpotlightSearchToolSpotlight を使ったローカル RAG(Retrieval-Augmented Generation)ツールも追加- 完全ローカルで最新の個人・ドメイン知識をモデルに提供
- Spotlight インデックスと特殊処理クエリを活用
- クラウド API コストなし・プライバシー保護
10:57 – Dynamic Profiles for agentic apps
DynamicProfile— エージェント体験構築のための新しい宣言的 API- 従来:コンテキスト・モデル・ツールを複数セッションにまたがって命令的に管理するボイラープレートが多い
- 新設計:単一の
LanguageModelSession内でコンテキストを宣言的に記述
- 基本的な使い方:
DynamicProfileプロトコルに準拠したstructを定義bodyプロパティでProfileを返す(instructions・tools を含む)LanguageModelSessionを.init(profile: DynamicProfile)で初期化
- 応用:
- アプリの状態変数に応じて分岐し、それぞれの
Profileで異なる instructions・tools を持たせる - モデルが自律的にモードを切り替えるためのツールを Profile に持たせることも可能
- アプリの状態変数に応じて分岐し、それぞれの
13:46 – Composing models and configurations
DynamicProfileではモデルと設定も動的に切り替え可能- 例:分析タスクには
SystemLanguageModel、ブレインストームには PCC + 深い推論
- 例:分析タスクには
- 修飾子(modifiers)で設定を記述:
.model()修飾子で使用モデルを指定 (e.g..privateCloudCompute).reasoningLevel()修飾子で推論の深さを指定 (e.g..deep)
DynamicProfileは任意の時点では単一のアクティブな Profile に解決される- 条件分岐でアクティブな
Profileを選ぶと、フレームワークが遷移を管理 - 会話履歴を維持したままモデル・ツール・指示内容を切り替え可能
- 条件分岐でアクティブな
- 考慮点:プライバシーの境界・モデルの能力差・コスト
15:30 – Evaluations framework
Evaluations— インテリジェンス機能の品質を定量的に測る新 Swift フレームワーク- プロンプトを調整するたびに精度を数値化
- 変更の統計的影響を把握し、自信を持ってリリースできる設計
16:02 – The fm command line tool
fmCLI — macOS 27 で登場するコマンドラインから Foundation Models を使うツールfm chatでターミナルからオンデバイスモデル・PCC と対話- シェルスクリプトに組み込んでドキュメント要約・情報抽出・コンテンツ生成も可能
- 例:ランダムなファイル名の画像に、画像の内容に基づいた説明的なファイル名を自動生成
17:13 – Foundation Models Python SDK
- Python エコシステム向けに Foundation Models SDK を提供
- Swift フレームワークと同じオンデバイスモデルに直接アクセス
- モデルが利用可能かどうかの確認・レスポンス生成が数行のコードで可能
- prompt → 構造化レスポンスも対応
17:55 – Open source and framework utilities
- ユーティリティパッケージの公開:LLM活用の新たな手法を探求するのに役立つ
- 会話履歴管理用のプロファイル修飾子
- 手続き的知識ロード用の skill API
- Chat Completions 標準を使ったサーバーインタフェース
- OS リリース間でも更新
- フレームワークコアもオープンソース化
- Swift が動く Linux サーバーなどあらゆる環境で LLM と対話可能
- Anthropic・Google・CoreAI・MLX との連携と組み合わせて「任意のモデルをどこでも実行」が実現