Jina AI
Jina AI의 임베딩 모델은 텍스트 입력을 숫자 표현으로 변환하여 텍스트의 의미를 파악할 수 있는 고성능 텍스트 임베딩 모델입니다. 이러한 모델은 고밀도 검색, 의미론적 텍스트 유사성, 다국어 이해와 같은 애플리케이션에서 탁월한 성능을 발휘합니다.
Milvus는 JinaEmbeddingFunction
클래스를 통해 Jina AI의 임베딩 모델과 통합됩니다. 이 클래스는 Jina AI 임베딩 모델을 사용하여 문서와 쿼리를 인코딩하고 임베딩을 Milvus 인덱싱과 호환되는 고밀도 벡터로 반환하는 메서드를 제공합니다. 이 기능을 활용하려면 Jina AI에서 API 키를 받으세요.
이 기능을 사용하려면 필요한 종속성을 설치하세요:
pip install --upgrade pymilvus
pip install "pymilvus[model]"
그런 다음 JinaEmbeddingFunction
을 인스턴스화합니다:
from pymilvus.model.dense import JinaEmbeddingFunction
jina_ef = JinaEmbeddingFunction(
model_name="jina-embeddings-v2-base-en", # Defaults to `jina-embeddings-v2-base-en`
api_key=JINAAI_API_KEY # Provide your Jina AI API key
)
매개변수
model_name
(문자열)인코딩에 사용할 Jina AI 임베딩 모델의 이름입니다. 예를 들어
jina-embeddings-v2-base-en
,jina-embeddings-v2-small-en
등과 같이 사용 가능한 Jina AI 임베딩 모델 이름 중 하나를 지정할 수 있습니다. 이 파라미터를 지정하지 않으면jina-embeddings-v2-base-en
이 사용됩니다. 사용 가능한 모델 목록은 Jina 임베딩을 참조하세요.api_key
(문자열)Jina AI API에 액세스하기 위한 API 키입니다.
문서용 임베딩을 만들려면 encode_documents()
메서드를 사용합니다:
docs = [
"Artificial intelligence was founded as an academic discipline in 1956.",
"Alan Turing was the first person to conduct substantial research in AI.",
"Born in Maida Vale, London, Turing was raised in southern England.",
]
docs_embeddings = jina_ef.encode_documents(docs)
# Print embeddings
print("Embeddings:", docs_embeddings)
# Print dimension and shape of embeddings
print("Dim:", jina_ef.dim, docs_embeddings[0].shape)
예상 출력은 다음과 유사합니다:
Embeddings: [array([-4.88487840e-01, -4.28095880e-01, 4.90086500e-01, -1.63274320e-01,
3.43437800e-01, 3.21476880e-01, 2.83173790e-02, -3.10403670e-01,
4.76985040e-01, -1.77410420e-01, -3.84803180e-01, -2.19224200e-01,
-2.52898000e-01, 6.62411900e-02, -8.58173100e-01, 1.05221800e+00,
...
-2.04462400e-01, 7.14229800e-01, -1.66823000e-01, 8.72551440e-01,
5.53560140e-01, 8.92506300e-01, -2.39408610e-01, -4.22413560e-01,
-3.19551350e-01, 5.59153850e-01, 2.44338100e-01, -8.60452100e-01])]
Dim: 768 (768,)
쿼리에 대한 임베딩을 만들려면 encode_queries()
메서드를 사용합니다:
queries = ["When was artificial intelligence founded",
"Where was Alan Turing born?"]
query_embeddings = jina_ef.encode_queries(queries)
print("Embeddings:", query_embeddings)
print("Dim", jina_ef.dim, query_embeddings[0].shape)
예상 출력은 다음과 유사합니다:
Embeddings: [array([-5.99164660e-01, -3.49827350e-01, 8.22405160e-01, -1.18632730e-01,
5.78107540e-01, 1.09789170e-01, 2.91604200e-01, -3.29306450e-01,
2.93779640e-01, -2.17880800e-01, -6.84535440e-01, -3.79752000e-01,
-3.47541800e-01, 9.20846100e-02, -6.13804400e-01, 6.31312800e-01,
...
-1.84993740e-02, 9.38629150e-01, 2.74858470e-02, 1.09396360e+00,
3.96270750e-01, 7.44445800e-01, -1.95404050e-01, -6.08383200e-01,
-3.75076300e-01, 3.87512200e-01, 8.11889650e-01, -3.76407620e-01])]
Dim 768 (768,)