作者:王磊

更多精彩分享,欢迎访问和关注:https://www.zhihu.com/people/wldandan

在《01.AI工程(AI Engineering)初探》中,我们介绍了为何Gartner要把AI工程化作为未来重要战略技术趋势之一,这是因为AI软件与传统软件之间存在根本性差异,简单照搬传统软件工程方法来解决AI领域的问题是行不通的,因此需要发展新的工程技术来支撑AI大规模、平民化的落地。

本篇中,我们将进一步对AI工程进行解读,主要包括:

  • AI工程的由来
  • 业界发展现状
  • 技术全景图

一、AI工程的由来

“软件工程”这一名词诞生于1968年,它的出现是为了克服当时出现的“软件危机”,目标是通过系统化、规范化、可度量的工程方法,来确保软件项目的进度、成本和质量能够达到预期

AI工程的出现,也有着类似的背景,同样也是为了应对AI软件可能的“危机”而诞生的。

在2019年,由国际系统工程理事会(INCOSE)主办的“系统工程的未来”(FuSE)研讨会上,首次提出了“SE for AI”(又称SE4AI)这一术语,来描述应对人工智能实际应用的挑战所需要的工程方法与技术,这些挑战主要被概括为三方面:AI系统本身的不可预测性、AI系统中新的故障模式、以及AI系统在可信和健壮性方面的不足[1]。

后来,Gartner公司等其他机构也经常用“AI工程”(AI Engineering)这个词来描述面向AI系统的过程、方法与工具,虽然表述不同,但要解决的都是AI领域工程化的问题。这就是AI工程这一概念的由来。


二、业界发展现状

近年来,学术界研究机构 及 工业界各大公司都已争先在AI工程领域布局,学术界以创新研究、前沿技术探索、人才培养为主;工业界则以实用的技术和工具的发展为主,如下所示:

  • 学术界以创新研究、前沿技术探索、人才培养为主

    据调查统计,2010-2020十年间,与“人工智能”和”软件工程”关键词均匹配的论文有4733篇,其中与SE4AI强相关的有248篇,涉及软件工程知识体系中的全部11个领域。按照研究领域对部分顶尖研究机构所发表论文的统计结果来看,软件测试、软件质量、软件工程模型和方法是过去十年间AI工程领域Top3的研究热点,如下图所示:

图2. 2010-2020年AI工程相关论文分布(Software Engineering for AI-Based Systems: A Survey, ACM TOSEM, 2021)

  • 工业界各大公司以AI工程方法、技术和工具的发展为主,主要分两类:

    1)以Google、Meta为代表的科技巨头,围绕TensorFlow、PyTorch等开源深度学习框架打造了一系列与AI工程相关的生态技术和工具,如高级API、领域套件、模型可视化工具、调试调优工具等,近年来国内的华为、百度等,也以MindSpore、PaddlePaddle等AI框架为基础,丰富技术和工具生态,发展迅猛。

    2)以ThoughtWorks为代表的业界知名咨询公司,以发展机器学习相关的流程、方法论和最佳实践为主,例如,ThoughtWorks的咨询师Arif Wider等人在2019年提出”机器学习的持续交付“(Continuous Delivery for Machine Learning,CD4ML)理念,认为需要为机器学习系统研究其专有的持续交付原则、方法和实践,以应对机器学习系统更复杂、更难以测试、解释和改进的挑战。


三、多视角看AI工程技术

在上面的内容中,我们分析了AI工程在业界的发展现状。接下来,我们从不同视角解读AI工程。

  1. 从软件工程视角看AI工程

回到软件工程的本质,我们会发现AI工程的本质与软件工程是一致的,即在AI软件开发的整个生命周期过程中系统化、规范化、可度量地使用各种工程方法和工具,来确保所交付的软件能达到预期

而AI工程相对于传统软件工程方法变化的部分,只是在应用对象和要达成的目标上发生了外延,应用对象变成了基于AI的软件,而达成的目标从进度、成本、质量可控进一步外延为希望克服AI软件固有的问题(不可预测性、特有的故障模式等),从而交付可信、健壮、行为可预期的AI系统。

图3 AI工程与软件工程、人工智能的关系

2. 从产业实践视角看AI工程(Gartner

Gartner公司在关于2022年战略技术趋势的一份报告中提出[2],如果企业让人工智能提供变革性的价值,就不能只是单点地应用AI技术,而是需要在其商业生态系统中将AI模型工业化,以便快速、持续地提供新的业务价值,而要做到这一点的关键就是应用AI工程技术。

围绕着数据处理、机器学习模型训练与推理、应用交付与维护这几个关键流程,Gartner认为,AI工程主要由DataOps、MLOps和DevOps三部分核心技术组成,其目标是通过跨职能协作、自动化、快速反馈等方法,来缩短数据分析、机器学习和应用部署上线的周期,从而让AI模型快速、持续地提供业务价值。

图4 Gartner AI Engineering的组成

DevOps:是一组软件开发和运维团队之间的文化理念、实践和工具的结合,以便提高团队的快速交付能力,在微服务与云原生应用的交付团队中备受推崇;
DataOps:是将数据处理和集成过程与自动化和敏捷软件工程方法相结合的技术实践,以提高数据分析的质量、速度和团队协作,并促进持续改进 [3];
MLOps:是在生产环境中可靠而高效地部署和维护机器学习模型的实践 [4]。

3. 从生态视角看AI工程(LF AI & Data Landscape)

AI软件开发的生态系统,特指围绕AI软件开发的一系列基础设施和工具链,包括制品仓、数据管理工具、模型管理器、持续训练流水线、模型验证与评估工具、模型部署与监控系统等。

Linux基金会旗下的子基金会LF AI & Data Foundation,致力于AI与大数据领域的开源软件发展,目前在维护一个名为LF AI & Data Landscape的开源软件产品全景图,可以作为AI软件开发生态系统的一个很好的参考
该全景图当前已包括300多款开源软件,涉及AI框架、MLOps流水线、特征工程、可视化等多个子领域。

AI软件开发生态系统中的组件,在功能、用途甚至名称上都与传统软件开发的生态系统存在差异,包括但不限于:

  • 从IDE到数据管理工具:除了编写算法之外,AI软件开发中有大量的工作在收集、处理和清洗数据集上,因此一个具有数据可视化能力、方便进行数据标记、甚至能够自动/半自动给出数据标记建议的数据管理工具将成为开发者频繁使用的工具;
  • 从代码仓到制品仓:AI软件开发过程中除了需要存储少量的代码外,还要对大量的数据和标签进行存储,因此制品仓应能够具备对大量数据的管理能力,并能够追溯对数据和标签的变更;
  • 从包管理器到模型管理器:模型是AI软件开发活动的重要产出物,为了更容易地对模型进行共享、导入和组合,需要新的模型管理器;
  • 从持续集成到持续训练:AI软件开发过程中需要经常地进行调参和精细化调优,数据发生变化、模型发生漂移都会触发这个过程,因此需要自动化的数据流水线和机器学习流水线,帮助AI工程师及时监控到数据和模型的变化,进行持续训练。

四、AI工程技术全景图

综合业界、学术界以及研究机构的主流观点,再结合目前在MindSpore中研究的内容,笔者认为,AI工程从广义上应包括AI软件开发生命周期工程实践、生态系统三部分:

1.  AI软件开发生命周期:即从问题分析与抽象开始,进行设计开发,直到最后部署上线的整个流程,各类软件工程技术也是按照软件开发生命周期进行分类和组织的。
2.  AI工程实践:AI软件开发过程中所使用的各种工程化方法和最佳实践,可分为两类,一类是与AI软件开发生命周期中某个步骤对应的专项技术,如数据分析对应于数据准备环节、设计模式对应于模型训练环节;另一类则是与整个软件开发生命周期相关的技术,如机器学习团队中的角色组成、工程师的能力模型,以及对AI系统的治理技术。
3. 生态系统:AI软件开发所需使用的基础设施和软件工具的集合,包括数据分析、编码检查、调试调优、部署监控等各种专项工具。

图6 AI工程技术全景图

在本专栏后续的文章中,会围绕MindSpore框架,全方位介绍基于AI工程的技术实践与生态组件。


小结

软件工程是一门为了克服危机而诞生的工程学科,AI工程的出现也有着类似的背景,同样也是为了应对AI软件可能的“危机”而诞生的。作为一门新兴学科,目前学术界和工业界都已在这个领域积极布局。

AI工程,就是在AI软件开发生命周期中应用各种工程方法和工具,来确保所交付的AI系统可信、健壮、行为可预期。AI工程技术包括了对AI软件开发生命周期的定义、AI工程方法实践,以及由各种基础设施和工具链所组成的生态系统。

AI框架作为AI领域的基础软件,在AI软件栈中处于承上启下的位置,并能够在AI软件开发生命周期的主要步骤中提供多项关键工程能力。学好AI框架的使用,能够帮助打下牢固的AI工程技术基础。

上一篇: 01 - 开篇词:AI工程(AI Engineering)初探
下一篇: 03-迭代0:机器学习项目开始前要做哪些准备工作?

参考

  1. ^Artificial Intelligence - SEBoK
  2. ^Top Strategic Technology Trends for 2022: AI Engineering - Gartner Top Strategic Technology Trends for 2022: AI Engineering
  3. ^DataOps - Wikipedia https://en.wikipedia.org/wiki/DataOps
  4. ^MLOps - Wikipedia https://en.wikipedia.org/wiki/MLOps

更多精彩分享,欢迎访问和关注:https://www.zhihu.com/people/wldandan

说明:严禁转载本文内容,否则视为侵权。

【AI工程】02-AI工程(AI Engineering)面面观相关推荐

  1. AI基础:特征工程-文本特征处理

    0.导语 特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用. 在此之前,我已经写了以下几篇AI基础的快速入门,本篇文章讲解特征工程基础第三部 ...

  2. AI基础:特征工程-数字特征处理

    0.导语 特征工程到底是什么呢?顾名思义,其本质是一项工程活动,目的是最大限度地从原始数据中提取特征以供算法和模型使用. 在此之前,我已经写了以下几篇AI基础的快速入门,本篇文章讲解特征工程基础第二部 ...

  3. 神码ai人工智能写作机器人_AI启动协变量AI为机器人构建通用AI

    神码ai人工智能写作机器人 One could be excused for confusing the Investor's list on the Covariant.ai website wit ...

  4. AI近十年盘点:纵览AI发展历程,探寻AI未来走向

    编者按:当我们回顾过去十年的人工智能发展历程时,可以看到一场现在还正在进行的变革,对我们的工作方式.商业运营模式和人际交往行为都产生了深远的影响.从2013年的AlexNet到变分自编码器,再到最近的 ...

  5. 一周 AIGC 丨白宫宣布首个 AI 监管计划,中国 AI 领域或面临美国全面投资禁令...

    世界经济论坛(WEF)最新发布的报告显示,未来几年,因人工智能(AI)和经济增长放缓等因素,全球就业形势将受到严重冲击.全球近四分之一的工作岗位将发生变化,其中一些将被淘汰,还有一些将被创造出来.值得 ...

  6. AI:人工智能领域之AI基础概念术语之机器学习、深度学习、数据挖掘中常见关键词、参数等5000多个单词中英文对照(绝对干货)

    AI:人工智能领域之AI基础概念术语之机器学习.深度学习.数据挖掘中常见关键词.参数等5000多个单词中英文对照(绝对干货) 导读      本博主基本收集了网上所有有关于ML.DL的中文解释词汇,机 ...

  7. 一个AI产品经理怎么看AI的发展

    一个AI产品经理怎么看AI的发展 https://www.cnblogs.com/DicksonJYL/p/9566654.html 最近一直在思考这个问题,人工智能接下来的几年会有什么样的发展,是否 ...

  8. 麻省理工和 IBM 合作创立 Watson AI 实验室,谨慎推进 AI 研究

    来源:36氪 概要:目前,AI 正在迅速成为现代科技的一个重点,并且它对我们日常生活的重要性在未来几年只会不断增加. 2017 年 9 月,IBM 宣布与麻省理工学院(MIT)建立为期十年的合作伙伴关 ...

  9. 2019全球AI人才报告发布:AI专家仅3.6万

    有很多证据表明,顶级AI人才供不应求.然而,这类人才究竟有多么稀缺,或者他们都集中在世界各地哪些地方,却几乎不为人知. 近日,加拿大Element AI首席执行官发布了最新的2019年<全球AI ...

最新文章

  1. Sublime Text 3 及Package Control 安装(附上一个3103可用的Key)
  2. perl 中单引号双引号的区别-----perl学习笔记
  3. 部署 kubernetes 集群(CentOS7.3,K8S1.8.3)
  4. 被IP代理网站屏蔽了,真是跪了
  5. cs224n第一讲深度自然语言处理
  6. Linux设备驱动开发概述
  7. JAVA中System.out.println和System.out.print有什么区别
  8. WebServlet 4.0
  9. 【Java】基于IDE的JUnit软件测试入门
  10. DB2数据库添加删除约束项
  11. 第 5 章 结合javabean实现CRUD
  12. vm虚拟机 centos7 联网(设置静态ip)
  13. Unity运行时导出FBX模型的解决方案
  14. 霜降|JEPaaS提醒您注意防寒保暖
  15. Android studio 编译项目出现Keystore was tampered with, or password was incorrect
  16. Microsoft Visual C++ Runtime Library Runtime Error的一个解决方法
  17. wiki中文文本语料下载,在维基百科中文语料训练Word2vec and doc2vec 文本向量化代码示例
  18. 微信小程序实现关注与取消关注功能
  19. 彻底卸载360画报教程
  20. 传统项目拉取后启动方式

热门文章

  1. JavaScript一行代码
  2. pgsql时间处理的一些方式
  3. java中刷新js函数,js常用刷新页面方法汇总
  4. 注册了图形商标还需要申请登记版权吗?
  5. C++如何表示次方(尖号^不是次方的意思,e也不是次方的意思)
  6. SQL与SQL Server的区别
  7. 如何用P6软件编制项目进度计划
  8. 走进向量计算:制作 OpenBLAS Docker 预构建产物镜像
  9. arcgis的基本使用1
  10. 单臂路由的简介及详细配置步骤