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

## 임베딩을 구현하기 전에

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

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

## Anthropic에서 임베딩을 얻는 방법

Anthropic은 자체 임베딩 모델을 제공하지 않습니다. 다양한 모델과 기능을 갖춘 임베딩 제공업체 중 하나로 MongoDB의 Voyage AI가 있습니다.

Voyage AI는 임베딩 모델과 "reranker"(리랭커)를 만듭니다. 임베딩 모델에는 범용, 멀티모달, 컨텍스트화, 도메인 특화 모델이 포함됩니다.

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

## 사용 가능한 모델

Voyage AI는 다음과 같은 텍스트 임베딩 모델을 제공합니다:

**최신 세대**

| 모델               | 컨텍스트 길이 | 임베딩 차원                     | 설명                                                                                                                                                                                                                                                   |
| ---------------- | ------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `voyage-4-large` | 32,000  | 1024 (기본값), 256, 512, 2048 | 최고의 범용 및 다국어 검색 품질. 자세한 내용은 [Voyage 4 블로그 게시물](https://blog.voyageai.com/2026/01/15/voyage-4/)을 참조하세요.                                                                                                                                               |
| `voyage-4`       | 32,000  | 1024 (기본값), 256, 512, 2048 | 범용 및 다국어 검색 품질에 최적화되었습니다. 품질과 효율성의 균형을 맞춥니다. 자세한 내용은 [Voyage 4 블로그 게시물](https://blog.voyageai.com/2026/01/15/voyage-4/)을 참조하세요.                                                                                                                      |
| `voyage-4-lite`  | 32,000  | 1024 (기본값), 256, 512, 2048 | 지연 시간과 비용에 최적화되었습니다. 자세한 내용은 [Voyage 4 블로그 게시물](https://blog.voyageai.com/2026/01/15/voyage-4/)을 참조하세요.                                                                                                                                              |
| `voyage-code-4`  | 32,000  | 1024 (기본값), 256, 512, 2048 | **코드** 검색 및 에이전트 코딩 애플리케이션에 최적화되었습니다. 자세한 내용은 [voyage-code-4 블로그 게시물](https://blog.voyageai.com/2026/08/13/voyage-code-4/)을 참조하세요.                                                                                                                   |
| `voyage-4-nano`  | 32,000  | 2048 (기본값), 256, 512, 1024 | [Hugging Face](https://huggingface.co/voyageai/voyage-4-nano)에서 다운로드하여 직접 실행하는 오픈 웨이트 모델(Apache 2.0 라이선스)입니다. Atlas Embedding and Reranking API를 통해서는 사용할 수 없습니다. 자세한 내용은 [Voyage 4 블로그 게시물](https://blog.voyageai.com/2026/01/15/voyage-4/)을 참조하세요. |

**이전 세대**

각 모델의 수명 주기 상태와 권장 대체 모델은 MongoDB 문서의 [Model deprecations, lifecycle states, and support](https://www.mongodb.com/docs/voyageai/models/lifecycle/)를 참조하세요.

| 모델                 | 컨텍스트 길이 | 임베딩 차원                     | 설명                                                                                                                                                                           |
| ------------------ | ------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `voyage-3-large`   | 32,000  | 1024 (기본값), 256, 512, 2048 | `voyage-4-large`의 이전 세대입니다. 자세한 내용은 [voyage-3-large 블로그 게시물](https://blog.voyageai.com/2025/01/07/voyage-3-large/)을 참조하세요.                                                   |
| `voyage-3.5`       | 32,000  | 1024 (기본값), 256, 512, 2048 | `voyage-4`의 이전 세대입니다. 자세한 내용은 [voyage-3.5 블로그 게시물](https://blog.voyageai.com/2025/05/20/voyage-3-5/)을 참조하세요.                                                                 |
| `voyage-3.5-lite`  | 32,000  | 1024 (기본값), 256, 512, 2048 | `voyage-4-lite`의 이전 세대입니다. 자세한 내용은 [voyage-3.5 블로그 게시물](https://blog.voyageai.com/2025/05/20/voyage-3-5/)을 참조하세요.                                                            |
| `voyage-code-3`    | 32,000  | 1024 (기본값), 256, 512, 2048 | `voyage-code-4`의 이전 세대입니다. 자세한 내용은 [voyage-code-3 블로그 게시물](https://blog.voyageai.com/2024/12/04/voyage-code-3/)을 참조하세요.                                                      |
| `voyage-finance-2` | 32,000  | 1024                       | **금융** 검색 및 RAG에 최적화되었습니다. 자세한 내용은 [voyage-finance-2 블로그 게시물](https://blog.voyageai.com/2024/06/03/domain-specific-embeddings-finance-edition-voyage-finance-2/)을 참조하세요.     |
| `voyage-law-2`     | 16,000  | 1024                       | **법률** 검색 및 RAG에 최적화되었습니다. 자세한 내용은 [voyage-law-2 블로그 게시물](https://blog.voyageai.com/2024/04/15/domain-specific-embeddings-and-retrieval-legal-edition-voyage-law-2/)을 참조하세요. |

또한 Voyage AI는 다음과 같은 멀티모달 임베딩 모델을 제공합니다. 이 모델들은 `embed()` 대신 `multimodal_embed()`로 호출하세요:

| 모델                      | 컨텍스트 길이 | 임베딩 차원                     | 설명                                                                                                                                                                                                        |
| ----------------------- | ------- | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `voyage-multimodal-3.5` | 32,000  | 1024 (기본값), 256, 512, 2048 | 텍스트, 이미지, 동영상이 섞여 있는 입력을 벡터화할 수 있는 풍부한 멀티모달 임베딩 모델입니다. 최초의 프로덕션급 동영상 임베딩 모델로서 동영상 지원을 포함합니다. 자세한 내용은 [voyage-multimodal-3.5 블로그 게시물](https://blog.voyageai.com/2026/01/15/voyage-multimodal-3-5/)을 참조하세요. |
| `voyage-multimodal-3`   | 32,000  | 1024                       | `voyage-multimodal-3.5`의 이전 세대입니다. 텍스트와 PDF 스크린샷, 슬라이드, 표, 그림 등 콘텐츠가 풍부한 이미지가 섞여 있는 입력을 벡터화합니다. 자세한 내용은 [voyage-multimodal-3 블로그 게시물](https://blog.voyageai.com/2024/11/12/voyage-multimodal-3/)을 참조하세요.  |

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

| 모델                 | 컨텍스트 길이 | 임베딩 차원                     | 설명                                                                                                                                        |
| ------------------ | ------- | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `voyage-context-4` | 120,000 | 1024 (기본값), 256, 512, 2048 | 범용 및 다국어 검색 품질에 최적화된 컨텍스트화된 청크 임베딩입니다. 자세한 내용은 [voyage-context-4 블로그 게시물](https://blog.voyageai.com/2026/06/29/voyage-context-4/)을 참조하세요. |
| `voyage-context-3` | 120,000 | 1024 (기본값), 256, 512, 2048 | `voyage-context-4`의 이전 세대입니다. 자세한 내용은 [voyage-context-3 블로그 게시물](https://blog.voyageai.com/2025/07/23/voyage-context-3/)을 참조하세요.          |

120,000 토큰 제한은 `enable_auto_chunking`을 `true`로 설정한 경우에 적용됩니다. 그렇지 않으면 모든 입력의 총 토큰 수가 32,000을 초과할 수 없습니다.

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

| 모델                | 컨텍스트 길이 | 설명                                                                                                                    |
| ----------------- | ------- | --------------------------------------------------------------------------------------------------------------------- |
| `rerank-3`        | 32,000  | 최고 정확도를 제공합니다. 대부분의 애플리케이션에 권장됩니다. 자세한 내용은 [rerank-3 블로그 게시물](https://blog.voyageai.com/2026/09/30/rerank-3/)을 참조하세요. |
| `rerank-3-lite`   | 32,000  | 지연 시간과 비용에 최적화되었습니다. 자세한 내용은 [rerank-3 블로그 게시물](https://blog.voyageai.com/2026/09/30/rerank-3/)을 참조하세요.               |
| `rerank-2.5`      | 32,000  | `rerank-3`의 이전 세대입니다. 자세한 내용은 [rerank-2.5 블로그 게시물](https://blog.voyageai.com/2025/08/11/rerank-2-5/)을 참조하세요.          |
| `rerank-2.5-lite` | 32,000  | `rerank-3-lite`의 이전 세대입니다. 자세한 내용은 [rerank-2.5 블로그 게시물](https://blog.voyageai.com/2025/08/11/rerank-2-5/)을 참조하세요.     |

어떤 모델을 사용할지 결정하는 데 도움이 필요하신가요? MongoDB 문서의 [Voyage AI embedding and reranking models overview](https://www.mongodb.com/docs/voyageai/models/)를 참조하세요.

## Voyage AI 시작하기

Voyage AI 모델에 액세스하려면 MongoDB Atlas에서 모델 API 키를 생성하세요:

1. MongoDB Atlas 계정에 가입하거나 로그인합니다.
2. Atlas 프로젝트의 탐색 모음에서 **AI Model APIs**를 선택하고, **Create model API key**를 클릭한 다음, 키 이름을 지정하고 **Create**를 클릭합니다.
3. 편의를 위해 API 키를 환경 변수로 설정합니다:

```bash
export VOYAGE_API_KEY="<your model API key>"
```

자세한 내용은 MongoDB 문서의 [Voyage AI quick start](https://www.mongodb.com/docs/voyageai/quickstart/)를 참조하세요.

다음 섹션에서 설명하는 것처럼 공식 [`voyageai` Python 패키지](https://github.com/voyage-ai/voyageai-python) 또는 HTTP 요청을 사용하여 임베딩을 얻을 수 있습니다. Voyage AI에는 공식 TypeScript 클라이언트도 있습니다. Atlas의 모델 API 키와 함께 사용하려면 MongoDB 문서의 [TypeScript client](https://www.mongodb.com/docs/voyageai/api-and-clients/#typescript-client)에 설명된 대로 `environment` 옵션을 `https://ai.mongodb.com/v1`로 설정하세요.

### Voyage AI Python 라이브러리

다음 명령을 사용하여 `voyageai` 패키지를 설치하세요. Atlas의 모델 API 키를 사용하려면 버전 0.3.7 이상이 필요합니다.

```bash
pip install -U voyageai
```

그런 다음 클라이언트 객체를 생성하고 이를 사용하여 텍스트를 임베딩할 수 있습니다:

```python
import voyageai

vo = voyageai.Client()
# 환경 변수 VOYAGE_API_KEY를 자동으로 사용합니다.
# 또는 vo = voyageai.Client(api_key="<your model API 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개의 부동 소수점 숫자를 포함하는 두 개의 임베딩 벡터 목록입니다. 위 코드를 실행하면 두 임베딩이 화면에 출력됩니다:

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

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

Python 패키지에 대한 자세한 내용은 MongoDB 문서의 [Accessing Voyage AI models](https://www.mongodb.com/docs/voyageai/api-and-clients/)를 참조하세요.

### Voyage AI HTTP API

Atlas Embedding and Reranking API에 HTTP 요청을 보내 임베딩을 얻을 수도 있습니다. 예를 들어, 터미널에서 `curl` 명령을 통해 HTTP 요청을 보낼 수 있습니다:

```bash cURL
curl https://ai.mongodb.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",
    "input_type": "document"
  }'
```

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

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

Atlas의 모델 API 키는 `ai.mongodb.com`에서 작동하지만, 특정 지역으로 범위가 지정된 키는 해당 지역의 엔드포인트를 사용합니다. 대신 Voyage AI 플랫폼의 API 키를 가지고 있다면 MongoDB 문서의 [Migrate your applications to use the Atlas Embedding and Reranking API](https://www.mongodb.com/docs/voyageai/tutorials/migrate-to-atlas/)를 참조하세요.

전체 요청 및 응답 참조는 Atlas Embedding and Reranking API 문서의 [Create text embeddings](https://www.mongodb.com/docs/api/doc/atlas-embedding-and-reranking-api/operation/operation-createembedding)를 참조하세요.

### AWS Marketplace

Voyage AI 모델은 [MongoDB의 판매자 프로필](https://aws.amazon.com/marketplace/seller-profile?id=c9032c7b-70dd-459f-834f-c1e23cf3d092)을 통해 AWS Marketplace에서도 사용할 수 있습니다. 안내는 MongoDB 문서의 [Deploy Voyage AI models using AWS Marketplace](https://www.mongodb.com/docs/voyageai/management/aws-marketplace/)를 참조하세요.

## 빠른 시작 예제

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

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

```python
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 AI를 사용하여 각 문서를 임베딩 벡터로 변환합니다.

```python
import voyageai

vo = voyageai.Client()

# 문서를 임베딩합니다
doc_embds = vo.embed(documents, model="voyage-4", input_type="document").embeddings
```

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

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

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

```python
import numpy as np

# 쿼리를 임베딩합니다
query_embd = vo.embed([query], model="voyage-4", input_type="query").embeddings[0]

# 유사도를 계산합니다
# Voyage AI 임베딩은 길이 1로 정규화되어 있으므로 내적과
# 코사인 유사도는 동일합니다.
similarities = np.dot(doc_embds, query_embd)

retrieved_id = np.argmax(similarities)
print(documents[retrieved_id])
```

문서와 쿼리를 임베딩할 때 각각 `input_type="document"`와 `input_type="query"`가 사용된다는 점에 유의하세요. `input_type`에 대한 자세한 내용은 FAQ의 [input\_type 매개변수는 언제 어떻게 사용해야 하나요?](https://platform.claude.com/docs/ko/build-with-claude/embeddings#faq)를 참조하세요.

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

```text wrap
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 레시피](https://platform.claude.com/cookbook/third-party-pinecone-rag-using-pinecone)를 확인하세요.

## FAQ

<AccordionGroup>
  <Accordion title="Voyage AI 임베딩의 품질이 뛰어난 이유는 무엇인가요?">
    임베딩 모델은 생성형 모델과 마찬가지로 강력한 신경망을 사용하여 의미적 컨텍스트를 포착하고 압축합니다. Voyage AI의 숙련된 AI 연구팀은 다음을 포함하여 임베딩 프로세스의 모든 구성 요소를 최적화합니다:

    * 모델 아키텍처
    * 데이터 수집
    * 손실 함수
    * 옵티마이저 선택

    Voyage AI의 기술적 접근 방식에 대한 자세한 내용은 [Voyage AI 블로그](https://blog.voyageai.com/)에서 확인하세요.
  </Accordion>

  <Accordion title="어떤 임베딩 모델을 사용할 수 있으며 어떤 것을 사용해야 하나요?">
    범용 임베딩의 경우 권장 모델은 다음과 같습니다:

    * `voyage-4-large`: 최고 품질
    * `voyage-4-lite`: 가장 낮은 지연 시간과 비용
    * `voyage-4`: 균형 잡힌 성능

    검색의 경우 `input_type` 매개변수를 사용하여 텍스트가 쿼리 유형인지 문서 유형인지 지정하세요.

    도메인 특화 모델:

    * 법률 작업: `voyage-law-2`
    * 코드 검색 및 에이전트 코딩: `voyage-code-4`
    * 금융 관련 작업: `voyage-finance-2`

    청크 수준 및 문서 수준 검색: `voyage-context-4`

    텍스트, 이미지, 동영상: `voyage-multimodal-3.5`
  </Accordion>

  <Accordion title="어떤 유사도 함수를 사용해야 하나요?">
    Voyage AI 임베딩은 내적 유사도, 코사인 유사도 또는 유클리드 거리와 함께 사용할 수 있습니다. 임베딩 유사도에 대한 설명은 이 [벡터 유사도 가이드](https://www.pinecone.io/learn/vector-similarity/)를 참조하세요.

    Voyage AI 임베딩은 길이 1로 정규화되어 있으며, 이는 다음을 의미합니다:

    * 코사인 유사도는 내적 유사도와 동일하며, 후자가 더 빠르게 계산될 수 있습니다.
    * 코사인 유사도와 유클리드 거리는 동일한 순위 결과를 생성합니다.
  </Accordion>

  <Accordion title="문자, 단어, 토큰 사이의 관계는 무엇인가요?">
    MongoDB 문서의 [Tokenization](https://www.mongodb.com/docs/voyageai/tutorials/tokenization/)을 참조하세요.
  </Accordion>

  <Accordion title="input_type 매개변수는 언제 어떻게 사용해야 하나요?">
    모든 검색 작업 및 사용 사례(예: RAG)에서 `input_type` 매개변수를 사용하여 입력 텍스트가 쿼리인지 문서인지 지정하세요. `input_type`을 생략하거나 `input_type=None`으로 설정하지 마세요. 입력 텍스트가 쿼리인지 문서인지 지정하면 검색을 위한 더 나은 밀집 벡터 표현을 생성할 수 있으며, 이는 더 나은 검색 품질로 이어질 수 있습니다.

    `input_type` 매개변수를 사용하면 임베딩 전에 입력 텍스트 앞에 특수 프롬프트가 추가됩니다. 구체적으로:

    > 📘 **`input_type`과 관련된 프롬프트**
    >
    > * 쿼리의 경우 프롬프트는 `"Represent the query for retrieving supporting documents: "`입니다.
    >
    > * 문서의 경우 프롬프트는 `"Represent the document for retrieval: "`입니다.
    >
    > * 예시
    >
    >   * `input_type="query"`인 경우, "When is Apple's conference call scheduled?"와 같은 쿼리는 "**Represent the query for retrieving supporting documents:** When is Apple's conference call scheduled?"가 됩니다.
    >   * `input_type="document"`인 경우, "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."와 같은 문서는 "**Represent the document for retrieval:** 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."가 됩니다.
  </Accordion>

  <Accordion title="어떤 양자화 옵션을 사용할 수 있나요?">
    임베딩에서 "quantization"(양자화)은 32비트 단정밀도 부동 소수점 숫자와 같은 고정밀 값을 8비트 정수나 1비트 이진 값과 같은 저정밀 형식으로 변환하여 스토리지, 메모리 및 비용을 각각 4배와 32배 줄입니다. 지원되는 Voyage AI 모델은 `output_dtype` 매개변수로 출력 데이터 유형을 지정하여 양자화를 활성화합니다:

    * `float`: 반환되는 각 임베딩은 32비트(4바이트) 단정밀도 부동 소수점 숫자의 목록입니다. 이것이 기본값이며 가장 높은 정밀도 / 검색 정확도를 제공합니다.
    * `int8` 및 `uint8`: 반환되는 각 임베딩은 각각 -128에서 127, 0에서 255 범위의 8비트(1바이트) 정수 목록입니다.
    * `binary` 및 `ubinary`: 반환되는 각 임베딩은 비트 패킹된 양자화 단일 비트 임베딩 값을 나타내는 8비트 정수 목록입니다. `binary`의 경우 `int8`, `ubinary`의 경우 `uint8`입니다. 반환되는 정수 목록의 길이는 임베딩 실제 차원의 1/8입니다. binary 유형은 다음 예시에서 보여주듯이 오프셋 이진 방식을 사용합니다.

    > **이진 양자화 예시**
    >
    > 다음 8개의 임베딩 값을 생각해 보세요: -0.03955078, 0.006214142, -0.07446289, -0.039001465, 0.0046463013, 0.00030612946, -0.08496094, 0.03994751. 이진 양자화를 사용하면 0 이하의 값은 이진수 0으로, 양수 값은 이진수 1로 양자화되어 다음과 같은 이진 시퀀스가 생성됩니다: 0, 1, 0, 0, 1, 1, 0, 1. 그런 다음 이 8개의 비트는 단일 8비트 정수 01001101로 패킹됩니다(가장 왼쪽 비트가 최상위 비트).
    >
    > * `ubinary`: 이진 시퀀스가 직접 변환되어 부호 없는 정수(`uint8`) 77로 표현됩니다.
    > * `binary`: 이진 시퀀스는 오프셋 이진 방식(77 - 128 = -51)을 사용하여 계산된 부호 있는 정수(`int8`) -51로 표현됩니다.

    각 데이터 유형을 지원하는 모델은 Atlas Embedding and Reranking API 문서의 [Create text embeddings](https://www.mongodb.com/docs/api/doc/atlas-embedding-and-reranking-api/operation/operation-createembedding)를 참조하세요.
  </Accordion>

  <Accordion title="Matryoshka 임베딩은 어떻게 잘라낼 수 있나요?">
    Matryoshka 학습은 단일 벡터 내에 거친 표현부터 세밀한 표현까지 담은 임베딩을 생성합니다. `voyage-code-4`와 같이 여러 출력 차원을 지원하는 Voyage AI 모델은 이러한 Matryoshka 임베딩을 생성합니다. API에서 더 짧은 벡터를 얻으려면 `output_dimension`을 전달하세요(예: `output_dimension=256`). 이미 저장한 벡터를 줄이려면 앞쪽 차원의 부분 집합만 남기고 잘라낸 다음 다시 정규화하세요. 예를 들어, 다음 Python 코드는 1024차원 벡터를 256차원으로 잘라내는 방법을 보여줍니다:

    ```python
    import voyageai
    import numpy as np


    def embd_normalize(v: np.ndarray) -> np.ndarray:
        """
        Normalize the rows of a 2D numpy array to unit vectors by dividing each row by its Euclidean
        norm. Raises a ValueError if any row has a norm of zero to prevent division by zero.
        """
        row_norms = np.linalg.norm(v, axis=1, keepdims=True)
        if np.any(row_norms == 0):
            raise ValueError("Cannot normalize rows with a norm of zero.")
        return v / row_norms


    vo = voyageai.Client()

    # voyage-code-4 벡터를 생성합니다. 기본적으로 1024차원 부동소수점 숫자입니다
    embd = vo.embed(["Sample text 1", "Sample text 2"], model="voyage-code-4").embeddings

    # 더 짧은 차원을 설정합니다
    short_dim = 256

    # 벡터를 더 짧은 차원으로 크기 조정하고 정규화합니다
    resized_embd = embd_normalize(np.array(embd)[:, :short_dim]).tolist()
    ```
  </Accordion>
</AccordionGroup>

## 가격

최신 가격 정보는 MongoDB 문서의 [Model pricing](https://www.mongodb.com/docs/voyageai/management/billing/#model-pricing)을 참조하세요.
