-
Foundation Modelフレームワークの新機能
Foundation Modelフレームワークの新機能を紹介します。プライベートクラウドコンピューティングへのアクセス、サードパーティまたはオープンソースのモデルの統合、Visionの各種機能の活用のための方法を確認しましょう。コンテキスト管理のためのAPI、内蔵のセマンティック検索、エージェントを活用した体験をアプリ内で構築する上で役立つ強力なプリミティブについても紹介します。
関連する章
- 0:00 - Introduction
- 2:34 - New on-device model
- 3:21 - Vision: image understanding
- 4:20 - Private Cloud Compute
- 6:46 - Model abstraction layer
- 7:32 - Partner model integrations
- 9:40 - System tools: Vision and Spotlight
- 10:57 - Dynamic Profiles for agentic apps
- 13:46 - Composing models and configurations
- 15:30 - Evaluations framework
- 16:02 - The fm command line tool
- 17:13 - Foundation Models Python SDK
- 17:55 - Open source and framework utilities
- 19:24 - Next steps
リソース
-
このビデオを検索
みなさん こんにちは 私はErikです 私はZhenです 昨年は Foundation Models frameworkを紹介しました ガイド付き生成やスナップショット ストリーミングなどの機能と 強力なツールプロトコルを 搭載しました みなさんの熱狂的な反応に 感激しました 1年目から Foundation Model フレームワークを支持していただき 今年の内容も さらに喜んでいただけると思います 今年フレームワークに加わった 全ての新機能をご紹介します このリリースは 内容が非常に充実しています 2027年リリースはOS内外への インテグレーションを中心に より多様なモデルと エージェント体験を構築するための 新しいプリミティブを提供します 最も注目のアップデートから 始めましょう Foundation Modelフレームワークは 本日発表する多くの 新しいAPIを含め オープンソースになります しかも華やかに。 コアフレームワークに加えて 新しいパッケージも公開します Foundation Modelフレームワークユーティリティは OSリリース間でも更新され 新興の実験的な ビルディングブロックを提供します このセッションでは 他の複数のパッケージも エコシステムに加わることをお伝えします さあ 一緒に始めましょうか? 新しいモデルに関する全てと フレームワークに加わる 新しいモダリティとツールをご紹介します 作成した全く新しいAPIも ご覧いただきます それらを最大限に 活用するためのAPIです。 スケジュールは盛り沢山です まず モデルのアップデートが 多数あります オンデバイスモデルの更新と サーバーモデルへのアクセスを含みます SpotlightとVisionフレームワークの 力を借りた セッションを強化する 新しいシステムツールも追加しました その後 Zhenから Dynamic Profileという 強力な新しいAPIについて説明します エージェント体験を作成するための 新しいプリミティブです Zhenはまた 全く新しい Evaluationフレームワークと Foundation Modelとの 緊密な統合についても説明します
最後に Mac特有の生産性ツールに関する 嬉しいニュースをお届けします 最後までお楽しみに。 新しいモデルから始めましょう。
このリリースには 新しいオンデバイスモデルが登場し ゼロから再構築され あらゆる面で向上しています より高い知性を持ち ロジックとツール呼び出しが優れています iOS 26.4では モデルの コンテキストサイズを検査する新しいAPIと 命令 プロンプト トランスクリプトの トークン数をカウントするAPIをリリースしました 今後はこれらを活用して アプリを実行中の ハードウェアに適応させてください ガードレールの改善にも 注力してきました iOS 26.4での 調整にお気づきの方もいるでしょう 誤検知を減らすための変更で iOS 27では さらに多くの改善を続けています また オンデバイスモデルに Vision機能も追加されました これにより全く新しい アプリケーションのカテゴリが可能になります
APIはシンプルで 既存の プロンプトビルダーの自然な拡張です
ここではセッションを作成し 右側にある折り紙の写真について 質問します テキストとともに画像添付ファイルを プロンプトに挿入するだけです
これでモデルは 画像に関する質問に答えられます
画像添付ファイルは 様々な型から作成できます UIImage NSImage
CGImage Core Image型 CoreVideo Pixel Buffer ファイルURLです モデルはあらゆるサイズと アスペクト比の画像をサポートします 特定の形状にトリミングや パディングは必要ありません 任意の画像サイズを使えますが 注意点があります 大きな画像ほどトークンを消費し レイテンシが増加します これらのアップグレードにより オンデバイスのシステム言語モデルは かつてないほど高性能になりました さらなる処理能力が必要な場合は 全く新しい PrivateCloudComputeLanguageModelで Appleの最強のサーバーモデルを使えます Private Cloud Computeモデルは おなじみの Apple Intelligence機能の 多くを支えているのと同じモデルです オンデバイスモデルより はるかに大きなモデルで 32,000トークンの コンテキストウィンドウを持ちます そして強力な新機能や リーズニングも搭載しています リーズニングモデルは 回答前に 時間をかけて慎重に考えるよう 訓練されています その結果 大幅に優れた成果が得られます Private Cloud Computeは 非常に簡単に使えます モデルのインスタンスを作成し それを使ってlanguage model sessionを 初期化するだけです セッションにプロンプトを送る際 新しい contextOptions引数で リーズニングレベルを指定できます ReasoningLevelはモデルが応答前に 考える量を制御します 深いリーズニングは追加の計算と引き換えに より良い応答を生成します Private Cloud Computeの 最大の利点の1つは アカウント設定を 心配する必要がないことです 認証を 処理する必要もなく APIキーを保存する必要もありません 全て完全にシームレスです もちろん Private Cloud Computeは 何よりもプライベートです プロンプトは決して保存されず 独立した研究者が この点を検証できるようにしています さらに Private Cloud Computeにより Foundation Modelフレームワークを watchOSにも展開できます watchOS 27から 最も強力なインテリジェンス機能を 手首でご利用いただけます
PCCはクラウドAPIコストなしで利用可能で 初回ダウンロード数が200万件未満の デベロッパに提供されます ユーザーは毎日 PCCにアクセスでき iCloud+に登録している場合は 制限がさらに高くなります PrivateCloudComputeLanguageModelの 詳細については 必要な権限も含め Private Cloud Computeの構築についての 動画をご確認ください 刷新されたオンデバイスモデルと 新しい Private Cloud Computeモデルに加えて モデル抽象化レイヤーを開放します ほぼあらゆる言語モデルを Foundation Modelフレームワークで 使用できるようにするためです 抽象化レイヤーは新しい LanguageModelプロトコルを中心に構築され ローカルとサーバー両方のモデルが LanguageModelSessionを支えられます SystemLanguageModelや PrivateCloudComputeLanguageModelなどの既存モデルは すでにこのプロトコルに 準拠しています さらに 2つの追加実装を オープンソース化します CoreAILanguageModelと MLXLanguageModelです MacのApple Neural EngineとGPUで 多数のローカルモデルを実行するためのものです 様々なフロンティアサーバーモデルへの アクセスも提供できるよう 裏で取り組んできたことも お伝えします AnthropicとGoogleが Swiftパッケージを公開し 最新かつ最高のモデルへの アクセスを提供します モデル抽象化レイヤーにより サードパーティモデルの使用が簡単になります Swift Package Managerで 言語モデルパッケージをインポートし 使用するモデルを初期化します
そしてセッション作成時に 渡すだけです
以降の処理は全て 同じです
サードパーティのサーバーモデルを 使用する場合 認証と請求の両方を 処理する必要があります アプリのバイナリに 秘密鍵を保存しないでください OAuthなどの安全な仕組みで アクセストークンを取得し KeyChainを使って 安全に保存してください デベロッパはサードパーティモデル使用時 通常トークンごとに請求されます そのため 使用量を簡単に 追跡できるようにしました セッションと応答には usageプロパティが追加され 使用されたトークン数を 正確に確認できます 入力トークンのうち キャッシュから読み込まれた数と リーズニングに使用された 応答トークン数も確認できます
LanguageModelsの使い方や 独自のLanguageModelパッケージの 作成方法については "Bring an LLM provider to the Foundation Models framework" をご覧ください モデルのアップデートを 全てお伝えしました 次はシステムツールです このリリースでは いくつかの組み込みツールを導入します LanguageModelSessionsを強化する システム提供の機能です Foundation Modelに 2つのネイティブツールが追加されました Visionフレームワークの強力な機能に 支えられています BarcodeReaderToolはモデルが バーコードから情報を読み取れるようにし OCRToolはモデルが画像から 構造化テキストを抽出できるようにします どちらもモデルが視覚情報を リーズニング能力を高め ネイティブではできない 方法で行います "What's new in image understanding" の動画では これらのツールの活用方法の詳細を 説明しています 同様に Spotlightを使った 検索ツールも導入します 完全ローカルな Retrieval-Augmented Generation用です これは最もリクエストの多かった 機能の1つです Retrieval-Augmented Generation(RAG)は モデルに最新の個人的または ドメイン知識へのアクセスを与える技術で Spotlightインデックスと 特別に処理されたクエリを活用します まさに待ち望んでいた機能なら "LLM search using Core Spotlight" が必見です このリリースの全ての 新しいモデルを確認したので 新しいシステムツールとともに Zhenに引き継ぎます エージェンティックなアプリ体験を構築するための 新しいAPIについて説明します お楽しみに Zhen よろしく ありがとう Erik
Dynamic Profileをご紹介します エージェント体験を構築するための 新しいプリミティブです
クラフトアプリの説明から 始めましょう Dynamic Profileで可能になる 体験の種類を見ていきます アプリ内で折り紙の写真とともに 日記のエントリを作成できます アプリはクラフト分析モードで 開始するセッションを作成します 命令がモデルに画像を分析して 見つけたことを記録するよう指示します クラフトの種類 色 素材を特定します そしてツール呼び出しを通じて 日記に保存します 次に アプリはブレインストーミング モードに切り替わります Private Cloud Computeの 推論機能を使って 学んだ全てのことを活かし 創造的な折り紙プロジェクトの リストを提案します 素晴らしいですね この機能を実装するには LanguageModelSessionを作成するところから始めます 次に モデル 命令 ツールをそれぞれ持つ セッションを追加します
しかし モデルに自律的に モードを切り替えさせたい場合は?
複雑になってきます
コンテキストの管理と このようなエージェントシステムの オーケストレーションには 多くのボイラープレートが 必要です そこで Foundation Modelsは 新しい宣言的APIを導入します Dynamic Profilesで コンテキストで重要なことに集中でき 命令型の制御を 気にする必要がなくなります 全て単一の言語モデル セッション内で行えます シンプルなDynamic Profileを 作成するにはstructを宣言し DynamicProfileプロトコルに 準拠させます Profileを含む bodyプロパティを持ちます
言語モデルセッションは DynamicProfileで初期化できます
命令とツールを指定できます その時点でコンテキストに 存在すべきものです これが DynamicProfileの 最もシンプルな形式で 命令とツールで構成された データ構造です 2つの異なるモードを 実装したいと思います クラフト分析モードと ブレインストームモードです アプリにはモード変数を保存する observableオブジェクトがあります それを使って切り替えます
異なる分岐では LanguageModelSessionは 異なる命令とツールを持ちます
モデルにツールを与えることもでき ブレインストームモードのコンテキストへの 切り替えをインテリジェントに行えます
コンテキストの管理だけでは 不十分な場合もあります 異なるタスクに異なるモデルと 設定が必要な場合もあります その際でも会話履歴を 維持しながら行えます
クラフトアプリには2つのシナリオがあります クラフト分析とブレインストームです それぞれ既に異なる命令と ツールのセットを持っています
クラフトの分析のような素早いタスクには SystemLanguageModelで十分でしょう ブレインストーミングに 切り替えたい場合は 深い推論が設定された Private Cloud Computeを指定できます
これらの設定を記述するには モディファイアを使います
PCCを指定する モデルモディファイアと モデルに十分に考えさせる reasoningLevelモディファイアです これで LanguageModelSessionが モデル ツール 命令を 動的に設定できます アプリが異なるモデル機能で 異なるコンテキストを処理する必要がある場合 Dynamic Profilesが最適です 重要なのは DynamicProfileが 常に単一のアクティブな Profileに解決されることです 条件分岐でどのProfileを アクティブにするかを選び frameworkが 移行を処理します クラフトアプリで 試してみましょう アイデアを選択すると モデルが Private Cloud Computeに切り替わります 分析からの完全なコンテキストを持ちながら 創造的なプロジェクトアイデアの生成には 大きなモデルの機能が 役立ちます 優れたツール呼び出しと 広い世界知識があるからです Profileはコンテキストの管理と セッションの動的な設定を はるかに簡単にします このAPIを使用する際は プライバシー境界 モデル機能 コストを考慮してください 詳細はディープダイブ セッションをご覧ください "Build agentic app experiences with Foundation Models framework"
これらの機能は強力ですが 言語モデルは本質的に 非決定論的です そのため動作の予測が 難しくなります
Evaluationフレームワークは 新しいSwiftフレームワークで インテリジェンス機能の品質を 測定します Evaluationフレームワークを使うと プロンプトを調整しながら 精度を定量化できます Evaluationはあなたのような アプリデベロッパのために構築されており 変更の統計的影響を 理解するのに役立ちます そして自信を持って アプリをリリースできます Evaluationの詳細は これらのセッションをご確認ください
次に ツールとオープンソースへの 取り組みについてお話しします macOS 27では モデルがコマンドラインに登場します fm CLIはApple Foundation Modelsを 使う全く新しい方法で 日常の生産性向上に役立ちます 端末からオンデバイスモデルと PCCにアクセスできます fmコマンドを使うだけです
fmには便利なヘルパーがあり サポートする全機能を一覧表示します
アプリ機能のためにモデルを試すのに fm chatを使ってきました 見せましょう 「折り紙の文脈で谷折りとは 何を意味するか?」を聞いてみます
簡単です あっという間に。 fmをシェルスクリプトに組み込んで ドキュメントを要約したり 情報を抽出したり コンテンツを生成したりできます 例えば ランダムな名前の 写真がいくつかあります IMG_1234のような 名前の写真です fmに画像の内容に基づいて ファイル名を生成するよう依頼しましょう
見てください わかりやすい説明的な名前を 付けてくれました
データサイエンティストや研究者で Pythonエコシステムで 作業している方には FoundationModels SDK for Pythonが 対応しています
Python SDKは全く同じ オンデバイスモデルへの直接アクセスを提供します Swift Foundation Modelフレームワークを 動かすモデルと同じです モデルの利用可能性を確認したり 数行のPythonで 応答を生成したりできます SDKにはSwiftフレームワークの コア機能が含まれており プロンプトから構造化された 応答を数秒で得られます 詳細は次のセッションを ご確認ください "Build AI-powered scripts with the fm CLI and Python SDK" Macの生産性について確認したので オープンソースについて 話しましょう
Foundation Modelsフレームワークユーティリティ から始めます
ユーティリティにはビルディングブロックの コレクションが含まれており LLMを使った新興のプラクティスを 探索するのに役立ちます
トランスクリプト管理のための プロファイルモディファイアと 手続き型知識読み込みのための スキルAPIを提供します また Chat Completionスタンダードを使って サーバーと連携できる 言語モデルも提供します これらは出発点に過ぎません ツールとトレンドは進化し Foundation Model フレームワークユーティリティは 共に成長します
ユーリティティパッケージに加えて FoundationModelフレームワークのコアも オープンソースになります Foundation Modelフレームワークを オープンソース化することで LLMとの対話に最適な ソリューションとなります Swiftが動く全ての環境 Linuxサーバーも含めて。 AnthropicやGoogleなどの 他のモデルプロバイダーと合わせて CoreAIとMLXの インテグレーションも含め どこでも任意のモデルを 実行できます お帰りなさい Erik まとめる準備はできてますか? はい よくまとめてくれました Zhen
これらの新機能 モデル APIに 私たちと同じくらいワクワクしていただければ と思います まだ表面をなぞっただけです 詳細については 他の動画もご確認ください ここで紹介した 全トピックの詳細があります Evaluationフレームワークから Private Cloud Computeまで 強化されたXcode instrumentと Dynamic Profileの詳細もあります 次のステップとして サンプルアプリを探索することをお勧めします Dynamic Profileについて 詳しく学べます そして Evaluationフレームワークに 慣れ親しんでください チーム全体を代表して ご参加ありがとうございました ありがとうございました
-
-
2:46 - Context size and token counting
// Context size and token counting let model = SystemLanguageModel() print(model.contextSize) // 8192 let count = try await model.tokenCount(for: "What are the Japanese characters for origami?") print(count) -
3:52 - Attachable image types
// Insert c// Attachable image types let response = try await session.respond { "What animal is this?" Attachment(UIImage(...)) }ode snippet. -
8:45 - Inspecting usage
// Inspecting usage let response = try await session.respond( to: "Recommend a craft that doesn't require scissors.", contextOptions: ContextOptions(reasoningLevel: .light) ) print(response.usage.input.totalTokenCount) print(response.usage.input.cachedTokenCount) print(response.usage.output.totalTokenCount) print(response.usage.output.reasoningTokenCount) -
11:55 - Routing between craft analysis and brainstorm
// Routing between craft analysis and brainstorm @Observable final class AppStates { var mode: Mode } let appStates: AppStates var session: LanguageModelSession? func updateSession() { let originalTranscript = session?.transcript.dropFirstInstructions() ?? Transcript() // Create a new session with new instructions and tools switch appStates.mode { case .craftAnalysis: session = LanguageModelSession( tools: [ RecordImageAnalysisTool(), SwitchModeTool(states: appStates) ], instructions: "Analyze the user's craft project...", transcript: originalTranscript ) case .brainstorm: session = LanguageModelSession( tools: [ RecordBrainstormTool(), ], instructions: "Brainstorm some ideas...", transcript: originalTranscript ) } } struct SwitchModeTool: Tool { let description = "Switch to a different mode." let states: AppStates @Generable struct Arguments { let mode: Mode } func call(arguments: Arguments) async throws -> some PromptRepresentable { appStates.mode = arguments.mode return "Successfully switched to \(arguments.mode)." } } // If mode changes, update the session withObservationTracking { appStates.mode } onChange: { updateSession() } -
12:42 - Describing the profile for craft app
// Describing the profile for craft app struct CraftProfile: LanguageModelSession.DynamicProfile { var body: some DynamicProfile { Profile { Instructions { """ You are an expert crafting assistant. \ Record craft project image analyses \ using the recordImageAnalysis tool. """ } RecordImageAnalysisTool() } } } let session = LanguageModelSession( profile: CraftProfile() ) -
14:36 - Describing the profile for craft app
// Describing the profile for craft app struct CraftProfile: LanguageModelSession.DynamicProfile { let states: CraftProjectStates var body: some DynamicProfile { switch states.mode { case .craftAnalysis: Profile { Instructions { /* ... */ } RecordImageAnalysisTool() SwitchModeTool(states: states) } case .brainstorm: Profile { Instructions { /* ... */ } BrainstormRecordTool() } .model(states.privateCloudCompute) .reasoningLevel(.deep) } } } -
18:29 - Foundation Models SDK for Python
# Foundation Models SDK for Python import apple_fm_sdk as fm model = fm.SystemLanguageModel() # Check the model's availability is_available, reason = model.is_available() if is_available: # Create a session session = fm.LanguageModelSession(model=model) # Generate a response response = await session.respond(prompt="Hello!") print(response)
-
-
- 0:00 - Introduction
Erik Hornberger and Zhen Li introduce this year's Foundation Models release, going open source with a new utilities package, and preview the agenda: model updates, system tools, dynamic profiles, evaluations, and tooling.
- 2:34 - New on-device model
A rebuilt on-device model with better reasoning and tool calling, plus new APIs (from iOS 26.4) for inspecting context size and counting tokens, and refined guardrails that reduce false positives.
- 3:21 - Vision: image understanding
The on-device model gains vision. Add image attachments to a prompt to ask about images, accepting UIImage, NSImage, CGImage, Core Image, CoreVideo pixel buffers, and file URLs at any size, though larger images cost more tokens.
- 4:20 - Private Cloud Compute
Access Apple's server models via PrivateCloudComputeLanguageModel, a 32K context window with reasoning levels, with no account setup, auth, or API keys, fully private, and now available on watchOS 27.
- 6:46 - Model abstraction layer
A new LanguageModel protocol lets local and server models back a LanguageModelSession. Existing models conform already, plus open-source CoreAILanguageModel and MLXLanguageModel for running local models on the Neural Engine and GPU.
- 7:32 - Partner model integrations
Anthropic and Google publish Swift packages for their frontier models. Swap models via Swift Package Manager with everything downstream unchanged, handle auth and billing securely with OAuth and Keychain, and track per-token usage including cache and reasoning tokens.
- 9:40 - System tools: Vision and Spotlight
New built-in tools: BarcodeReaderTool and OCRTool (Vision-backed) for reasoning over visual information, and a Spotlight-powered search tool enabling fully local Retrieval-Augmented Generation (RAG).
- 10:57 - Dynamic Profiles for agentic apps
Dynamic Profiles, a declarative primitive for agentic experiences. Using the Crafts app, a single session swaps instructions and tools between modes (craft analysis vs. brainstorm) by conforming a struct to DynamicProfile.
- 13:46 - Composing models and configurations
Use modifiers to vary the model and reasoning level per profile branch, for example SystemLanguageModel for quick analysis and Private Cloud Compute with deep reasoning for brainstorming, while preserving conversation history. A profile resolves to one active profile at a time.
- 15:30 - Evaluations framework
A new Swift framework to measure the quality of intelligence features, quantifying accuracy as you tweak prompts so you can understand the statistical impact of changes and ship with confidence.
- 16:02 - The fm command line tool
In macOS 27, the models come to the terminal. The fm CLI gives on-device and PCC access for everyday productivity: fm chat for interactive use and piping into shell scripts to summarize, extract, or generate content.
- 17:13 - Foundation Models Python SDK
A Python SDK exposes the same on-device model as the Swift framework, checking availability and generating structured responses in a few lines, for data scientists and researchers in the Python ecosystem.
- 17:55 - Open source and framework utilities
The Foundation Models framework utilities package offers building blocks (transcript management, a skill API, chat-completions interfacing), and the core framework is open-sourced to run wherever Swift runs, including Linux servers.
- 19:24 - Next steps
Download the sample app, get familiar with dynamic profiles and the Evaluations framework, and watch the deep-dive sessions on PCC, evaluations, the Xcode instrument, and dynamic profiles.