모델별 실행 레시피

최종 업데이트

글·사진·영상·녹음을 한 색인에서 검색하기, Jina v5 Omni

텍스트 색인을 유지하고 다른 형식의 질문을 연결할 수 있어요.

Jina v5 Omni는 텍스트·이미지·영상·오디오를 1,024차원 공통 벡터 공간에 놓고 text-small과 정렬돼요. 모델은 CC BY-NC 4.0이므로 상업 사용 전에 조건을 확인해야 합니다.

실행 조건과 핵심 내용
  • text-small로 문서를 색인하고 omni-small에서 이미지·영상·오디오 질의를 만들 수 있어요.
  • 가중치 1.74B, 벡터 1,024차원이며 CC BY-NC 4.0이에요.

텍스트 색인을 그대로 두고 검색 입력을 늘려요

Jina v5 Omni로 사진·영상·오디오도 검색 벡터로 바꿀 수 있어요. 아래 데모에서는 text-small로 회의록을 인코딩하고 정렬된 omni-small로 사진 질의를 인코딩해 공통 공간에서 순위를 매깁니다. 이 예제는 메모리 내 한 번 검색이며 디스크 색인을 저장하거나 재사용하지 않습니다.

먼저 make_meeting_slide.py를 실행해 검색 이미지 meeting-slide.jpg를 만드세요. 검색 코드는 jina_search.py로 저장한 뒤 실행하며, 회의 사진과 가까운 회의록이 위에 출력됩니다.

jina_search.py — 사진으로 회의록 검색
from PIL import Image
from sentence_transformers import SentenceTransformer

text_model = SentenceTransformer(
    "jinaai/jina-embeddings-v5-text-small",
    revision="dd76d535f5447ca3897a9c893fb1e612ead98192",
    trust_remote_code=True,
    model_kwargs={"default_task": "retrieval"},
)
omni_model = SentenceTransformer(
    "jinaai/jina-embeddings-v5-omni-small",
    revision="950200abde3a3bcf3d5bdfe5d28fb5bb5e7dfbb0",
    trust_remote_code=True,
    model_kwargs={"default_task": "retrieval", "modality": "vision"},
)
minutes = [
    "title: Budget review | text: The team moved the Q4 review to Thursday at 10 a.m.",
    "title: Product launch | text: The launch checklist assigns the demo to Mina.",
]
doc_vectors = text_model.encode_document(minutes, normalize_embeddings=True)
photo = Image.open("meeting-slide.jpg").convert("RGB")
query_vector = omni_model.encode_query(photo, normalize_embeddings=True)
scores = omni_model.similarity(query_vector, doc_vectors)[0]
for index in scores.argsort(descending=True).tolist():
    print(f"{float(scores[index]):.4f}\t{minutes[index]}")
두 체크포인트 revision을 2026-10-16 스냅샷으로 고정했습니다.
텍스트·이미지 검색에 필요한 패키지
python -m venv .venv
source .venv/bin/activate
python -m pip install -U 'transformers>=5.1' sentence-transformers pillow torch
make_meeting_slide.py — 입력 이미지 생성
from PIL import Image, ImageDraw

image = Image.new("RGB", (1000, 700), "#f4f1e8")
draw = ImageDraw.Draw(image)
draw.rounded_rectangle((70, 70, 930, 630), radius=24, fill="white", outline="#26354a", width=4)
draw.text((130, 145), "Q4 BUDGET REVIEW", fill="#26354a")
draw.text((130, 235), "Thursday | 10:00 AM", fill="#26354a")
draw.text((130, 335), "Agenda: operating costs and hiring plan", fill="#26354a")
image.save("meeting-slide.jpg", quality=92)
print("saved meeting-slide.jpg")
이 코드를 `make_meeting_slide.py`에 저장해 실행하면 예제 이미지가 생겨요.
이미지 생성 후 검색 실행
python make_meeting_slide.py
python jina_search.py
처음 실행할 때 체크포인트를 내려받고 순위와 점수를 출력합니다.
노트와 녹음 장비가 있는 작업 책상
모델을 바꾸기 전 문서 색인으로 먼저 검색을 확인해요.

같은 검색 집합으로 색인 이득을 재요

이 코드는 text-small과 omni-small을 한 프로세스에서 불러와 한 번 검색하는 최소 예제예요. 재사용할 색인이 필요하면 문서 벡터를 파일이나 벡터 DB에 저장하고 체크포인트1 revision·태스크 설정을 함께 기록하세요.

Omni-small은 약 1.74B 매개변수, 1,024차원, 최대 32K 시퀀스를 카드에 표시해요. 32K는 모델 입력 한도이며 긴 영상을 무제한 프레임2으로 다룬다는 뜻은 아니므로, 인덱싱할 영상 길이와 샘플링 설정도 기록하세요.

음성 파일이 처리 단계를 지나 결과물로 정리되는 모습
같은 질문을 글·그림·음성 형식으로 비교할 수 있어요.

검색 태스크와 사용 조건을 확인해요

Sentence Transformers에서는 Omni 모델을 default_task='retrieval'로 불러온 뒤 encode_query()와 encode_document()를 사용해요. 이미지·영상·오디오도 질의나 문서 역할을 지정해 입력할 수 있어요. text-small 색인과 omni-small 질의를 비교할 때는 양쪽에 같은 태스크 어댑터를 적용해요.

모델 카드에는 CC BY-NC 4.0 라이선스가 적용돼요. 조직 업무에 사용하기 전에는 라이선스가 허용하는 이용 범위를 확인해요. 결과 표에는 파일 유형, 색인 날짜, 모델 revision, 태스크, 색인 저장량을 함께 기록해요.

상업 서비스에 넣을 목적이라면 이 모델을 먼저 고르지 마세요. 가중치 라이선스가 비상업 조건이므로, 수익이 발생하는 기능에는 허용 범위를 확인한 다른 모델을 비교해야 해요.

문서 더미와 검색 시스템을 실행하는 소형 컴퓨터
서로 다른 파일을 공통 벡터 공간에서 찾습니다.

용어 각주

  1. 체크포인트 — 학습된 모델의 가중치 등을 저장한 파일입니다. 같은 모델 계열도 버전이나 용도에 따라 다른 체크포인트를 쓸 수 있습니다.

    본문으로 돌아가기
  2. 프레임 — 영상의 한 장면을 이루는 단일 이미지입니다.

    본문으로 돌아가기

자주 묻는 질문

이 글에서 가장 먼저 확인할 것은 무엇인가요?
Jina v5 Omni는 텍스트·이미지·영상·오디오를 1,024차원 공통 벡터 공간에 놓고 text-small과 정렬돼요. 모델은 CC BY-NC 4.0이므로 상업 사용 전에 조건을 확인해야 합니다.
필요한 메모리는 어느 정도인가요?
Jina v5 Omni로 사진·영상·오디오도 검색 벡터로 바꿀 수 있어요. 아래 데모에서는 text-small로 회의록을 인코딩하고 정렬된 omni-small로 사진 질의를 인코딩해 공통 공간에서 순위를 매깁니다. 이 예제는 메모리 내 한 번 검색이며 디스크 색인을 저장하거나 재사용하지 않습니다.
선택하지 않는 편이 좋은 경우는 언제인가요?
상업 서비스에 넣을 목적이라면 이 모델을 먼저 고르지 마세요. 가중치 라이선스가 비상업 조건이므로, 수익이 발생하는 기능에는 허용 범위를 확인한 다른 모델을 비교해야 해요.
조건과 출처는 어디서 확인하나요?
모델 카드에는 CC BY-NC 4.0 라이선스가 적용돼요. 조직 업무에 사용하기 전에는 라이선스가 허용하는 이용 범위를 확인해요. 결과 표에는 파일 유형, 색인 날짜, 모델 revision, 태스크, 색인 저장량을 함께 기록해요.