← 返回信息流

Andrew Ng长文

AI 工程技能图谱:构建与部署 AI 应用

观点教程AI评分:70/100

作者基于招聘信息、专家访谈和调查,梳理了构建和部署 AI 应用所需的核心技能,包括 LLM 基础、数据接地、智能体系统、评估驱动开发、生产运维和机器学习基础。强调 AI 系统输出不确定性带来的迭代开发特点,以及评估驱动开发作为关键能力。

AI工程技能图谱:构建与部署AI应用

我之前写过关于我们AI工程技能图谱的文章,其中最高层级的技能包括:(i) 构建和部署AI应用,(ii) 软件工程基础,(iii) 使用编码智能体,以及(iv) 塑造构建过程。在本文中,我将详细阐述第一项技能。擅长构建和部署AI应用意味着需要了解:LLM基础、用数据为模型提供 grounding、构建智能体系统、评估驱动的开发、生产环境运维、机器学习基础。这份技能图谱是通过分析大量职位发布、结构化专家访谈和调查问卷反馈而形成的。AI应用与非AI软件之间的关键区别在于,前者的输出可预测性较低。你无法预先知道LLM会输出什么,也无法预知监督学习算法会做出什么预测。由于这种不确定性,构建AI系统比构建传统软件更具迭代性——更难提前规划整个过程。熟练的AI工程师会反复构建软件、检查结果,并决定下一步尝试什么,所采取的每一步都深受中间结果的影响。能够熟练地决定下一步做什么,使你能够基于不可靠的AI组件构建出可靠的软件系统。这需要了解以下内容:

LLM基础。理解大型语言模型如何对输入进行分词并生成输出,使你能够判断何时可以依赖它们,以及何时它们可能会出错。这还能让你理解何时使用多模态模型,如何在上下文窗口中权衡包含哪些内容,并推理缓存命中、知识截止日期、推理努力级别、采样参数,以及何时使用工具调用等特殊功能。理解这些基础知识有助于你选择合适的模型或模型组合,并在需要时应用专门技术,如微调或自托管模型。

用数据为模型提供grounding。LLM需要良好的输入上下文才能产生有用的输出。使用向量搜索的RAG是早期为LLM提供相关上下文的尝试,但为模型提供数据grounding的技术集合已经显著扩展。例如,你需要决定在提示词中包含什么内容,与让LLM使用工具按需检索什么内容;以及哪种表示方式最适合数据和搜索查询:向量索引、知识图谱,还是结构化数据(如客户记录)之上的语义层。你还需要将文档(文本、PDF、HTML、图像)转换为LLM可用的输入,并设计管道以保持数据的清洁和新鲜。当你了解获取数据的可用技术菜单时,你就能更好地为LLM提供相关上下文。

构建智能体系统。智能体系统的范围从执行预定义LLM调用序列的工作流,到基于智能体框架(agent harness)让LLM反复自主决定下一步行动的系统。你需要选择架构——将哪些步骤串联、哪些步骤并行化、何时使用代码以及何时使用LLM——并设计工作流或框架,同时考虑回退方案。在设计智能体循环时,你还需要决定模型可以调用哪些工具(包括MCP、CLI和沙箱执行环境),使用什么样的记忆架构,如何在长时间会话中管理上下文,以及何时任务需要多智能体编排而非单智能体架构。你还需要将有前景的原型转化为可靠、安全且有保障的生产级智能体;这需要理解护栏(guardrails)、对抗性输入,以及识别和规避关键风险(如数据外泄)和治理问题。智能体工作流正在快速发展,你也会从了解与你应用领域相关的前沿技术中受益,如语音智能体、计算机使用智能体或生成式UI。

评估驱动的开发。根据我的经验,区分优秀AI系统构建者最重要的特质是,你是否能够驱动一个纪律严明的评估/错误分析循环来推动开发。这使你能够反复将精力集中在更有可能产生成果的方向上。我发现这是一项难以掌握的技能,因为正确的方法因项目而异,甚至因项目的不同阶段而异。构建良好的评估是一项深度的技术技能。你可能需要查看系统的轨迹和输出,进行探索性数据分析,并将其与产品和业务洞察相结合,来决定衡量什么。你还应该了解评估选项的菜单,例如何时使用确定性(基于代码的)评估,何时使用LLM作为评判者(LLM-as-a-judge),何时需要人工参与循环,以及如何评估你的评估体系,使其持续演进。这些评估随后会反馈到迭代过程中,推动进一步开发,使进展变得系统化而非随机。

生产环境运维。运维AI软件

这与传统软件不同,原因在于其不可预测性、成本和延迟。首先,你应该知道如何构建可观测性机制,以了解系统在真实使用中的性能。你将跟踪性能、检测漂移,并快速响应模型故障和安全事件,例如对抗性提示注入。建立回归测试和CI/CD需要比传统软件更多的统计评估,并且测试工作的投入应与出错风险相称。此外,了解如何选择合适的技术组合——例如模型选择优化、蒸馏和微调,以及智能体工作流的简化——以优化成本和延迟,这一点非常重要,尤其是当你的应用面向大量用户时。

机器学习基础。现代LLM是使用机器学习技术构建的,包括监督学习和强化学习。我认识的每一位擅长使用LLM构建应用的工程师,都对机器学习和深度学习有一定深度的理解。此外,许多应用仍然需要知道如何使用机器学习——无论是使用别人训练的模型,还是自己训练的模型。这需要了解流行的机器学习和深度学习模型,以及在准确性、训练速度、推理速度等方面的权衡,并理解如何工程化处理训练和评估这些模型所需的数据。机器学习的偏差/方差概念、误差分析以及数据工程——这些都是处理输出不确定系统时的核心思维框架——对于在AI系统开发中做出广泛决策仍然至关重要。

要擅长构建和部署AI系统,需要学习很多东西。这是一个具有显著技术深度的领域。但你学到的每一点都会帮助你更好地进行AI工程,并构建更令人兴奋的应用。与这些技能形成有力互补的是软件工程。我将在未来的文章中对此进行阐述。

译文已达到本站中文翻译的字数上限,剩余内容请查看原文。

Andrew Ng

@AndrewYNg

The most important skills in Building and Deploying AI Applications.

阅读原文