AI界大神,Deeplearning的创始人吴恩达在社交媒体上发了一个文章《The AI Engineering Skills Map》,中文为AI工程技能图谱。之前我写过一篇文章,分析过FDE和AI工程师,吴恩达的这篇文章从更高维度介绍了AI时代应该具备的技能。我们先来简单分析一下AI时代的底层逻辑。

我们都知道软件开发的本质是“将不确定性的规则和需求通过逻辑转化为确定性的产品价值”,其核心输入输出的确定性,但成本会偏高,代码技术会占用很大的成本;而AI不同,首先是存在概率与不确定性,但对应的编码成本会逐步趋近于零。所以从需求定义与交付上来说,在AI时代,如何实现已经不再重要,而什么值得被构建变成了更重要的价值。
所以吴恩达提出了四个核心技能:
构建与部署 AI 应用 (Building and deploying AI applications):这个能力就要治理AI的不确定性,要求我们掌握大模型、RAG、Evals等;
软件工程基础 (Software engineering fundamentals):和吴恩达之前的论点相吻合,AI不是替代人,而是放大人的能力,软件工程的一些核心能力如成本、扩展、安全、数据等设计依然是需要具备的最底层的工程能力。才能避免之前提到的Vibe coding导致的系统的不健壮性。
使用编程 Agent (Using coding agents):AI时代人机协同的典型场景之一就是学会使用编码编程的代理,如codex、claude code,当然不是浅尝辄止,而是深度理解,毕竟claude code一旦全面掌握,你对提示词、上下文、loop、harness等工程就会有清晰的认知,同时能以最小Token和时间成本带来最大的代码产出。
塑形构建 (Shaping the build):这个我认为是最核心的能力,编码成本大幅降低后,如何确定价值,如何决策将成为关键。工程师应该具备产品的敏锐洞察与业务价值,能发现哪个撬动最大利益的杠杆,能清晰定义(Spec:请参考我之前的文章:AI编程:从Vibe Coding到Spec Coding),评估MVP,类似FDE的核心能力将技术能力转化为业务价值。

当然,在商言商无可厚非,毕竟吴恩达是Deeplearning的创始人,也希望所有人能通过Deeplearning来学习获得自己的商业收益。
但从吴恩达本人的这篇文章来看,“AI 工程技能”不仅仅是针对他之前提的 AI Engineer,而是所有软件从业人员(全栈、数据、Devops等)都适用的图谱。毕竟有不变的软件工程底层,还有在AI时代聚变的Spec制定、上下文管理、评估工程等。
以下为正文译文:

我十分高兴地向大家介绍《AI 工程技能地图》。AI 让我们如今能够以与 2022 年截然不同的方式构建软件,而每一个掌握利用这一转变所需技能的人,都会拥有大量令人兴奋的项目和工作机会。但在 AI 领域嘈杂喧嚣、充满炒作的信息环境中,对你而言最有价值的学习技能究竟是什么呢?我与我的团队一直在努力综合出一份 AI 工程技能地图,以帮助(一)开发者确定学习重点,以及(二)雇主招聘到熟练的开发者。
基于对 10,000 多份招聘信息的分析、与 AI 专家、招聘经理和招聘人员进行的数十次结构化访谈、通过问卷调查收集的数据,以及对其他线上数据的综合整理,以下是四项最重要的 AI 工程技能:
构建和部署 AI 应用 软件工程基础 使用编码智能体 塑造构建过程
你可以非正式地把我们的过程理解为:在一个由海量岗位和专家访谈组成的数据集上运行聚类分析,从而识别出最重要(不仅是当下,也包括不久的将来)的技能。
关于术语的一点说明:我谈的是"AI 工程技能",而不是"AI 工程师"这一职位(指以构建 AI 系统为工作的人),因为前者的范围要广得多。如今所有开发者都应该懂得如何使用云计算,而只有较少数人拥有"云工程师"的头衔。同样,所有开发者——无论是全栈工程师、数据工程师、DevOps 工程师、机器学习工程师,还是(没错)AI 工程师——都将需要 AI 工程技能。
构建和部署 AI 应用。 AI 应用与非 AI 应用的关键区别在于前者的输出是不可预测的。当你向 LLM 发出提示时,你不知道会得到什么回复。当你训练一个深度学习算法时,你不知道它会对新样本做出什么预测。相比之下,传统软件的行为更具可预测性。
擅长构建和部署 AI 应用的人,理解 AI 的构建模块(如 LLM、上下文工程、RAG、智能体工作流、机器学习和深度学习),并且更重要的是,懂得如何使用统计技术来衡量、引导和治理 AI 系统,使其行为更具可预测性。其中一项核心技能,是知道如何驱动严谨的评估(evals)和错误分析循环。
软件工程基础。 当你深入理解软件的运作方式时,你就能更高效地进行构建。软件工程要求你在成本、可扩展性、可靠性、速度等方面做出权衡取舍。安全性和隐私则进一步增加了复杂度。
理解软件基础能让你认识到究竟存在哪些权衡。这会让你在选择软件技术栈、设计系统架构、设计数据存储、测试等方面做出更好的决策。与那些凭感觉编程(vibe code)、却不知道自己所用的编码智能体正在做出哪些权衡的缺乏经验开发者相比,理解软件基础能带来好得多的结果——而那种缺乏经验的开发者往往会得到糟糕的结果,因为他们不知道该给自己的编码智能体提供什么上下文。理解软件工程基础,能让你通过使用软件工程的精确语言来引导编码智能体,从而做出良好的权衡。
使用编码智能体。 有效地使用智能体编码(agentic coding),如今已成为每位开发者的一项关键技能。当你掌握这项技能时,你对智能体的运作方式会有良好的心智模型。你理解它们的局限性以及如何规避这些局限,并能够迅速引导它们——知道该在多大程度上进行干预、又在多大程度上放手不管——从而在不浪费过多时间或 token 的情况下构建出稳健的软件。
这要求你懂得如何管理编码智能体的上下文,在规划与执行之间做出权衡,并通过提供验证器(verifiers)或评估(evals)来帮助智能体自主地闭环(close loops)。你还需要知道如何依据一份清晰的规格说明(spec)来工作(以及什么时候不必费心这么做)、编排多个协同工作的智能体,并避免诸如"让智能体搞砸你的生产数据库"这类陷阱。由于智能体编码演进迅速,熟练地使用编码智能体不仅意味着掌握最前沿的实践,还意味着拥有持续尝试新工具、并随着最佳实践的演进而不断改进自身工作流的习惯。
塑造构建过程。 在给定清晰规格说明的情况下,编码智能体交付规格的能力正在迅速提升。因此,我们作为工程师的工作正转向决定"规格说明中应该包含什么"。工程师不应再期待拿到一份像素级完美的设计、然后只需负责实现它。相反,有效的 AI 工程要求具备产品感、理解业务背景和客户目标,这样你才能参与塑造并推动构建过程。
AI 也让你有机会承担比以前更大的责任和主动权。你可以识别出有趣的问题和机会,并以负责任的方式执行、抓住这些机会。要抓住这一机会,你需要知道如何推动项目向前发展。例如,知道何时快速构建一个 MVP 拿去给用户测试,以及何时放慢脚步、花更多时间以便更细致地构建。
支撑所有这些技能的,是一种持续学习的心态。AI 仍在快速变化,因此我们都必须不断学习、不断进化自身技能,以采纳不断涌现的最佳实践。
[DeepLearning.AI]的核心关注点,是帮助开发者获得这些 AI 工程技能。关于这四项技能中的每一项,我还有更多想说的,我会在接下来的文章中对每一项逐一展开阐述,并分享一份更详细的 AI 工程技能地图。当我展望 AI 工程的发展方向时,我对于我们所有人将来能够构建出的东西感到无比兴奋。我希望你能在这一未来中扮演一个令人振奋的角色。
原文地址:https://x.com/AndrewYNg/status/2088302050706686198
夜雨聆风