「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
ステージ †
Loading †
テキストデータを読み込む
Indexing †
テキストデータからインデックスを作成する。
Storing †
テキストデータとインデックスを永続化する。
Querying †
インデックスを使用してテキストデータを検索する。
Evaluation †
検索のリクエストレスポンスを客観的に評価。
機能 †
データの取得 †
生のテキストデータだけでなく、
- ファイル (PDF、ePub、Word、PowerPoint?、Audioなど) や
- Webサービス (Notion、Slack、Wikipediaなど) を
データソースとして利用できる。
インデックスの作成 †
- Keyword検索、Vector検索:テキストデータのチャンクをベクトルに変換する。
- Keyword検索
- Vector検索
- VectorStoreIndex?
- SummaryIndex?
- 以下のインデックスは他のプロバイダにoff-road
- 全文検索:フルテキスト・インデックスを作成する。
- Graph検索:テキストデータのチャンクからノードとエッジを抽出する。
データのストア †
Vector Store、Document Store、Index Storeなどのストアにデータを保存。
- Vector Store
- Document Store
- Index Store
データの検索 †
インデックスを使用してデータを検索
- Keyword検索:キーワードを使用し、文書ベクトルを検索し結果を得る。
- Vector検索:クエリもベクトルに変換し、文書ベクトルと比較して結果を得る。
- Graph検索:GraphDBを全文検索後、ノードとエッジから関連文書を検索し結果を得る。
プロバイダ †
1st Party †
各ステージを処理する基本的なライブラリ
3rd Party †
各ステージを処理するライブラリ
- データ取得:LlamaHub?に様々なデータコネクタが提供されている。
- ベクトル化、ストア
- NoSQLデータベース:MongoDBやElasticsearchなどのNoSQLデータベースを使用してデータを保存および検索できる。
- クラウドストレージ: AWS S3やCloudflare R2などのクラウドストレージサービスを利用してデータを保存できる。
- Vectorストア: DeepLake?やFAISSなどを使用して、効率的なベクトル化、ベクトル検索を実現する。
詳細 †
公式を読むことをおすすめする。
主要機能 †
Loading †
- Reader
- SimpleDirectoryReader?と言う汎用的なライブラリを利用できる他、
- Readerを使用する代わりに、ドキュメントを直接使用することもできる。
- また、数百のデータ コネクタをLlamaHub?レジストリをダウンロードして使用できる。
- LlamaCloud?のコネクタは、LlamaIndex純正IaaSストレージということだろう。
- ストレージによっては、インデックス化処理がオフロードされているものもあり、その場合、Indexingのプロセスは不要になる。
Indexing †
- node_parser
- SplitterでChunkに分割する(APIはNodeを返す)。
- Splitterのインスタンスがnode_parserらしい。
- node_parserの単独実行も可能可能で、show_progressと言ったオプションもある。
- パイプライン(IngestionPipeline?)に組み込んで、複雑なパースを実装することもできる。
- コンストラクタに、Splitter、Extractor、Embeddingなどを指定できる模様。
- VectorStoreIndex?
- テキストの意味またはセマンティクスを数値的に表現に変換する。
- この数学的関係により、トップ「K」セマンティック検索が可能になる。
- 引数には、documentsやnodesを指定可能で、show_progressと言ったオプションもある。
- KnowledgeGraphIndex?
- GraphRAG のIndexing処理を行う。
- Graphでは、Indexingの段階で、LLMを使用する。
- データストアはGraph的なストアになる。
Storing †
Storage Contextは、Vector Store、Document Store、Index Storeの3つのストアで構成されるらしい。
Querying †
Evaluation †
その多機能 †
エージェントの構築 †
ワークフローの構築 †
構造化データ抽出 †
トレースとデバッグ †
参考 †
非公式チュートリアル †
公式 †
LlamaIndex - LlamaIndex
https://docs.llamaindex.ai/en/stable/
- Building an agent
- Building Workflows
- Structured Data Extraction
- Tracing and Debugging
- Evaluating
- Putting it all Together