検索拡張世代:LLMを便利にする秘密を解き明かす

出版社
ウラップ・チーム
オン
2024年2月7日 3:41 PM

大規模言語モデル(LLM)は、あなたが思っているほど有用ではない。

誤解しないでほしい:LLMは強力です。

これらのディープラーニング・アルゴリズムは、大規模なデータセットを使ってコンテンツを認識、要約、翻訳、予測、生成することができる。 

これは、自然言語の入力と結果を処理できるロバストなニューラル・アーキテクチャであり、多くの自然言語処理アプリケーションの基盤となっている。

チャットボット、コードジェネレーター、AIライター、AIデザイナーなどがLLMを使って構築されている。 

しかし、その限界を理解してこそ、その有用性が発揮されるのだ。

さあ、飛び込もう。

生成AIにおける大規模言語モデル(LLM)の重要な役割

大規模言語モデルの限界を明らかにする前に、生成AIにおけるその役割を理解する必要がある。

GPT-4のような巨大ロボットを含むLLMは、人間の言語を理解し、処理し、生成することができる、非常に大規模で複雑なテクノロジーである。簡単に言えば、LLMはAIの言語能力強化装置なのだ。

ご想像の通り、この幅広い言語理解は、データ入力と斬新な出力で繁栄するジェネレーティブAIにとって、驚くべき意味を持つ。膨大な量のテキストを素早く吸収し、新しいユニークなコンテンツを生み出す、非常に明晰な共同作業者を想像してみてほしい。

LLMの入力は、生成AIが現実的でもっともらしい出力を作成することを可能にし、様々な実世界のアプリケーションにおけるその価値を支えている。

つまり、LLMの質が生成AIのアウトプットの質を左右するのだ。

大規模言語モデルの限界

LLMは強力だが、その上に構築される製品に影響を与えかねない限界がある。

大規模言語モデルはステートレス

LLMは、以前の入力や出力からの情報を保存したり記憶したりしない。

業界では、このように情報を記憶したり保存したりできないことをステートレスと呼んでいる。つまり、現在の入力だけを使用して出力を生成するため、チャットボットのようなアプリケーションでコンテンツや継続性を必要とするタスクでは問題になる可能性がある。

例を挙げよう。

LLMに自分の名前を告げたとしよう。LLMはあなたに名前で挨拶することができるし、おそらくそうするだろう。しかし、LLMにあなたの名前を尋ねても、正確な答えは返ってこないだろう。

LLMはあなたの入力を記憶していないので、あなたがチャットのたびにその情報を含めない限り、その情報を出力に含めることはできない。

この意味は非常に大きい。

OpenAIのChatGPTを使ってコンテンツを作成したことがある人なら、最良の結果を得るには長い初期入力が必要なことを知っているだろう。

どのチャットでも、あなたが誰なのか、あなたの声のトーン、あなたの専門知識、あなたが好きなトピック、あなたが好きな文体などを思い出す必要がある。

一度入力すればChatGPTが記憶してくれるわけではありません。正しい結果を得るためには、すべてのチャットで入力する必要があります。

大規模言語モデルはデータセットに制限される

LLMは、トレーニングデータセットから得た知識に基づいてのみ動作することができる。

LLMに新しい出来事や独自のデータについて質問したり、何か新しいスタイルの傾向を生み出すように頼んだとする。その場合、モデルは不正確な情報を提供する可能性が高い。

これは業界ではモデルの幻覚として知られている。正しい情報がトレーニングデータセットに含まれていないため、モデルが誤った情報を与えてしまうのだ。

その意味を想像してみてほしい!

記事やグラフィックを作成したり、チャットボットに情報を求めたりするだけでは、不正確な情報を使用することになりかねません。

そのため、LLMから得た情報、特にそのトレーニングデータセットを知らない場合は、事実確認をする必要がある。

検索補強型生成でLLMを便利にする

これらの制限を克服する主な方法は、LLMをより正確にデータに反応させることである。

汎用のモデルには、非常に特殊な用途に必要な文脈を理解する手助けが必要だ。

ChatGPTに法的指導を求めたり、特定のネットワークのサイバーセキュリティを向上させる手助けを求めたりすることは、あなたにとって良い結果をもたらすものではありません。 

正確な答えを出すために必要なデータセットで訓練されていないのだ。

検索拡張生成は、LLMの応答精度を高める最も効果的な方法である。

検索拡張世代とは何か?

検索補強型生成(RAG)は、LLMが生成中に外部の情報源にアクセスできるようにする技術である。

これは、LLMが、その領域からの事実、証拠、事例をアウトプットに組み込むのに役立ち、その信頼性と正確性を高める。

例えば、PDF形式の本に関する質問に答えることができるLLMを作りたいとしましょう。

RAGを使えば、その本のテキストで構成されたデータベースを照会し、その情報を使って正確な回答を生成することができる。

下の画像は、このプロセスを示している。

ソース検索拡張世代(RAG):理論からラングチェーン実装まで

基本的なRAGシステム・アーキテクチャ

LLMでRAGシステムを有効にするには、3つの核となるコンポーネントが必要です:

  • LLMエンベッディング
  • ベクター・データベース
  • 検索

それぞれのコンポーネントを個別に見てみよう。

LLMエンベッディング

LLM埋め込みは、単語やトークンを高次元空間で意味的に捉えたベクトル表現である。

LLMは学習中に埋め込みを学習し、同義語や類義語といった単語間の関係を把握する。LLMは、同義語や類義語などの単語間の関係を捉えるために、学習中に埋め込みを学習する。 

ソース機械学習におけるエンベッディングの力

エンベッディングは、LLMが使用するトランスフォーマーアーキテクチャーの重要な構成要素であり、モデルやタスクによってサイズや寸法が異なります。

ベクター・データベース

LLMアプリケーションは一般的なデータベースを使わない。埋め込みからなるベクトル・データベースを使うのだ。

ベクターデータベースは、埋め込みを活用して高次元のデータセットを作成し、(自然言語処理アプリケーションで)単語の意味や関係に基づいてクエリを実行できる。  

出典ベクターデータベース:概念と例

一方、従来のデータベースは、スカラーデータを操作する。検索は、論理的な命令によって検索されるクエリに対する正確な答えに基づいて行われる。意味的なニュアンスや単語間の関係性を理解することはできません。

検索

RAGシステムの最後のステップは検索である。

検索ステップでは、入力されたプロンプトに基づいて、ベクターデータベースから最も関連性の高い情報を検索します。 

これは、ベクトル・データベース上で類似性検索を行い、検索されたテキストを関連性でランク付けすることで実現する。 

検索されたテキストは、関連するコンテキストを提供するためにプロンプトと組み合わされ、LLMに渡される。

LLMの使いやすさを向上させる

RAGは、進化するデータセットを扱う際にLLMの能力を強化する実用的なソリューションを提供する。

リアルタイムの外部知識を回答に統合することで、LLMは文脈に即した正確で適切なものになる。

RAGを統合することで、ユーザーエクスペリエンスを向上させ、クライアントを満足させ、ジェネレーティブAIアプリケーションをリピートさせることができます。