AI工程技能图谱:构建与部署AI应用的关键能力
AI工程技能图谱:构建与部署AI应用
我之前写过关于我们的AI工程技能图谱的文章,其中最高层级的技能包括:(i)构建和部署AI应用,(ii)软件工程基础,(iii)使用编码智能体,以及(iv)塑造构建过程。在本文中,我将详细阐述第一项。
擅长构建和部署AI应用意味着需要了解:
- LLM基础
- 用数据为模型提供依据(Grounding)
- 构建智能体系统
- 评估驱动的开发
- 生产环境运维
- 机器学习基础
这份技能图谱是通过分析大量职位招聘信息、结构化专家访谈和调查问卷得出的。
AI应用与非AI软件之间的关键区别在于,前者的输出可预测性较低。你无法事先知道LLM会输出什么,也无法知道监督学习算法会做出什么预测。由于这种不确定性,构建AI系统比构建传统软件更具迭代性——更难提前规划整个过程。熟练的AI工程师会反复构建软件、检查输出,然后决定下一步尝试什么,采取一系列在很大程度上受中间结果影响的步骤。能够熟练地决定下一步做什么,使你能够基于不可靠的AI组件构建出可靠的软件系统。这需要了解以下内容:
LLM基础。 理解大型语言模型如何对输入进行分词并生成输出,能够让你了解何时可以依赖它们,以及它们何时可能失败。这还能让你理解何时使用多模态模型,如何在上下文窗口中权衡包含哪些内容,并推理缓存命中、知识截止日期、推理努力级别、采样参数,以及何时使用工具调用等特殊功能。理解这些基础有助于你选择合适的模型或模型组合,并在需要时应用专门技术,如微调或自托管模型。
用数据为模型提供依据。 LLM需要良好的输入上下文才能产生有用的输出。使用向量搜索的RAG是为LLM提供相关上下文的早期尝试,但用数据为模型提供依据的技术集合已经显著增长。例如,你需要决定将哪些内容放入提示词中,而不是让LLM使用工具按需检索,以及哪种表示适合数据和搜索查询:向量索引、知识图谱,还是结构化数据(如客户记录)上的语义层。你还需要将文档(文本、PDF、HTML、图像)转换为LLM可用的输入,并设计管道以保持数据的清洁和新鲜。当你了解了获取数据的所有可用技术时,你就能够更好地为LLM提供相关上下文。
构建智能体系统。 智能体系统的范围从执行预定义LLM调用序列的工作流,到基于智能体框架的、允许LLM反复自行决定下一步的系统。你需要选择架构——哪些步骤需要串联、哪些可以并行、何时使用代码以及何时使用LLM——并设计带有回退机制的工作流或框架。在设计智能体循环时,你还需要决定模型可以调用哪些工具(包括MCP、CLI和沙箱执行环境),使用什么记忆架构,如何在长时间会话中管理上下文,以及何时需要多智能体编排而非单智能体架构。你还需要将有前途的原型转变为可靠的、安全的、可投入生产的智能体;这需要理解护栏、对抗性输入,识别并绕开关键风险(如数据泄露),以及治理机制。
智能体工作流正在快速发展,你还会从理解与你应用领域相关的任何前沿技术中受益,例如语音智能体、计算机使用智能体或生成式用户界面。
评估驱动的开发。 根据我的经验,区分一个人是否擅长构建AI系统的最重要特质,是你能否推动一个纪律严明的评估/错误分析循环来驱动开发。这能让你反复将精力集中在更有可能产生成果的方向上。我发现这是一项难以掌握的技能,因为正确的方法会因项目而异,甚至因项目的阶段而异。
构建良好的评估是一项深层次的技术技能。你可能会查看系统的追踪和输出,进行探索性数据分析,并将其与产品和业务洞察相结合,决定要衡量什么。你还应该了解评估的各种选择,例如何时使用确定性(基于代码的)评估,何时使用LLM作为裁判,何时让人工介入,以及如何评估你的评估,以便让它们不断发展。这些评估随后会反馈到一个迭代过程中,推动进一步开发,使进展变得系统化而非随机。
生产环境运维。 运维AI软件与传统软件不同,因为它的不可预测性、成本和延迟。首先,你应该知道如何构建可观测性机制,以理解系统在真实使用场景中的表现。你需要跟踪性能,检测漂移,并快速响应模型故障和安全事件(如对抗性提示注入)。与传统的软件相比,建立回归测试和CI/CD需要更多的统计评估,测试工作应根据错误风险进行校准。此外,重要的是要知道如何选择合适的技术组合——例如模型选择优化、蒸馏和微调,以及智能体工作流简化——来优化成本和延迟,尤其是当你的应用面向大量用户时。
机器学习基础。 现代LLM是使用机器学习技术构建的,包括监督学习和强化学习。我认识的每一位擅长使用LLM构建应用的工程师,也都对机器学习和深度学习有一定深度的理解。此外,许多应用仍然需要知道如何使用机器学习——无论是使用别人训练的模型,还是自己训练的模型。这需要了解流行的机器学习和深度学习模型,以及在准确性、训练速度、推理速度等方面的权衡,并理解如何工程化训练和评估这些模型所需的数据。机器学习的偏差/方差、错误分析和数据工程等概念——这些都是处理不确定输出系统的核心思维框架——仍然是AI系统开发中做出广泛决策的关键。
要想擅长构建和部署AI系统,需要学习很多东西。这是一个具有显著技术深度的领域。但你学到的每一点都会帮助你更好地进行AI工程,并构建出更令人兴奋的应用。与这些技能相辅相成的是软件工程。我将在未来的文章中讨论这一点。