사용법 (transformers·API·ONNX)

사용법 (transformers·API·ONNX)

jina-embeddings-v3는 여러 방법으로 쓸 수 있어요. 가장 쉬운 건 Jina Embedding API고, 그다음이 transformers·sentence-transformers·ONNX예요.

transformers로 사용하기

from transformers import AutoModel

model = AutoModel.from_pretrained("jinaai/jina-embeddings-v3", trust_remote_code=True)

texts = [
    "Follow the white rabbit.",
    "Sigue al conejo blanco.",
    "Suis le lapin blanc.",
    "跟着白兔走。",
]

# task 옵션: 'retrieval.query', 'retrieval.passage', 'separation', 'classification', 'text-matching'
embeddings = model.encode(texts, task="text-matching")

max_length와 truncate_dim

# 긴 입력을 잘라 쓰기
embeddings = model.encode(["Very long ... document"], max_length=2048)

# Matryoshka: 원하는 차원으로 잘라 내기
embeddings = model.encode(['Sample text'], truncate_dim=256)

sentence-transformers로 사용하기

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("jinaai/jina-embeddings-v3", trust_remote_code=True)
embeddings = model.encode(["What is the weather like in Berlin today?"], task="retrieval.query", prompt_name="retrieval.query")

ONNX로 사용하기

모델 카드에는 ONNX 추론 예시가 있어요. onnxruntime.InferenceSession으로 model.onnx를 로드하고, LoRA 태스크는 task_id 인자로 지정해요 (text-matching 등). 토큰화 후 mean pooling과 L2 정규화를 적용해요.

설치

pip install transformers torch einops
pip install 'numpy<2'
# FlashAttention-2 지원 GPU(A100, RTX 3090 등)라면
pip install flash-attn --no-build-isolation

더 알아보기