メインコンテンツへスキップ
AI用語集に戻る
AI用語

検索拡張生成

RAG

解説

AIが回答を生成する際、外部の信頼できる情報源(社内の過去図面やマニュアルなど)を自動で検索し、その内容を基に回答を作成する技術。AIが事実に基づかない回答をする「ハルシネーション」を抑制し、専門性の高い業務での活用を可能にします。

RAG(検索拡張生成)の図解

さらに詳しく解説

RAG(検索拡張生成)とは

RAG(Retrieval-Augmented Generation)は、外部知識ベースから関連情報を検索し、LLMの生成に活用する技術です。最新情報や専門知識を回答に反映できます。

基本アーキテクチャ

RAGの処理フロー:
1. ユーザーの質問
   ↓
2. クエリのベクトル化
   ↓
3. ベクトルDBから類似文書検索
   ↓
4. 関連文書を取得
   ↓
5. 質問 + 文書をLLMに入力
   ↓
6. 文書を参照した回答生成

RAGのメリット

メリット説明
最新情報学習カットオフ後の情報も利用可能
ハルシネーション低減事実に基づいた回答
出典明示参照元を示せる
ドメイン特化専門知識の活用
コスト削減ファインチューニング不要

構成要素

コンポーネント役割
Embeddingテキストをベクトル化OpenAI Ada、Cohere
Vector DBベクトルを保存・検索Pinecone、Weaviate
Retriever類似文書を取得コサイン類似度検索
LLM回答を生成GPT-4、Claude

ベクトルデータベース

DB特徴
Pineconeフルマネージド、高速
Weaviateオープンソース、多機能
Chroma軽量、ローカル実行
QdrantRust製、高性能
pgvectorPostgreSQL拡張

実装例(LangChain)

python
from langchain.vectorstores import Chroma
from langchain.embeddings import OpenAIEmbeddings
from langchain.chains import RetrievalQA
from langchain.llms import OpenAI

# ベクトルストア構築
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(
    documents, embeddings
)

# RAGチェーン作成
qa = RetrievalQA.from_chain_type(
    llm=OpenAI(),
    retriever=vectorstore.as_retriever()
)

# 質問応答
result = qa.run("質問内容")

RAGの改善テクニック

高度なRAG手法:
├── チャンク[最適化](/glossary/optimization)
│   └── 適切なサイズで文書分割
├── ハイブリッド検索
│   └── ベクトル+キーワード検索
├── リランキング
│   └── 検索結果の再順位付け
├── クエリ変換
│   └── 質問を検索に適した形に
└── 自己評価
    └── 回答の妥当性チェック

課題

課題対策
検索精度ハイブリッド検索、リランキング
コンテキスト要約、重要部分抽出
遅延キャッシング、並列処理
コスト効率的なチャンク設計

この用語が登場した記事(6件)

AI用語集に戻る

この用語をシェア

AIの導入についてご相談ください

「うちの会社でも使えるの?」「何から始めればいい?」
そんな疑問に、30分のオンライン相談でお答えします。

無料相談を予約する