Voyage AI 랭커Compatible with Milvus 2.6.x

Voyage AI Ranker는 시맨틱 리랭킹을 통해 검색 관련성을 향상시키는 Voyage AI의 전문 리랭커를 활용합니다. 검색 증강 생성(RAG) 및 검색 애플리케이션에 최적화된 고성능 리랭크 기능을 제공합니다.

Voyage AI Ranker는 특히 다음과 같은 애플리케이션에 유용합니다:

  • 재랭크 작업을 위해 특별히 훈련된 모델을 통한 고급 의미론적 이해

  • 프로덕션 워크로드에 최적화된 추론을 통한 고성능 처리

  • 다양한 문서 길이를 처리하기 위한 유연한 잘라내기 제어 기능

  • 다양한 모델 변형(재랭크-2, 재랭크-라이트 등)에 걸쳐 미세 조정된 성능

전제 조건

Milvus에서 Voyage AI Ranker를 구현하기 전에 다음이 필요합니다:

  • 재랭크할 텍스트가 포함된 VARCHAR 필드가 있는 Milvus 컬렉션

  • 재랭커에 액세스할 수 있는 유효한 Voyage AI API 키. Voyage AI의 플랫폼에 가입하여 API 자격 증명을 받습니다. 다음 중 하나를 수행할 수 있습니다:

    • VOYAGE_API_KEY 환경 변수를 설정하거나

    • 랭커 구성에서 직접 API 키를 지정합니다.

Voyage AI 랭커 함수 생성하기

Milvus 애플리케이션에서 Voyage AI 랭커를 사용하려면 재랭킹 작동 방식을 지정하는 함수 객체를 생성하세요. 이 함수는 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

재랭크에 사용할 모델 서비스 제공업체입니다.

"voyageai"

model_name

Voyage AI 플랫폼에서 지원되는 모델 중에서 사용할 Voyage AI 리랭커입니다.

사용 가능한 리랭커 목록은 Voyage AI 설명서를 참조하세요.

"rerank-2.5"

queries

재랭크 모델에서 관련성 점수를 계산하는 데 사용하는 쿼리 문자열 목록입니다. 쿼리 문자열의 수는 검색 작업의 쿼리 수와 정확히 일치해야 하며(텍스트 대신 쿼리 벡터를 사용하는 경우에도 마찬가지), 그렇지 않으면 오류가 보고됩니다.

["검색 쿼리"]

max_client_batch_size

No

모델 서비스가 모든 데이터를 한 번에 처리하지 못할 수 있으므로 여러 요청에서 모델 서비스에 액세스하기 위한 배치 크기를 설정합니다.

128 (기본값)

truncation

No

쿼리 및 문서의 "컨텍스트 길이 제한"을 충족하기 위해 입력을 잘라낼지 여부입니다.

  • 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 환경 변수를 찾습니다.

"YOUR-VOYAGE-API-KEY"

모든 모델 랭커에서 공유되는 일반 파라미터(예: provider, queries)는 모델 랭커 만들기를 참조하세요.

보이저 AI 랭커를 표준 벡터 검색에 적용하려면 다음과 같이 하세요:

# 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
피드백

이 페이지가 도움이 되었나요?