RAG(Retrieval-Augmented Generation)とは、外部の知識ソースから関連情報を検索し、その結果を LLM の入力に付加することで、回答の正確性と最新性を向上させる手法である。
LLM は学習時点までの知識しか持たない。そして、持っている知識でも自信満々に間違えることがある(ハルシネーション)。RAG はこの二つの弱点に対する実務的な対処法として定着した。
仕組みは直感的だ。ユーザーの質問を受け取ったら、まず社内ドキュメントやナレッジベースから関連する文書を検索する。次に、検索結果を質問と一緒に LLM へ渡す。
LLM は自分の知識だけでなく、渡された文書を根拠にして回答を生成する。出典を明示することもできるため、回答の検証が容易になる。RAG を構成する要素を分解すると、文書の前処理(チャンク分割)、ベクトル埋め込み、類似度検索(セマンティック検索)、そして LLM への入力構成になる。
各ステップに選択肢があり、チャンクの切り方一つで回答品質が大きく変わる。ファインチューニングとの使い分けは頻繁に議論されるが、役割が違う。RAG は「外部の知識を参照させる」手法で、ファインチューニングは「モデルの振る舞いやトーンを調整する」手法だ。
社内マニュアルの内容を正確に答えさせたいなら RAG、回答の形式や文体を統一したいならファインチューニング、が出発点として妥当だろう。両者を併用するプロジェクトも多い。


LLM(Large Language Model)とは、大量のテキストデータで事前学習された、数十億〜数兆のパラメータを持つニューラルネットワークモデルの総称であり、自然言語の理解・生成を高い精度で行う。

LoRA(Low-Rank Adaptation)とは、大規模言語モデルの重み行列に低ランクの差分行列を挿入し、その差分だけを学習させることでモデル全体の 0.1〜1% 程度のパラメータ追加でファインチューニングを実現する手法である。

ローカルLLMとは、クラウドAPIを介さず、自社のサーバーやPC上で大規模言語モデルを直接実行する運用形態のことである。


PEFT(パラメータ効率型ファインチューニング)とは?AI モデルカスタマイズのコストを 90% 削減する技術
QLoRA(Quantized LoRA)とは、LoRA に 4bit 量子化を組み合わせることで、コンシューマ向け GPU でも大規模言語モデルのファインチューニングを可能にした手法である。