Claude Platform Docs
Messages模型能力

嵌入

文本嵌入是文本的数值表示,可用于衡量语义相似度。本指南介绍嵌入及其应用,以及如何使用嵌入模型完成搜索、推荐和异常检测等任务。

实施嵌入之前

在选择 "embeddings"(嵌入)提供商时,您可以根据自己的需求和偏好考虑以下几个因素:

  • 数据集规模与领域特异性:模型训练数据集的规模及其与您想要嵌入的领域的相关性。更大或更具领域特异性的数据通常会产生更好的领域内嵌入
  • 推理性能:嵌入查找速度和端到端 "latency"(延迟)。对于大规模生产部署而言,这是一个尤为重要的考虑因素
  • 定制化:在私有数据上继续训练的选项,或针对非常特定的领域对模型进行专门化。这可以提升在独特词汇上的性能

如何通过 Anthropic 获取嵌入

Anthropic 不提供自己的嵌入模型。Voyage AI 是一家拥有多种选项和能力、涵盖上述所有考虑因素的嵌入提供商。

Voyage AI 打造最先进的嵌入模型,并为金融和医疗等特定行业领域提供定制模型,或为个别客户提供专属的 "fine-tuned"(微调)模型。

本指南的其余部分针对 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、2048在 Hugging 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 博客文章。

以下上下文化分块嵌入模型可生成分块级向量,无需手动添加元数据即可捕获完整的文档上下文。请使用 contextualized_embed() 而非 embed() 调用这些模型:

模型上下文长度嵌入维度描述
voyage-context-4120,0001024(默认)、256、512、2048针对通用和多语言检索质量进行了优化的上下文化分块嵌入。详情请参阅 voyage-context-4 博客文章。
voyage-context-3120,0001024(默认)、256、512、2048针对通用和多语言检索质量进行了优化的上下文化分块嵌入。详情请参阅 voyage-context-3 博客文章。

Voyage AI 还提供 "rerankers"(重排序器),它接收一个查询和一组文档,并按与查询的相关性排序后返回这些文档。请使用 rerank() 调用这些模型:

模型上下文长度描述
rerank-2.532,000准确率最高。推荐用于大多数应用。详情请参阅 rerank-2.5 博客文章。
rerank-2.5-lite32,000针对延迟和成本进行了优化。详情请参阅 rerank-2.5 博客文章。

需要帮助决定使用哪个文本嵌入模型?请查看 Voyage AI 常见问题。

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

嵌入使您能够在向量空间中进行语义搜索/检索。给定一个示例查询,

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 方案。

常见问题

定价

请访问 Voyage 的定价页面了解最新的定价详情。

Was this page helpful?