ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
本稿は RAG(Retrieval-Augmented Generation / 検索拡張生成) に関する記事です。
| この記事の要点 |
|---|
|
RAG とは?
RAG (Retrieval-Augmented Generation / 検索拡張生成) は、LLM が回答する際に外部の知識ベースから関連情報を検索し、その内容をプロンプトに含めて回答させる手法です。
LLM 単体は学習時点の知識しか持たず、社内文書や最新情報を知りません。RAG は「LLM の言語能力」と「検索エンジンの正確性」を組み合わせ、社内 FAQ ボット・ナレッジ検索・カスタマーサポート等で実用性を一気に高めました。
なぜ RAG が必要か
| LLM 単体の弱点 | RAG での対処 |
|---|---|
| 学習データのカットオフより新しい情報を知らない | 最新文書を検索して参照 |
| 社内固有情報を知らない | 社内ドキュメントを RAG の対象に |
| ハルシネーション(もっともらしい嘘) | 出典付きの回答で検証可能に |
| 巨大コンテキスト全部投入はコスト高 | 関連箇所だけ抽出して投入 |
| 情報更新にはファインチューニングが必要 | DB を差し替えるだけで反映 |
RAG の基本フロー
| フェーズ | ステップ | 担当技術 |
|---|---|---|
| 事前準備 (Indexing) | 1. 文書を集める | PDF / Web クローラ / DB エクスポート |
| 2. テキスト抽出・前処理 | PDF パーサ・OCR・HTML 抽出 | |
| 3. チャンク分割 | Text Splitter(再帰的 / 文・段落単位) | |
| 4. Embedding 生成・DB 格納 | Embedding モデル + ベクトルDB | |
| クエリ時 (Retrieval & Generation) | 5. 質問を受信 | ユーザ入力 |
| 6. 質問を Embedding | 同じ Embedding モデル | |
| 7. ベクトルDB で類似検索 | 近傍 k 件取得 | |
| 8. (任意)再ランク | Cohere Rerank / BGE Reranker | |
| 9. LLM プロンプトに連結 → 回答生成 | LLM (GPT / Claude / Gemini) |
主要ライブラリ・サービス
| 分類 | 代表 |
|---|---|
| フレームワーク | LangChain、LlamaIndex、Haystack |
| Embedding | OpenAI text-embedding-3、Cohere Embed、BGE、E5 |
| ベクトルDB | Chroma、Faiss、pgvector、Pinecone、Qdrant、Weaviate |
| 再ランク | Cohere Rerank、BGE Reranker、Jina Reranker |
| ドキュメントパース | LlamaParse、Unstructured、PyMuPDF、pdfplumber |
| LLM プロバイダ | OpenAI、Anthropic、Google、Mistral、ローカル LLM |
| マネージド SaaS | Azure AI Search、Vertex AI Search、AWS Kendra、Pinecone |
最小サンプル(LangChain)
|
from langchain_community.document_loaders import PyPDFLoader |
精度を上げる工夫
| 工夫 | 効果 |
|---|---|
| チャンク分割の調整 | サイズ・重複・分割単位(文・段落・見出し)を調整 |
| メタデータフィルタ | 部門・公開日・言語等で事前絞り込み |
| ハイブリッド検索 | 意味検索(ベクトル)+ キーワード検索(BM25)を組合せ |
| 再ランク (Reranker) | 上位 k 件を再評価。Cohere Rerank / BGE Reranker |
| クエリ書き換え | あいまいな質問を LLM で具体化してから検索 |
| HyDE | 仮の回答を LLM に生成させ、それで検索 |
| マルチクエリ | 質問を複数言い換えて広く検索 |
| サブクエリ分解 | 複合質問を細かく分けて個別に検索 |
| 埋め込みモデル切替 | ドメイン特化や多言語モデルへ |
| 引用付き回答 | 「参考: [n]」をプロンプトで強制 |
発展形: GraphRAG / Agentic RAG
| 補足: 標準 RAG の限界を超える |
|---|
|
RAG vs ファインチューニング
| 観点 | RAG | ファインチューニング |
|---|---|---|
| 知識の更新 | DB を差し替えるだけ | 再学習が必要 |
| 導入コスト | 低い | 高い (GPU・データ準備) |
| 出典の提示 | 容易(検索元 URL を返す) | 困難 |
| レイテンシ | 検索分のオーバーヘッド | 追加遅延なし |
| 形式・口調の制御 | プロンプトで指示 | 得意(学習で固定) |
| 専門ドメインの深い知識 | 検索ヒットに依存 | 強い |
| 用途 | FAQ、ナレッジ検索、最新情報 | 特定スタイル、構造化出力 |
多くの業務シナリオでは「RAG で十分」。両方を組合せる選択肢もある。
運用上のヒント
| Tips |
|---|
|
注意点
| よくある落とし穴 |
|---|
|
関連
- 親カテゴリ: AIの基礎概念
- 関連: LLM / Embedding / Prompt Engineering / AIエージェント
- 実装: LangChain / LlamaIndex
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 【Javascript】base urlを取得する方法
- 4 YouTube Data API (v3) のエラー一覧|403系エラーの確認ポイント
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravelのエラー一覧|原因と対処の入口ページ
- 7 3D グラフィックスとは?Unity・OpenGL・DirectX の基礎
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- AIの基礎概念:LLM/Transformer/Attention/RAG/エージェント など必須キーワード NEW 2026-05-13 12:19:18
- Diffusion Model とは?画像生成 AI の仕組み・Stable Diffusion NEW 2026-05-13 12:18:15
- マルチモーダル AI とは?GPT-4o・Gemini・Claude の使い方 NEW 2026-05-13 12:18:14
- トークン / コンテキストウィンドウとは?料金・上限・最適化 NEW 2026-05-13 12:18:14
- ファインチューニングとは?LoRA・QLoRA・SFT・RLHF/DPO NEW 2026-05-13 12:18:13
- AIエージェントとは?Tool Use・LangGraph・MCP・実装例 NEW 2026-05-13 12:18:13
- RAG (検索拡張生成) とは?仕組み・実装・LangChain 例 NEW 2026-05-13 12:18:12
- Prompt Engineering とは?技法・Chain-of-Thought・実践例 NEW 2026-05-13 12:18:12
- Attention (注意機構) とは?Q/K/V・Multi-Head の仕組み NEW 2026-05-13 12:18:11
- Embedding (埋め込み) とは?ベクトル化・類似検索・RAG NEW 2026-05-13 12:18:11
- Transformer とは?仕組み・Self-Attention・LLM の基礎 NEW 2026-05-13 12:18:10
- LLM (大規模言語モデル) とは?仕組み・代表モデル・使い方 NEW 2026-05-13 12:18:10
- ディープラーニングとは?CNN・RNN・Transformer・LLM の入門 2026-05-13 10:24:07
- 機械学習とは?教師あり・教師なし・強化学習・代表アルゴリズム 2026-05-13 10:24:07
- AIに必要な数学:線形代数・微積分・確率統計・情報理論・最適化 2026-05-13 10:20:39
コメントを削除してもよろしいでしょうか?