組み込みの AI を使ってみる

Alexandra Klepper
Alexandra Klepper

公開日: 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 のモデル

Chrome では、エキスパート言語モデルと基盤言語モデルが使用されます。これらのモデルはモバイル デバイスでは使用できません。

Chrome 149 以降では、モデルは入力テキストと出力テキストで英語、スペイン語、日本語、ドイツ語、フランス語をサポートしています。

ハードウェア

Chrome でこれらの API を使用して機能を操作するデベロッパーとユーザーには、次の要件があります。他のブラウザでは、動作要件が異なる場合があります。

言語検出 API翻訳 API は、パソコン版 Chrome で動作します。これらの API はモバイル デバイスでは動作しません。

Prompt APISummarizer APIWriter APIRewriter APIProofreader API は、次の条件を満たす場合に Chrome で動作します。

  • オペレーティング システム: Chromebook Plus デバイスで Windows 10 または 11、macOS 13 以降(Ventura 以降)、Linux、ChromeOS(プラットフォーム 16389.0.0 以降)。Chromebook Plus 以外のデバイスの Android 版 Chrome、iOS 版 Chrome、ChromeOS 版 Chrome は、基盤モデルを使用する 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 には、ローカル プロトタイピングとオリジン トライアルを使用した本番環境の両方で、モデルの利用を開始してダウンロードするための独自の手順が用意されています。

これらの 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 のトラブルシューティング

モデルが想定どおりに機能しない場合は、次の手順を行います。

  1. Chrome を再起動します。
  2. chrome://on-device-internalsに向かいます。
  3. [Broker State] タブを選択し、エラーがないことを確認します。
  4. DevTools を開き、コンソールに LanguageModel.availability(); と入力します。これにより、available が返されます。

必要に応じて、しばらく待ってから上記の手順を繰り返します。

標準プロセス

Google では、これらの API がすべてのブラウザで動作するように、標準化に取り組んでいます。つまり、Google はウェブ プラットフォーム コミュニティに API を提案し、さらなる議論のために W3C Web Incubator Community Group に移行しました。

各 API について、W3C、Mozilla、WebKit にフィードバックを求めています。

意見交換とフィードバックの提供

組み込み AI をお試しになり、フィードバックがございましたら、ぜひお聞かせください。