ML Kitに最近追加された新しいGenAI APIは、開発者がGemini Nanoを使ってAndroidアプリでオンデバイス推論を可能にし、要約、校正、書き換え、画像説明などの機能をサポートする。
例えば最大3,000語の英語文書を要約したり、メッセージをよりフォーマルまたはカジュアルに修正したり、タイトル、メタデータ、画像説明の代替文を生成したりすることができる。
オンデバイスで動作するため、入力、推論、出力を含むすべてのデータがローカルデバイスを離れることはなく、クラウドコストも発生しない。GoogleによるとGenAI APIは他のML Kit APIと同様に高レベルの抽象化を提供し、統合と使用が容易になるよう設計されている。
これによりプロンプトエンジニアリングや特定のユースケースに対するファインチューニングなしに、すぐに高品質な結果を期待できます。
これはGemini Nanoを共通の基盤として使用し、各専門APIをコンポーネントスタックとして構築することで実現される。Nanoの上にはパフォーマンスを向上させるための小さなAPI固有のLoRAアダプターモデルがあり、その上にはプロンプト、温度、トップK、バッチサイズなどの最適化された推論パラメータを定義する層が続く。最後に評価パイプラインが生成された応答をさらに改善するために、自動評価者、統計的指標、人間の評価者を組み込む。
このアプローチによって達成されたパフォーマンス向上は、テキスト要約における事実の一貫性など、特定の属性を考慮した各APIに合わせたベンチマークスコアを使用して測定される。これらのベンチマークは以下の画像に示されているように、すべてのAPIで一貫した改善を示している。
ML Kit GenAI APIはストリーミングと非ストリーミングの両方のワークフローをサポートしている。ストリーミングは特に長い応答に適しており、応答全体が生成されるのを待つことなく、出力を段階的に表示できる。
GenAI APIを使用する際、ML Kitは必要に応じてGemini NanoやAPI特化型モデルを自動的にダウンロードする。開発者はこのプロセスを制御し、必要に応じてモデルを事前にダウンロードできる。必要なモデルがすべてダウンロード済みの場合、以下スニペットは要約APIのワークフローの簡略化ビューを示す:
val articleToSummarize = ... val summarizerOptions = SummarizerOptions.builder(context) .setInputType(InputType.ARTICLE) .setOutputType(OutputType.ONE_BULLET) .setLanguage(Language.ENGLISH) .build() val summarizer = Summarization.getClient(summarizerOptions) val summarizationRequest = SummarizationRequest.builder(text).build() summarizer.runInference(summarizationRequest) { newText -> // Show new text in UI } 必要な機能がすべてローカルで利用可能であることを確認するために、開発者は必要に応じてsummarizer.checkFeatureStatusメソッドを呼び出すことができる。
ML Kit GenAI APIは、最適化されたMediaTek Dimensity、Qualcomm Snapdragon、Google Tensorプラットフォームを搭載したAndroidデバイスでAICoreを介して利用可能である。対応デバイスには、Pixel 9シリーズ、Samsung Galaxy 25、Xiaomi 15、Motorola Razr 60 Ultraなどが含まれる。
興味を持ってとりかかろうとしている開発者にとって始めるための良い場所は、すべての新機能を紹介する公式ML Kit GenAI APIデモアプリや、より深いガイダンスを提供する公式ドキュメントである。