什么是AI Engineering?

Friday, April 11, 2025 - AI Agent - AI Engineering LLM Machine Learning

导言


近期,AI工程(AI Engineering)再次成为热门话题。尽管过去两年大型语言模型(LLM)的热潮已使这一角色的定义逐渐明朗,但我仍对AI工程师的具体职责感到惊讶,许多人对这一角色的具体职责仍存有困惑。在本文中,我将分享我对AI工程师角色的理解,以及这一角色在近一年来的演变。

本文将围绕以下几个方面展开:

- 大型语言模型时代下AI系统的演变
- AI工程与机器学习及软件工程的区别
- 进入AI工程领域所需的技能
- AI工程的未来展望

大型语言模型时代下AI系统的演变

虽然我的观点可能有些争议,但我认为AI系统的核心架构并未发生根本性变化。真正改变的是大型语言模型(LLM)的出现,让我们能够在AI系统流程中解决一些过去难以处理的复杂任务。LLM是一种用途极其广泛的工具,在日常工作中具有显著的应用价值。以下是它的关键功能:

* Planning 规划
* Content extraction 内容提取
* Content generation 内容生成
* Code generation 代码生成

这些能力在与传统软件和机器学习技术结合时,表现出显著的优势。AI系统是一个复杂的体系,由多个组件组成,可能包括大型语言模型(LLM)、代码执行模块和传统的分类模型,这使得系统的复杂性显著增加。接下来,我们将探讨这些新老技术融合的应用是如何演变的。AI工程师正是这些系统开发和部署的核心角色。

!LLM-based AI Systems Evolution

如果让我来命名,我更倾向于用“AI系统工程师”而非“AI工程师”,因为这个称呼更能体现构建成功AI产品的核心——系统性。在构建一个生产级AI系统的过程中,主要涉及两种工程角色:

- AI研究人员:他们负责LLM应用生命周期的初期阶段(上图标记为“1”),包括模型的预训练或后训练工作。近年来,后训练阶段(post-training)受到越来越多的关注,因为LLM的缩放定律(Scaling Law)似乎已接近极限。后训练研究催生了像OpenAI o1这样的产品,尽管目前其应用范围有限,但如果能降低延迟,这类“推理”模型将显著提升AI系统的能力。
- AI工程师:他们利用预训练的LLM构建AI系统(上图标记为“2”),解决实际的商业问题。过去几年,这一实践从基于单一“提示-回答”架构的简单应用,逐步发展为更复杂的检索增强生成(RAG)系统,再到具备代理能力的RAG(Agentic RAG),最终演变为不仅仅是回答问题的智能代理(Agents)。未来两年,我们有望实现更复杂的多代理系统。到2026年底或2027年,我们可能看到需要极少人工干预的完全自主代理系统。

AI研究人员和AI工程师的工作有时会有一些交叉(上图标记为“3”),这意味着他们可能会在某些任务上共同合作。这一领域发展迅速,后训练研究的重要性日益凸显,但目前尚不清楚AI工程师会在这一过程中扮演多大角色,更多工作可能仍由AI研究人员主导。AI工程师的目标是利用现有资源,构建解决实际商业问题的AI系统。这可能包括对LLM进行适当的微调。

!Agentic Flows and Evals

如今,一个真正生产就绪的AI系统很少是简单的。许多项目失败的原因在于输出准确性难以达到要求,或者在部署时未充分了解系统的准确性,导致最终无声无息地失败,甚至引发灾难性后果。为了提升系统性能,我们通过以下方法引入一定程度的“代理能力”:

- 路由:根据任务类型将请求导向合适的处理模块。
- 反思:让系统自我评估并改进输出。
- 查询重写:优化用户输入以提高处理效果。

> “AI工程师的目标是利用现有资源,构建一个能解决实际商业问题的AI系统。”

随着系统复杂性增加,流程中的大多数节点都会产生非确定性结果。这些结果需要评估,因为任何一步的失误都可能导致最终输出的偏差。评估(Evals,即检查AI系统输出质量的方法)是一个难题,尚未有通用的解决方案,但相关研究正在积极推进。为了增强系统的稳健性,我们引入了以下额外组件:

- 评估机制:衡量系统输出的质量。
- 可观测性:监控系统运行状态。
- 防护栏:防止系统输出错误或有害内容。

AI系统中代理能力的一个简单示例

一个基础的代理式RAG(Agentic RAG)系统是代理能力的一个简单例子。

!Agentic RAG

以下是该系统的高层级运作步骤:

1. 用户查询分析:将用户的原始查询传递给基于LLM的代理进行分析。在此过程中:
- 原始查询可能会被重写,有时甚至多次重写,形成单个或多个下游查询。
- 代理决定是否需要额外数据源来回答查询。
2. 检索阶段:如果需要额外数据,触发检索步骤。在代理式RAG中,可能有一个或多个代理负责确定需要访问哪些数据源,例如:
- 实时用户数据(如当前位置)。
- 用户可能感兴趣的内部文档。
- 网络上的公开数据。
3. 直接生成答案:如果不需要额外数据,则直接通过LLM生成答案(或多个答案)。
4. 答案分析与评估:对生成的答案进行总结,评估其正确性和相关性:
- 如果代理认为答案足够好,则返回给用户。
- 如果答案需要改进,则重写用户查询并重复生成(循环)。

相较于传统的RAG流程,代理式RAG引入了大量非确定性,可能因未正确中断而陷入无限推理循环。Agentic RAG已被视为一种代理系统,也是行业中最常见的类型之一,而这正是AI工程师日常工作的核心内容!

AI工程与机器学习及软件工程的区别

事实上,现在构建一个LLM应用看似简单:连接到第三方API,设计一些提示词,将应用接入聊天界面或工作流,就可以拥有一个代理系统。确实,做到这一点并不难,但这样的系统往往在遇到问题时不堪一击。

通过与使用LLM构建系统的公司交流,我发现大多数公司仍处于早期阶段,软件工程师已经构建了初步应用,通常是聊天机器人、代理或邮件代理。然而,软件工程师并不习惯处理非确定性系统,而这正是机器学习工程师的专长。这些系统往往缺乏适当的可观测性,甚至连基本的自动化评估都没有,公司只能依赖人工评估。

一年半前,我可能会认为“AI工程师”这一新角色没有存在的理由,但经过实际项目经验后,我的看法改变了。我发现,起步容易,但如果没有坚实的基础,项目注定失败——我们需要AI工程师。

有人可能会说,从机器学习工程师、软件工程师或AI研究人员转型为AI工程师是最自然的路径。

!The AI Engineer

- AI研究人员:他们擅长原型设计,提出新颖想法并验证假设,分析输出数据并制定持续改进模型的策略。他们对统计学和机器学习基础有深入理解。如今,他们很可能能够独立在分布式系统上运行LLM训练。
- 可能欠缺的技能:部署现实世界生产应用的能力,以及在LLM领域实施MLOps最佳实践。
- 机器学习工程师:能够构建和部署常规机器学习模型作为AI/ML系统,具备MLOps的完整技能,包括反馈循环的实现、系统监控和持续改进。他们通常还涉及数据工程,经常使用特征库(Feature Stores)或向量数据库(Vector DBs)等特定于ML的数据存储。
- 可能欠缺的技能:进行深入研究的能力,以及构建生产级高吞吐量系统的能力,同时实施和运营常规软件最佳实践。
- 软件工程师:他们非常出色,能够构建复杂的高吞吐量、低延迟的确定性系统,将业务需求转化为复杂的软件流程。他们是DevOps和软件工程最佳实践的大师,能够以高速度安全地开发并上线产品。
- 可能欠缺的技能:在非确定性系统中推理的能力,以及如何观察和评估这些系统的知识。此外,他们通常不习惯持续学习非软件相关的内容,而这些内容可能在一天内彻底改变,要求重新架构整个系统。

期待有人能同时精通这三个领域是天真的想法——那简直是“独角兽”。因此,AI工程师通常会融合其中两个领域的技能,落在上图中的“1”、“2”或“3”区域。未来是否会为这些角色分别命名尚不得而知。我首先想到的是,位于“3”区域的人或许可以称为“AI系统工程师”或“AI架构师”。让我们拭目以待这一领域的演变吧!

当前的一个趋势是,新成立的公司以更少的工程师团队就能超越传统巨头。我相信全栈AI工程师将是最有能力颠覆市场的人。

成为AI工程师需要哪些技能?

在代理式应用领域,研究进展迅速,很难跟上最新动态。最近就有一篇论文探讨了提示词格式(Prompt Formatting)如何影响LLM应用的性能。以下是AI工程师需要掌握的关键技能:

- 研究能力:学术白皮书将成为你重要的参考资料。代理式应用领域的研究层出不穷,作为AI工程师,你需要利用内部数据和计算资源,亲自研究哪些方法有效,哪些无效,这对你的雇主至关重要。
- 提示工程(Prompt Engineering):虽然听起来简单,但提示工程和格式化的技巧非常广泛。在代理式系统中,你还需要处理跨代理提示依赖、共享状态和通过提示实现的内存管理。此外,一切都需要评估,因此你需要为每个提示设计定制评估机制,并准备可供测试的数据集。
- 软件开发:毋庸置疑,你部署的系统必须坚实可靠。你需要了解并遵循软件工程和DevOps的最佳实践。
- 基础设施:一方面,你需要能够独立部署自己的工作,这可以视为软件开发的一部分;另一方面,你需要理解数据和新型存储系统,如向量数据库(Vector DBs)。这些技术对非机器学习工程师来说可能较为陌生。
- 数据工程:你会惊讶地发现,理解、清洗和处理数据的时间占了AI系统开发的大部分。最困难的部分往往是将数据源整合到AI应用中,而不仅仅是提示词的使用。
- 适应AI系统的MLOps(AgentOps):过去五年,随着MLOps的发展,我们为构建AI系统引入了许多优秀实践,大部分在构建LLM系统时沿用。
- 评估机制。
- 可观测性(相关挑战可参考我的文章:LLMOps管道中的可观测性)。
- 提示词跟踪与版本控制。
- 反馈机制与系统持续改进循环。

> “最困难的部分往往是将内部数据源整合到AI应用中,而不仅仅是提示词的使用。”

AI工程师的日常工作是怎样的?

值得注意的是,作为AI工程师,你的日常工作中包含大量非工程相关的内容。许多组织仍处于对LLM的狂热追捧阶段,你可能会被要求在任何地方引入LLM,即使并不适合。你的核心职责之一是指导组织,处于决策的前沿,判断是否以及在何处需要LLM来解决业务问题。

你会花大量时间研究、阅读论文和博客,关注行业顶尖玩家的动态。还记得Anthropic推出的上下文嵌入吗?现在看来这是一个显而易见的想法,但直到有人提出并通过提示缓存降低成本后,它才变得可行。

你还会投入大量时间构建测试数据集,以便评估系统。与利益相关者的协作至关重要,例如,你需要与前端系统紧密整合以实现反馈机制。只有在完成上述工作后,真正的工程部分才会开始!但这一切都是值得的。

> “你的核心职责之一是指导组织,处于决策的前沿,判断是否以及在何处需要LLM来解决业务问题。”

AI工程的未来展望

我预测,未来几年,每家公司都将采用代理式系统来自动化流程,因此所有公司都需要AI工程师的技能。此外,AI应用将成为为企业带来最大价值的工具,也是保持竞争力的必需品,因为所有公司都将加倍投入这一技术。

AI工程师预计将成为未来几年最热门的角色。薪资水平高,人才短缺将持续推高需求。2025年将是代理系统之年,2026年很可能是多代理系统和自主代理之年。

更重要的是,AI工程师现在和未来都处于构建新公司的最佳位置,所需资源极少。全栈AI工程师的能力越强,其影响力就越大。