Voyage AI ランカーCompatible with Milvus 2.6.x

Voyage AI Rankerは、Voyage AIに特化したリランカーを活用し、セマンティックなリランキングによって検索の関連性を高めます。Voyage AI Rankerは、検索拡張世代(RAG)や検索アプリケーションに最適化された高性能なリランキング機能を提供します。

Voyage AI Rankerは特に以下のようなアプリケーションに最適です:

  • リランキングタスクのために特別に訓練されたモデルによる高度な意味理解

  • 本番ワークロード用に最適化された推論による高性能処理

  • 様々な長さのドキュメントを扱うための柔軟なトランケーションコントロール

  • さまざまなモデルバリアント(rerank-2、rerank-liteなど)にわたって微調整されたパフォーマンス。

前提条件

MilvusにVoyage AI Rankerを実装する前に、以下を確認してください:

  • MilvusコレクションにVARCHAR 、リランクされるテキストが含まれていること。

  • リランカーにアクセスできる有効なVoyage AI APIキー。Voyage AIプラットフォームにサインアップしてAPIクレデンシャルを取得してください。以下のいずれかを行います:

    • VOYAGE_API_KEY 環境変数を設定する。

    • ランカー設定に直接APIキーを指定する。

Voyage AI ランカー関数を作成する

Milvus アプリケーションで Voyage AI ランカーを使用するには、リランキングの動作方法を指定する Function オブジェクトを作成します。この関数はMilvusの検索操作に渡され、結果のランキングを向上させます。

from pymilvus import MilvusClient, Function, FunctionType

# Connect to your Milvus server
client = MilvusClient(
    uri="http://localhost:19530"  # Replace with your Milvus server URI
)

# Configure Voyage AI Ranker
voyageai_ranker = Function(
    name="voyageai_semantic_ranker",        # Unique identifier for your ranker
    input_field_names=["document"],         # VARCHAR field containing text to rerank
    function_type=FunctionType.RERANK,      # Must be RERANK for reranking functions
    params={
        "reranker": "model",                # Enables model-based reranking
        "provider": "voyageai",             # Specifies Voyage AI as the service provider
        "model_name": "rerank-2.5",           # Voyage AI reranker to use
        "queries": ["renewable energy developments"], # Query text for relevance evaluation
        "max_client_batch_size": 128,       # Optional: batch size for model service requests (default: 128)
        "truncation": True,                 # Optional: enable input truncation (default: True)
        # "credential": "your-voyage-api-key" # Optional: if not set, uses VOYAGE_API_KEY env var
    }
)
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.common.clientenum.FunctionType;
import io.milvus.v2.service.collection.request.CreateCollectionReq;

MilvusClientV2 client = new MilvusClientV2(ConnectConfig.builder()
        .uri("http://localhost:19530")
        .build());

CreateCollectionReq.Function ranker = CreateCollectionReq.Function.builder()
                       .functionType(FunctionType.RERANK)
                       .name("voyageai_semantic_ranker")
                       .inputFieldNames(Collections.singletonList("document"))
                       .param("reranker", "model")
                       .param("provider", "voyageai")
                       .param("model_name", "rerank-2.5")
                       .param("queries", "[\"renewable energy developments\"]")
                       .param("endpoint", "http://localhost:8080")
                       .param("max_client_batch_size", "128")
                       .param("truncation", "true")
                       .build();
// nodejs
// go
# restful

Voyage AI ランカー固有のパラメータ

以下のパラメータはVoyage AI ランカー固有のものです:

パラメータ

必須か?

パラメータ 説明

値 / 例

reranker

はい

モデルの再ランキングを有効にするには、"model" に設定する必要がある。

"model"

provider

Yes

リランキングに使用するモデルサービスプロバイダ。

"voyageai"

model_name

はい

Voyage AIプラットフォームでサポートされているモデルから使用するVoyage AIリランカー。

利用可能なリランカーのリストについては、Voyage AI ドキュメントを参照してください。

"rerank-2.5"

queries

はい

リランクモデルが関連性スコアを計算するために使用するクエリ文字列のリスト。クエリ文字列の数は、検索操作のクエリの数と正確に一致する必要があります(テキストの代わりにクエリベクトルを使用する場合も同様)。

[検索クエリ]

max_client_batch_size

いいえ

モデルサービスはすべてのデータを一度に処理するわけではないので、複数のリクエストでモデルサービスにアクセスする際のバッチサイズを設定します。

128 (デフォルト)

truncation

いいえ

クエリとドキュメントの「コンテキストの長さ制限」を満たすために入力を切り捨てるかどうか。

  • True の場合、リランカーモデルで処理する前に、クエリとドキュメントはコンテキストの長さの制限内に収まるように切り詰められます。

  • False の場合、クエリがrerank-2.5rerank-2.5-lite で8,000トークンを超えたとき、rerank-2 で4,000トークンを超えたとき、rerank-2-litererank-1 で2,000トークンを超えたとき、rerank-lite-1 で1,000トークンを超えたとき、あるいは、クエリのトークン数とドキュメントのトークン数の合計がrerank-2 で16,000を超えたとき、rerank-2-litererank-1 で8,000を超えたとき、rerank-lite-1 で4,000を超えたときにエラーが発生する。

True (デフォルト) またはFalse

credential

いいえ

Voyage AI API サービスにアクセスするための認証クレデンシャル。指定がない場合、システムはVOYAGE_API_KEY 環境変数を探します。

"あなたの-voyage-api-key"

すべてのモデルランカーで共有される一般的なパラメータ(例:providerqueries )については、モデルランカーの作成を参照してください。

Voyage AI Rankerを標準的なベクトル検索に適用する:

# Execute search with Voyage AI reranker
results = client.search(
    collection_name="your_collection",
    data=[your_query_vector],  # Replace with your query vector
    anns_field="dense_vector",                   # Vector field to search
    limit=5,                                     # Number of results to return
    output_fields=["document"],                  # Include text field for reranking
    ranker=voyageai_ranker,                     # Apply Voyage AI reranker
    consistency_level="Bounded"
)
import io.milvus.v2.common.ConsistencyLevel;
import io.milvus.v2.service.vector.request.SearchReq;
import io.milvus.v2.service.vector.response.SearchResp;
import io.milvus.v2.service.vector.request.data.EmbeddedText;

SearchReq searchReq = SearchReq.builder()
        .collectionName("your_collection")
        .data(Arrays.asList(new EmbeddedText("AI Research Progress"), new EmbeddedText("What is AI")))
        .annsField("vector_field")
        .limit(10)
        .outputFields(Collections.singletonList("document"))
        .functionScore(FunctionScore.builder()
                .addFunction(ranker)
                .build())
        .consistencyLevel(ConsistencyLevel.BOUNDED)
        .build();
SearchResp searchResp = client.search(searchReq);
// nodejs
// go
# restful

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
フィードバック

このページは役に立ちましたか ?