公開日: 2024 年 12 月 12 日、最終更新日: 2025 年 5 月 20 日
組み込みの AI API を使用すると、ウェブ アプリケーションは 独自の AI モデルをデプロイまたは管理することなく、AI を活用したタスクを実行できます。 Google では、これらの API をブラウザ間で標準化する取り組みを進めています。
要件
組み込みの AI を使用するには、モデルとハードウェアの要件があります。
モデル
Translator API と Language Detector API はエキスパート モデルを使用します。他のすべての API は、デスクトップとノートパソコンでローカルに実行するように設計された言語モデルを使用します。
Summarizer API、Writer API、Rewriter API、Proofreader API は、テキストからテキストへのモダリティのみをサポートしています。Prompt API にはマルチモーダル機能があります 。
Chrome の Gemini Nano
Chrome は Gemini Nano 言語モデルを使用します。Gemini Nano はモバイル デバイスでは使用できません。
Chrome 140 以降では、Gemini Nano は入力テキストと出力テキストで英語、スペイン語、日本語をサポートしています。
組み込みの AI API を使用する前に、 Google の生成 AI の使用禁止に関するポリシーに同意してください。
ハードウェア
Chrome でこれらの API を使用して機能を操作するデベロッパーとユーザーには、次の要件があります。他のブラウザでは、動作要件が異なる場合があります。
Language Detector API と 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 以降)。 Gemini Nano を使用する API は、Chromebook Plus 以外のデバイスの Android、iOS、ChromeOS 用の Chrome ではまだサポートされていません 。
- ストレージ: 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.
await LanguageModel.availability({ languages: ["en", "ja"] });
ユーザーのアクティブ化
デバイスが組み込みの AI API をサポートしているが、モデルがまだダウンロードされていない場合、アプリケーションが create() でセッションを開始するには、ユーザーがページを操作する必要があります。
UserActivation.isActive
プロパティを使用して、ページが読み込まれてからユーザーがページを直接操作したことを確認します。これには、タップ、クリック、キー押下、mousedown、または
その他の固定アクティベーション イベントが含まれます。
// Check for user activation.
if (navigator.userActivation.isActive) {
// Create an instance of a built-in API
}
たとえば、Summarizer API では、[要約] というボタンを操作して有効にするようにユーザーに依頼できます。また、ユーザーが入力を開始したときにサマライザーを作成することもできます(keydown イベント)。Summarizer.create()
localhost で API を使用する
すべての API は、Chrome の localhost で使用できます。
chrome://flags/#optimization-guide-on-device-modelに移動します。- [有効] を選択します。
- [再起動] をクリックするか、Chrome を再起動します。
Gemini Nano を使用する API の場合は、chrome://flags/#prompt-api-for-gemini-nano を [有効] または [多言語対応を有効にする] に設定する必要があります。モデルがダウンロードされ、意図したとおりに動作していることをデベロッパー ツールのコンソールで確認できます。コンソールで await LanguageModel.availability(); を実行します。
localhost のトラブルシューティング
chrome://flags にフラグが表示されない場合は、
最新バージョンの Chrome をダウンロードしていることを確認してください。
モデルが想定どおりに動作しない場合は、次の手順を行います。
- Chrome を再起動します。
chrome://on-device-internalsに移動します。- [モデルのステータス] タブを選択し、エラーがないことを確認します。
- デベロッパー ツールを開き、コンソールに「
LanguageModel.availability();」と入力します。availableが返されるはずです。
必要に応じて、しばらく待ってからこれらの手順を繰り返します。
標準化プロセス
Google では、すべてのブラウザで動作するように、これらの API の標準化に 取り組んでいます。つまり、ウェブ プラットフォーム コミュニティに API を提案し、 W3C Web Incubator Community Group に移行してさらに議論を進めています。
Google は、各 API について W3C、Mozilla、WebKit にフィードバックをリクエストしています。
意見交換とフィードバックの提供
組み込みの AI を試してフィードバックがございましたら、ぜひお聞かせください。
- 組み込みの AI API をすべて確認する。
- 早期プレビュー プログラムに参加 して、新しい API をいち早く確認し、メーリング リストにアクセスする。
- Chrome の実装についてフィードバックがある場合は、 Chromium のバグを報告する。
- ウェブ標準について学ぶ。