
我之前在 撰文 介绍了我们的 AI 工程技能地图,其中最高层次的技能是(i)构建和部署 AI 应用,(ii)软件工程基础,(iii)使用编码智能体,以及(iv)塑造构建过程。在本文中,我将详细阐述其中的第一项。
擅长构建和部署 AI 应用意味着需要了解:
- LLM 基础
- 用数据为模型提供基础
- 构建智能体系统
- 评估驱动的开发
- 在生产环境中运营
- 机器学习基础
这份技能地图是通过分析大量职位发布、结构化专家访谈和调查反馈而形成的。
AI 应用与非 AI 软件的关键区别在于前者的输出可预测性较低。你无法预先知道 LLM 会输出什么,也不知道监督学习算法会做出什么预测。由于这种不确定性,构建 AI 系统比构建传统软件更是一个迭代过程——更难预先规划整个过程。熟练的 AI 工程师会反复构建一个软件,检查它,并决定下一步尝试什么,采取一系列受中间结果高度影响的步骤。能够熟练决定下一步做什么,让你能够基于不可靠的 AI 组件创建可靠的软件系统。这需要了解:
LLM 基础。 理解大型语言模型如何对输入进行分词并生成输出,让你能够理解何时可以依赖它们,以及何时它们可能失败。它还让你能够理解何时使用多模态模型,如何在上下文窗口中权衡包含哪些内容,并推理缓存命中、知识截止、推理努力级别、采样参数,以及何时使用工具调用等特殊功能。理解这些基础有助于你选择合适的模型或模型组合,并在需要时应用专门的技术,如微调或自托管模型。
用数据为模型提供基础。 LLM 需要良好的输入上下文才能产生有用的输出。使用向量搜索的 RAG 是早期尝试为 LLM 提供相关上下文的方法,但用数据为模型提供基础的技术集已经显著增长。例如,你必须决定在提示词中包含什么,而不是让 LLM 使用工具按需检索,以及哪种表示适合数据和搜索查询:向量索引、知识图谱或结构化数据(如客户记录)之上的语义层。你还需要将文档(文本、PDF、HTML、图像)转换为 LLM 可用的输入,并设计管道以保持数据干净和新鲜。当你了解获取数据的可用技术菜单时,你就能更好地为 LLM 提供相关上下文。

构建智能体系统。 智能体系统的范围从执行预定义 LLM 调用序列的工作流到基于智能体框架的系统,后者让 LLM 反复决定自己的下一步。你必须选择架构——链式处理哪些步骤、并行化哪些、何时使用代码和何时使用 LLM——并设计工作流或框架,并带有后备方案。在设计智能体循环时,你还需要决定模型可以调用哪些工具(包括 MCP、CLI 和沙盒执行环境),使用什么记忆架构,如何在长时间会话中管理上下文,以及何时需要多智能体编排而不是单智能体架构。你还需要将有前景的原型转化为可靠、安全、可靠的智能体用于生产;这需要理解防护措施、对抗性输入,以及识别和处理关键风险(如数据外泄)和治理。
智能体工作流正在快速发展,你也会受益于理解与你应用领域相关的任何前沿技术,例如语音智能体、计算机使用智能体或生成式 UI。
评估驱动的开发。 根据我的经验,区分是否擅长构建 AI 系统的最重要特质是,你是否能够驱动一个有纪律的评估 / 错误分析循环来推动开发。这让你能够反复将精力集中在更有可能产生成果的方向上。我发现这是一个难以掌握的技术,因为正确的方法因项目而异,甚至因项目阶段而异。
构建良好的评估是一项深入的技术技能。你可能需要查看系统的轨迹和输出,进行探索性数据分析,并将其与产品和业务洞察结合起来,决定衡量什么。你还应该了解评估选项的菜单,例如何时使用确定性(基于代码的)评估,何时使用 LLM 作为评判者,何时让人工参与循环,以及如何评估你的评估,以便持续改进它们。这些评估随后会反馈到一个迭代过程中,推动进一步开发,使进展系统化而不是随机化。
在生产环境中运营。 运营 AI 软件与传统软件不同,因为其不可预测性、成本和延迟。首先,你应该知道如何构建可观测性机制,以理解系统在真实使用中的表现。你需要跟踪性能,检测漂移,并快速响应模型失败和安全事件,如对抗性提示词注入。建立回归测试和 CI/CD 需要比传统软件更多的统计评估,测试工作应根据错误的相对风险进行校准。此外,了解如何选择合适的技术组合——如模型选择优化、蒸馏和微调,以及智能体工作流简化——来优化成本和延迟,尤其重要,特别是如果你的应用面向大量用户。
机器学习基础。 现代 LLM 使用机器学习技术构建,包括监督学习和强化学习。我认识的每一位擅长 LLM 构建的工程师都深入了解机器学习和深度学习。此外,许多应用仍然需要知道如何使用机器学习——无论是别人训练的模型还是你自己训练的模型。这需要了解流行的机器学习和深度学习模型,以及在准确性、训练速度、推理速度等方面的权衡,并理解如何工程化这些模型所需的数据。机器学习的概念,如偏差 / 方差、错误分析和数据工程——这些都是处理不确定输出系统时的核心思维框架——仍然是 AI 系统开发中做出广泛决策的关键。
要想擅长构建和部署 AI 系统,需要学习很多东西。这是一个技术深度很高的领域。但你学到的每一点都会帮助你更好地进行 AI 工程,并构建更令人兴奋的应用。软件工程是这些技能的有力补充。我将在未来的文章中讨论这一点。
