Jina AI / jina-embeddings-v2-base-code
Milvus Integrated
작업: 임베딩
형태: 텍스트
유사성 측정법: 모두(정규화)
라이선스: Apache 2.0
차원: 768
최대 입력 토큰: 8192
가격: 무료
Jina 임베딩 v2 모델 소개
Jina 임베딩 v2 모델은 최대 입력 크기가 8,192토큰으로 확장된 긴 문서를 처리하도록 설계되었습니다. 2024년 10월 현재, Jina AI 임베딩 V2에는 다음과 같은 변형이 있으며, 각 변형은 서로 다른 임베딩 요구 사항을 충족합니다.
jina-embeddings-v2-base-code란?
'jina-embeddings-v2-base-code'는 영어와 30개의 인기 프로그래밍 언어를 이해하는 다국어 임베딩 모델로, 최대 8192 토큰 길이의 시퀀스를 지원합니다. 이 모델은 BERT 기반 아키텍처, 특히 더 긴 시퀀스를 관리하기 위한 대칭형 양방향 변형 ALiBi를 포함하는 JinaBERT를 활용합니다. 처음에는 GitHub의 코드 데이터셋으로 사전 학습된 이 모델은 다양한 도메인의 1억 5천만 개가 넘는 코딩 질문-답변 쌍과 문서 문자열 소스 코드 쌍으로 구성된 Jina AI의 방대한 컬렉션을 통해 더욱 향상되었습니다.
'jina-embeddings-v2-base-code'를 다른 Jina 임베딩 모델과 비교.
| 모델 | 파라미터 크기 | 임베딩 치수 | 텍스트 |
|---|---|---|---|
| jina-embeddings-v3 | 570M | 유연한 임베딩 크기(기본값: 1024) | 다국어 텍스트 임베딩, 총 94개 언어 지원 |
| jina-embeddings-v2-small-en | 33M | 512 | 영어 단일 언어 임베딩 |
| jina-embeddings-v2-base-en | 137M | 768 | 영어 단일 언어 임베딩 |
| jina-embeddings-v2-base-zh | 161M | 768 | 중국어-영어 이중 언어 임베딩 |
| jina-embeddings-v2-base-de | 161M | 768 | 독일어-영어 이중 언어 임베딩 |
| jina-embeddings-v2-base-code | 161M | 768 | 영어 및 프로그래밍 언어 |
jina-embeddings-v2-base-code를 사용하여 임베딩을 만드는 방법
벡터 임베딩을 생성하는 방법에는 크게 두 가지가 있습니다:
- PyMilvus:
jina-embeddings-v2-base-code모델을 원활하게 통합하는 Milvus용 Python SDK. - 센텐스 트랜스포머 라이브러리: 파이썬 라이브러리 '센텐스 트랜스포머'.
벡터 임베딩이 생성되면, 질리즈 클라우드(Milvus에서 제공하는 완전 관리형 벡터 데이터베이스)와 같은 벡터 데이터베이스에 저장하여 의미 유사도 검색에 사용할 수 있습니다.
다음은 네 가지 주요 단계입니다:
- 질리즈 클라우드 계정에 무료로 가입합니다.
- 서버리스 클러스터를 설정](https://docs.zilliz.com/docs/create-cluster#set-up-a-free-cluster)하고 퍼블릭 엔드포인트 및 API 키를 발급받습니다.
- 벡터 컬렉션을 생성하고 벡터 임베딩을 삽입합니다.
- 저장된 임베딩에 대해 시맨틱 검색을 실행합니다.
파이밀버스를 통해 임베딩을 생성하고 질리즈 클라우드에 삽입하여 시맨틱 검색하기
pymilvus.model.dense에서 SentenceTransformerEmbeddingFunction을 가져옵니다.
pymilvus에서 MilvusClient를 가져옵니다.
ef = SentenceTransformerEmbeddingFunction("jinaai/jina-embeddings-v2-base-code", 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"])
자세한 내용은 파이밀버스 임베딩 모델 문서(자세한 내용은 파이밀버스 임베딩 모델 문서(https://milvus.io/docs/embeddings.md))를 참조하세요.
센텐스 트랜스포머 라이브러리를 통해 임베딩을 생성하고 질리즈 클라우드에 삽입하여 시맨틱 검색을 합니다.
sentence_transformers에서 SentenceTransformer를 가져옵니다.
pymilvus에서 밀버스 클라이언트 가져오기
model = SentenceTransformer("jinaai/jina-embeddings-v2-base-code", 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"])
원활한 AI 워크플로
임베딩부터 확장 가능한 AI 검색까지—Zilliz Cloud를 사용하면 비교할 수 없는 속도와 효율성으로 임베딩을 저장, 인덱싱 및 검색할 수 있습니다.
Zilliz Cloud를 무료로 사용해 보세요

