让AI应用在现实中发挥作用所需了解的知识
Key takeaway: Andrew Ng在本文中系统阐述了构建和部署真实可用AI应用所需的核心技能体系,回应了AI工程化的关键挑战:如何在不可预测的AI组件之上构建可靠的软件系统。文章指出,AI应用与传统软件的本质区别在于LLM输出的不确定性,这使得开发过程成为高度迭代的“构建-检查-决策”循环,而非线性规划。核心技能分为六个维度:(1)LLM基础——理解分词、生成机制、上下文窗口、缓存命中、知识截止、推理强度、采样参数及工具调用等,以做出正确的模型选型和微调决策;(2)数据接地——超越早期RAG向量搜索,掌握向量索引、知识图谱、结构化数据语义层等多种技术,构建从文档(文本、PDF、HTML、图片)到LLM就绪输入的清洗管道;(3)智能体系统构建——涵盖从预定工作流到自主决策循环的架构光谱,涉及工具选择(MCP、CLI、沙箱执行环境)、记忆架构、长期会话上下文管理、多智能体编排及生产安全(护栏、对抗输入、数据外泄防范);(4)评估驱动开发——Andrew Ng认为这是区分AI工程师水平的最重要特质,需要结合系统轨迹分析、探索性数据分析与产品业务洞察来设计评估指标,并根据项目阶段选择确定性评估、LLM-as-a-Judge或人工评审等方法,形成驱动系统化迭代的闭环;(5)生产运维——由于不可预测性、成本和延迟的特殊性,需要建立可观测性机制跟踪性能、检测漂移、应对提示注入安全事件,并通过回归测试和CI/CD统计评估进行模型优化、蒸馏和工作流简化;(6)机器学习基础——理解监督学习和强化学习原理,掌握偏差/方差、错误分析、数据工程等核心心智框架。
- AI应用与传统软件的核心差异在于输出的不可预测性,这导致开发过程高度迭代,需要工程师根据中间结果动态决策下一步方向。
- 评估驱动开发被视为区分AI工程师水平的最重要特质,其核心是通过系统化的评估和错误分析循环来指导开发方向。
- LLM的数据接地技术已从早期RAG向量搜索扩展到向量索引、知识图谱、结构化数据语义层等多种方案,工程师需根据数据表示和查询需求匹配技术。
- 智能体系统涵盖从预定工作流到自主决策循环的架构光谱,生产化需关注护栏、对抗输入防范、数据外泄等安全治理问题。
- AI应用的生产运维涉及可观测性、漂移检测、回归测试的统计评估,以及通过模型蒸馏、微调和工作流简化来优化成本和延迟。
- 机器学习基础中的偏差/方差、错误分析和数据工程思维仍然是驾驭不确定输出系统的核心心智框架。
面对当前AI应用落地普遍面临的“不可靠性”挑战,Andrew Ng在这篇文章中给出了系统性的解法。文章梳理了构建生产级AI应用的六项核心技能,其中“评估驱动开发”被认为是决定开发者水平的最关键特质——因为在不可预测的AI组件上构建可靠系统,靠的不是一次性设计,而是持续的评估和迭代。这篇文章没有停留在“用API做Demo”的浅层,而是深入到模型选型、数据接地、智能体架构、生产运维等真实交付场景,为正在从原型走向产品的工程师提供了一份结构化的能力地图。对于希望理解AI工程化本质的团队管理者也是一份高质量的能力评估参考。
AI应用与传统软件的核心差异在于输出的不可预测性,这导致开发过程高度迭代,需要工程师根据中间结果动态决策下一步方向。
—— 络石智能编辑部 · Editor's Pick让AI应用在现实中发挥作用所需了解的知识
Loading the Elevenlabs Text to Speech AudioNative Player...
亲爱的朋友们,
我之前写过关于我们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工程师,并构建更令人兴奋的应用。这些技能的强有力补充是软件工程。我将在下一封信中对此进行更多阐述。
继续构建!
Andrew
Tags
Related Topics
Expert Comment
This article is curated by the editorial team from public sources for reference only.