ある開発者が3億5000万パラメータの言語モデルを微調整(fine-tune)し、サーバー通信、APIキー、クラウド費用を一切必要とせず、あらゆる最新のウェブブラウザ上で動作する完全なAIアシスタントとしてデプロイしました。

このプロジェクトは、モデルの重みを静的なウェブページと共に配布することで、エージェントがツールの選択、引数のバインド、「2番目のもの」といった参照の解決、そして情報不足時の回答拒否を行えるようにしています。その間も、データは常にユーザー自身のデバイス内に留まります。

ブラウザベースのエージェントがどのように構築されたか

出発点はLiquidAIのLFM2.5ファミリー、具体的には230Mおよび350Mパラメータのバリアントでした。

製品カタログや価格表をモデルに詰め込む代わりに、トレーナーはインタラクションの「パターン」を学習させました。エージェントは特定のSKUを知っているわけではなく、以下の方法を学習しています:

  • 与えられたリクエストに対して適切なツールを選択する。
  • そのツールに対して正しい引数と識別子をバインドする。
  • 曖昧な参照(「1ダース」「2番目のもの」など)を解釈する。
  • 外部テキストを取り込み、それを使用して質問に回答する。
  • 必要な情報が不足している場合に回答を断る。
  • 会話のトピックを維持する。

ツールセットは意図的に固定されています:list_items, get_item, search_knowledge, add_to_cart, remove_from_cart, clear_cart, checkout, navigate。ツールリストを固定することで、モデルがツールIDを暗記してしまうのを防ぎ、微調整用のデータを軽量に保っています。

システムを軽量に保つための3つのエンジニアリング上の選択:

  1. 固定されたツールリスト – モデルは固定されたアクションリストのみを見るため、膨大なツール名の語彙を必要としません。
  2. ツールとしてのRAG – 検索拡張生成(RAG)を他の関数と同様に扱います。エージェントはsearch_knowledgeを呼び出してテキストを取得し、そのテキストを回答に直接挿入します。これにより、レイテンシやメモリオーバーヘッドを増大させる個別の検索パイプラインを回避しています。
  3. 文法制約付きデコーディング(Grammar-constrained decoding) – 生成プロセスにおいて、デコーダーは出力が有効なツール呼び出し構造になるよう強制するシンプルな文法に従います。この制約により、無駄なトークンを排除し、不正なコマンドを削減します。

学習には合成データの蒸留(synthetic data distillation)が使用されました。著者は、典型的なユーザーとアシスタントのやり取りを記述した18のインタラクション・レシピを定義しました。より大規模な「教師」モデルが自然言語部分を生成し、決定論的なスクリプトが正確なツール呼び出し形式を生成しました。微調整の実行には約3000万トークンが消費され、メモリ16GBの単一GPUに収まりました。

なぜオンデバイスが重要なのか

  • プライバシー – すべてのユーザープロンプトはブラウザのメモリ内に留まります。機密性の高いクエリにおいて重要な、デバイス外へのテレメトリ(遠隔測定データ)の送信もありません。
  • オフライン機能 – モデルがローカルにキャッシュされているため、インターネット接続なしでもアシスタントが動作し、フィールドワークや旅行などの可能性を広げます。
  • コスト – 静的なモデルファイルを配布することで、継続的なGPU推論サーバーの運用や、呼び出しごとのAPI料金を排除できます。
  • アクセシビリティ – 低スペックのデバイスでも、複雑なウェブインターフェースの音声駆動ナビゲーションが可能になり、支援技術を利用するユーザーへのウェブアプリケーションの普及につながります。

これらの利点により、議論の焦点は「巨大なモデルがこれに答えられるか?」から、「有用な支援を提供しつつ、モデルをどこまで小さくできるか?」へとシフトします。

潜在的な制限事項

このサイズのモデルは、百科事典的な事実を保持することはできません。ユーザーが特定の製品価格や最新のニュースの見出しを尋ねた場合、アシスタントはsearch_knowledgeを介して情報を取得するか、丁寧に回答を拒否します。この設計はプライバシーを保護しますが、同時にシステムの性能を外部知識ソースの質と鮮度に依存させることにもなります。

今後の注目点

公開デモはシンプルなGitHub PagesのURLで公開されており、ソースコードもオープンに利用可能です。

要点: 中規模のLLMに厳格なツール文法に従うよう教え、検索を単なる一つの関数として扱うことで、開発者はブラウザ内で完全に動作する有用なAIアシスタントを提供できます。これにより、会話能力を損なうことなく、プライバシー、オフライン利用、そしてクラウドコストゼロを実現できます。