自动嵌入使用 Voyage AI 的 embedding model, Atlas在多租户环境的数据平面中托管和管理该模型。
支持的model
自动嵌入支持以下 Voyage AI embedding model:
嵌入模型 | 说明 | 每 1M 个令牌的价格 |
|---|---|---|
| 针对大容量、成本敏感的应用程序进行了优化。 | $ 0.02 |
| (推荐)平衡一般文本搜索的性能。 | $ 0.06 |
| 复杂语义关系的最高准确性。 | $ 0.12 |
| 专门用于代码搜索和技术文档。 | $ 0.18 |
上下文窗口大小
上下文窗口是嵌入或 LLM 模型在单个请求中可以考虑的最大文本量(以词元而不是字符为单位来衡量)。每个模型的最大上下文窗口大小如下:
嵌入模型 | 上下文窗口大小 |
|---|---|
| 32,000 tokens |
| 32,000 tokens |
| 32,000 tokens |
| 32,000 tokens |
如果索引文本字段比上下文窗口长,文本将自动截断为模型的上下文窗口大小。如果查询文本超出此 **model** 的上下文窗口,则 $vectorSearch 查询将失败并出现 context-limit-exceeded 错误。
model 费用
model令牌在索引操作(首次创建、插入、更新)和查询操作期间使用。对于索引操作,只有MongoDB document中索引为 autoEmbed 类型的字段才会用于嵌入生成并产生令牌使用量。对于查询操作,提供的查询文本用于嵌入生成并产生令牌使用量。每种model的费用如下:
嵌入模型 | Cost per 1K Tokens | 每 1M 个令牌的成本 |
|---|---|---|
| $ 0.00012 | $ 0.12 |
| $ 0.00006 | $ 0.06 |
| $ 0.00002 | $ 0.02 |
| $ 0.00018 | $ 0.18 |
免费令牌
对于每种model, Atlas在组织级别一次性分配 200 百万个免费代币。组织在组织内的所有Atlas项目和集群之间共享免费代币。
对于每个model, MongoDB 向量搜索 都包含一次性分配的 200 万个免费令牌。免费令牌由部署中的所有集群共享。
免费令牌不会刷新。
速率限制
速率限制是对您在指定时间段内可以从自动嵌入请求令牌的频率和数量的限制。MongoDB对嵌入生成实施速率限制,以确保多租户环境中所有用户的公平使用。速率限制基于 Requests Per Minute (RPM) 和 Tokens Per Minute (TPM)。这些速率限制应用于MongoDB集群级别,并使用自动嵌入在该集群上的所有索引之间共享。要请求更高的速率限制,请联系您的MongoDB客户团队或联系MongoDB支持。
速率限制分别应用于查询、首次索引构建和索引更新操作(document 插入和更新),从而提供流量隔离性。索引构建操作与实时查询流量严格隔离。
首次索引构建速率限制
首次索引构建速率限制限制了生成嵌入的最大频率和词元数量。对于首次索引构建(初始同步)期间的大型工作负载,自动嵌入使用不受标准速率限制约束的单独推断机制。此机制针对处理初始索引构建的吞吐量进行了优化,具有以下优点:
更快的初始同步:动态扩展嵌入生成吞吐量以处理海量突发。
无界吞吐量:突增最大可用 GPU容量,并消除手动提高速率限制的请求。
公平资源共享:竞争性索引构建收敛到类似的每秒令牌分配,避免饥饿。
安全加速:以低并发启动,仅在出现显式内部成功信号时动态增长。
索引插入和更新速率限制
索引速率限制限制了在MongoDB Vector Search 自动嵌入索引上进行某些操作期间生成嵌入的最大频率和词元数量。这些操作包括插入(将新数据添加到索引中)或更新(需要重新嵌入的现有数据更改)。
模型 | 每分钟请求数 (RPM) | 每分钟令牌数 (TPM) |
|---|---|---|
| 2 , 000 | 3,000,000 |
| 2 , 000 | 8,000,000 |
| 2 , 000 | 16,000,000 |
| 2 , 000 | 3,000,000 |
查询操作速率限制
查询速率限制控制对MongoDB 向量搜索 自动嵌入索引使用 $vectorSearch 操作的所有查询的最大嵌入生成频率和词元数量。
模型 | 每分钟请求数 (RPM) | 每分钟令牌数 (TPM) |
|---|---|---|
| 3 | 2 , 000 |
| 3 | 2 , 000 |
| 3 | 2 , 000 |
| 3 | 2 , 000 |
最佳实践
要在速率限制内优化性能,请执行以下操作:
尽可能在预填充集合上创建索引:首次构建索引(初始同步) 受益于不受吞吐量限制的特殊推断机制。因此,我们建议在创建索引之前预填充集合。
批处理更新:如果您要执行批量更新,请在“自动嵌入”仪表盘的 Usage(索引更新吞吐量)页面中监控索引更新吞吐量,并将它们间隔开以避免达到速率限制。
监控使用情况:在“自动嵌入”仪表盘的 Usage 页面中追踪嵌入生成,以识别模式并进行优化。
按需升级:如果您持续达到速率限制,请考虑添加付款方式以获得更高配额,或者联系您的MongoDB客户团队以获取更高的速率限制。