AI Edge RAG SDK は、LLM 推論 API を使用して検索拡張生成(RAG)パイプラインを構築するための基本コンポーネントを提供します。RAG パイプラインは、LLM にユーザーが提供したデータへのアクセスを提供します。このデータには、更新された情報、機密情報、ドメイン固有の情報が含まれる場合があります。RAG から追加された情報取得機能により、LLM は特定のユースケースに対してより正確でコンテキストを認識したレスポンスを生成できます。
AI Edge RAG SDK は Android で利用でき、完全にオンデバイスで実行できます。Android ガイドに沿って SDK の使用を開始します。このガイドでは、RAG を使用したサンプル アプリケーションの基本的な実装について説明します。
RAG パイプライン
AI Edge RAG SDK を使用して RAG パイプラインを設定する主な手順は次のとおりです。
- データをインポートする: LLM が出力を生成するときに使用するテキストデータを提供します。
- データを分割してインデックスを付ける: データベースでインデックスを付けるために、データを小さなチャンクに分割します。
- エンベディングを生成する: エンベッダーを使用してチャンクをベクトル化し、ベクトル データベースに保存します。
- 情報を取得する: ユーザーのプロンプトに対応するために、関連情報を特定して取得する方法を定義します。特定のプロンプトに対して、検索コンポーネントがベクトル データベースを検索して、関連する情報を特定します。
- LLM でテキストを生成: 大規模言語モデルを使用して、ベクトル データベースから取得した情報に基づいて出力テキストを生成します。
キー モジュール
AI Edge RAG SDK は、RAG パイプライン用に次の主要なモジュールと API を提供します。
- 言語モデル: オープン プロンプト API を備えた LLM モデル。ローカル(デバイス上)またはサーバーベースのいずれか。この API は LanguageModel インターフェースに基づいています。
- テキスト エンベディング モデル: 構造化テキストと非構造化テキストをセマンティック検索用のエンベディング ベクトルに変換します。この API は Embedder インターフェースに基づいています。
- ベクトルストア: ベクトルストアは、データチャンクから派生したエンベディングとメタデータを保持します。クエリを実行して、類似するチャンクや完全一致を取得できます。この API は VectorStore インターフェースに基づいています。
- セマンティック メモリ: クエリが指定された場合に上位 k 個の関連するチャンクを取得するためのセマンティック リトリーバーとして機能します。この API は SemanticMemory インターフェースに基づいています。
- テキストのチャンク化: ユーザーデータを小さな部分に分割して、インデックス登録を容易にします。この API は TextChunker インターフェースに基づいています。
SDK には、複数の RAG コンポーネントを 1 つのパイプラインに結合するチェーンが用意されています。チェーンを使用して、取得モデルとクエリモデルをオーケストレートできます。この API は Chain インターフェースに基づいています。まず、Retrieval and Inference chain または Retrieval chain を試してください。