3.5. Llama モデルへのコンテンツの取り込み


Jupyter ノートブック内から生のテキストをモデルに取り込むことで、取得可能なコンテンツをすばやくカスタマイズしてプロトタイプ化できます。この方法により、別個の取り込みパイプラインが不要になります。LlamaStack SDK を使用すると、リアルタイムでテキストを埋め込んでベクトルストアに保存できるため、即時に RAG ワークフローを有効にできます。

前提条件

  • vLLM モデルサーバーを使用して Llama 3.2 モデルをデプロイし、LlamaStack を統合した。
  • データサイエンスプロジェクト内にプロジェクトワークベンチを作成した。
  • Jupyter ノートブックが開いており、ワークベンチ環境で実行中である。
  • ワークベンチ環境に llama_stack_client バージョン 0.2.14 以降がインストールされている。
  • ベクトルデータベースのインスタンスが作成および設定済みであり、その識別子がわかっている。

手順

  1. 新しいノートブックセルで、llama_stack クライアントパッケージをインストールします。

    %pip install llama_stack
    Copy to Clipboard Toggle word wrap
  2. 新しいノートブックセルで、RAGDocument と LlamaStackClient をインポートします。

    from llama_stack_client import RAGDocument, LlamaStackClient
    Copy to Clipboard Toggle word wrap
  3. 新しいノートブックセルで、デプロイメントエンドポイントを base_url パラメーターに割り当てて、LlamaStackClient インスタンスを作成します。

    client = LlamaStackClient(base_url="<your deployment endpoint>")
    Copy to Clipboard Toggle word wrap
  4. 利用可能なモデルをリスト表示します。

    # Fetch all registered models
    models = client.models.list()
    Copy to Clipboard Toggle word wrap
  5. 登録済みモデルのリストに 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')]
    Copy to Clipboard Toggle word wrap
  6. 最初の 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"]
    Copy to Clipboard Toggle word wrap
  7. 新しいノートブックセルで、次のパラメーターを定義します。

    • 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>"
      Copy to Clipboard Toggle word wrap
  8. 新しいノートブックセルで、エンベディングを保存するためのベクトルデータベースを登録または確認します。

    _ = client.vector_dbs.register(
    vector_db_id=vector_db_id,
    embedding_model=embedding_model_id,
    embedding_dimension=embedding_dimension,
    provider_id=provider_id,
    )
    print(f"Registered vector DB: {vector_db_id}")
    Copy to Clipboard Toggle word wrap
    重要

    このステップをスキップし、その結果としてベクトルデータベース ID でベクトルデータベースを登録しなかった場合、ベクトルデータベースにテキストを取り込もうとするとエラーが発生します。

  9. 新しいノートブックセルで、ベクトルストアに取り込む生のテキストを定義します。

    # 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 Toggle word wrap
  10. 新しいノートブックセルに、生のテキストを格納する RAGDocument オブジェクトを作成します。

    document = RAGDocument(
    document_id="raw_text_001",
    content=raw_text,
    mime_type="text/plain",
    metadata={"source": "example_passage"},
    )
    Copy to Clipboard Toggle word wrap
  11. 新しいノートブックのセルに生のテキストを取り込みます。

    client.tool_runtime.rag_tool.insert(
        documents=[document],
        vector_db_id=vector_db_id,
        chunk_size_in_tokens=100,
    )
    print("Raw text ingested successfully")
    Copy to Clipboard Toggle word wrap
  12. 新しいノートブックセルで、HTML ソースから RAGDocument を作成し、それをベクトルストアに取り込みます。

    source = "https://www.paulgraham.com/greatwork.html"
    print("rag_tool> Ingesting document:", source)
    
    document = RAGDocument(
        document_id="document_1",
        content=source,
        mime_type="text/html",
        metadata={},
    )
    Copy to Clipboard Toggle word wrap
  13. 新しいノートブックセルで、コンテンツをベクトルストアに取り込みます。

    client.tool_runtime.rag_tool.insert(
        documents=[document],
        vector_db_id=vector_db_id,
        chunk_size_in_tokens=50,
    )
    print("Raw text ingested successfully")
    Copy to Clipboard Toggle word wrap

検証

  • 出力を確認して、取り込みが成功したことを確認します。取り込み後の通常の応答には、挿入されたテキストチャンクの数や警告やエラーが含まれています。
  • client.models.list() によって返されるモデルのリストには、Llama 3.2 モデルとエンベディングモデルが含まれています。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る