
ローカルAIを賢くする最短ルート。コード100行未満で作る日本語RAG入門
- 割引あり
自宅のローカルPCでAIを動かす時、メモリ8GB~16GB程度の一般ノートPCでは、オープンLLMを使うと言っても、qwen2.5:7bぐらいが限界で、大した回答が期待できません。
そこで、生成AIに先に正確な情報を渡す考え方がRAG(Retrieval-Augmented Generation:検索拡張生成)になります。検索エンジンから検索して、ベクトル化して渡すことを考えてみましょう。
検索エンジン → LLM
検索エンジンから情報を探すことで、小型LLMモデルであるにも関わらず、正確な回答が期待出来たり、最新の情報を検索できる強みを発揮します。
これが「コンテンツを作る上での強み」となります。
AI時代には、プロは「作る人」ではなく「組み合わせて最適化する人」となっています。
今回、Python + Ollama + pip install だけでミニRAGの構成します。学習コストが極めて低いので、理系の大学生3,4年生ぐらいの練習にもぴったりです。
ミニRAGの構成
Web検索 → 5個の文章
↓
Embedding → FAISSに保存
↓
質問をEmbedding → 近い文章を探す
↓
Qwenへ渡す
Embedding = 文章を「座標(ベクトル)」に変換
FAISS = 座標から「近い文章」を爆速で探すベクトル検索ライブラリ
qwen 2.5:7bの例
日本語に強い小型LLMモデルである2.5:7bでテストしてみます。
北海道の最北端は?
何も使わないqwen2.5:7b日本の最北端は、北海道の赤平市(あかびし)です。具体的な位置は54°30'N 145°29'E付近にあります。(完全に嘘ハレーションを放出)
RAGを使ったqwen2.5:7b場合
北海道の最北端は宗谷岬で、その位置は北緯45度31分22秒にあります。
このように何も使わずにLLMに回答を要求すると、間違った回答をすることになります。それに比べて、RAGを使ったことで、正確な回答を期待できます。