사용법 (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