コース一覧
RAG入門:AIに知識を与える技術
ハンズオン:LangChainで基本的なRAGを実装する

RAG入門:AIに知識を与える技術

Embedding、ベクトル検索、チャンク分割、再ランキングなど、生成 AI に自社データや最新情報を読み込ませる RAG (Retrieval-Augmented Generation) の仕組みを、図解とハンズオンで学べる無料コースです。生成 AI の基礎を理解しているエンジニアや、AI プロダクト企画担当を対象としています。約 5 時間 (1 日 30 分 × 10 日) で 18 レッスンを修了でき、修了後は社内ドキュメント検索や FAQ ボットなど RAG アプリの設計を自分で進められるようになります。

1
第1章:RAGの基本概念と全体像
0. RAGとは?LLMに外部知識を与える検索拡張生成の仕組み5分
1. LLMのハルシネーション問題とRAGによる解決策5分
2. RAGの全体像:Indexing, Retrieval, Generationの3ステップ5分
3. RAGのユースケース:チャットボット、社内検索、文書要約5分
4. 第1章まとめクイズ5分
2
第2章:RAGのコア技術 - ベクトル検索の仕組み
0. チャンキングとは?テキストを効果的に分割する方法5分
1. 埋め込み(Embedding)とは?テキストをベクトル化する仕組み5分
2. ベクトル検索とは?意味の近さで情報を探し出す技術5分
3. 代表的なベクトルデータベース:Pinecone, ChromaDB, Weaviateなど5分
4. 第2章まとめクイズ5分
3
第3章:RAGの精度を高める実践テクニック
0. RAG精度改善(1):チャンキング戦略の見直し5分
1. RAG精度改善(2):高度な検索手法(HyDE, Reranking)5分
2. RAG精度改善(3):プロンプトエンジニアリングの勘所5分
3. 第3章まとめクイズ5分
4
第4章:RAGの実装と運用
0. ハンズオン:LangChainで基本的なRAGを実装する5分
1. RAGを業務利用する際の注意点:セキュリティ、コスト、精度管理5分
2. RAGの評価と継続的な改善サイクル5分
3. 第4章まとめクイズ5分

RAG入門:AIに知識を与える技術

01RAGとは?LLMに外部知識を与える検索拡張生成の仕組み
02LLMのハルシネーション問題とRAGによる解決策
03RAGの全体像:Indexing, Retrieval, Generationの3ステップ
04RAGのユースケース:チャットボット、社内検索、文書要約
05第1章まとめクイズ
06チャンキングとは?テキストを効果的に分割する方法
07埋め込み(Embedding)とは?テキストをベクトル化する仕組み
08ベクトル検索とは?意味の近さで情報を探し出す技術
09代表的なベクトルデータベース:Pinecone, ChromaDB, Weaviateなど
10第2章まとめクイズ
11RAG精度改善(1):チャンキング戦略の見直し
12RAG精度改善(2):高度な検索手法(HyDE, Reranking)
13RAG精度改善(3):プロンプトエンジニアリングの勘所
14第3章まとめクイズ
15ハンズオン:LangChainで基本的なRAGを実装する
16RAGを業務利用する際の注意点:セキュリティ、コスト、精度管理
17RAGの評価と継続的な改善サイクル
18第4章まとめクイズ

RAG入門:AIに知識を与える技術

ハンズオン:LangChainで基本的なRAGを実装する

写したコードは、1 年後に動かない

RAG のチュートリアルを検索すると、コピーすれば動く 50 行のコードがいくらでも出てきます。そして、その多くはもう動きません。

LangChain はこの数年で、パッケージの分割も、クラス名も、呼び出し方も繰り返し変わってきました。去年の記事のコードをそのまま貼ると、たいてい import の行で止まります。運悪く動いてしまうと、今度は非推奨のまま古い書き方が残り続けます。

だから、ここで覚えてほしいのはコードそのものではなく、箱を並べる順番です。順番さえ頭に入っていれば、公式ドキュメントで今の名前を引くだけで書けます。逆に順番を知らないままコードを写すと、1 行変わっただけで手が止まります。

6 つの箱を、この順に並べる

順番は、読み込む、分ける、ベクトルにする、入れる、引く、渡す、の 6 つです。前の 4 つが Indexing、後ろの 2 つが Retrieval と Generation にあたります。第 1 章の 3 工程が、そのままコードの形になったものだと思ってください。

最初の 2 つは、資料を読み込んでチャンクに切るところまでです。

Python

docs = TextLoader("./handbook.txt").load() splitter = RecursiveCharacterTextSplitter(chunk_size=800, chunk_overlap=100) chunks = splitter.split_documents(docs)

次が、切ったチャンクをベクトルにしてデータベースへ入れるところです。多くのライブラリでは、この 2 つが 1 行にまとまっています。ここで埋め込みモデルを指定していることだけ、意識しておいてください。引くときも同じものを使います。

Python

store = Chroma.from_documents(chunks, embedding=OpenAIEmbeddings())

最後が、質問を受けて引き、LLM に渡すところです。retriever が Retrieval、chain が Generation を担当します。k で取得件数を指定します。

Python

retriever = store.as_retriever(search_kwargs={"k": 4}) chain = build_qa_chain(llm=ChatOpenAI(model="gpt-4o-mini"), retriever=retriever) print(chain.invoke("有給休暇の申請期限を教えてください"))

3 つ目のブロックの組み立て方は、版によっていちばん変わりやすい部分です。既製の便利クラス 1 つで済ませる書き方から、プロンプトを自分で書いて部品をつなぐ書き方へ移ってきているので、そこは公式の最新版を見てください。前回学んだ制約や出典の指示は、このプロンプトに書きます。

動かないときは、どの箱で止まったかを見る

うまくいかないとき、いきなり最後の回答だけを見ても原因は分かりません。箱ごとに出力を確かめてください。

まず chunks の件数を数えます。1 件しか無ければ、読み込みは成功しているのに分割が効いていません。0 件なら、そもそもファイルを読めていません。ここで数十件に分かれていれば、前半 3 つの箱は動いています。

次に retriever が返したチャンクを、そのまま表示します。ここで的外れなものが並んでいれば、原因は検索より前にあります。逆に、正しいチャンクが並んでいるのに回答が外れているなら、直す場所はプロンプトです。

この 2 か所を見るだけで、6 つの箱のどこで止まったかがほぼ特定できます。まずは手元のテキストファイル 1 本で、最後まで通してみてください。PDF や複数ファイルは、1 本が通ってからで十分です。

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • RAG検索結果を渡して LLM に答えさせる手法
  • クラスデータと振る舞いを束ねる単位
  • チャンク長文を分割した小さな塊
  • データベースデータを構造化して保存する仕組み
  • LLM大規模言語モデル。次の単語を確率で予測する
  • ロック「他の人触らないでね」と DB に予約する
  • プロンプトAIに送る指示文。出力品質を決める入力
生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2025/12/23·更新 2026/08/26

関連レッスン

  • RAGを業務利用する際の注意点:セキュリティ、コスト、精度管理

    RAGを実際の業務に導入する際に直面する「セキュリティ」「コスト」「精度管理」の3大課題について詳しく解説します。機密情報の保護方法からトークン費用の節約術、ハルシネーションを防ぐための具体的な対策まで、商用レベルの運用に必要な知識を網羅しています。

  • RAGの評価と継続的な改善サイクル

    RAG(検索拡張生成)の精度を維持・向上させるための評価手法と改善サイクルを学びます。RAGASなどのフレームワークを用いた自動評価や、ユーザーフィードバックを活用した品質管理の具体例を詳しく解説します。

  • 第4章まとめクイズ

    LangChain での実装、本番運用時の注意点、評価と改善サイクルについて振り返るまとめクイズです。

分からないところは Tap (AI先生) に質問できます

24 時間いつでも、あなたのレベルに合わせて日本語で答えます。

復習ミニクイズ

RAGの実装において、読み込んだドキュメントを「Text Splitters」でチャンク分割する主な理由として、最も適切なものはどれですか?