6.0 第六部分导言:人工智能
人工智能已经从一项研究领域的新奇事物,发展成为一项大型组织如今被期望能够负责任地、大规模地部署的核心能力。本部分将带你走过整个生命周期:决定在哪些地方值得应用人工智能,构建能在生产环境的真实考验中存活下来的机器学习系统,在生成式模型之上构建应用,用人工智能来辅助软件开发本身,履行你在公平性和问责制方面的义务,以及运行这一切所需要的专业化基础设施。有一个理念贯穿每一章:模型本身很少是困难的部分。真正困难的部分,是围绕着它的工程、治理和运维纪律。
对大型团队而言,规模和惯性使利害关系变得更高。一个构思不周的项目可能烧掉预算、分散优秀工程师的精力,并在公开失败时侵蚀信任。而一个选择得当的项目,则可以自动化繁琐的工作,并从你此前永远无法触及的数据中挖掘出洞见。在数百名开发者和数十个模型的规模下,监督工作中微小的习惯和微小的缺口,累积起来就会变成组织层面的结果。这正是共享平台、默认设置和规范,比任何单一的巧妙方案都更加重要的原因。
企业和政府场景带来了更加严格的约束,这些约束贯穿每一章。公共机构必须证明支出的合理性、保证透明度、避免非法歧视,并对监管机构和公众负责。采购规则可能禁止单一供应商锁定,并要求具备可解释性和退出选项。诸如《欧盟人工智能法案》(欧盟对人工智能系统按风险分级的监管法规)之类的新兴法律,以及诸如 NIST 人工智能风险管理框架和 ISO/IEC 42001(一项可认证的人工智能管理体系标准)之类的标准,都施加了按风险等级划分的要求。在这些场景中,合规性、可审计性、可复现性和数据主权,都是一流的要求,而不是事后才想起来的事情。
本部分的章节
6.1 人工智能战略与就绪度:决定在哪些地方应用人工智能、在哪些地方避免使用它,以及在第一个模型进入生产环境之前,必须具备哪些数据、人才和治理基础的这门学科。
6.2 机器学习工程(MLOps):把软件工程的严谨性,带入”代码 + 数据 + 模型”这一三方现实之中,从而让机器学习系统变得可复现、可观测、可维护,而不是一次性的演示。
6.3 生成式人工智能与大语言模型应用:通过上下文管理、检索增强的落地方式、护栏(约束模型输入输出的运行时检查),以及严谨的评估,围绕概率性语言模型构建可靠的应用。
6.4 人工智能辅助的软件开发:通过明确的规范、良好的默认设置、强有力的验证,以及对安全性和许可协议的关注,使用人工智能编程助手来提升吞吐量,而不降低质量。
6.5 负责任且可信赖的人工智能:构建公平、透明、可问责、安全且尊重隐私的系统,并能够向受影响的人群和监管机构证明这一切。
6.6 人工智能基础设施与运维:以具备成本效益、可靠且可观测的方式,配置和运行人工智能工作负载所需要的稀缺加速器、向量存储(把数据索引为数值向量以进行相似性搜索的系统),以及服务层。
6.7 人工智能智能体与自主系统:构建在一个循环中使用语言模型、配合工具、记忆和目标来采取行动的软件,并通过有边界的自主性、最小权限的工具访问、人工介入审批、针对提示注入的护栏,以及对非确定性行为的严谨评估,安全地做到这一点。
6.8 人工智能评估与测试:通过评估驱动的开发、具有代表性的评估集和任务契合度指标、经过校准的”大语言模型作为评判者”方式与人工评审、红队测试、持续集成中的回归关卡,以及对生产环境中质量和漂移的监控,让人工智能变得可信赖。
6.9 提示工程与上下文设计:把提示工程当作一门工程学科来对待,包括结构化的提示、少样本和思维链技术、有纪律的上下文预算管理与检索、结构化输出和工具调用,以及像对待代码一样对提示进行版本管理、评审和评估。
这些章节之间的关联
这些章节共同构成了一条从意图到运维的生命周期。第 6.1 章确立战略和就绪度,界定哪些问题真正值得用人工智能来解决,以及你首先需要哪些基础。第 6.2 章为经典机器学习提供工程支柱,而第 6.3 章则涵盖生成式模型的独特模式,在这类模型中,行为是由提示和检索到的上下文塑造的,而不是由一个训练步骤塑造的。第 6.4 章把人工智能应用到软件开发这门手艺本身之上,而第 6.6 章则提供了其他每一章都依赖的计算、存储和服务基底。第 6.5 章有意地不是最后的定论,而是一个持续相伴的同行者:负责任人工智能方面的义务,贯穿始终地塑造着战略、约束着模型选择、把关着部署决策,并影响着基础设施决策。
这条主线从战略延伸到 MLOps,再到生成式人工智能,再到人工智能辅助开发,再到负责任的人工智能,再到基础设施,但要把它想象成一张网,而不是一条直线。MLOps 和基础设施在可复现性、成本和服务方面有着共同的关切,因此第 6.2 章和第 6.6 章最好放在一起阅读。负责任人工智能向后关联到第 6.1 章的战略,向前延伸到第 10.5 章对伦理和公共利益更广泛的讨论,并依赖于第 4.5 章中的隐私和数据保护实践。本指南更广泛的工程基础支撑着整个部分:第 8.1 章的持续交付、第 9.2 章的可观测性和监控、第 2.4 章的测试策略,以及第 2.5 章的代码评审,全都是做好人工智能工作的前提条件。人工智能并不能取代扎实的软件工程,它只是提高了把软件工程做对的重要性。