無料・登録不要|Ollama × LangChain × ChromaDB

RAGは「動く」と
「正しく答える」の間に谷がある。

社内文書を検索して、その内容をもとにLLMに答えさせるのがRAG(検索拡張生成)です。作るだけなら簡単。でも、答えを外す。このページでは、外す理由と直し方を図で確かめられます。図の数値と文書は、しくみを説明するための架空の例です。

4ステップ質問 → 検索 → プロンプト → ローカルLLM
検索か生成か外れたら、まず原因の場所を切り分ける
0使った外部のAI API

手を動かして作り切りたい人へ:Udemy講座「RAG実践|ローカルLLMで社内文書QAを作る」

① 質問
会社のノートPCを失くしたら、どこに連絡すればいいですか?
② 検索
③ プロンプト
「参考文書だけを根拠に答える。書かれていないことは足さない…」+ 検索した条文
④ ローカルLLM
紛失に気づいたら、すぐに情報システム課(内線4100)へ連絡します。夜間と休日は当番の携帯電話に連絡します。
出典:IT利用ガイド 第21条(端末の紛失)
PCの中だけで処理説明用の架空の会社の規程と、架空の実行例です。
01

RAGとは:LLMに「社内の資料を見ながら」答えさせる

LLMは、あなたの会社の規程を知りません。RAGは、質問に関係する文書を先に検索してLLMに渡し、その内容だけを根拠に答えさせるしくみです。

質問:社員食堂の補助は1食いくらですか?(架空の会社)

LLMだけ

「一般的には1食あたり数百円を補助する企業が多いです…」
→ もっともらしいが、あなたの会社の規程ではない

RAG

規程の該当する条文を検索して読み、その金額で答える。
→ 出典の条文名も示せる

答え方の違いを示すための例です。

RAGとファインチューニングの違い

RAGファインチューニング
変えるもの参照する知識モデルの振る舞い(形式・口調)
得意社内固有・最新の情報、出典の提示決まった形式への変換、文体
更新文書を入れ替えるだけ学習し直しが必要

ローカルで作る理由:LLMも検索もPCの中で動かせば、機密文書を外部に送らずに済みます。

02

埋め込み:文章を「意味の座標」にして、近いものを探す

検索の中心は埋め込み(Embedding)です。文章を数百〜千次元の数値の並び(ベクトル)に変え、向きが近いほど意味が近いとみなします。近さはコサイン類似度で測ります。下の図は、それを2次元に簡略化したイメージです。

あそびかた:質問を選ぶと、意味が近い条文ほど上に並びます

コサイン類似度の順位(イメージ)

図の位置と数値は、しくみを説明するための架空の例です。

03

チャンク分割:切り方しだいで、答えが「見つからない」

文書はそのままでは長すぎるので、小さな塊(チャンク)に分けて検索します。切り方が悪いと、見出しと数字が別の塊に分かれ、正しい答えを含む塊が検索に引っかかりにくくなります。

あそびかた:チャンクの大きさと重なり(オーバーラップ)を動かし、「紛失」と「内線4100」が同じ塊に入るかを見る

文書は説明用に作った架空の規程の一部です。

04

検索が悪いのか、生成が悪いのか:まず切り分ける

素朴なRAGを評価用の質問で測ると、「検索は正しい条文を取ってきているのに、回答が外れる」ことがよくあります。では、検索を「完璧」にしたら直るのでしょうか。説明用の架空の数値で確かめます。

あそびかた:下の3つを順に押して、どこに原因があるかを確かめる

質問の種類ごとの正答率(説明用の例)

説明用の例(架空の数値)。評価用の質問を種類に分けておくと、どこが弱いかが見えます。

05

プロンプトは、ルールを1つずつ足して測る

原因が生成側だと分かったら、プロンプトにルールを1つずつ足して、そのたびに測ります。押すと、足したルールと質問の種類ごとの変化が見られます(説明用の例・架空の数値)。

06

ハイブリッド検索・リランキングは効く? 測って決める

よく勧められる検索の改善策を、同じ質問で比べるとどう見えるか。説明用の架空の数値で、指標を切り替えて比べてみてください。

Recall@k:正しい条文が上位k件に入った割合。MRR:正しい条文が何位に出たか(1位なら1)。秒:1問あたりの処理時間。いずれも説明用の架空の値です。実際の値はデータや機器によって変わります。

UDEMY COURSE

このページの図・数値・文書は、しくみを説明するための架空の例です。講座では、外部のAI APIを使わずに、環境構築から社内文書QAの完成までを一通り手を動かして作ります。

  1. イントロダクション:RAGとは何か、なぜローカルか、完成デモ
  2. 環境構築:Ollama・Qwen・Python環境と動作確認
  3. Embeddingの基礎:ベクトル化、コサイン類似度、日本語モデルの比較
  4. ベクトルDB構築:前処理・チャンク設計・ChromaDBへの格納
  5. 検索パイプライン:LangChain / LCEL でRAGを組み上げる
  6. 精度改善とチューニング:評価セット、ハイブリッド検索、リランキング
  7. キャップストーン:社内文書QAシステムを完成させる
  8. 補講:運用・更新・スケール
受講に必要なもの
・Python の基本構文(変数・関数・for文・import)が読み書きできること
・ターミナルでコマンドを入力した経験
・メモリ16GB以上のPC(Apple Silicon の Mac を推奨。Windows・Linux でもコードは動作)
・空きストレージ 15GB程度
Udemyで講座を見る →

価格・プレビューの範囲・最新の内容は、Udemy の講座ページでご確認ください。