Bringing Gemini to Apple's Foundation Models API
9分 25秒
Apple Foundation ModelsとFirebase AI LogicでGeminiを統合!安全なAIアプリ開発
この記事は動画の内容を元にAIが生成したものです。正確な情報は元の動画をご確認ください。
ポイント
- •Apple Foundation ModelsとFirebase AI Logicを用いて、GoogleのGeminiモデルをiOSアプリにセキュアに統合する方法を解説しています。
- •オンデバイスモデルとクラウドホスト型モデル(Gemini)を同一APIで柔軟に使い分け、セキュリティを確保しつつ高性能なAI機能を実装できます。
- •テキスト要約の切り替えからGoogle Maps/Search連携、画像分析まで、多様なユースケースを通して具体的な実装方法と得られるメリットを学べます。
先日開催されたWWDCの基調講演で、AppleはFoundation Modelsフレームワークを公開し、サードパーティのモデルプロバイダーがクラウドホスト型モデルをAppleのフレームワークに接続できるようになりました。この画期的な発表を受け、Firebaseチームは、この新しいAPIを使って初日からGeminiモデルを利用可能にする統合を構築したことを発表しました。このAPIの真に素晴らしい点は、AppleのオンデバイスFoundation Modelsを使用する場合でも、Geminiのようなクラウドホスト型モデルを使用する場合でも、全く同じAPI呼び出しで利用できることです。これにより、用途に応じて最適なモデルを柔軟に選択できるようになります。
オンデバイスモデルとクラウドホスト型モデルの選択
開発者は、オンデバイスモデルとクラウドホスト型モデルのどちらか、または両方を、そのアプリケーションの要件に基づいて選択できます。
オンデバイスモデルの利点と制限
オンデバイスモデルは、以下の点で非常に優れています。
- 最大限のプライバシー: データがデバイス外に出ないため、高いプライバシーが保たれます。
- ゼロコスト: デバイス上で実行されるため、追加のコストが発生しません。
- オフラインサポート: インターネット接続がなくても利用可能です。
- 小規模で特定のタスク: 短いテキストの要約など、特定のシンプルなタスクに適しています。
しかし、オンデバイスモデルはサイズが小さく、文脈ウィンドウ(コンテキストウィンドウ)のサイズにも制限があるため、全てのタスクに適しているわけではありません。例えば、PDFファイルや詳細な技術ブログ記事のような長文を要約する場合、入力がコンテキストウィンドウのサイズを超えるとAPIが例外をスローすることがあります。
クラウドホスト型モデルの必要性
より大きなコンテキストウィンドウ、高度な機能、またはより強力な推論能力が必要な場合は、Geminiのようなクラウドホスト型モデルのスケールが不可欠です。 AppleのFoundation Modelsフレームワークとの新しい統合により、同じアプリケーション内で、全く同じコードを使ってオンデバイスモデルとクラウドホスト型モデルの両方をシームレスに利用できるようになりました。
Firebase AI Logicによる安全なGemini統合
Foundation Modelsフレームワークを介してGeminiを利用するには、Firebase AI Logicを統合する必要があります。この統合は、Gemini APIキーのセキュリティを確保する上で非常に重要です。
セットアップ手順とセキュリティの仕組み
- Firebase SDKの追加とプロジェクト接続: 通常のFirebaseプロジェクトと同様に、アプリにFirebase SDKを追加し、Firebaseプロジェクトに接続します。
- Firebase AI Logicの役割: Firebase AI Logicはプロキシとして機能します。これにより、悪意のある攻撃者が盗む可能性のあるクライアントアプリにGemini APIキーを追加する必要がなくなります。その代わりに、Gemini APIキーはGoogleのサーバー上で安全に保護されます。
- Firebase App Checkによる追加防御: 2段階目の防御として、モデルへのリクエストが改ざんされていないデバイス上の正規のアプリケーションからのみ行われることを保証する必要があります。これにはFirebase App Checkが役立ちます。App Checkは、アテステーションプロバイダーを使用して、すべてのリクエストがアプリの正当なインスタンスから発信されていることを保証します。さらに、App Checkはリプレイ攻撃を防ぐための使い捨てトークンもサポートしています。
App Checkを設定したら、Firebase AI Logicを使用してサーバーモデルをインスタンス化し、それを直接AppleのLanguage Model Sessionに渡すことができます。Firebase AI LogicがAppleのLanguage Model Protocolと統合されているため、AppleのFoundation Modelフレームワークを使ってGeminiを呼び出すことが可能になります。もしFoundation Modelフレームワークを以前からアプリで使用していた場合でも、既存のSwift UIビューやデータ構造を変更する必要はありません。
実践的なユースケース
この統合が実際のアプリケーションでどのように役立つかを見ていきましょう。
1. テキスト要約の柔軟な切り替え
短いメールやブログ記事のようなテキストの要約には、オンデバイスモデルが適しています。しかし、PDFファイルや詳細な技術記事のような長文を要約する際には、オンデバイスモデルのコンテキストウィンドウの制限に直面する可能性があります。このような場合、Geminiのようなクラウドホスト型モデルに切り替えることで、より長いテキストも効率的に要約できます。コードに数行追加してサーバーモデルをセッションに登録するだけで、この切り替えが可能です。
2. Google Maps連携による正確な場所情報(Grounding)
Appleの「Landmarks」アプリを例に、Geminiの強力な機能であるGoogle Maps連携とGoogle Search連携を見てみましょう。元のLandmarksアプリでは、旅程のアクティビティに静的な場所のリストを使用していました。これをより現実的にするために、Geminiの機能を活用します。
Firebase AI Logicを設定し、Geminiモデルをインスタンス化した後、このクラウドホスト型モデルをAppleのFoundation Modelフレームワークに渡します。モデルが旅程を生成する際に実在する場所を使用するようにするには、「server tools」パラメーターを使用してGoogle Mapsツールを登録します。また、システム指示を更新して、モデルがGoogle Mapsツールを使用して結果をGrounding(根拠付け)するように指定することも良いアイデアです。これにより、モデルは実在する目的地とライブ座標で旅程を作成できるようになります。
3. Google Search連携による詳細情報提供(Grounding)
場所データだけでは不十分な場合もあります。例えば、ユーザーは特定の場所で開催される特別なイベントや営業時間に関心があるかもしれません。このような場合にGoogle Search連携が役立ちます。
これを設定するには、Gemini言語モデルを設定する際にGoogle Searchツールを登録します。これにより、モデルに、ユーザーが場所についてさらに知りたいときに表示したいすべての詳細を生成するように指示できます。場所の住所に加えて、営業時間や今後のイベントのような詳細も生成可能です。
良い点として、ストリーミング版のAPIも使用できます。これにより、モデルが出力を生成しながらUIを更新できるため、ユーザーの待ち時間を短縮できます。また、@generableマクロを使用して期待する出力の構造を定義することで、生成された結果をUIに表示しやすくなります。
Google Search連携を使用する際は、Google Searchの結果と、それらの詳細の出典元を表示する必要があることに留意してください。Google Maps連携の場合も同様の要件があります。詳細は公式ドキュメントに記載されており、アプリで利用できるコードスニペットも提供されています。
4. マルチモーダルな画像分析による視覚的ランドマーク発見
最も魅力的な機能の一つに、視覚的ランドマーク発見があります。例として、ユーザーがハンブルクの街を探索中に船のような興味深い建物を見つけ、その建物についてもっと知りたいと思い、写真を撮るシナリオを想像してみてください。アプリが画像を分析し、それをDocklandビルディングと識別し、ユーザーの旅程に追加します。
Geminiのマルチモーダル機能により、わずか数行のコードでこれを実装できます。
まず、Geminiモデルを設定し、Language Model Sessionに渡します。画像内のランドマークを識別するには、画像をLanguage Model Sessionに渡し、分析を指示するプロンプトを添えます。respondメソッドはマルチモーダルプロンプトを渡せるプロンプトビルダーを使用します。画像はCGImageとして渡す必要があるため、添付ファイルとして渡す前に画像を変換することを忘れないでください。
構造化された生成(Structure Generation)を使用すると、モデルがSwiftタイプに直接マッピングできる形式で応答を返すようにすることができます。 このように、複雑な機械学習モデルを自分で実装することなく、わずか数行のコードで素晴らしい機能を実装することが可能です。
まとめ
AppleのFoundation ModelsフレームワークとFirebase AI Logic、そしてGeminiモデルの統合は、iOSアプリ開発者にとって強力な新しい可能性を開きます。オンデバイスモデルとクラウドホスト型モデルを同じコードベースでシームレスに切り替える能力、Firebase AI LogicとApp Checkによる堅牢なセキュリティ、そしてGoogle MapsやGoogle Search連携、マルチモーダルな画像分析といった高度な機能の活用は、ユーザー体験を劇的に向上させ、よりスマートでインタラクティブなアプリケーションの構築を可能にします。ぜひこの新しい機能を試して、その可能性を体験してください。
参考動画
https://www.youtube.com/watch?v=qx5QWrKhxM8