OptimumTextEmbedder

OptimumTextEmbedder

Hugging Face Optimum 라이브러리로 로드한 모델을 사용해 텍스트를 임베딩하는 컴포넌트예요.

출처: 문서

본문

OptimumTextEmbedder는 HuggingFace Optimum 라이브러리로 로드한 모델로 텍스트 문자열을 임베딩해요. 고속 추론을 위해 ONNX runtime을 사용하죠.

기본 모델은 sentence-transformers/all-mpnet-base-v2예요.

다른 임베더와 마찬가지로 이 컴포넌트는 지시사항을 포함하기 위해 접두사(와 접미사)를 추가할 수 있어요. 자세한 내용은 컴포넌트의 API 참조를 확인하세요.

다양한 모드로 제어할 수 있는 Optimum Embedder 특유의 유용한 파라미터가 세 가지 있어요.

  • Pooling: 가변 크기의 문장 임베딩에서 고정 크기의 문장 임베딩을 생성해요.
  • Optimization: 모델에 그래프 최적화를 적용하고 추론 속도를 높여요.
  • Quantization: 계산 및 메모리 비용을 줄여요.

사용 가능한 모든 모드의 세부 내용은 Optimum API 참조에서 확인할 수 있어요.

인증

Hugging Face API 토큰 인증은 Serverless Inference API나 Inference Endpoints를 통해 비공개 또는 gated 모델에 접근할 때만 필요해요.

이 컴포넌트는 HF_API_TOKEN 또는 HF_TOKEN 환경 변수를 사용하고, 초기화할 때 Hugging Face API 토큰을 넘길 수도 있어요. 자세한 내용은 Secret Management 페이지를 참고하세요.

더 알아보기 (Learn more)

Haystack에서 이 통합을 쓰려면 설치해요.

pip install optimum-haystack

단독으로 쓰기

from haystack_integrations.components.embedders.optimum import OptimumTextEmbedder


text_to_embed = "I love pizza!"

text_embedder = OptimumTextEmbedder(model="sentence-transformers/all-mpnet-base-v2")

print(text_embedder.run(text_to_embed))

# {'embedding': [-0.07804739475250244, 0.1498992145061493, ...]}

파이프라인에서 쓰기

이 예제는 실행하려면 GPU 지원이 필요하다는 점을 참고하세요.

from haystack import Pipeline


from haystack_integrations.components.embedders.optimum import (
    OptimumTextEmbedder,
    OptimumEmbedderPooling,
    OptimumEmbedderOptimizationConfig,
    OptimumEmbedderOptimizationMode,
)


pipeline = Pipeline()

embedder = OptimumTextEmbedder(
    model="intfloat/e5-base-v2",
    normalize_embeddings=True,
    onnx_execution_provider="CUDAExecutionProvider",
    optimizer_settings=OptimumEmbedderOptimizationConfig(
        mode=OptimumEmbedderOptimizationMode.O4,
        for_gpu=True,
    ),
    working_dir="/tmp/optimum",
    pooling_mode=OptimumEmbedderPooling.MEAN,
)

pipeline.add_component("embedder", embedder)

results = pipeline.run(
    {
        "embedder": {
            "text": "Ex profunditate antique doctrinae, Ad caelos supra semper, Hoc incantamentum evoco, draco apparet, Incantamentum iam transactum est",
        },
    },
)

print(results["embedder"]["embedding"])