Foundation Models のインターフェイスをそのままに、セキュリティに妥協せずサーバーサイドLLMを扱える Private Cloud Compute に関する詳細。サーバーサイドだからこその使用上限に達した際のあるべきユーザー体験が説明されていてなるほどだった。
Build with the new Apple Foundation Model on Private Cloud Compute
0:00 – Introduction
- Foundation Models フレームワークを使い、Private Cloud Compute (PCC) 上の新しいサーバーモデルにアクセスする方法を紹介
- 今年のオンデバイス LLM の改善点
- 画像入力のサポート追加
- instructions への追従精度の向上
- カスタムツール呼び出し精度の向上
- より複雑なユースケースに対応するため、PCC 上の新しいサーバーモデルを提供
- 大量のユーザー入力を推論するアシスタント
- 大量のツール呼び出しと大きな出力を必要とする機能
- watchOS からも PCC の呼び出しが可能
1:23 – What is Private Cloud Compute
- PCC はシステム機能を動かすための Apple のサーバー基盤で、今年からサードパーティアプリでも利用可能に
- プライバシー設計
- ユーザーデータは保存されず、リクエスト処理のみに使用
- エンドツーエンドのプライバシーを独立し研究者により検証済み
- OS と iCloud に統合されているため、開発者側の認証情報管理が不要
- 認証なし、API キーなし、アカウント設定なし
- Apple Intelligence 対応デバイスがあれば利用可能
- 開発者向けのトークン課金なし
- 利用制限の仕組み
- ユーザーごとに日次制限あり
- iCloud+ にアップグレードすると制限が緩和
- ダウンロード数 200 万未満のアプリが対象(デベロッパーサイトから申請可能)
2:43 – Integrating PCC with Foundation Models
- 既存の Foundation Models コードからわずか 1 行の変更で PCC モデルへ切り替え可能
LanguageModelSessionのイニシャライザに.init(model: PrivateCloudComputeLanguageModel())を指定
- Foundation Models フレームワークが、どのモデルを使用しているかに関わらず統一された Swift API を提供
Generableによる構造化出力やツール呼び出しはオンデバイスモデルと同じ API で動作- モデルを切り替えてもコードの書き直しが不要
- PCC もオンデバイスモデルと同様に Apple Intelligence 対応デバイスのみで利用可能
- 利用可能かどうかの確認と、利用できない場合の適切なフォールバック処理が必要
4:00 – Deciding between on-device and PCC
- オンデバイスモデルと PCC モデルの主な違い
- プライバシー:両者とも担保
- オフライン動作:オンデバイスは可、PCC は通信必須
- リクエスト制限:オンデバイスはなし、PCC は日次制限あり
- コンテキストサイズ:オンデバイスは 4K、PCC は 32K
- 推論(Reasoning):PCC のみ対応
4:32 – Reasoning levels and context size
- 推論(reasoning)とは:LLM が応答を生成する前に「考える」プロセス
- トランスクリプトの別セグメントに追加テキストを生成することで実現
- PCC モデルが提供する 3 段階の推論レベル
.light:モデルが少量の追加コンテキストを収集する程度.moderate:より深く推論する.deep:推論セグメントのテキストが実際の応答より長くなる場合も
respond呼び出し時に推論レベルを指定可能- セッションのトランスクリプトを監視して推論の進捗を表示可能(
.deepでは特に有用) - 注意点:推論はトークンを消費するため、コンテキストに含まれそのサイズ制限に影響する
- コンテキストサイズをプログラムで取得する API が追加
SystemLanguageModelまたはPrivateCloudComputeLanguageModelのcontextSizeプロパティを参照
6:15 – Evaluating and combining models
- モデルや推論レベルの選択は感覚ではなくデータに基づいて判断することが重要
- 評価の目的:機能ごとの品質を数値で把握する
- 今年のアップデートによりオンデバイスモデルの性能が向上しており、期待以上の性能を発揮するケースも
- Evaluations フレームワークの導入
- Foundation Models 機能を評価するための新しい Swift フレームワーク
- Xcode に統合されており、導入が容易
- オンデバイスモデルとサーバーモデルを組み合わせた利用も可能
7:10 – Handling usage limits
- PCC の利用制限はユーザーの iCloud アカウントに紐づいて管理
- 制限超過時の処理
- リクエストがエラーをスロー
- エラーを UI に表示するだけでは不十分:適切なアクションにつながらない
PrivateCloudComputeLanguageModelのquotaUsage.isLimitReachedを確認してカスタム UI で対応
- UI 設計のベストプラクティス
- 上限引き上げのためのアップグレードボタンの表示する
- アラートは使わない(永続表示が必要なため、閉じられてしまうアラートは不適切)
- リクエストボタンを無効化するなど UI の状態を更新して表示
- 制限超過(
isLimitReached)だけでなく制限接近(belowLimit)のケースにも対応する
- Xcode のデバッグオプションで制限状態のシミュレーションが可能
- スキームの Debug → Options → “Simulate Apple Foundation Models Availability”
- Quota Usage Limit Reached(制限超過)または Nearing Usage Limit(制限接近)を選択できる