RAGフレームワーク

検索拡張生成(Retrieval Augmented Generation)のためのフレームワークとツール。

RAGとは何か?

検索拡張生成(RAG)は、大規模言語モデル(LLM)の能力を外部データソースからの情報で拡張する技術です。 これにより、LLMは自身の訓練データに含まれていない、または最新の情報を利用して回答を生成できるようになります。

主要RAGフレームワーク

LangChain
Python, JavaScript
LLMアプリケーション開発のための包括的なフレームワーク。RAG、エージェント、チェーンなど多機能。
GitHub Stars: 74,500
LlamaIndex
Python, TypeScript
データ接続とLLM統合に特化したフレームワーク。複雑なデータソースへの接続を簡素化。
GitHub Stars: 25,800
Haystack
Python
モジュラー設計のRAGフレームワーク。柔軟なパイプラインとコンポーネントで複雑なアプリケーションを構築可能。
GitHub Stars: 12,300
Semantic Kernel
C#, Python, Java
Microsoftが開発したAIオーケストレーションフレームワーク。.NETエコシステムとの統合に優れている。
GitHub Stars: 16,200

RAGアーキテクチャの基本

1. データの取り込みと前処理

様々なソース(ドキュメント、ウェブサイト、データベースなど)からデータを収集し、 チャンク分割、クリーニング、フィルタリングなどの前処理を行います。

2. 埋め込みの生成と保存

テキストチャンクを埋め込みモデル(Embedding Model)を使用してベクトル表現に変換し、 ベクトルデータベースに保存します。

3. 検索と取得

ユーザークエリを埋め込みに変換し、ベクトルデータベースから類似度の高いチャンクを検索します。 セマンティック検索、キーワード検索、ハイブリッド検索などの手法が使われます。

4. 生成

取得した関連情報をLLMのプロンプトに組み込み、より正確で情報に基づいた回答を生成します。 プロンプトエンジニアリングや引用の追加などの技術が使われます。