RAG_Techniques完全ガイド|42本のノートブックでRAGを基礎から最先端まで学ぶ
「自社のPDFをAIに読み込ませてチャットできるアプリを作りたい」「RAGって聞くけど、どこから勉強すればいいかわからない」——そんな悩みを抱えていませんか?
RAG(手持ちの資料をAIに読ませて答えさせる仕組み)は、今もっとも注目されているAI活用技術のひとつです。しかし、いざ学ぼうとすると「英語の論文ばかり」「コードが難解」「どの手法を選べばいいか不明」という壁にぶつかりがちです。
この記事では、そうした悩みを一気に解決してくれる無料OSSリポジトリ「RAG_Techniques」を徹底解説します。何ができるか・どうやって動かすか・他のツールと何が違うかを、エンジニア経験が浅い方でも理解できるように丁寧に説明します。
---
RAG_Techniquesとは?3行でわかる概要
RAG_Techniquesは、RAGの手法を基礎から最先端まで体系的に学べる、42本以上の実行可能なJupyter Notebookを集めたコミュニティ主導のハブです。Jupyter Notebook(ジュピターノートブック)とは、コードと説明文を一緒に書けるWebブラウザ上のメモ帳のようなツール。「読んで理解 → その場で実行 → 結果を確認」が一画面でできるため、学習に最適です。
RAGは、情報検索と生成AIを組み合わせる方法を革新しており、このリポジトリはRAGシステムを強化するための高度な手法を厳選したコレクションを提供しています。
作者はAIエンジニアのNir Diamant氏。ニュースレターには5万人以上のAI愛好家が登録しています。個人の学習プロジェクトから始まり、世界中のエンジニアが貢献するコミュニティプロジェクトへと成長しました。
基本情報
| 項目 | 内容 |
|---|---|
| リポジトリ名 | RAG_Techniques |
| 作者 | Nir Diamant(NirDiamant) |
| GitHubスター数 | 28,000以上(2025年7月時点) |
| ライセンス | 無料・オープンソース |
| 主な形式 | Jupyter Notebook(.ipynb) |
| ノートブック数 | 42本以上(随時追加中) |
| 必要なAPI | 主にOpenAI APIキー |
| 公式リポジトリ | github.com/NirDiamant/RAG_Techniques |
---
このリポジトリで「何ができるようになるか」
技術の説明より先に、「あなたが得られるもの」を確認しましょう。
自社ドキュメントに答えるAIを自分で作れるようになる
RAGの基本を学ぶと、「自社の規約PDFに質問できるチャットボット」「社内マニュアルを検索するAIアシスタント」といったアプリを自力で開発できるようになります。ChatGPTのような汎用AIは「今日の自社製品の仕様」を知りません。RAGを使えば、自前のデータをAIに読み込ませて答えさせることができます。
Graph RAG・MemoRAGなど最先端手法を「動くコードで」理解できる
最近追加された手法には、MemoRAG(記憶拡張検索)、エンドツーエンドRAG評価、Open-RAG-Eval、JSON RAGなどがあり、42本のノートブックは現在も増え続けています。論文を読んで「なんとなくわかった気」で終わるのではなく、実際に手を動かして理解できるのが最大の強みです。
RAGシステムの品質を評価・改善する方法がわかる
DeepEval評価ノートブックでは、RAGシステムの正確性・忠実性・文脈的関連性といった複数の指標を使ったテストケースの実施方法をカバーしています。「作りっぱなし」ではなく、品質を数値で測る方法まで学べます。
---
42本のノートブック:学べる手法一覧
基礎RAG技術として、初心者向けの基本的なRAG手法を紹介しており、基本的な検索クエリから始めて段階的な学習メカニズムを統合していきます。全体は大きく以下のカテゴリに分かれています。
初級:RAGの基本を動かす
- シンプルRAG:最も基本的な「文書を読み込む → 質問に答える」の流れ
- CSV RAG:CSVファイルを使った基本的な検索システムを構築し、OpenAIと連携して質問応答システムを作ります。
- Reliable RAG(信頼性向上):シンプルRAGを拡張し、取得した情報の正確性と関連性を確保するための検証・改善を追加します。取得文書の関連性チェックや、回答に使われた文書の該当箇所のハイライトも行います。
- JSON RAG:JSONファイルを使った検索・質問応答システムで、複数フィールドを持つJSONデータを読み込み、最も関連性の高いテキストフィールドを組み合わせてエンベディングを生成し、ユーザーの質問に基づいて最適なエントリを取得します。
中級:検索精度を上げる
- チャンクサイズ最適化:テキストの分割サイズを固定サイズで最適に選び、文脈保持と検索効率のバランスを取ります。さまざまなチャンクサイズを試して、文脈保持と検索速度の最適バランスを見つけます。
- クエリ変換(Query Transformation):クエリを修正・拡張して検索効率を向上させる手法群で、クエリの書き換え、ステップバックプロンプティング(より広い文脈を取得するための一般化クエリ生成)、サブクエリ分解(複雑な質問をシンプルなサブクエリに分割)などが含まれます。
- 命題チャンキング(Proposition Chunking):テキストをより細かい「事実の命題」単位で分割し、検索精度を高める手法
上級:最先端のRAG手法
- Graph RAG:基本的なRAGがベクトル類似性でテキストのかたまりを検索するのに対し、Graph RAGは文書からナレッジグラフを構築してエンティティの関係性と文脈を理解し、より高度な推論を可能にします。複雑な関係性を持つ情報(例:「AさんはB社のCプロジェクトに関わった人物と同じチームか?」)に強いです。
- MemoRAG(記憶拡張検索):長期的な記憶を持たせることで、長い文書や複雑なセッションにも対応できる手法
- Agentic RAG(エージェント型RAG):エージェント型RAGでは、LLMがエージェントとして全プロセスを調整し、各ステップでRAGツールを呼び出すか回答生成に進むかを選択できます。検索と文脈の改善は繰り返し実行でき、エージェントがタスクの進行状況に応じて自律的に操作を選択します。
- エンドツーエンドRAG評価:評価基準の選定、LLM-as-a-judgeメトリクス、RAGASの統合、完全な評価パイプラインの組み立てを網羅する包括的なチュートリアルです。
---
導入手順:実際に動かすまでの全手順
前提条件
以下が揃っていることを確認してください。
- Python 3.8以上がインストールされていること
- OpenAI APIキー(platform.openai.comから取得。利用料金は公式サイト参照)
- Gitがインストールされていること(git-scm.comから無料取得可)
- Jupyter Notebook または JupyterLab(以下の手順でインストール可)
> OpenAI APIキーについて:各ノートブックを実行するとAPIの呼び出し料金が発生します。学習目的の軽い実行であれば数十円〜数百円程度に収まることが多いですが、使用量は公式のUsageダッシュボードで確認してください。料金の詳細は公式サイトを参照してください。
ステップ1:リポジトリをクローンする
「クローン」とは、GitHubにあるファイル一式をまるごと自分のパソコンにコピーすることです。
# ① リポジトリをローカルにコピーする
git clone https://github.com/NirDiamant/RAG_Techniques.git
# ② フォルダに移動する
cd RAG_Techniques
ステップ2:Python仮想環境を作成して有効化する
「仮想環境」とは、このプロジェクト専用のPython空間を作る仕組みです。他のプロジェクトと混在しないよう分離できます。
# 仮想環境を作成(venvという名前のフォルダが作られる)
python -m venv venv
# 有効化(Mac/Linux)
source venv/bin/activate
# 有効化(Windows)
venv\Scripts\activate
ステップ3:必要なパッケージをインストールする
# Jupyter Notebookと主要パッケージをインストール
pip install jupyter openai langchain python-dotenv
> ノートブックによって追加パッケージが必要な場合があります。各ノートブックの冒頭セルに !pip install ... という形でインストール指示が記載されているので、その都度実行してください。
ステップ4:OpenAI APIキーを設定する
APIキーをコードに直接書くのは危険です。.envファイルという専用ファイルに書くのが安全です。
# プロジェクトのルートフォルダに .env ファイルを作成
echo "OPENAI_API_KEY=sk-ここに自分のAPIキーを貼り付ける" > .env
ステップ5:Jupyter Notebookを起動してノートブックを開く
# Jupyter Notebookを起動(ブラウザが自動で開く)
jupyter notebook
ブラウザが開いたら、all_rag_techniques フォルダを開き、simple_rag.ipynb(シンプルRAG)から始めましょう。各セルを上から順番に「Shift + Enter」で実行していくだけで動作します。
ステップ6(任意):Google Colabで動かす
パソコンへの環境構築が難しい場合、各ノートブックにはGoogle Colaboratory(Googleの無料クラウド実行環境)へのリンクが用意されています。「Open in Colab」ボタンをクリックするだけで、ブラウザ上で即座に実行できます。ただしColabの場合も、APIキーの設定は必要です。
---
類似ツールとの違い:RAG_Techniquesを選ぶべき人は誰か
RAG関連のツール・リポジトリは多数存在します。それぞれの役割は大きく異なります。
比較表:RAG_Techniques vs 類似ツール
| ツール名 | 主な用途 | 対象ユーザー | コード不要? | 学習目的向き? |
|---|---|---|---|---|
| RAG_Techniques | RAG手法を体系的に学ぶ | 学習者・開発者 | ✗(コードあり) | ◎ 最適 |
| RAGFlow | 実用的なRAGアプリを構築・運用する | 開発者・企業 | △(低コードUI) | △ やや難しい |
| Dify | ノーコードでAIアプリを作る | 非エンジニア | ◎(GUI操作) | ○ 入門向け |
| Flowise | ビジュアルでAIパイプラインを組む | 非エンジニア | ◎(GUI操作) | ○ 入門向け |
| Mem0 | AIエージェントに長期記憶を持たせる | 開発者 | ✗(コードあり) | △ 特化型 |
| LibreChat | ChatGPT風のUIでRAGを使う | 一般ユーザー | ◎(UI操作) | ✗(学習目的外) |
ポイントを整理すると:
- 「作って動かしたい」→ RAGFlow・Dify・Flowise が向いている
- 「RAGの仕組みを理解して自分で実装したい」→ RAG_Techniques が圧倒的に向いている
- 「理解した後に本番システムを作る」→ RAG_Techniquesで学んでからRAGFlowやDifyへ
RAGFlowはオープンソースのRAGエンジンであり、ドキュメントの深い理解に優れています。インテリジェントなチャンキングでドキュメント構造を尊重し、組み込みのナレッジグラフ構築で高度な推論を実現します。このように、RAGFlowは「動くシステムを構築する」ためのツールです。一方、RAG_Techniquesは「RAGそのものを理解するための教科書」です。まず後者で学び、前者で実装するという流れが初心者には最適です。
---
あなたに向くか?向かないか?判断チェックリスト
以下の質問に答えて、自分に合うかどうかを判断してください。
RAG_Techniquesが向く人
- ✅ RAGを「理論だけでなく、動くコードで」理解したい
- ✅ Python の基礎(変数・関数・pip installの概念)は知っている、または覚える意欲がある
- ✅ OpenAIなどのAPIキーを取得・管理できる
- ✅ 「最初はシンプルRAGから始めて、徐々に高度な手法へ進みたい」という段階的学習スタイル
- ✅ Graph RAGやMemoRAGなど、最先端の手法も実際に試してみたい
- ✅ 無料でコストを抑えながら学習したい(リポジトリ自体は無料。API利用料は別途)
RAG_Techniquesが向かない人
- ❌ Pythonをまったく触ったことがなく、コードアレルギーがある
- ❌ 今すぐ動くRAGアプリが欲しい(学習より成果物優先)→ DifyやFlowiseを先に試す
- ❌ 本番環境にすぐデプロイできるシステムが必要 → RAGFlowが向いている
- ❌ APIキーの料金管理が心配で実行が怖い → まずGoogle Colabでサンプルだけ見て雰囲気を確認する
---
関連ツールと組み合わせると広がる世界
RAG_Techniquesで学んだ後、以下のツールと組み合わせることで一気に応用範囲が広がります。
AIエージェントと組み合わせる
RAG_Techniquesにはエージェント型RAGのノートブックも含まれています。さらに一歩進めたい場合は、AutoGenやOpenHandsのような自律的なAIエージェントフレームワークと組み合わせると、「自ら調査して答えるAI」を構築できます。
ローカルLLMと組み合わせる
OpenAI APIではなく、自分のパソコンでLLMを動かしたい場合はllama.cppと組み合わせる方法があります。コストをゼロにしつつRAGを試せます(ただし高性能なPCが必要)。
UIを作って公開する
RAGの仕組みを理解したら、Gradioを使うと簡単なWebインターフェースを数行のコードで作れます。自作のRAGアプリを家族や友人に見せることも可能です。
プロンプトエンジニアリングと組み合わせる
RAGはプロンプト(AIへの指示文)の品質にも大きく左右されます。Awesome ChatGPT PromptsやSystem Prompts of AI Toolsでプロンプト設計も同時に学ぶと、RAGの精度が格段に上がります。
---
よくある質問
Q1. プログラミング初心者でも使えますか?
Pythonをまったく触ったことがない方には少しハードルがあります。ただし、Pythonの基礎(変数・関数・ライブラリのインストール)を1〜2週間学んだ後であれば、シンプルRAGのノートブックから十分始められます。各ノートブックはそれぞれの手法に詳細なノートブックチュートリアルが付いており、コードの意味も丁寧に解説されています。まずはGoogle Colabで開いて「眺めてみる」だけでも感触がつかめます。
Q2. 費用はかかりますか?
リポジトリ自体は完全無料・オープンソースです。ただし、ノートブックを実行するにはOpenAI APIキー(または他のLLMプロバイダーのAPIキー)が必要で、実行のたびに少額の利用料が発生します。学習目的の軽い実行であれば1ノートブックあたり数円〜数十円程度が目安ですが、モデルの選択や実行回数によって変わります。正確な料金はOpenAI公式の料金ページを参照してください。なお、一部のノートブックはGroqやCohereなどの別プロバイダーにも対応しています。
Q3. RAGFlowやDifyとどう使い分ければいいですか?
用途が異なります。RAG_Techniquesは「学ぶための場所」、RAGFlowやDifyは「作るための道具」です。RAGFlowはドキュメント処理に特化した本番向けのRAGエンジンで、ビジュアルな低コードインターフェースを持ち、ビジュアルエディタでパイプラインを作成できます。DifyやFlowiseはさらにノーコードよりで、コードなしでRAGアプリが作れます。RAG_Techniquesで「なぜ動くのか」を理解してから、これらのツールを使うと設定の意味がわかり、問題が起きたときの対処もしやすくなります。
Q4. 英語しかないのですが、日本語話者でも大丈夫ですか?
READMEやノートブックの解説は英語ですが、コード自体に言語の壁はありません。Google翻訳やDeepLでノートブックの説明文を翻訳しながら進めることができます。また、ChatGPTやClaudeに「このPythonコードの意味を日本語で教えて」と聞く使い方も非常に効果的です。コードブロックは世界共通なので、「説明だけ翻訳する」という割り切りで十分に学習できます。
---
まとめ:次のアクション
RAG_Techniquesは、RAGの手法を基礎から最先端まで、直感・コード・参照文献をすべて備えた42本以上の実行可能なノートブックで学べる、コミュニティ主導のハブです。無料で、かつ段階的に学べる構成になっているため、「RAGをちゃんと理解したい」すべての人にとって最初の一冊(一リポジトリ)として最適です。
今日のうちに、以下の3ステップを試してみましょう。
- GitHubリポジトリにアクセスしてスターをつける(ブックマーク代わりになります)
simple_rag.ipynbをGoogle Colabで開いて眺めてみる(実行しなくても流れがつかめます)- OpenAI APIキーを取得して、最初のセルだけ実行してみる(動いた瞬間の感動が学習の動機になります)
RAGを理解すれば、単なるChatGPTの利用者から「AIを使って価値を作る人」へと一歩踏み出せます。実用的なRAGアプリの構築に進みたくなったら、RAGFlowやDify、Flowiseも合わせてチェックしてみてください。