RAG(Retrieval Augmented Generation)について。
RAGは、LLM(Large Language Model,大規模言語モデル)の回答の質を高めるために用いられるフレームワークである。
LLMの問題点
LLMは、ユーザからの質問(プロンプト)に対して回答を提示するが、時に合理的に聞こえるものの間違った回答をでっちあげることがある。また、ある特定の事柄について、関連するデータを学習していない場合には、そもそも知らない、あるいは情報がアップデートされていない可能性がある。
RAGは、関連性の高いデータをLLMに提供することで、LLMをファクトと接続させ、より回答の質を高める効果をもたらすと期待されている。
RAGの仕組み
RAGが導入されたLLMにおいて、まずユーザからのインプット(ユーザクエリ)は用意されたデータの集合と引き合わされる。そして、ユーザクエリに関連した情報が検索され、関連度の高い情報はユーザクエリとともにLLMに渡される。LLMはこの関連度の高い情報をもとに、回答を作成することになる。
鍵となるのは、この「用意されたデータ」をいかに構築するかである。一つの方法は、APIからデータ(文書等のテキストデータなど)を取得するというものである。取得されたテキストデータは、埋め込みモデル(embedding model)という技術によって数値化(ベクトル化)された状態で保存されることもある。
そして、ユーザクエリも同様にベクトル化され、上記のベクトル化されたデータベースと照合された後、最も類似度の高いデータが返ってくる。
(出典):