RAGの仕組み|ベクトルDB・エンベディング・チャンクの技術をわかりやすく

RAGの仕組みを技術的に理解する
RAGは3つの技術要素で構成されています。難しそうに聞こえますが、身近な例で理解できます。
エンベディング — 「文章の意味を数値化する」技術
エンベディング(Embedding)とは、テキストの「意味」を数百〜数千次元の数値ベクトルに変換する技術です。例えば「犬」と「ワンちゃん」は文字列としては全く異なりますが、エンベディングでは近い数値になります。これにより「意味の近さ」での検索が可能になります。
チャンキング — 「文書を適切なサイズに分割する」技術
長い文書(100ページのマニュアルなど)をそのままAIに渡しても、うまく処理できません。チャンキングは文書を200〜1000文字程度の「チャンク(塊)」に分割する技術です。分割の方法(段落ごと、見出しごと、文数ごと等)がRAGの精度に大きく影響します。
ベクトルデータベース — 「意味で検索できるDB」
通常のデータベースはキーワード一致で検索しますが、ベクトルデータベースは「意味の近さ」で検索します。代表的なサービスとして、Pinecone、Qdrant、Chroma、Weaviateなどがあります。
RAGの処理フロー(図解)
| ステップ | 処理内容 | 例 |
|---|---|---|
| ①質問入力 | ユーザーが質問 | 「出張旅費の上限は?」 |
| ②エンベディング | 質問をベクトル化 | [0.12, -0.34, 0.56, ...] |
| ③ベクトル検索 | 類似チャンクを検索 | 社内規程の出張旅費の項目がヒット |
| ④コンテキスト付与 | LLMに検索結果を渡す | 「以下の情報をもとに回答してください:...」 |
| ⑤回答生成 | LLMが回答を生成 | 「出張旅費の上限は、国内1日あたり...」 |
💡 精度を高めるコツ
RAGの精度は「データの質」で決まります。ドキュメントが整理されていない、情報が古い、表記がバラバラだと精度が下がります。RAG導入の前に、まず社内ドキュメントの整理から始めましょう。