メインコンテンツへスキップ
見出し画像

ローカル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を使ったことで、正確な回答を期待できます。

実施する環境準備

あなたへのおすすめ