임베딩 제공자를 선택할 때 필요와 선호도에 따라 고려할 수 있는 여러 요소가 있습니다:
Anthropic은 자체 임베딩 모델을 제공하지 않습니다. 위의 모든 고려 사항을 포함하는 다양한 옵션과 기능을 갖춘 임베딩 제공자는 Voyage AI입니다.
Voyage AI는 최첨단 임베딩 모델을 만들고 금융 및 의료와 같은 특정 산업 도메인을 위한 커스터마이즈된 모델이나 개별 고객을 위한 맞춤형 미세 조정 모델을 제공합니다.
이 가이드의 나머지 부분은 Voyage AI를 위한 것이지만, 특정 사용 사례에 가장 적합한 것을 찾기 위해 다양한 임베딩 공급업체를 평가해야 합니다.
Voyage는 다음 텍스트 임베딩 모델을 사용할 것을 권장합니다:
| 모델 | 컨텍스트 길이 | 임베딩 차원 | 설명 |
|---|---|---|---|
voyage-3-large | 32,000 | 1024 (기본값), 256, 512, 2048 | 최고의 범용 및 다국어 검색 품질. 자세한 내용은 블로그 게시물을 참조하세요. |
voyage-3.5 | 32,000 | 1024 (기본값), 256, 512, 2048 | 범용 및 다국어 검색 품질에 최적화되었습니다. 자세한 내용은 블로그 게시물을 참조하세요. |
voyage-3.5-lite | 32,000 | 1024 (기본값), 256, 512, 2048 | 지연 시간과 비용에 최적화되었습니다. 자세한 내용은 블로그 게시물을 참조하세요. |
voyage-code-3 | 32,000 | 1024 (기본값), 256, 512, 2048 | 코드 검색에 최적화되었습니다. 자세한 내용은 블로그 게시물을 참조하세요. |
voyage-finance-2 | 32,000 | 1024 | 금융 검색 및 RAG에 최적화되었습니다. 자세한 내용은 블로그 게시물을 참조하세요. |
voyage-law-2 | 16,000 | 1024 | 법률 및 장문맥 검색 및 RAG에 최적화되었습니다. 또한 모든 도메인에서 성능이 향상되었습니다. 자세한 내용은 블로그 게시물을 참조하세요. |
추가로 다음 멀티모달 임베딩 모델이 권장됩니다:
| 모델 | 컨텍스트 길이 | 임베딩 차원 | 설명 |
|---|---|---|---|
voyage-multimodal-3 | 32000 | 1024 | PDF 스크린샷, 슬라이드, 표, 그림 등과 같은 콘텐츠가 풍부한 이미지와 인터리빙된 텍스트를 벡터화할 수 있는 풍부한 멀티모달 임베딩 모델입니다. 자세한 내용은 블로그 게시물을 참조하세요. |
어떤 텍스트 임베딩 모델을 사용할지 결정하는 데 도움이 필요하신가요? FAQ를 확인하세요.
Voyage 임베딩에 액세스하려면:
export VOYAGE_API_KEY="<your secret key>"아래에 설명된 대로 공식 voyageai Python 패키지를 사용하거나 HTTP 요청을 통해 임베딩을 얻을 수 있습니다.
voyageai 패키지는 다음 명령을 사용하여 설치할 수 있습니다:
pip install -U voyageai그런 다음 클라이언트 객체를 생성하고 텍스트를 임베딩하는 데 사용할 수 있습니다:
import voyageai
vo = voyageai.Client()
# 이것은 자동으로 환경 변수 VOYAGE_API_KEY를 사용합니다.
# 또는 vo = voyageai.Client(api_key="<your secret key>")를 사용할 수 있습니다
texts = ["Sample text 1", "Sample text 2"]
result = vo.embed(texts, model="voyage-3.5", input_type="document")
print(result.embeddings[0])
print(result.embeddings[1])result.embeddings는 각각 1024개의 부동소수점 숫자를 포함하는 두 개의 임베딩 벡터 목록입니다. 위의 코드를 실행한 후 두 임베딩이 화면에 인쇄됩니다:
[-0.013131560757756233, 0.019828535616397858, ...] # "Sample text 1"에 대한 임베딩
[-0.0069352793507277966, 0.020878976210951805, ...] # "Sample text 2"에 대한 임베딩임베딩을 생성할 때 embed() 함수에 몇 가지 다른 인수를 지정할 수 있습니다.
Voyage Python 패키지에 대한 자세한 내용은 Voyage 문서를 참조하세요.
Voyage HTTP API를 요청하여 임베딩을 얻을 수도 있습니다. 예를 들어 터미널에서 curl 명령을 통해 HTTP 요청을 보낼 수 있습니다:
curl https://api.voyageai.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $VOYAGE_API_KEY" \
-d '{
"input": ["Sample text 1", "Sample text 2"],
"model": "voyage-3.5"
}'받을 응답은 임베딩과 토큰 사용량을 포함하는 JSON 객체입니다:
{
"object": "list",
"data": [
{
"embedding": [-0.013131560757756233, 0.019828535616397858 /* ... */],
"index": 0
},
{
"embedding": [-0.0069352793507277966, 0.020878976210951805 /* ... */],
"index": 1
}
],
"model": "voyage-3.5",
"usage": {
"total_tokens": 10
}
}Voyage HTTP API에 대한 자세한 내용은 Voyage 문서를 참조하세요.
Voyage 임베딩은 AWS Marketplace에서 사용할 수 있습니다. AWS에서 Voyage에 액세스하기 위한 지침은 Voyage AWS Marketplace 문서에서 확인할 수 있습니다.
다음 간단한 예제는 임베딩을 사용하는 방법을 보여줍니다.
검색할 6개 문서의 작은 말뭉치가 있다고 가정합니다
documents = [
"The Mediterranean diet emphasizes fish, olive oil, and vegetables, believed to reduce chronic diseases.",
"Photosynthesis in plants converts light energy into glucose and produces essential oxygen.",
"20th-century innovations, from radios to smartphones, centered on electronic advancements.",
"Rivers provide water, irrigation, and habitat for aquatic species, vital for ecosystems.",
"Apple's conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.",
"Shakespeare's works, like 'Hamlet' and 'A Midsummer Night's Dream,' endure in literature.",
]먼저 Voyage를 사용하여 각 문서를 임베딩 벡터로 변환합니다
import voyageai
vo = voyageai.Client()
# 문서 임베딩
doc_embds = vo.embed(documents, model="voyage-3.5", input_type="document").embeddings임베딩을 사용하면 벡터 공간에서 의미론적 검색/검색을 수행할 수 있습니다. 예제 쿼리가 주어지면,
query = "When is Apple's conference call scheduled?"다음으로 이를 임베딩으로 변환하고 임베딩 공간의 거리를 기반으로 가장 관련성 있는 문서를 찾기 위해 최근접 이웃 검색을 수행합니다.
import numpy as np
# 쿼리 임베딩
query_embd = vo.embed([query], model="voyage-3.5", input_type="query").embeddings[0]
# 유사성 계산
# Voyage 임베딩은 길이 1로 정규화되므로 내적과
# 코사인 유사성은 동일합니다.
similarities = np.dot(doc_embds, query_embd)
retrieved_id = np.argmax(similarities)
print(documents[retrieved_id])input_type="document"와 input_type="query"는 각각 문서와 쿼리를 임베딩하는 데 사용됩니다. 더 많은 사양은 Voyage Python 패키지 섹션에서 찾을 수 있습니다.
출력은 실제로 쿼리와 가장 관련성이 있는 5번째 문서입니다:
Apple's conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.임베딩을 사용한 RAG를 수행하는 방법에 대한 벡터 데이터베이스를 포함한 상세한 쿡북 세트를 찾고 있다면 RAG 쿡북을 확인하세요.
최신 가격 세부 정보는 Voyage의 가격 페이지를 방문하세요.
Was this page helpful?