大規模言語モデルのメリットと制限事項

公開日: 2024 年 1 月 13 日

これは、LLM と chatbot に関する 3 部構成のシリーズの第 1 部です。WebLLM を使用したチャットボットの構築に関するパート 2 と、Prompt API の使用に関するパート 3 はすでに公開されています。

大規模言語モデル(LLM)は、ソフトウェア開発の重要な構成要素になりつつあります。LLM は、自然言語テキストの生成と処理に適しており、データ抽出、要約、ユーザーデータとのやり取りの促進などのユースケースを実現できます。

このシリーズでは、オンデバイス LLM のメリットとデメリットについて説明します。また、ローカルかつオフライン対応の 2 つのアプローチ(ウェブベースの LLM ランタイム WebLLM と Chrome の試験運用版 Prompt API)を使用して、既存のアプリに chatbot 機能を追加する方法についても説明します。

考えられるユースケース

chatbot が追加される前のアプリ。
Google の To-Do リスト アプリ。

従来の To-Do リスト アプリケーション上に chatbot を構築します。各ステップのソースコードは GitHub で入手できます。ユーザーは新しい ToDo を追加したり、完了済みとしてマークしたり、削除したりできます。

ユーザーが ToDo リストのデータの詳細を確認したり、追加機能を実行したりできる機能を追加することもできます。chatbot 機能を使用すると、ユーザーは次のことができます。

  • 未解決のタスクの数を尋ねます。
  • 重複する ToDo や非常に類似した ToDo を特定します。
  • やるべきことをグループに分類する。
  • 完了したタスクに基づいて、新しいタスクのおすすめを受け取る。
  • タスクを別の言語に翻訳する。
  • タスクリストを XML 形式でエクスポートします。

これらは、LLM が処理できるタスクのほんの一例にすぎません。

LLM とは何か

LLM は、自然言語テキストを処理して生成する人工ニューラル ネットワークです。現在の LLM のほとんどは、Google で開発された Transformer アーキテクチャに基づいています。たとえば、Google の Gemini モデルと Gemma モデル、OpenAI の GPT モデルシリーズ、Meta AI の LLaMa や Mistral AI の Mistral などのオープンソース モデルがあります。

LLM は膨大な量のデータでトレーニングされているため、幅広い機能を備えています。さまざまな言語を理解し、雑学的な知識を持ち、言語間の翻訳やプログラミング コードの生成を行うことができます。これらの機能の範囲は、LLM のサイズについてで説明されているように、モデルのサイズによって大きく異なる場合があります。

LLM は、自然言語がソフトウェア エンジニアリングのコア機能となるため、ソフトウェア アーキテクチャのパラダイムシフトを促します。明確に定義されたインターフェースを使用して API を呼び出す代わりに、いわゆるプロンプトで自然言語でインテントを表現すれば十分です。

LLM の制限事項

LLM には次のような制限もあります。

  • 非決定的動作: LLM の出力は固定ルールではなく確率モデルに依存するため、同じプロンプトに対して異なる回答が生成される場合や、矛盾する回答が生成される場合もあります。
  • ハルシネーション: これらのモデルは、事実の正確さよりも学習したパターンに依存するため、不正確な情報や意味のない情報を生成することがあります。
  • プロンプト インジェクション: LLM はプロンプト インジェクション攻撃を受けやすくなります。この攻撃では、ユーザーが入力プロンプトを作成してモデルを操作し、意図した機能から逸脱させたり、望ましくない結果を生み出したりします。

したがって、ユーザーは、結果に基づいてアクションを実行する前に、LLM によって生成された結果を確認する必要があります。

デバイス上の LLM を扱う場合は、そのサイズを考慮する必要があります。ファイルサイズは数ギガバイトになり、初回使用前にユーザーのデバイスにダウンロードする必要があります。特にクラウド バックアップ モデルと比較すると、モデルが小さいほどレスポンスの品質が低下する傾向があります。

ローカル ソリューションを選択する

LLM をウェブ アプリケーションに統合する方法として、クラウド プロバイダを使用することを最初に考えるかもしれません。高品質の LLM を提供するプロバイダは多数ありますが、その中には特定のプロバイダ専用の LLM もあります。クラウドベースの LLM は、通常は処理されたトークンごとに計算される合理的な費用で高速な推論速度を提供します。

一方、ローカル ソリューションには次のようなメリットがあります。ローカルでホストされる LLM は、ユーザーのデバイスで直接動作するため、より信頼性の高いレスポンス時間を実現し、ユーザーがオフラインの場合でもアクセスできます。また、デベロッパーは定期購入料金などの継続的な費用を支払う必要がありません。特に、ユーザーの安全性を大幅に強化できます。すべてのアクティビティをデバイス上に保持することで、個人を特定できる情報(PII)を外部プロバイダや地域に送信する必要がなくなります。

デモ

自分で作成する方法を確認する前に、chatbot 機能を備えた完成したデモを確認できます。

次に、WebLLM を使用して ToDo リスト アプリケーションに chatbot を追加します。