3.5. Llama モデルへのコンテンツの取り込み
Jupyter ノートブック内から生のテキストをモデルに取り込むことで、取得可能なコンテンツをすばやくカスタマイズしてプロトタイプ化できます。この方法により、別個の取り込みパイプラインが不要になります。LlamaStack SDK を使用すると、リアルタイムでテキストを埋め込んでベクトルストアに保存できるため、即時に RAG ワークフローを有効にできます。
前提条件
- vLLM モデルサーバーを使用して Llama 3.2 モデルをデプロイし、LlamaStack を統合した。
- データサイエンスプロジェクト内にプロジェクトワークベンチを作成した。
- Jupyter ノートブックが開いており、ワークベンチ環境で実行中である。
-
ワークベンチ環境に
llama_stack_clientバージョン 0.2.14 以降がインストールされている。 - ベクトルデータベースのインスタンスが作成および設定済みであり、その識別子がわかっている。
手順
新しいノートブックセルで、
llama_stackクライアントパッケージをインストールします。%pip install llama_stack
%pip install llama_stackCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいノートブックセルで、RAGDocument と LlamaStackClient をインポートします。
from llama_stack_client import RAGDocument, LlamaStackClient
from llama_stack_client import RAGDocument, LlamaStackClientCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいノートブックセルで、デプロイメントエンドポイントを
base_urlパラメーターに割り当てて、LlamaStackClient インスタンスを作成します。client = LlamaStackClient(base_url="<your deployment endpoint>")
client = LlamaStackClient(base_url="<your deployment endpoint>")Copy to Clipboard Copied! Toggle word wrap Toggle overflow 利用可能なモデルをリスト表示します。
# Fetch all registered models models = client.models.list()
# Fetch all registered models models = client.models.list()Copy to Clipboard Copied! Toggle word wrap Toggle overflow 登録済みモデルのリストに Llama モデルとエンベディングモデルが含まれていることを確認します。登録済みモデルのリストの例を次に示します。
[Model(identifier='llama-32-3b-instruct', metadata={}, api_model_type='llm', provider_id='vllm-inference', provider_resource_id='llama-32-3b-instruct', type='model', model_type='llm'), Model(identifier='ibm-granite/granite-embedding-125m-english', metadata={'embedding_dimension': 768.0}, api_model_type='embedding', provider_id='sentence-transformers', provider_resource_id='ibm-granite/granite-embedding-125m-english', type='model', model_type='embedding')][Model(identifier='llama-32-3b-instruct', metadata={}, api_model_type='llm', provider_id='vllm-inference', provider_resource_id='llama-32-3b-instruct', type='model', model_type='llm'), Model(identifier='ibm-granite/granite-embedding-125m-english', metadata={'embedding_dimension': 768.0}, api_model_type='embedding', provider_id='sentence-transformers', provider_resource_id='ibm-granite/granite-embedding-125m-english', type='model', model_type='embedding')]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 最初の LLM と最初のエンベディングモデルを選択します。
model_id = next(m.identifier for m in models if m.model_type == "llm") embedding_model = next(m for m in models if m.model_type == "embedding") embedding_model_id = embedding_model.identifier embedding_dimension = embedding_model.metadata["embedding_dimension"]
model_id = next(m.identifier for m in models if m.model_type == "llm") embedding_model = next(m for m in models if m.model_type == "embedding") embedding_model_id = embedding_model.identifier embedding_dimension = embedding_model.metadata["embedding_dimension"]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいノートブックセルで、次のパラメーターを定義します。
-
vector_db_id: ベクトルデータベースを識別する一意の名前 (例:my_milvus_db)。 provider_id: Llama Stack ゲートウェイによって有効化されたコネクターキー。Milvus ベクトルデータベースの場合、このコネクターキーは"milvus"です。利用可能なコネクターをリスト表示することもできます。print(client.vector_dbs.list_providers()) # lists available connectors vector_db_id = "<your vector database ID>" provider_id = "<your provider ID>"
print(client.vector_dbs.list_providers()) # lists available connectors vector_db_id = "<your vector database ID>" provider_id = "<your provider ID>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
新しいノートブックセルで、エンベディングを保存するためのベクトルデータベースを登録または確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要このステップをスキップし、その結果としてベクトルデータベース ID でベクトルデータベースを登録しなかった場合、ベクトルデータベースにテキストを取り込もうとするとエラーが発生します。
新しいノートブックセルで、ベクトルストアに取り込む生のテキストを定義します。
# Example raw text passage raw_text = """ LlamaStack can embed raw text into a vector store for retrieval. This example ingests a small passage for demonstration. """
# Example raw text passage raw_text = """ LlamaStack can embed raw text into a vector store for retrieval. This example ingests a small passage for demonstration. """Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいノートブックセルに、生のテキストを格納する RAGDocument オブジェクトを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいノートブックのセルに生のテキストを取り込みます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいノートブックセルで、HTML ソースから RAGDocument を作成し、それをベクトルストアに取り込みます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいノートブックセルで、コンテンツをベクトルストアに取り込みます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
- 出力を確認して、取り込みが成功したことを確認します。取り込み後の通常の応答には、挿入されたテキストチャンクの数や警告やエラーが含まれています。
-
client.models.list()によって返されるモデルのリストには、Llama 3.2 モデルとエンベディングモデルが含まれています。