プログラミング、Python、API、Gitなどの基礎知識を、実際のAI開発へつなげるシリーズです。実践編第2弾では、自前のPDFや社内ドキュメントをAIと連携させる「RAG(検索拡張生成)」の学習順と技術スタックを体系的に整理します。
PythonやAPIを使って、AIを呼び出す小さなアプリが作れるようになった。
その次に出てきやすいのが、
💡 「自分のPDFや社内資料をAIに読ませて、正確に答えさせたい」
という要望です。そこで登場するのが、RAG(Retrieval-Augmented Generation/検索拡張生成)です。
ところが、RAGについて調べ始めると、
Python、API、Embedding、Chunking、Vector DB、SQL、LangChain、LlamaIndex、検索、Reranking、評価……
と、一気に専門用語が増えます。
「これを全部勉強しないと、RAGは作れないのだろうか」と感じるかもしれません。
結論から言えば、最初から全部を理解する必要はありません。
RAGを学ぶときに重要なのは、特定のフレームワークを覚えることではなく、
という一連の流れを理解することです。
現在のRAG設計でも、Chunking、Embedding、検索インデックス、Retrieval、生成、評価が主要な工程として整理されています。この記事では、RAGを作るために何をどこまで学べばよいのかを、初心者向けに順番から整理します。
先に結論:RAGを学ぶなら、まず6つを理解する
最初に学習要素の全体像を整理します。
| 学ぶもの | 最初の重要度 | 何を理解すればよい? |
|---|---|---|
| Python | ★★★ | ファイルを読み、APIを呼び、データを加工できる |
| API / JSON | ★★★ | AIやEmbeddingモデルへデータを渡せる |
| Chunking | ★★★ | 長い文書を検索しやすい単位へ分割できる |
| Embedding | ★★★ | 文章を意味的に比較できる表現へ変換する考え方 |
| 検索 / Vector DB | ★★★ | 質問に近い文書を取り出せる |
| 評価 | ★★★ | 「検索できた」「回答できた」を品質で検証できる |
| SQL | ★★☆ | メタデータや履歴などを扱う段階で役立つ |
| LangChain / LlamaIndex | ★★☆ | 基本構造を理解した後に使う |
| GPU / CUDA | ★☆☆ | クラウド型RAGなら基本不要(ローカル実行時のみ重要) |
| 機械学習・高度な数学 | ★☆☆ | RAGを始めるだけなら必須ではない |
ポイントは、RAGを学ぶためにAIモデルそのものを作れる必要はないということです。
そもそもRAGとは何をしているのか
RAGという名前は難しく見えますが、基本構造はかなりシンプルです。
例えば、会社の就業規則をAIへ質問できるシステムを考えてみます。
↓
2. 質問に関係する文書を検索(Retrieval)
↓
3. 「在宅勤務規程」の該当段落を取得
↓
4. 質問 + 取得した文書(コンテキスト)をLLMへ渡す
↓
5. LLMが文書を根拠に回答を生成(Generation)
通常のLLMは、質問された瞬間に会社内部の最新資料を知っているわけではありません。そこで、回答する前に必要な情報を探し、その情報をコンテキストとしてLLMへ渡す。これがRAGの基本です。
RAGとファインチューニングは違う
ここは初心者が混同しやすいところです。
RAGは、基本的にはモデルの中身を書き換える技術ではありません。必要な情報を外部から探し、回答時にコンテキストとして渡します。一方、ファインチューニングは既存モデルへ追加学習を行い、モデル自体の振る舞いや能力を調整します。
外部の情報を検索して渡す
向いているもの:
- 社内マニュアル・就業規則
- 商品情報・FAQ
- 法令・規程・技術資料
- 更新頻度の高い最新情報
モデルそのものを追加学習する
向いているもの:
- 特定の出力形式(JSON構造など)の固定
- 分類・データ抽出タスクの精度向上
- 特定の文体やトーン&マナーの統一
- 定型的な応答パターンや特定タスクでの一貫性向上
「最新の社内資料を答えさせたい」という目的なら、最初に検討するのは間違いなくRAGです。
1.Pythonは「RAGの部品をつなぐため」に使う
RAGを作るなら、Pythonはかなり重要です。ただし、最初からPythonを高度に使いこなす必要はありません。
最初に必要なのは、
- テキストファイルを読み込む
- PDFから文章を取得する
- リストや辞書(dict)を扱う
- JSONをパース・加工する
- APIを呼び出す
- 検索結果をループ処理する
- エラー内容(スタックトレース)を読んで修正する
程度です。AIアプリ開発ロードマップで扱ってきたPythonの基礎を、実際のデータ処理へつなげていく段階だと考えると分かりやすいでしょう。
重要なのは、「Pythonを学び終わってからRAGを作る」のではなく、「RAGを作りながら必要なPythonを覚える」ことです。
2.APIとJSONは、AIと各部品をつなぐ共通言語
RAGでは、一つのAIだけを呼び出して終わるとは限りません。
というように、複数の機能をつなぎます。クラウドサービスを使う場合、その接続にAPIが使われます。
そのため、APIキーの管理、リクエスト、レスポンス、JSON、HTTPエラーコードといった基礎を理解していると、RAG全体のデータの流れがクリアに見えるようになります。
3.Chunking:長い文書を「探せる大きさ」に分ける
RAGを学ぶとき、EmbeddingやVector DBに目が行きがちです。しかし、実際にはその前に重要な工程があります。それがChunking(チャンク分割)です。
100ページあるPDFを丸ごと一つのデータとして検索するのではなく、適切な単位へ分割します。
↓ 【Chunking】
・チャンクA: 第1章 総則(目的・適用範囲)
・チャンクB: 第2章 勤務時間・休憩
・チャンクC: 第3章 在宅勤務規程
・チャンクD: 第4章 有給休暇の付与日数
なぜ重要なのでしょうか。チャンクが大きすぎれば、検索結果に余計なノイズが混ざってLLMの回答精度が落ちます。逆に小さすぎれば、回答に必要な前後の文脈が失われてしまいます。
つまりRAGでは、「何を検索するか」以前に、「何を検索単位として保存するか」が最終品質を左右します。
4.Embedding:文章を「意味で探せる形」にする
次に登場するのがEmbedding(埋め込み)です。
Embeddingとは、文章などのテキスト情報を多次元の数学的なベクトル表現(数値の配列)へ変換する仕組みです。これによって、まったく同じ単語を含んでいなくても、意味が近い文章同士を数学的に比較できるようになります。
【例:キーワード一致とEmbedding検索の違い】
質問:「自宅から仕事をしていい日は?」文書:「テレワークの実施上限は週3日とする」
→ 同じ単語がほとんど含まれていなくても、「在宅で働く」という意味の近さから候補を見つけられます。
最初の段階では、Embeddingの内部数学(コサイン類似度や高次元空間の計算)を完全に自作・計算できる必要はありません。まずは、「文章 → ベクトル → 意味の近さを比較できる」という役割を理解すれば十分です。
5.Vector DBは「RAGそのもの」ではない
RAGを学ぶと、「RAG=Vector DBを導入すること」のように見えることがあります。しかし、これは少し違います。
Vector DBやVector SearchはRAGで非常によく使われる重要な技術ですが、RAGの目的はあくまで、「必要な情報を取得し、LLMへ正しいコンテキストを渡すこと」です。
検索方法には多様な選択肢があります:
- Vector Search(ベクトル検索): 意味の近さで検索する
- Keyword / Full-text Search(全文検索・BM25等): 特定の固有名詞や型番、完全一致に強い
- Hybrid Search(ハイブリッド検索): ベクトル検索とキーワード検索を組み合わせて両方の強みを活かす
- Metadata Filter(メタデータ絞り込み): 日付、部署、文書種別で事前に絞り込む
- Reranking(リランキング): 上位候補をさらに高精度なモデルで再順位付けする
初心者は「まずVector DB製品の使い方を暗記する」よりも、「どうすれば質問に必要な情報を漏れなく正確に取り出せるか」を考える方が重要です。
SQLや通常のデータベースは必要?
結論として、最初のRAGを作るだけならSQLは必須ではありません。文書を検索して回答するだけの小さなプロトタイプなら、シンプルなVector Store(ChromaやFAISS、InMemory等)だけで実験できます。
ただし、実際のWebサービスや社内システムになると話が変わります:
- ユーザー情報やログイン認証
- 文書ごとのアクセス権限・閲覧制限
- 更新日時やドキュメントのバージョン履歴
- 過去の会話ログや評価フィードバック
これらを管理する段階で、SQLやリレーショナルデータベースの知識が役立ちます。「SQLを覚えてからRAGを始める必要はない。RAGを実用的なサービスに育てるときに重要になる」という位置づけです。
6.2026年のRAGで忘れてはいけないのが「評価」
RAGを作って、「質問したら、なんとなくそれっぽい回答が返ってきた」だけで完成と判断するのは危険です。見るべきポイントは大きく二つあります。
検索(Retrieval)は正しかったか?
質問に対して、本当に回答に必要なドキュメントを上位に取得できたか?(Document Retrieval / Relevance)
回答(Generation)は正しかったか?
取得した文書の根拠に基づいて正確に回答しているか? ハルシネーションを起こしていないか?(Groundedness / Completeness)
つまり、「LLMの回答がおかしい=LLMが悪い」とは限りません。そもそも検索の段階で間違った文章や関係のないチャンクを渡しているケースが非常に多いのです。この「検索」と「生成」を分けて評価・改善していく姿勢が、RAG開発の最も重要で面白い部分です。
初心者向け:RAGを学ぶ5ステップ
全部を一度に勉強してから作る必要はありません。次のステップで進めるのが最も挫折しにくい方法です。
1つの文書をAIへ直接渡して質問する
まずはRAGの検索を作らず、小さなテキストをプロンプトに貼り付けてLLMへ渡します。「外部情報をコンテキストとして渡す」とはどういうことかを体験します。
文書をChunking(分割)してみる
長いPDFやMarkdownを複数のチャンクへ分割します。文字数や見出し単位での分割によって、データの塊がどう作られるかを試します。
Embedding + 検索を追加する
質問をEmbeddingし、類似度の高いチャンクを検索して取得。ここで初めて「質問 → 検索 → コンテキスト結合 → LLM回答」というRAGの基本形が完成します。
複数文書・メタデータ検索へ広げる
複数のPDF、カテゴリ、日付などを扱います。データ量が増えて必要になった段階でVector DBやSQLを導入します。
検索と回答を評価して改善する
検索結果と最終回答を分けて確認し、Chunkingサイズ、検索方式(Hybrid SearchやReranking)、プロンプトをチューニングして品質を高めます。
LangChainやLlamaIndexはいつ学ぶ?
RAGを調べると、LangChainやLlamaIndexなどのオーケストレーションフレームワークがすぐに登場します。
これらは非常に強力なツールですが、最初からフレームワークだけを学ぶ必要はありません。
まず生のPythonコードで「文書を読む → 分割する → Embeddingする → 検索する → LLMへ渡す」という一連の流れを素朴に書いてみてください。その上でフレームワークを使うと、「このクラスや関数が、どの工程を肩代わりしてくれているのか」が明確に見えるようになります。
RAGを学ぶのに高性能GPUは必要?
ここはCORE SPECとして、環境の違いを明確に分けておきます。
| 実行環境 | 必要なPCスペック | 主な用途 |
|---|---|---|
| クラウド型RAG | 一般ノートPCでOK メモリ16GB推奨・GPU不要 |
OpenAI / Claude API利用、クラウドEmbedding、クラウドVector DB |
| ローカルRAG | モデル規模に応じてGPUを検討 使用するLLM・Embeddingモデルにより変動 |
ローカルLLM(Ollama等)、社外秘データ検索、完全オフライン環境 |
ローカル環境でRAGを構築する場合、量子化した7B〜8Bクラスなら8GB〜12GB前後のVRAMでも動作検証できる構成があります。一方、中大型モデル、長いコンテキスト、高性能なEmbeddingモデルやRerankerを同時にローカル実行する構成では、16GB〜24GB以上も視野に入ります。必要量は量子化方式、コンテキスト長、同時実行するモデルによって大きく変わります。具体的なVRAM要件については、ローカルLLMに必要なPCスペックやモデル別VRAMガイドで詳しく解説しています。
なお、ローカルでAIを動かすGPUとしてはGeForce RTXが定番ですが、Radeonは生成AIに使える? CUDA vs ROCmと対応ソフトを用途別に解説でもまとめている通り、Ollamaなどの一部環境ではAMD GPUの活用範囲も広がっています。
RAGの次に「AIエージェント」が見えてくる
RAGを理解すると、次世代の「AIエージェント」の仕組みも見えやすくなります。
通常の固定的なRAGでは、人間が「質問が来たらこのDBを検索して回答せよ」というパイプラインを事前に組んでおきます。
一方、Agentic RAG(エージェント型RAG)では、AI自身が状況を判断します:
- この質問には社内文書を検索する必要があるか?
- どのデータソース(社内規程、商品マニュアル、顧客DB)を検索すべきか?
- 検索結果が不十分だから、検索キーワードを変えて再検索(リトライ)するか?
- 検索ではなく別のAPIツール(計算機やカレンダー)を呼び出すべきか?
つまりRAGは、単なる検索機能にとどまらず、「AIアプリ」と「自律型AIエージェント」の間をつなぐ極めて重要な架け橋なのです。
まとめ:RAGは「Vector DBを覚えること」ではない
RAGを学ぶときに大切なのは、流行している特定のツールを全部覚えることではありません。
まず理解すべきなのは、
💡 必要な情報を探し、必要な情報だけをAIへ渡し、その結果を評価する。
というシンプルな構造です。
📌 本記事の要点まとめ
- ✔️ PythonとAPIの基礎があれば、誰でもRAGの学習をスタートできる
- ✔️ Chunkingは検索精度を大きく左右する最重要のデータ前処理
- ✔️ Embeddingは文章を意味的に比較するために使う
- ✔️ Vector DBは便利だがRAGの手段の一つ(全文検索やHybrid Searchもある)
- ✔️ SQLは最初から必須ではなく、サービス化・メタデータ管理で重要になる
- ✔️ RAGは回答だけでなく「検索工程」も分けて評価する
- ✔️ クラウド型RAGならGPU不要。ローカル実行へ進む段階で初めて計算資源が必要になる
- ✔️ RAGの先にはAIエージェント(Agentic RAG)への発展が待っている
AIアプリを作れるようになったら、次は自分が持っている1つのPDFを検索できる小さなRAGを作ってみてください。そこで初めて、「AIに知識を与える」のではなく、「必要な知識を検索し、AIへ渡す仕組みを作る」というRAGの本質が見えてくるはずです。
ローカルRAGまで考えるなら、PC環境を確認する
クラウドAPI中心なら一般的なノートPCで始められます。LLMやEmbeddingまで自前のローカル環境で動かしたい場合は、モデル規模に応じたGPU・VRAMが必要になります。
AIアプリ開発・PCスペックガイドを見る