Jina AI

Jina AI / jina-embeddings-v3

다국어 텍스트 임베딩 모델, 총 89개 언어 지원, 시퀀스당 최대 8192개의 토큰을 처리할 수 있습니다.

jina-embeddings-v3 개요

jina-embeddings-v3** 모델은 5억 7천만 개의 파라미터와 최대 입력 길이 8192토큰을 지원하는 JinaAI의 새로운 다국어 텍스트 임베딩 툴입니다. 이 모델은 다국어 데이터 처리 및 긴 문맥 검색 작업을 처리할 수 있으며 94개 언어에 걸쳐 최첨단(SOTA) 성능을 구현합니다. 이 모델은 쿼리 문서 검색, 클러스터링, 분류, 텍스트 매칭 등 다양한 작업에 적합한 임베딩을 생성합니다.

Jina-embeddings-v3는 필요에 따라 출력 임베딩 크기를 사용자 정의할 수 있는 Matryoshka 임베딩**도 지원합니다. 기본 출력 크기는 1024이지만 성능 저하 없이 32, 64, 128, 256, 512, 768로 줄일 수 있어 다양한 애플리케이션에 맞게 조정할 수 있습니다.

Jina v2 모델과 jina-embeddings-v3를 비교해보세요:

모델파라미터 크기임베딩 치수텍스트
jina-embeddings-v3570M유연한 임베딩 크기(기본값: 1024)다국어 텍스트 임베딩, 총 94개 언어 지원
jina-embeddings-v2-small-en33M512영어 단일 언어 임베딩
jina-embeddings-v2-base-en137M768영어 단일 언어 임베딩
jina-embeddings-v2-base-zh161M768중국어-영어 이중 언어 임베딩
jina-embeddings-v2-base-de161M768독일어-영어 이중 언어 임베딩
jina-embeddings-v2-base-code161M768영어 및 프로그래밍 언어

jina-embeddings-v3로 임베딩을 만드는 방법

벡터 임베딩을 생성하는 방법에는 크게 두 가지가 있습니다:

  • PyMilvus](https://github.com/milvus-io/pymilvus): jina-embeddings-v3 모델을 원활하게 통합하는 Milvus 용 Python SDK.
  • SentenceTransformer 라이브러리: Python 라이브러리 sentence-transformer.

벡터 임베딩이 생성되면 밀버스가 제공하는 완전 관리형 벡터 데이터베이스 서비스인 질리즈 클라우드에 저장하고 의미 유사도 검색에 사용할 수 있습니다. 다음은 네 가지 주요 단계입니다:

  • 질리즈 클라우드 계정을 무료로 가입합니다.
  • 서버리스 클러스터를 설정](https://docs.zilliz.com/docs/create-cluster#set-up-a-free-cluster)하고 퍼블릭 엔드포인트 및 API 키를 발급받습니다.
  • 벡터 컬렉션을 생성하고 벡터 임베딩을 삽입합니다.
  • 저장된 임베딩에 대해 시맨틱 검색을 실행합니다.

파이밀버스를 통해 임베딩을 생성하고 질리즈 클라우드에 삽입하여 시맨틱 검색하기

pymilvus.model.dense에서 SentenceTransformerEmbeddingFunction을 가져옵니다.
pymilvus에서 MilvusClient를 가져옵니다.

ef = SentenceTransformerEmbeddingFunction("jinaai/jina-embeddings-v3", trust_remote_code=True)

docs = [
   "인공 지능은 1956년에 학문 분야로 설립되었습니다.",
   "앨런 튜링은 AI 분야에서 실질적인 연구를 수행한 최초의 인물입니다.",
   "런던의 메이다 베일에서 태어난 튜링은 영국 남부에서 자랐습니다.", "튜링은 인공지능을 연구한 최초의 사람입니다.".
]
# 문서에 대한 임베딩 생성
docs_embedings = ef(docs)

queries = ["인공 지능은 언제 설립되었나요",
          "앨런 튜링은 어디에서 태어났나요?"]]
# 쿼리에 대한 임베딩 생성하기
쿼리_임베딩 = ef(쿼리)

# 퍼블릭 엔드포인트와 API 키로 질리즈 클라우드에 연결하기
client = 밀버스클라이언트(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

컬렉션 = "문서"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    collection_name=COLLECTION,
    dimension=ef.dim,
    auto_id=True)

문서의 경우 zip(docs, docs_embeddings)에 임베딩합니다:
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
results = client.search(
    collection_name=COLLECTION,
    data = 쿼리_임베딩,
    일관성_레벨="강함",
    output_fields=["text"])

자세한 내용은 Jina AI 문서 페이지를 참조하세요.

문장 트랜스포머를 통해 임베딩을 생성하고 질리츠 클라우드에 삽입하여 시맨틱 검색하기

sentence_transformers에서 문장 트랜스포머를 가져옵니다.
pymilvus에서 밀버스 클라이언트 가져오기

model = SentenceTransformer("jinaai/jina-embeddings-v3", trust_remote_code=True)

docs = [
   "인공 지능은 1956년에 학문 분야로 설립되었습니다.",
   "앨런 튜링은 AI 분야에서 실질적인 연구를 수행한 최초의 인물입니다.",
   "런던의 메이다 베일에서 태어난 튜링은 영국 남부에서 자랐습니다.", "튜링은 인공지능을 연구한 최초의 사람입니다.".
]
# 문서에 대한 임베딩 생성
docs_embeddings = model.encode(docs, normalize_embeddings=True)

queries = ["query: 인공 지능은 언제 설립되었나요?"
           "query: 앨런 튜링은 언제 태어났나요?" ]
# 쿼리에 대한 임베딩 생성하기
query_embeddings = model.encode(queries, normalize_embeddings=True)

# 퍼블릭 엔드포인트와 API 키로 질리즈 클라우드에 연결하기
client = 밀버스클라이언트(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

컬렉션 = "문서"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    collection_name=COLLECTION,
    dimension=512,
    auto_id=True)

문서의 경우 zip(docs, docs_embeddings)에 임베딩합니다:
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
results = client.search(
    collection_name=COLLECTION,
    data = 쿼리_임베딩,
    일관성_레벨="강함",
    output_fields=["text"])

추가 읽기

  • Jina AI로 텍스트 임베딩 학습하기](https://zilliz.com/blog/training-text-embeddings-with-jina-ai)
  • 검색과 멀티모달 RAG를 위한 일반적인 텍스트-이미지 표현 학습](https://zilliz.com/blog/clip-to-jinaclip-general-text-image-search-multimodal-rag)
  • 데이터에 적합한 임베딩 모델 선택하기](https://zilliz.com/blog/choosing-the-right-embedding-model-for-your-data)
  • 임베딩 모델 평가하기](https://zilliz.com/learn/evaluating-your-embedding-model)
  • 나만의 텍스트 임베딩 모델 훈련하기](https://zilliz.com/learn/training-your-own-text-embedding-model)
  • RAG 애플리케이션을 위한 웹사이트 청킹 및 임베딩 초보자 가이드
  • RAG란 무엇인가요?