ハイブリッド推論を使用して AI 搭載の Apple アプリや機能を作成できます Firebase AI Logic。ハイブリッド推論では、デバイス上のモデル(具体的には Apple の Foundation Models フレームワーク)が利用可能な場合はそれを使用して推論を実行し、それ以外の場合はクラウドでホストされている Google モデルにシームレスにフォールバックします(逆も同様です)。
このページでは、クライアント SDK の使用を開始する方法について説明します。また、temperature など、追加の構成オプションと機能についても説明します。
Firebase AI Logic を介したデバイス上の推論は、Firebase AI Logic SDK v12.13.0 以降を使用し、Apple Intelligence が有効になっているデバイスで実行される Apple アプリでサポートされています。これは、Apple の Foundation Models フレームワークの 利用規定に則っています。
おすすめのユースケース
推論にデバイス上のモデルを使用する と、次のメリットがあります。
- プライバシーの強化
- 推論が無料
- オフライン機能
ハイブリッド 機能を使用すると、次のメリットがあります。
- エンドユーザーのデバイスに関係なく、すべてのお客様に同様のアプリ エクスペリエンスを提供できる
- インターネット接続、割り当て制限、デバイスの機能に関係なく、生成 AI 機能の可用性を向上できる
サポートされている機能、API、デバイス
Firebase AI Logic を使用してハイブリッド推論とデバイス上の推論を実装する前に、このセクションで Apple アプリでサポートされている内容を確認してください。
デバイス上の推論でサポートされている機能
デバイス上の推論では、テキスト生成 のみがサポートされます。具体的には、 次のテキスト生成機能です。
このページの下部にある、 まだサポートされていないハイブリッド推論またはオンデバイス推論 の詳細なリストを確認してください。
サポートされている API とデバイス
クラウド内の推論では、選択した Gemini API プロバイダ( Gemini Developer API または Vertex AI Gemini API)を使用します。
デバイス上の推論では、Apple の Foundation Models フレームワークを使用します。これは Apple Intelligence が有効になっているデバイスでのみ使用できます。 Apple Intelligence が有効になると、デバイス上のモデルが自動的にダウンロードされます。
始める
サポートされている機能、API、デバイスについて説明した上記のセクションを確認してください。
以下の手順では、送信するサポート対象のプロンプト リクエストに必要な一般的な設定について説明します。
ステップ 1: Firebase プロジェクトを設定し、アプリを Firebase に接続する
Firebase コンソールにログインし Firebase プロジェクトを選択します。
Firebase コンソールで、[AI サービス] > [AI Logic] に移動します。
「Gemini API」プロバイダを使用するようにプロジェクトを設定します。
から始めることをおすすめします。 Gemini Developer APIいつでも 設定できますVertex AI Gemini API (とその課金要件)。
Gemini Developer API の場合、コンソールで必要な API が有効になり、プロジェクトに Gemini API キーが作成されます。
この Gemini API キーをアプリのコードベースに追加しないでください。 詳細コンソールのワークフローでプロンプトが表示されたら、画面上の手順に沿ってアプリを登録し、Firebase に接続します。
このガイドの次のステップに進み、アプリに SDK を追加します。
ステップ 2: 必要な SDK を追加する
Swift Package Manager(SPM)を使用して、Xcode の依存関係をインストールして管理します。ハイブリッド サポートは、SPM を使用する場合にのみ使用できます。
Firebase AI Logic ライブラリを使用すると、生成モデルを操作するための API にアクセスできます。このライブラリは、Firebase SDK for Apple プラットフォーム(firebase-ios-sdk)の一部として含まれています。
Firebase をすでに使用している場合は、Firebase パッケージが v12.13.0 以降であることを確認してください。
Xcode でアプリのプロジェクトを開いたまま、[File] > [Add Package Dependencies] の順に移動します。
プロンプトが表示されたら、Firebase Apple プラットフォーム SDK リポジトリを追加します。
https://github.com/firebase/firebase-ios-sdk最新の SDK バージョンを選択します。
FirebaseAILogicライブラリを選択します。
上記の作業が完了すると、Xcode は依存関係の解決とバックグラウンドでのダウンロードを自動的に開始します。
ステップ 3: サービスを初期化してモデル セッション インスタンスを作成する
|
Gemini API プロバイダをクリックして、このページでプロバイダ固有のコンテンツとコードを表示します。 |
モデルにプロンプト リクエストを送信する前に、次の設定を行います。
選択した Gemini API プロバイダのサービスを初期化します。
HybridModelを使用してGenerativeModelSessionインスタンスを作成します。必要に応じて
primaryモデルとsecondaryモデルを設定します。推論の試行順序を設定できます。最初にデバイス上の推論を試行し、クラウドへのフォールバックを許可する:
primaryを「システム」モデルに、secondaryをクラウドモデルに設定します。最初にクラウド内の推論を試行し、デバイスへのフォールバックを許可する:
primaryをクラウドモデルに、secondaryを「システム」モデルに設定します。
SDK では のみ 1 つの
modelを設定できます。つまり、SDK はデバイス上の推論またはクラウド内の推論のいずれかのみをのみ試行します。ただし、ハイブリッド エクスペリエンスの場合は、HybridModelを作成し、primaryモデルとsecondaryモデルの両方を設定する必要があります。「推論モード」(推論の試行順序)の動作について詳しくは、 構成オプションをご覧ください。
次の例は、最初にデバイス上の推論を試行し、クラウドでホストされているモデルへのフォールバックを許可する方法を示しています。
// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Initialize a cloud model that supports your use case
let cloudModel = ai.geminiModel(name: "GEMINI_MODEL_NAME")
// Initialize an on-device model that supports your use case
let systemModel = FirebaseAI.SystemLanguageModel.default
// Create a Hybrid Model
// Provide your preferred model as `primary` and your fallback model as `secondary`
// In this example, attempt to use on-device model; otherwise, fall back to cloud.
let hybridModel = HybridModel(
primary: systemModel,
secondary: cloudModel
)
// Create a GenerativeModelSession with the HybridModel created earlier.
let session = firebaseAI.generativeModelSession(
model: hybridModel,
)
ステップ 4: モデルにプロンプト リクエストを送信する
このセクションでは、次の方法について説明します。
テキストのみの入力からテキストを生成する
| このサンプルを試す前に、このガイドの「始める」セクションを完了していることを確認してください。 |
テキストを含むプロンプトからテキストを生成するには、次のように respond(to:) を使用します。
// Imports + initialization of Gemini API backend service + creation of model session
// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."
// To generate text output, call `respond(to:)` with the text input
let response = try await session.respond(to: prompt)
print(response.content)
テキストのみの入力からテキストをストリーミングする
| このサンプルを試す前に、このガイドの「始める」セクションを完了していることを確認してください。 |
モデル生成からの結果全体を待つのではなく、ストリーミングを使用して部分的な結果を処理することで、インタラクションを高速化できます。テキストを含むプロンプトから生成されたテキストをストリーミングするには、次のように streamResponse(to:) を使用します。
// Imports + initialization of Gemini API backend service + creation of model session
// Provide a prompt that contains text
let prompt = "Write a story about a magic backpack."
// To stream generated text output, call `streamResponse(to:)` with the text input
let stream = session.streamResponse(to: prompt)
for try await snapshot in stream {
print(snapshot.content)
}
Google アシスタントの機能
ハイブリッド エクスペリエンスでは、さまざまな追加の構成オプションと機能を使用できます。
ハイブリッド推論またはデバイス上の推論でまだサポートされていない機能
試験運用版リリースでは、Firebase AI Logic またはクラウドでホストされているモデルのすべての機能がサポートされているわけではありません。
Imagen モデル、Gemini Live API、プロンプト テンプレートは、ハイブリッド実装またはデバイス上の 実装ではサポートされていません。また、カウント トークンはクラウドでホストされているモデルとデバイス上のモデルで異なるため、直感的なフォールバックはありません。
次の機能は、デバイス上の推論ではまだサポートされていません。 これらの機能を使用する場合は、より一貫したエクスペリエンスを実現するために、クラウドでホストされているモデルのみを使用することをおすすめします。
画像、音声、動画、ドキュメント(PDF)などのマルチモーダル入力からテキストを生成する
画像、音声、動画などのメディアを生成する
4,096 トークン(または約 3,000 語の英語)を超えるリクエストを送信する。
デバイス上のモデルに組み込みツールを提供して、レスポンスの生成を支援する(コード実行、URL コンテキスト、Google 検索によるグラウンディングなど)
Firebase コンソールの AI モニタリングには、デバイス上の推論(デバイス上のログを含む)のデータは表示されません。Firebaseただし、クラウドでホストされているモデルを使用する推論は、 他の推論と同様に Firebase AI Logicモニタリングできます。
その他の制限
上記に加えて、デバイス上の推論 には次の制限があります。
アプリのエンドユーザーは、Apple Intelligence が有効になっている デバイスを使用する必要があります。
アプリがフォアグラウンドにある場合にのみ、アプリでデバイス上の推論を実行できます。
フィードバックを送信する Firebase AI Logicの使用に関する