AI 工程:LLM、Agent 与基础设施 / AI Engineering with LLMs, Agents, and Infrastructure
AI 专题分成三条互相依赖、但不重复讲解的主线:
AI 工程不等于调用一次模型接口。一个可用系统同时包含模型能力、数据与上下文、确定性程序、计算基础设施和验证闭环。模型输出具有概率性,外围系统就必须用结构化协议、权限、超时、评估和人工确认把不确定性限制在可接受范围内。
模型层:神经网络 → Transformer → 训练、推理与后训练
应用层:LLM API → Tool → RAG / Memory → Workflow / Multi-Agent
系统层:GPU 集群 → 分布式训练 → AI 编译器 → 部署与可观测性模型层解释“模型如何工作”,Agent 层解释“如何组成可靠应用”,Infra 层解释“如何高效地训练和运行”。同一概念只在所属层完整说明,其他层通过链接引用。
从数据到产品的完整链路
数据与任务定义
│
v
训练 / 微调 / 后训练 -> 模型权重与推理接口
│ │
│ v
评估集与安全测试 Prompt、RAG、Tool、Workflow
│ │
└────────质量门禁 <───────┤
v
部署、路由、监控与反馈训练指标好不代表产品任务可靠,单次演示成功也不代表系统可以上线。任务首先需要可观察的成功标准,例如答案正确率、工具执行成功率、引用覆盖率、延迟、成本和高风险误操作率。开发过程围绕固定评估集迭代,生产环境再监控输入分布、模型版本、工具错误和用户反馈。没有评估闭环的“提示优化”很难判断是真进步还是偶然样本。
四个层次各自解决什么
LLM 模块解释 Token、Embedding、Transformer、训练目标、推理和后训练,使读者知道能力与限制来自哪里。Agent 模块讨论如何把模型放入循环,让它读取上下文、选择工具、处理结果并停止;重点是状态、权限、错误和确定性执行,而不是把模型拟人化。基础设施模块处理数据管线、GPU 集群、并行训练、存储、网络和故障恢复。编译器模块把高层计算图转换为适合具体硬件的 Kernel 与内存计划。
这些层次通过明确接口协作。应用不应假定模型永远输出合法 JSON,推理服务不应让任意租户耗尽显存,训练任务不应把 Checkpoint 成功写入等同于所有副本都持久化,编译优化也必须保持数值容差和动态形状语义。
1. AI 工程的五层边界
一个完整 AI 系统可以拆成五层:
任务与产品层
-> 数据与评估层
-> 模型与推理层
-> Agent / Workflow 应用层
-> 训练、部署与编译基础设施层任务层定义系统要完成什么,以及失败会造成什么影响。 如果任务没有可观察的成功标准,后续模型比较就没有方向。
数据与评估层保存输入分布、标准答案、评分规则和安全样本。 它负责判断修改是真改善,还是只在少量演示样本上表现更好。
模型层提供概率性生成、分类、Embedding 或多模态能力。 模型输出不是可信事实,也不是已经执行的业务命令。
应用层把模型放入受控程序:
- 选择上下文;
- 注册工具;
- 校验结构化输出;
- 管理循环和停止条件;
- 处理重试、超时和人工确认;
- 保存 Trace 与审计记录。
基础设施层负责训练、推理服务、GPU 集群、存储、网络、编译和监控。 它必须在吞吐、延迟、成本和可靠性之间取舍。
五层可以独立演进,但接口必须清晰。 模型升级不能绕过权限,基础设施优化不能改变任务语义,评估也不能只测模型而忽略完整工具链。
2. 从任务定义开始
AI 项目最常见的错误是先选模型,再寻找可以展示的任务。 更可靠的顺序是先定义输入、输出、边界和失败成本。
任务定义至少包含:
- 用户是谁;
- 输入来自哪里;
- 允许使用哪些数据;
- 输出用于建议还是直接执行;
- 什么算正确;
- 哪些错误最危险;
- 延迟和成本上限;
- 是否需要引用和可解释证据;
- 哪些步骤必须人工确认;
- 数据保存和删除要求。
示例:技术文档问答
输入:用户问题 + 授权范围内的文档
输出:带段落引用的答案
成功:核心结论被来源支持
失败:无来源时应明确拒答
边界:不能访问用户无权查看的目录
指标:引用正确率、答案正确率、P95、成本这样定义后,才能判断需要普通检索、RAG、工具调用、微调还是更强模型。
3. 概率性模型与确定性程序的分工
模型适合处理语言理解、模糊分类、候选生成和开放式推理。 普通程序适合权限、金额、唯一性、事务、数值计算和资源状态转换。
用户自然语言
-> 模型生成候选意图
-> Schema 校验
-> 权限与业务规则
-> 人工确认(高风险)
-> 确定性执行器
-> 结果与审计记录模型不能成为数据库约束和授权逻辑的替代品。 即使它通常能判断正确,也无法提供业务需要的强保证。
高副作用动作应满足:
- 参数经过类型和范围校验;
- 当前用户具有具体资源权限;
- 命令包含幂等键;
- 执行前展示实际影响;
- 必要时要求人工确认;
- 执行结果可查询;
- 重试不会重复产生副作用;
- 全过程可审计。
4. 数据生命周期
数据工程不只是在训练前清洗一次文件。 它覆盖采集、授权、版本、处理、使用、反馈和删除。
Raw Data
-> consent / license check
-> cleaning and normalization
-> versioned dataset
-> train / eval split
-> model or index artifact
-> production feedback
-> retention and deletion训练集与评估集必须隔离。 测试样本泄漏进训练、Prompt 模板或人工调参过程,会让评估结果失真。
数据版本需要记录:
- 来源和许可证;
- 采集时间;
- 清洗规则;
- 去重方法;
- 过滤和脱敏;
- Schema;
- 分片与哈希;
- 已知偏差;
- 删除请求的传播方式。
Embedding 索引也是派生数据。 文档变化、权限变化或 Embedding 模型升级后,需要明确哪些向量失效以及如何重建。
5. 模型生命周期
模型从实验到生产通常经历:
候选模型
-> 离线能力评估
-> 安全与对抗测试
-> 性能和成本基准
-> 小流量灰度
-> 生产监控
-> 回滚、替换或退役模型版本不能只记录营销名称。 还要记录具体提供方版本、参数、量化、系统 Prompt、工具 Schema 和推理配置。
温度、Top-p、最大 Token、停止条件和结构化输出模式都会改变系统行为。 这些配置应与代码一起版本化。
模型切换前要比较:
- 任务正确率;
- 危险错误率;
- 格式遵循率;
- 工具选择准确率;
- 上下文长度与截断行为;
- 首 Token 和完整响应延迟;
- 输入输出 Token 成本;
- 并发与速率限制;
- 数据处理与合规条件。
6. 评估是持续工程
单个公开 Benchmark 不能证明产品任务可靠。 评估集需要来自真实任务分布,并覆盖正常、困难和高风险样本。
评估可以分层:
- 模型级:问答、分类、推理和格式;
- 检索级:召回、排序和引用覆盖;
- 工具级:工具选择、参数和结果处理;
- Workflow 级:状态、重试、停止和副作用;
- 端到端:用户目标、延迟、成本和安全;
- 生产级:输入漂移、失败聚类和人工反馈。
自动评分适合规则明确的部分。 开放答案可能需要人工 Rubric 或经过校准的模型评分器。
模型评分器本身也会偏差。 应抽样人工复核,并测量评分一致性和位置偏好。
7. RAG 的边界
RAG 把外部资料检索结果加入模型上下文。 它解决模型权重无法及时包含私有或最新知识的问题,但不会自动保证答案正确。
Question
-> query understanding
-> retrieval
-> permission filtering
-> reranking
-> context assembly
-> generation with citations
-> citation verification检索质量需要分别观察召回和排序。 正确文档没有进入候选集时,后续模型无法补救。
权限过滤必须在检索或上下文组装阶段强制执行。 不能先把无权限文本交给模型,再要求模型不要泄露。
引用需要指向真正支持结论的段落。 模型生成一个看似合理的链接,不代表回答忠于来源。
8. Agent 是受控循环
Agent 的最小结构是模型调用、工具执行和循环控制。
messages + tools
-> model response
-> tool call?
yes -> validate -> execute -> append result -> loop
no -> validate final answer -> stop生产循环必须限制:
- 最大步数;
- 总时间;
- Token 和费用;
- 单工具超时;
- 并发调用数;
- 可访问资源;
- 重试次数;
- 人工确认点。
多 Agent 只是把不同上下文和工具集合分给多个模型角色。 它会增加协调、延迟、成本和调试难度,不应作为默认方案。
9. 基础设施与编译器
训练基础设施负责把数据和计算分布到 GPU 集群。 关键问题包括并行策略、显存、通信、Checkpoint、调度和故障恢复。
推理基础设施关注批处理、KV Cache、量化、模型路由、并发和尾延迟。 训练吞吐最优的配置不一定适合在线推理。
AI 编译器把计算图和算子映射到具体硬件。 常见阶段包括图优化、算子融合、布局变换、内存规划和代码生成。
Framework Graph
-> normalized IR
-> graph optimization
-> operator / kernel lowering
-> memory and schedule planning
-> target code编译优化必须保持数值容差、动态形状和副作用语义。 Kernel 更快也要检查编译时间、显存峰值和端到端收益。
10. 安全与信任边界
Prompt Injection 的本质是外部数据试图影响控制指令。 网页、文档、邮件和工具结果都应被视为不可信输入。
防护不能只依赖一段“忽略恶意指令”的 Prompt。 需要工具最小权限、数据与指令分离、参数校验、输出编码和高风险确认。
密钥不进入 Prompt、日志或模型可见环境。 工具返回只包含完成下一步所需的数据。
沙箱用于限制代码和命令执行的文件、网络、进程、时间和资源。 沙箱逃逸与供应链依赖仍需独立安全治理。
11. 可观测性与成本
一次 AI 请求应能追踪:
- 输入来源和任务类型;
- 模型与配置版本;
- 检索查询和命中文档;
- 上下文裁剪结果;
- 工具调用及参数摘要;
- 重试和错误;
- 输入输出 Token;
- 各阶段延迟;
- 最终状态和用户反馈。
Trace 需要脱敏。 不能为了调试保存用户密钥、完整私有文档或高敏感输入。
成本分析应按成功任务,而不是只按单次模型调用。 错误重试、无效检索和过长上下文都会提高真实成本。
12. 选择最小可行架构
优先级通常是:
- 普通确定性程序;
- 单次结构化模型调用;
- 检索与引用;
- 少量受控工具调用;
- 明确状态的 Workflow;
- 必要时才使用自主循环或多 Agent;
- 有数据和收益证据后再微调模型。
架构越复杂,评估与故障面越大。 只有测量证明简单方案无法满足目标时,才引入下一层能力。
课程目录
| 模块 | 主要内容 |
|---|---|
| LLM 原理与工程 | 神经网络、Transformer、训练、推理、后训练、提示与 API |
| Agent 工程 | 工具调用、RAG、记忆、工作流、多智能体、安全与可观测性 |
| AI 基础设施 | 数据、分布式训练、GPU 集群、调度、存储、网络与故障恢复 |
| AI 编译器 | 计算图、IR、MLIR、融合、内存规划、调度与代码生成 |
推荐路线
AI 应用开发:LLM → Agent → 部署与可观测性。
模型与训练工程:LLM → AI Infra → 系统与高性能。
编译器与推理优化:LLM 推理计算 → AI 编译器 → GPU/CPU 体系结构。
工程判断与安全边界
确定性计算、权限校验、金额、资源删除和数据库约束应留在普通程序中。模型可以提出意图或生成候选参数,但高副作用动作需要 Schema 校验、权限检查、幂等键、审计记录和必要的人类确认。RAG 能提供外部资料,却不能自动保证检索结果正确或回答忠于来源;多 Agent 增加角色分工,也会增加延迟、成本和故障面。
选择技术时从最小可行系统开始:能用一次结构化模型调用解决,就不先引入自主循环;能用检索加引用解决,就不急于微调;单机推理满足目标,就不为了架构完整而部署复杂集群。只有测量证明瓶颈存在时,才引入缓存、批处理、量化、并行或专用编译优化。
学完本区后,应能区分模型问题、上下文问题、工具问题和基础设施问题,建立可重复评估,并设计一个即使模型犯错也不会越过关键安全边界的 AI 系统。