LlamaIndex(旧名:GPT Index)は、ローカルまたは外部の構造化・非構造化データを大規模言語モデル(LLM)と連携させるためのフレームワークです。主に、文書検索(RAG: Retrieval-Augmented Generation)やナレッジベースチャットボットの構築に用いられます。
1. LlamaIndexとは何か
LlamaIndexは以下の目的で設計されています:
LLMに外部知識を提供する仲介レイヤー
LLMは通常、トレーニング時点までの情報しか持ちません。そのため、ユーザーが独自データ(社内文書、PDF、データベースなど)を使って質問応答や生成を行いたい場合、外部知識との連携が必要になります。
LlamaIndexは、その外部データをLLMが扱いやすい形に変換・管理・検索する役割を担います。
2. 主な構成要素(概念)
データインジェスト(Ingestion)
外部ソースからデータを取り込みます。対応フォーマットには、PDF、HTML、Word、CSV、Notion、Slackログなどがあります。
インデックス構築(Indexing)
データをチャンク(小さな単位)に分割し、メタデータを付与し、**検索性の高い構造(インデックス)**に変換します。ベクトル検索(例:FAISS、Weaviate)もこの段階で組み込まれます。
クエリ処理(Querying)
ユーザーの質問を受け取り、適切なデータチャンクを検索し、それをプロンプトとしてLLMに渡します。これにより、LLMが外部知識を用いた生成を行えるようになります。
3. 特徴と利点
| 特徴 | 説明 |
|---|---|
| モジュール設計 | チャンク分割、埋め込み、インデックス、検索、応答生成がそれぞれモジュール化されており、柔軟にカスタマイズ可能 |
| 外部ツール連携 | OpenAIやAnthropicのLLM、FAISSやPineconeなどのベクトルDBと統合可能 |
| 複数形式対応 | テキストだけでなく、PDFやHTMLなど様々なデータ形式に対応 |
| LangChainとの統合 | LangChainと組み合わせて、高度な対話・エージェントアプリケーションを構築可能 |
4. 名前変更の背景(GPT Index → LlamaIndex)
当初は「GPT Index」という名称で公開されていましたが、以下の理由により「LlamaIndex」に変更されました:
-
特定のLLM(GPT)に依存しないことを明示するため
-
オープンソースLLM(例:LLaMAなど)との親和性を示すため
-
汎用的な情報アクセスレイヤーであることを強調するため
まとめ
LlamaIndexは、LLMに独自データへのアクセス能力を与えるための柔軟かつ拡張性の高いフレームワークです。情報検索、質問応答、社内ナレッジベースチャットボットなど、多様なユースケースに対応しており、RAGアーキテクチャを実現するための中核ツールとして位置付けられています。
ChatGPT4o 生成日:2025/06/14