构建生成式 AI 平台:架构、权衡以及真正重要的核心组件
大多数将生成式 AI 技术栈视为模型集成项目的团队,最终都会发现他们实际上构建了——或需要构建——一个平台。模型是最简单的部分。难点在于它周围的一切:将查询路由到正确的模型、可靠地检索上下文、过滤不安全的输出、缓存冗余调用、在由五个 LLM 调用组成的链条中追踪出错原因,以及随着使用规模扩大,防止成本逐月翻倍。
本文讨论的就是这个平台层。不是模型权重,也不是提示词——而是将一个可行的原型与一个你可以放心交付给百万用户的系统区分开来的基础设施。
从最简单可行方案开始
在构建任何东西之前,克制住立即将编排框架、向量数据库、模型路由和缓存组合在一起的冲动。这样做会导致系统极其脆弱,每个组件都是别人的抽象,调试需要同时阅读四个不同库的源码。
一个好的生成式 AI 平台始于一个函数:query → response。仅此而已。对托管模型进行一次 API 调用,或许带有一个系统提示词。先让这个方案在生产环境中跑通。只有当你有了确凿的证据证明你需要它们时——例如特定的失败模式、成本问题、未达标的延迟目标——再添加组件。
这不是一个软性的原则,而是具有实战意义的架构建议。你向生成式 AI 技术栈中添加的每一个组件都会引入延迟、运维复杂度、失败模式和成本。本文中的组件在合适的条件下都值得拥有。而这些合适的条件通常是“生产系统告诉你某些东西坏了”,而不是“这似乎是个好主意”。
上下文增强:RAG 及其周边的构建
检索增强生成(RAG)现在已成为将 LLM 输出锚定在外部知识中的默认模式。基本理念很简单:在调用模型之前,检索相关文档并将其包含在提示词中。但实现决策会迅速变得复杂。
检索层主要有两种方法。 基于术语的搜索(BM25, Elasticsearch)能很好地处理精确关键词匹配,并在处理异常查询时表现稳健。基于嵌入的搜索(Embedding-based search)能处理语义相似性,但需要维护向量索引并仔细选择嵌入模型。生产系统几乎总是两者兼用:一个运行两种检索方法并在重排序(reranking)步骤之前合并结果的混合管道。重排序器——通常是一个对查询-文档对进行联合评分的交叉编码器(cross-encoder)——能显著提高相关性,但每次请求会增加 50–200ms 的延迟。
