Gemini Nano の直接モデルアクセスを使用してカスタム リクエストを送信する

ML Kit の直接モデルアクセス(com.google.mlkit:genai-prompt)を使用すると、GenerativeModel クラスを介して、カスタムの自然言語リクエストをオンデバイスで Gemini Nano 基盤モデルに送信できます。直接モデルアクセスは、テキストまたはマルチモーダル(画像とテキスト)の入力を受け入れ、クライアント管理のマルチターン会話(USER ロールと MODEL ロール、sessionId を含む List<Content>)をサポートし、テキスト出力または型付き構造化出力を生成します。

直接モデルアクセスは、次のようなさまざまなユースケースで使用できます。

ユースケース

例

画像理解

写真を分析して、「ペット」、「食べ物」、「旅行」などの分類を行う。

短い翻訳

配達ドライバーと顧客の間の短いメッセージを翻訳する。

ガイド付き要約

ユーザーの特定の関心に基づいてレストランのレビューを要約する。

エンティティの抽出

メールスレッドから、今後のイベントに関する重要な詳細情報を抽出する。

コンテンツ生成のヒント

ジャーナル エントリのプロンプトを提案する。

インテリジェントなドキュメント スキャン

領収書画像から商品を抽出して分類する。

テキスト分類

購入者レビューを肯定的、中立的、否定的なカテゴリに分類する。

モデルへの直接アクセスとタスク固有の API

カスタム プロンプト用の Gemini Nano 基盤モデルへの直接アクセスに加えて、ML Kit には、専用の音声、画像、テキストタスク用の事前構成済み API(音声認識、画像の説明、要約、校正、書き換えなど)が用意されています。テキストと画像の Tasks API は、共有ベースモデルの上にタスク固有の特徴タイプとファインチューニングされた LoRA アダプタを使用します。次の表に、各アプローチのメリットを示します。

検討事項

直接モデルアクセス(GenerativeModel)

テキストと画像の Tasks API

統合の作業量

高。

プロンプト エンジニアリングと品質保証が必要なため、実装に手間がかかる。

ドライブ

これらの API は、ベースモデルの上にタスク固有の特徴タイプとファインチューニングされた LoRA アダプタを使用するため、必要な労力が少なくなります。LLM を直接操作する必要はありません。

柔軟性

プロンプトのカスタム エンジニアリング、マルチターン コンテキストの管理、型付き構造化スキーマの適用、GenerativeModel 上での高度なAgentic Workflows(AgentRunner)の構築など、柔軟性が向上します。

柔軟性が低い。各タスク固有の API には、固定の LoRA ファインチューニングと、次の特性を持つ組み込みプロンプトがあります。

  • 画像の説明が一般的で短い。
  • 要約は 1 ~ 3 個の箇条書きにする必要があります。
  • 書き換えでは、事前定義されたスタイルのみがサポートされます。

一般的なルールとして、より多くのカスタマイズと柔軟性が必要な場合は、直接モデルアクセスを使用します。カスタム ロジックを必要としない標準タスクには、タスク固有の API を使用します。

サンプルコード