Claude Platform Docs
Messages모델 기능

임베딩

텍스트 임베딩은 의미적 유사성을 측정할 수 있게 해주는 텍스트의 수치적 표현입니다. 이 가이드에서는 임베딩과 그 응용 분야, 그리고 검색, 추천, 이상 탐지와 같은 작업에 임베딩 모델을 사용하는 방법을 소개합니다.

임베딩을 구현하기 전에

임베딩 제공업체를 선택할 때, 필요와 선호에 따라 고려할 수 있는 몇 가지 요소가 있습니다:

  • 데이터셋 크기 및 도메인 특수성: 모델 학습 데이터셋의 크기와 임베딩하려는 도메인과의 관련성입니다. 일반적으로 더 크거나 더 도메인에 특화된 데이터가 더 나은 도메인 내 임베딩을 생성합니다
  • 추론 성능: 임베딩 조회 속도와 엔드투엔드 "latency"(지연 시간)입니다. 이는 대규모 프로덕션 배포에서 특히 중요한 고려 사항입니다
  • 커스터마이징: 비공개 데이터에 대한 지속적인 학습 옵션 또는 매우 특정한 도메인을 위한 모델 특화 옵션입니다. 이는 고유한 어휘에 대한 성능을 향상시킬 수 있습니다

Anthropic에서 임베딩을 얻는 방법

Anthropic은 자체 임베딩 모델을 제공하지 않습니다. 앞서 언급한 모든 고려 사항을 아우르는 다양한 옵션과 기능을 갖춘 임베딩 제공업체 중 하나는 Voyage AI입니다.

Voyage AI는 최첨단 임베딩 모델을 만들며, 금융 및 의료와 같은 특정 산업 도메인을 위한 맞춤형 모델이나 개별 고객을 위한 맞춤 "fine-tuning"(미세 조정) 모델을 제공합니다.

이 가이드의 나머지 부분은 Voyage AI에 관한 것이지만, 특정 사용 사례에 가장 적합한 것을 찾기 위해 다양한 임베딩 공급업체를 평가해 보시기 바랍니다.

사용 가능한 모델

Voyage는 다음 텍스트 임베딩 모델 사용을 권장합니다:

Voyage 4 (최신 세대)

모델컨텍스트 길이임베딩 차원설명
voyage-4-large32,0001024 (기본값), 256, 512, 2048최고의 범용 및 다국어 검색 품질. 자세한 내용은 Voyage 4 블로그 게시물을 참조하세요.
voyage-432,0001024 (기본값), 256, 512, 2048범용 및 다국어 검색 품질에 최적화되었습니다. 품질과 효율성의 균형을 맞춥니다. 자세한 내용은 Voyage 4 블로그 게시물을 참조하세요.
voyage-4-lite32,0001024 (기본값), 256, 512, 2048지연 시간과 비용에 최적화되었습니다. 자세한 내용은 Voyage 4 블로그 게시물을 참조하세요.
voyage-4-nano32,0001024 (기본값), 256, 512, 2048Hugging Face에서 사용할 수 있는 오픈 웨이트 모델(Apache 2.0 라이선스)입니다. 자세한 내용은 Voyage 4 블로그 게시물을 참조하세요.

이전 세대

모델컨텍스트 길이임베딩 차원설명
voyage-3-large32,0001024 (기본값), 256, 512, 2048최고의 범용 및 다국어 검색 품질. 자세한 내용은 voyage-3-large 블로그 게시물을 참조하세요.
voyage-3.532,0001024 (기본값), 256, 512, 2048범용 및 다국어 검색 품질에 최적화되었습니다. 자세한 내용은 voyage-3.5 블로그 게시물을 참조하세요.
voyage-3.5-lite32,0001024 (기본값), 256, 512, 2048지연 시간과 비용에 최적화되었습니다. 자세한 내용은 voyage-3.5 블로그 게시물을 참조하세요.
voyage-code-332,0001024 (기본값), 256, 512, 2048코드 검색에 최적화되었습니다. 자세한 내용은 voyage-code-3 블로그 게시물을 참조하세요.
voyage-finance-232,0001024금융 검색 및 RAG에 최적화되었습니다. 자세한 내용은 voyage-finance-2 블로그 게시물을 참조하세요.
voyage-law-216,0001024법률 및 긴 컨텍스트 검색과 RAG에 최적화되었습니다. 또한 모든 도메인에서 성능이 향상되었습니다. 자세한 내용은 voyage-law-2 블로그 게시물을 참조하세요.

또한 Voyage는 다음 멀티모달 임베딩 모델을 권장합니다:

모델컨텍스트 길이임베딩 차원설명
voyage-multimodal-3.532,0001024 (기본값), 256, 512, 2048인터리브된 텍스트, 이미지, 비디오를 벡터화할 수 있는 풍부한 멀티모달 임베딩 모델입니다. 최초의 프로덕션급 비디오 임베딩 모델로서 비디오 지원을 포함합니다. 자세한 내용은 voyage-multimodal-3.5 블로그 게시물을 참조하세요.
voyage-multimodal-332,0001024인터리브된 텍스트와 PDF 스크린샷, 슬라이드, 표, 그림 등 콘텐츠가 풍부한 이미지를 벡터화할 수 있는 풍부한 멀티모달 임베딩 모델입니다. 자세한 내용은 voyage-multimodal-3 블로그 게시물을 참조하세요.

다음 컨텍스트화된 청크 임베딩 모델은 수동 메타데이터 보강 없이 전체 문서 컨텍스트를 포착하는 청크 수준 벡터를 생성합니다. 이 모델들은 embed() 대신 contextualized_embed()로 호출하세요:

모델컨텍스트 길이임베딩 차원설명
voyage-context-4120,0001024 (기본값), 256, 512, 2048범용 및 다국어 검색 품질에 최적화된 컨텍스트화된 청크 임베딩입니다. 자세한 내용은 voyage-context-4 블로그 게시물을 참조하세요.
voyage-context-3120,0001024 (기본값), 256, 512, 2048범용 및 다국어 검색 품질에 최적화된 컨텍스트화된 청크 임베딩입니다. 자세한 내용은 voyage-context-3 블로그 게시물을 참조하세요.

Voyage AI는 쿼리와 문서 목록을 받아 쿼리와의 관련성에 따라 순위를 매겨 반환하는 리랭커(reranker)도 제공합니다. 이 모델들은 rerank()로 호출하세요:

모델컨텍스트 길이설명
rerank-2.532,000가장 높은 정확도. 대부분의 애플리케이션에 권장됩니다. 자세한 내용은 rerank-2.5 블로그 게시물을 참조하세요.
rerank-2.5-lite32,000지연 시간과 비용에 최적화되었습니다. 자세한 내용은 rerank-2.5 블로그 게시물을 참조하세요.

어떤 텍스트 임베딩 모델을 사용할지 결정하는 데 도움이 필요하신가요? Voyage AI FAQ를 확인하세요.

Voyage AI 시작하기

Voyage 임베딩에 액세스하려면:

  1. Voyage AI 웹사이트에서 가입하세요.
  2. API 키를 발급받으세요.
  3. 편의를 위해 API 키를 환경 변수로 설정하세요:
export VOYAGE_API_KEY="<your secret key>"

다음 섹션에 설명된 대로 공식 voyageai Python 패키지 또는 HTTP 요청을 사용하여 임베딩을 얻을 수 있습니다.

Voyage Python 라이브러리

다음 명령을 사용하여 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-4", input_type="document")
print(result.embeddings[0])
print(result.embeddings[1])

result.embeddings는 각각 1024개의 부동 소수점 숫자를 포함하는 두 개의 임베딩 벡터 목록입니다. 위 코드를 실행하면 두 임베딩이 화면에 출력됩니다:

[-0.013131560757756233, 0.019828535616397858, ...]   # embedding for "Sample text 1"
[-0.0069352793507277966, 0.020878976210951805, ...]  # embedding for "Sample text 2"

임베딩을 생성할 때 embed() 함수에 몇 가지 다른 인수를 지정할 수 있습니다.

Voyage Python 패키지에 대한 자세한 내용은 Voyage Python 패키지 문서를 참조하세요.

Voyage HTTP API

Voyage HTTP API에 요청하여 임베딩을 얻을 수도 있습니다. 예를 들어, 터미널에서 curl 명령을 통해 HTTP 요청을 보낼 수 있습니다:

cURL
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-4"
  }'

받게 되는 응답은 임베딩과 토큰 사용량을 포함하는 JSON 객체입니다:

{
  "object": "list",
  "data": [
    {
      "embedding": [-0.013131560757756233, 0.019828535616397858 /* ... */],
      "index": 0
    },
    {
      "embedding": [-0.0069352793507277966, 0.020878976210951805 /* ... */],
      "index": 1
    }
  ],
  "model": "voyage-4",
  "usage": {
    "total_tokens": 10
  }
}

Voyage HTTP API에 대한 자세한 내용은 Voyage HTTP API 문서를 참조하세요.

AWS Marketplace

Voyage 임베딩은 AWS Marketplace에서 사용할 수 있습니다. AWS에서 Voyage에 액세스하는 방법은 Voyage AWS Marketplace 문서에서 확인할 수 있습니다.

빠른 시작 예제

다음의 간단한 예제는 임베딩을 사용하는 방법을 보여줍니다.

검색 대상이 되는 여섯 개의 문서로 구성된 작은 코퍼스가 있다고 가정해 보겠습니다

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-4", input_type="document").embeddings

임베딩을 사용하면 벡터 공간에서 의미 검색 / 검색(retrieval)을 수행할 수 있습니다. 예시 쿼리가 주어졌을 때,

query = "When is Apple's conference call scheduled?"

다음으로, 이를 임베딩으로 변환하고 최근접 이웃 검색을 수행하여 임베딩 공간에서의 거리를 기반으로 가장 관련성 높은 문서를 찾습니다.

import numpy as np

# 쿼리 임베딩
query_embd = vo.embed([query], model="voyage-4", 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 라이브러리에서 확인할 수 있습니다.

출력은 다섯 번째 문서이며, 실제로 쿼리와 가장 관련성이 높습니다:

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 레시피를 확인하세요.

FAQ

가격

최신 가격 정보는 Voyage의 가격 페이지를 방문하세요.

Was this page helpful?