Jina AI

Jina AI / jina-embeddings-v2-base-en

영어 텍스트 및 긴 문서에 특화된 임베딩 모델, 최대 8192개의 토큰 시퀀스 지원

Jina 임베딩 v2 모델 소개

Jina 임베딩 v2 모델은 최대 입력 크기가 8,192 토큰으로 확장된 긴 문서를 처리하도록 설계되었습니다. 2024년 10월 현재, Jina AI 임베딩 V2에는 다음과 같은 변형이 있으며, 각 변형은 서로 다른 임베딩 요구 사항을 충족합니다:

jina-embeddings-v2-base-en 소개

jina-embeddings-v2-base-en은 최대 8192 토큰의 시퀀스 길이를 위한 영어 단일 언어 임베딩 모델입니다. 1억 3,700만 개의 파라미터로 학습되어 768차원 임베딩을 생성하는 Jina Embeddings v2 제품군의 중간 크기 또는 기본 변형입니다.

jina-embeddings-v2-small-en을 다른 Jina 임베딩 모델과 비교.

모델파라미터 크기임베딩 차원텍스트
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-v2-base-en으로 임베딩을 만드는 방법

벡터 임베딩을 생성하기 위해 jina-embeddings-v2-base-en 모델을 사용하는 방법에는 크게 두 가지가 있습니다:

  1. PyMilvus: jina-embeddings-v2-base-en 모델을 원활하게 통합하는 Milvus 용 Python SDK.
  2. SentenceTransformer 라이브러리: 파이썬 라이브러리 sentence-transformer.

파이밀버스를 통해 벡터 임베딩을 생성하고 질리즈 클라우드에 삽입하여 시맨틱 검색을 수행합니다.

pymilvus.model.dense에서 문장 트랜스포머 임베딩 함수를 가져옵니다.
pymilvus에서 MilvusClient를 가져옵니다.

ef = SentenceTransformerEmbeddingFunction("jinaai/jina-embeddings-v2-base-en", 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"])

자세한 내용은 파이밀버스 임베딩 모델 문서를 참조하세요.

센텐스 트랜스포머를 통해 벡터 임베딩을 생성하고 시맨틱 검색을 위해 질리즈 클라우드에 삽입하기

sentence_transformers에서 SentenceTransformer를 가져옵니다.
pymilvus에서 MilvusClient를 가져옵니다.

model = SentenceTransformer("jinaai/jina-embeddings-v2-base-en", 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=768,
    auto_id=True)

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

자세한 내용은 SentenceTransformer 문서를 참조하세요.