Tan Kim

jina-embeddings

Jina Embeddings

Jina AI가 개발한 텍스트 임베딩 모델 시리즈. 긴 컨텍스트 지원과 다국어 처리가 강점이며, RAG 파이프라인에 적합하다.

모델 라인업

모델 차원 최대 토큰 특징
jina-embeddings-v2-base-en 768 8,192 영어 특화, 기본형
jina-embeddings-v2-base-multilingual 768 8,192 다국어 (한국어 포함)
jina-embeddings-v3 1,024 8,192 최신, 다국어, Task 특화 지원

jina-embeddings-v3이 현재 최신 권장 모델.

주요 특징

긴 컨텍스트 (8,192 토큰)

기존 임베딩 모델(OpenAI ada-002: 8,192, Google: 2,048)과 비교해 긴 문서도 잘라내지 않고 처리 가능.

Task 특화 임베딩 (v3)

task 파라미터로 용도에 맞는 임베딩 생성:

task 설명
retrieval.query 검색 쿼리 임베딩 (RAG 질문 측)
retrieval.passage 검색 대상 문서 임베딩 (RAG 문서 측)
text-matching 유사도 계산, 중복 탐지
classification 텍스트 분류
separation 클러스터링

다국어 지원

한국어를 포함한 100개 이상 언어 지원. 한국어 문서 임베딩 시 별도 전처리 불필요.

API 사용법

REST API

curl https://api.jina.ai/v1/embeddings \
  -H "Authorization: Bearer $JINA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jina-embeddings-v3",
    "task": "retrieval.passage",
    "input": ["임베딩할 텍스트"]
  }'

Python

import requests
 
def embed(texts: list[str], task: str = "retrieval.passage") -> list[list[float]]:
    response = requests.post(
        "https://api.jina.ai/v1/embeddings",
        headers={"Authorization": f"Bearer {JINA_API_KEY}"},
        json={
            "model": "jina-embeddings-v3",
            "task": task,
            "input": texts,
        },
    )
    return [item["embedding"] for item in response.json()["data"]]
 
# 문서 인덱싱
doc_embeddings = embed(documents, task="retrieval.passage")
 
# 쿼리 검색
query_embedding = embed([query], task="retrieval.query")

RAG 파이프라인 적용

쿼리와 문서에 다른 task를 지정하는 것이 핵심.

[문서 인덱싱]  텍스트 → embed(task="retrieval.passage") → 벡터 DB 저장
[검색 시]     질문  → embed(task="retrieval.query")    → 코사인 유사도 검색

Gemini Embedding과 비교

항목 Jina v3 Gemini Embedding 2
최대 토큰 8,192 2,048
차원 1,024 768
다국어
Task 특화
무료 티어 ✅ (100만 토큰/월) Google Cloud 과금
한국어 품질 양호 양호

요금

  • 무료: 100만 토큰/월
  • 유료: $0.02 / 100만 토큰 (2025년 기준)
  • API 키 발급: https://jina.ai

관련 개념

  • RAG
  • Fine-tuning
  • LLM