停止对 VectorDBs 过度付费:在 AWS 上构建 Serverless RAG 架构
Source: Dev.to
请提供您希望翻译的完整文本内容,我将为您翻译成简体中文并保留原始的格式、Markdown 语法以及技术术语。谢谢!
问题:向量数据库成本陷阱
构建一个检索增强生成(RAG)原型可以在一个周末完成,但在不耗尽基础设施预算的前提下将该原型投入生产是完全不同的工程挑战。
许多创始人和工程团队会启动预配的向量数据库或全天候运行专用的 EC2 实例,以便快速交付 MVP。它在前 100 名用户时表现出色,但当你扩展规模——或面对不可预测的流量时,为了让向量索引保持在内存中而支付的闲置计算费用会严重消耗你的资金。
如果你想在保护初创公司资金的同时构建高度可扩展的 AI 产品,就需要从预配基础设施转向事件驱动、无服务器的架构。
在 AWS 上的无服务器 RAG 架构
事件驱动流水线
| 步骤 | AWS 服务 | 描述 |
|---|---|---|
| 触发 | Amazon S3 | 新文档(PDF、TXT、JSON)被放入 S3 存储桶。 |
| 计算 | AWS Lambda | S3 事件触发 Lambda 函数,对文本进行分块。 |
| 嵌入 | Amazon Bedrock | Lambda 调用 Bedrock(例如 Titan Embeddings)将文本转换为向量。 |
| 索引 | Amazon OpenSearch Serverless | Lambda 将向量/元数据写入 OpenSearch Serverless 向量搜索集合。 |
| 用户查询 | API Gateway | 请求通过 API Gateway 到达。 |
| 嵌入查询 | AWS Lambda + Bedrock | Lambda 调用 Bedrock 对搜索字符串进行嵌入。 |
| 相似度搜索 | OpenSearch Serverless (k‑NN) | Lambda 查询 OpenSearch Serverless,查找相关的文本块。 |
| 生成 | AWS Lambda + Bedrock | Lambda 将上下文 + 提示发送给 LLM(例如 Claude 3.5 Sonnet) via Bedrock。 |
关键优势
- 零基础设施管理 – 无需打补丁或管理分片。
- 事件驱动 – 流水线仅在文档到达时运行;零摄取 = 零成本。
- 解耦扩展 – 如果用户上传 10,000 份文档,Lambda 会并发处理它们,而不会影响搜索性能。
替代方案及何时使用
- pgvector 在 Amazon RDS 上 – 适用于小规模数据集或低延迟需求,但通常需要专用的向量引擎才能满足生产级搜索延迟和规模的要求。
Cost Benefits of OpenSearch Serverless
AWS 最近将最低容量降低至 0.5 OCUs(OpenSearch Compute Units)。这使得高度可用、可扩展的向量数据库的基础成本降至适合初创企业的水平,同时在您的应用走红时仍能提供自动扩展。
设计考虑因素
冷启动
如果你的 RAG 应用在长时间不活跃后需要在首次请求时实现亚秒级延迟,请考虑使用 Lambda Provisioned Concurrency,以保持预热实例随时可用。
扩展延迟
OpenSearch Serverless 会自动扩容,但在面对大规模、突发的流量时,扩容并非瞬时完成。请适当配置你的 max OCUs,并对扩容行为进行负载测试。
供应商锁定
你正在使用 AWS 基础服务(Bedrock、Lambda、OpenSearch Serverless)。由于集成依赖于对 Bedrock 和 OpenSearch API 的标准 HTTP 请求,后期迁移应用逻辑仍然是可行的。
结论
为验证 AI 产品而对超大、未充分利用的向量数据库进行高额付费的时代已经结束。通过利用 Amazon Bedrock、Lambda 和 OpenSearch Serverless,您可以从第一天起构建企业级、事件驱动的 AI 架构。
最初发表于我的 Hashnode 博客: [HASHNODE_LINK]