公開日: 2024 年 12 月 12 日、最終更新日: 2025 年 5 月 20 日
組み込み AI API を使用すると、ウェブ アプリケーションは独自の AI モデルをデプロイまたは管理することなく、AI 搭載タスクを実行できます。Google は、これらの API をブラウザ間で標準化するよう取り組んでいます。
必要なモデル
Translator API と Language Detector API は、エキスパート モデルを使用します。他のすべての API は、デスクトップやノートパソコンでローカルに実行するように設計された言語モデルを使用します。
Summarizer API、Writer API、Rewriter API、Proofreader API は、テキストからテキスト生成モダリティのみをサポートしています。Prompt API にはマルチモーダル機能があります。
Chrome モデル
Chrome は、エキスパート言語モデルと基盤言語モデルを使用します。これらのモデルはモバイル デバイスでは利用できません。
Chrome 149 以降、モデルは入力テキストと出力テキストで英語、スペイン語、日本語、ドイツ語、フランス語をサポートしています。
必要なハードウェア
Chrome でこれらの API を使用して機能を操作するデベロッパーとユーザーには、次の要件があります。他のブラウザでは、動作要件が異なる場合があります。
Language Detector と Translator API は、パソコン版 Chrome で動作します。これらの API はモバイル デバイスでは機能しません。
Prompt API、Summarizer API、Writer API、Rewriter API、Proofreader API は、次の条件を満たす場合に Chrome で動作します。
- オペレーティング システム: Windows 10 または 11、macOS 13 以降(Ventura 以降)、Linux、または Chromebook Plus デバイス上の ChromeOS(プラットフォーム 16389.0.0 以降)。Android 版 Chrome、iOS 版 Chrome、Chromebook Plus 以外のデバイスの ChromeOS は、基盤モデルを使用する API でまだサポートされていません。
- ストレージ: Chrome プロファイルを含むボリュームに 22 GB 以上の空き容量がある。
- GPU または CPU: 組み込みモデルは GPU または CPU で実行できます。
- GPU: 4 GB を超える VRAM。
- CPU: 16 GB 以上の RAM と 4 個以上の CPU コア。
- 注: 音声入力を使用する Prompt API には GPU が必要です。
- ネットワーク: 無制限のデータまたは定額制の接続。
Gemini Nano の正確なサイズは、ブラウザがモデルを更新するにつれて変化する可能性があります。現在のサイズを確認するには、chrome://on-device-internals にアクセスしてください。
構築を開始
開発のさまざまな段階で利用可能な組み込み AI API がいくつかあります。一部は Chrome 安定版で利用でき、一部はオリジン トライアルの参加者が利用でき、一部は早期プレビュー プログラムの参加者のみが利用できます。
各 API には、ローカル プロトタイピングとオリジン トライアルを使用した本番環境の両方で、モデルの利用を開始してダウンロードするための独自の手順が用意されています。
- Translator API
- Language Detector API
- Summarizer API
- Writer API と Rewriter API
- Proofreader API
- Prompt API
これらの API はすべて、Chrome 拡張機能の構築時に使用できます。
モデルのダウンロード
API は、モデルと同様に Chrome に組み込まれています。ユーザーがこれらの API を初めて操作するときに、モデルをブラウザにダウンロードする必要があります。
API が使用可能で準備が整っているかどうかを判断するには、非同期の availability() 関数を呼び出します。この関数は、次のいずれかの値を含む Promise を返します。
"unavailable": ユーザーのデバイスまたはリクエストされたセッション オプションがサポートされていません。デバイスの電力またはディスク容量が不足している可能性があります。"downloadable": セッションを作成するには追加のダウンロードが必要です。これには、エキスパート モデル、言語モデル、ファインチューニングが含まれる場合があります。create()を呼び出すには、ユーザー アクティベーションが必要になる場合があります。"downloading": ダウンロードが進行中です。セッションを使用する前に完了する必要があります。"available": セッションをすぐに作成できます。
一部の API では、空き状況を呼び出す際に追加のオプションが必要です。たとえば、Prompt API では、言語サポートを宣言する必要があります。
// Makes sure the model is available for English and Japanese input text,
// supports image input, and can generate English output.
await LanguageModel.availability({
expectedInputs: [{type: "text", languages: ["en", "ja"]}, {type: "image"}],
expectedOutputs: [{type: "text", languages: ["en"]}],
});
ユーザーのアクティブ化
デバイスが組み込み AI API をサポートしているものの、モデルがまだダウンロードされていない場合(つまり、availability() の呼び出しが "downloadable" または "downloading" を返す場合)、アプリが create() でセッションを開始するには、ユーザーがページを操作する必要があります。
UserActivation.isActive プロパティを使用して、ページの読み込みが完了してからユーザーがページを直接操作したことを確認します。これには、タップ、クリック、キープレス、mousedown、その他のスティッキー アクティベーション イベントが含まれます。
// Check for user activation.
if (navigator.userActivation.isActive) {
// Create an instance of a built-in API
}
たとえば、Summarizer API を使用して、ユーザーに [要約] ボタンをクリックして Summarizer.create() を有効にするよう求めることができます。また、ユーザーが入力(keydown イベント)を開始したときに要約ツールを作成することもできます。
localhost のトラブルシューティング
モデルが想定どおりに動作しない場合は、次の手順を行います。
- Chrome を再起動します。
chrome://on-device-internalsに向かいます。- [Broker State] タブを選択し、エラーがないことを確認します。
- DevTools を開き、コンソールに「
LanguageModel.availability();」と入力します。availableが返されます。
必要に応じて、しばらく待ってから上記の手順を繰り返します。
標準化プロセス
Google では、これらの API がすべてのブラウザで動作するように、標準化に取り組んでいます。つまり、Google はウェブ プラットフォーム コミュニティに API を提案し、さらなる議論のために W3C Web Incubator Community Group に移行しました。
各 API について、W3C、Mozilla、WebKit からのフィードバックを求めています。
意見交換とフィードバックの提供
組み込み AI をお試しになり、フィードバックがございましたら、ぜひお聞かせください。
- 組み込みの AI API をすべて確認する。
- 早期プレビュー プログラムに参加して、新しい API をいち早く確認し、メーリング リストにアクセスしましょう。
- Chrome の実装に関するフィードバックがある場合は、Chromium のバグを報告してください。
- ウェブ標準について学習する。