テクノロジー 注目度 67

AIによる個人開発学習:RAGシステム構築の進捗と課題(Day5)

※本記事の要約および解説はAIが自動生成しており、誤りが含まれる可能性があります。事実確認は元ニュースをご参照ください。

本記事は、AIを活用した個人開発学習の第5日目として、RAG(Retrieval-Augmented Generation)システムの構築に関する進捗と課題を詳細に報告している。前回は、参考資料をチャンク分けし、質問文とのコサイン類似度を計算して最適な参照資料を特定する処理を実装した。しかし、Embedding(ベクトル化)に使用したチャット用モデル(qwen2.5b:3b)では、質問文と無関係な行の類似度が高くなるなど、想定通りの参照が困難であった。

そこで今回は、Embedding専用のモデル(mxbai-embed-large)をダウンロードし、これに切り替えてテストを行った。その結果、専用モデルを使用することで、各チャンクごとのコサイン類似度に差がつくようになり、改善が見られた。最初の質問「DCKGってどうやって暗号鍵を生成しているの?」では、専用モデルを使用しても最適な参照資料を得ることはできなかったが、質問文を「DCKGの暗号鍵を生成する具体的な仕組みや技術を教えて」とより具体的に修正したところ、類似度0.9605という高いスコアで、適切な参照資料「DCKGは、端末の温度変化と大気ノイズをブレンドして使い捨ての暗号鍵を生成する技術である。」を特定することに成功した。

さらに、質問文を修正しただけで再度テストを行った場合、最適な参照資料の特定は難しく、専用モデルと質問文の双方の改善が重要であることが再確認された。最終的に、本学習で得られた学びとして、「Embeddingには専用モデルが適していること」と「質問文の具体性が重要であること」の二点が挙げられている。今後は、このRAGプログラムをWeb API(FastAPI)として実装し、外部から利用できるシステムへと昇格させることを目標としている。


背景

本記事は、大規模言語モデル(LLM)を用いたRAG(Retrieval-Augmented Generation)システムの個人開発学習記録である。RAGは、外部の専門知識(参考資料)を参照しながらAIに回答させる仕組みであり、単なるLLMの知識に依存する問題を解決する技術である。学習の目的は、このシステムを実用的なWeb APIとして構築することにある。

重要用語解説

  • Embedding(ベクトル埋め込み): テキストデータを数値のベクトル空間に変換するプロセス。これにより、意味的に近い単語や文章がベクトル空間上で近くに配置され、類似度計算が可能になる。
  • RAG: Retrieval-Augmented Generationの略。外部のデータベースやドキュメントから関連情報を検索(Retrieval)し、それを基にLLMが回答を生成(Generation)する仕組み。
  • コサイン類似度: ベクトル間の角度の近さを測る指標。値が1に近いほど、二つのベクトルが同じ方向を向いており、意味的な類似性が高いことを示す。

今後の影響

本学習の成果は、AIシステムの実用化における重要な知見を提供した。特に、Embeddingモデルの選定や、プロンプト(質問文)の設計が、RAGシステムの精度に決定的な影響を与えることを示している。今後はFastAPIを用いたAPI化により、より広範なアプリケーションへの組み込みが可能となる見込みである。