🌠

Chrome内臓ローカルLLMのGemini NanoをノートPCで使ってみた

2024/07/13に公開

はじめに

Google I/O 2024で発表されたChromeでローカル上で動かせるLLM Gemini Nanoをノートパソコンに入れて少し遊んでみたので共有します。

マシンのスペックは2020年モデルのMacBook ProでCPUは第8世代のCore i5ですが、意外と快適に動きました。

こちらのイベントで存在を知りました!

https://gdgnagoya.connpass.com/event/318320/

構築手順

  1. Chrome Release ChannelsにてChrome Canaryをインストールします。
    2024年8月22日のアップデートで最新版Chromeに標準で搭載されたのでこの作業はスキップしてください
    Chromeには4つのタイプがあります。

    1. 通常の Chrome
    2. Chrome Beta これは開発途中の新機能などが搭載されている。
    3. Chrome Dev これはbetaよりさらにもう一歩手前のバージョンです。
    4. Chrome Canary これはdevバージョンのさらに前のもので開発者用とも言われます。

https://www.chromium.org/getting-involved/dev-channel/

  1. 「chrome://flags/」から以下の項目を設定して、Chromeを再起動します。
  • Enables optimization guide on device: Enabled BypassPerfRequirement
  • Prompt API for Gemini Nano: Enabled

  1. 「chrome://components/」から「Optimization Guide On Device Model」をアップデート確認をクリックします。

「Optimization Guide On Device Model」が表示されない場合は、F12をクリックし開発者ツールを表示してコンソール上で以下のコマンドを実行すると表示されます。

await window.ai.canCreateTextSession();
await window.ai.createTextSession();

テキストを生成

コンソールでコードを実行してみましょう!

プロンプトのメッセージを変えれば応答が変わります!!

const canCreate = await window.ai.canCreateTextSession();

if (canCreate === "no") {
	console.log("このデバイスでは利用できません");
} else {
  const session = await window.ai.createTextSession();

  // 文章全体の生成が終わってから結果を返すパターン:
  const result = await session.prompt("活躍するエンジニアの特徴を教えて");
  console.log(result);

  // 生成途中の文章をストリーミングで受け取るパターン:
  const stream = session.promptStreaming("おすすめのプログラミング言語は何ですか?");
  for await (const chunk of stream) {
    console.log(chunk);
  }
}

await window.ai.canCreateTextSession() の戻り値は、次の3つです

  1. readily: デバイス上でモデルが利用可能
  2. after-download: モデルのダウンロード後に利用可能
  3. no: そのデバイスではこのモデルは利用できない

終わりに

難しい設定が要らなかったり、高スペックのパソコンじゃなくてもローカルでLLMが動かせるのでぜひ皆さんも触ってみてください。

また、Chromeに組み込まれることで収益が見込めるサービスじゃなくても気軽にLLMを活用したサービスが作れるようになることはかなり大きいなと感じました!この記事が少しでも役に立てたら幸いです。

Discussion