人工智能开源与标准研究
共 8941字,需浏览 18分钟
·
2021-09-22 14:28
芯片研发作为基础层的核心,已成为人工智能发展的关键因素。芯片在技术 架构方面可分为通用类芯片(如 CPU、GPU 等)、半定制化芯片(如 FPGA 等)、全定制化芯片(如 ASIC 等)和类脑计算芯片。目前 GPU 是深度学习训练平台的 主流配置,而 FPGA 的灵活可编程特点可以使得在算法未完全成熟时切入市场, 同时其低功耗特性也被大型数据中心所青睐。在专用人工智能芯片领域,自 2016 年 Google 发布了 TPU 芯片后,这一市场热潮不断。国内如寒武纪、地平线、华 为海思等公司也纷纷研发出可规模商用的人工智能专用计算芯片。
随着物联网技术的不断发展,传感、计算、通讯、AI 等功能的集成变得尤为 重要,若每个功能均依靠单一芯片,不但效率低下,而且能耗和成本都很高,因 此将不同的功能整合在一起,构建异构芯片,会极大缓解上述问题。由 AMD、 ARM、华为、HXGPT、高通、IMAGINATION和三星等公司组成的全球异构系统架 构(HSA) 联盟在 2017 年成立了中国区域委员会(CRC)。CRC 的任务是以构建 HSA 生态系统为侧重点,提高对异构计算的意识认知,并促进 HSA 在中国的标准化进程。
目前技术层中的核心技术主要由科技巨头企业掌控,如微软、亚马逊、 Google、Facebook、百度、阿里、腾讯、京东、小米、商汤等。此外,一大批初 创企业和开源组织也陆续加入其中。它们共同探索和推进 AI 技术的发展,催生 出了一批在业内有深远影响力的开源项目,如 TensorFlow、PaddlePaddle、Caffe、 CNTK、Deeplearning4j、PyTorch 、Mahout、MLlib。这些科技企业,通过招募 AI 高端人才及组建实验室等方式加快关键技术研发,并通过开源技术平台构建生态体系。
技术层面,包含机器学习、知识图谱、自然语言处理、虚拟现实或增强现实、 计算机视觉、生物特征识别、人机交互等技术与应用场景相结合,从而衍生出大 量的智能化产品与服务,包括智能家居、智能机器人、智能搜索引擎、智能问答 系统、一体机 VR、无人驾驶汽车、人脸识别系统、智能客服等。
人工智能是制造业数字化、网络化、智能化转型发展的关键引擎,是促进实 体经济发展的重点方向。近年来各国政府和产业界纷纷采取行动推进基础性研究 及产业实践部署,人工智能的各种应用如机器人、无人驾驶、智能客服等百花齐 放,大中小企业均有涉及,形成了全行业全覆盖的局面。本次报告的写作单位涉 及了如下行业:工业制造、医疗、电商、公安、金融、消费电子、交通、物流、 航空、能源、政务等,因此下面报告中不论是行业案例还是痛点分析等主要以它 们为主。同时这些行业也是在 AI 应用中诉求比较明确的领域。
AI 技术栈分为:智能芯片、智 能传感器、机器学习、知识图谱、自然语言处理、人机交互、计算机视觉、生物 特征识别及虚拟现实/增强现实等。考虑到目前 AI 领域开源主要是在机器学习, 尤其是深度学习领域,而且这也是目前 AI 技术创新与落地的主要领域,本报告 总体上聚焦分析深度学习中的开源技术、所面临的问题以及相关的技术创新、标 准化的机遇等。基于如上考虑,后续除非特别指出,在本报告的语境中,AI 主要 对应的是机器学习/深度学习这一领域。
上图是目前比较活跃的机器学习及深度学习的开源社区及项目所形成的开 源全栈示意图,整个开源全栈被分为四个层次:
AI 芯片是为 AI 计算设计的高性能芯片,业界有 AI 芯片设计、指令集、编程 框架等开源芯片使能项目;同时 AI 工作负载(训练、推理、数据准备与治理、 生命周期管理等)计算量大,对存储、网络传输等要求高,需要依赖分布式部署 和承载的软件平台。这两部分构成了 AI 框架的基础设施层。
深度学习/机器学习(DL/ML)引擎主要指深度学习/机器学习框架,包括训 练与推理,以及与二者相关的模型格式、框架内数据格式等,同时也包括训练及 推理之前的数据准备与数据管理。
应用使能包括数据科学家、AI 算法工程师在准备数据与使用训练框架之外的 所有周边工作,主要包括任务视角的集群管理、数据可视化、框架易用性,以及 模型/数据市场及端到端的生命周期管理。
AI 业务主要指基于AI 基础及通用能力之上构建的领域 AI 服务,涵盖视频、 语音、图像文本等。
深度学习需要大量重复执行矩阵乘法、激活函数(如 sigmoid、tanh)等计 算过程。通用 CPU 执行上述计算的性价比较低,需要采用专用的计算芯片。适 合 AI 计算的芯片包括 GPU、FPGA 或者 ASIC 方案,它们通过把 AI 中常用函数计 算硬件化来提升硬件计算速度、降低功耗。其中热门的开源技术包括开源的指令 集、开源硬件实现方案、异构计算框架和编译器等。
DLA 是 NVIDIA 基于 Xavier SoC 的一个深度学习开源加速平台,适合于端侧 推理场景的芯片 SoC。DLA 是一个卷积神经网络加速器(只能推理,并不能进行 训练),它还需要外部的 CPU 和内存单元才能完整驱动整个加速器,CPU 通过中断和 CSB 总线控制 NVDLA 加速器。链接:http://nvdla.org/
RISC-V 是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA)。RISC-V 是开源的指令集,可以免费地用于所希望的设备中,允许任何人设计、制造和销 售 RISC-V 芯片和软件。基于 RISC-V 指令集架构可以设计服务器计算芯片、家用 电器计算芯片、工控计算芯片和比指头小的传感器计算芯片。链接:https://riscv.org/
LLVM 是构架编译器(compiler)的框架系统,用 C++编写而成。项目启动于 2000 年,最初由美国 UIUC 大学主持开展发起的一个开源项目,目前 LLVM 已经被苹 果 IOS 开发工具、Xilinx Vivado、Facebook、Google 等各大公司采用。链接:https://llvm.org/
OpenCL 当前由 Khronos 集团管理,是一个为异构平台编写程序的框架。此 异构平台可由 CPU、GPU 或其它类型的处理器组成。OpenCL 由一种用于编写 kernels(在 OpenCL 设备上运行的函数)的语言(基于 C99)和一组用于定义并 控制平台的 API 组成。链接:https://www.khronos.org/opencl/
Vulkan也由 Khronos 集团开发,使软件开发人员能够全面获取 Radeon™ GPU 与多核 CPU 的性能、效率和功能,大幅降低了 CPU 在提供重要特性、性 能和影像质量时的“API 开销”,而且可以使用通过 OpenGL 无法访问的 GPU 硬 件特性。链接:https://www.khronos.org/vulkan/
Cyborg 是 OpenStack 社区中的一个官方项目,能够提供异构加速硬件通用管 理框架。Cyborg 提供面向异构加速硬件的基础生命周期管理能力(CRUD 操作), 通过抽象通用的数据模型与统一的管理操作 API,为用户提供统一的异构计算资 源使用体验,而无需针对每一种异构加速硬件特别构建管理模块。
云计算平台对人工智能的基础支撑包括异构计算的部署和开发工具两个方 面。在异构计算方面,GPU 已成为深度学习训练平台的主流配置;FPGA 的灵活 可编程特点可以使得在算法未完全成熟时切入市场并方便地进行迭代,同时其低 功耗特性也被大型数据中心所青睐;2016 年 Google 发布了 TPU 芯片,为机器学 习提供定制化加速。在开发工具方面,现阶段业界有很多机器学习开发框架,云 平台将这些框架服务化并进行针对性的优化,极大降低了人工智能开发的准入门 槛。当前,AI 训练平台的部署已经形成以容器技术为基础的自动化部署趋势。
各种 AI 公司或者互联网公司的 AI 部门都在尝试如何在 Kubernetes (K8s) 上运行 TensorFlow、Caffe/2+PyTorch、MXNet 等分布式学习任务。不同的 AI 平 台对集群分布式部署有不同的需求,也带来了配置难题。针对这些问题,各种部 署工具也应运而生。
Google KubeFlow 正在不断完善 TensorFlow 在 K8s 集群上的部署、运维、参 数调优等功能支持,并且已经有 TNN 等公司向 KubeFlow 贡献特性。链接:https://github.com/kubeflow/kubeflow
由IBM 发起的 FfDL 是针对 TensorFlow、Caffe、PyTorch 等多个 AI 平台在 K8S 进 行 部 署 的 工 具 , 目 前 只 实 现 了 基 本 的 部 署 功 能 。链 接 :https://github.com/IBM/FfDL
百度 Paddle 非常推崇在 K8S 上进行 AI 平台的部署,Paddle EDL 项目在 K8S 上 提 供 了 资 源 利 用 率 、 弹 性 调 度 、 容 错 等 部 署 能 力 。链 接 :http://www.paddlepaddle.org/
OpenStack 社区也加强对 GPU 等硬件的支持,同时也出现了一些支持 AI 平台部署的项目。链接:https://www.openstack.org/
Apache Hadoop 已经成为大数据处理领域事实上的标准。Hadoop 作为一个 完整的大数据处理生态圈,包括多个组件:分布式文件系统 HDFS、并行化计算 框架 MapReduce、非关系型数据库 HBase、分布式协调系统 Zookeeper 等。国内 外知名的 IT 公司,例如 Yahoo、亚马逊、百度、阿里巴巴等,都利用 Hadoop 集 群批量处理上 PB 级别的数据。链接:http://hadoop.apache.org/
Apache Spark 是一个快速、通用、开源的集群计算系统,是适用于大规模数 据处理的统一引擎。它可提供 Java、Scala、Python、R 语言的高级 API,能够高 性能执行图计算,支持诸如 Spark SQL、结构数据处理、机器学习、图计算、流 计算等多种高级工具。Spark 既可以单机方式运行,也可通过 YARN 在 Hadoop 集 群上运行,它可兼容 Hadoop 数据,能够处理任何 HDFS、HBase、Cassandra、Hive 以及其它 Hadoop Input Format 的数据。Spark 既可运行批处理作业,又可处理流 计算、交互查询、机器学习等新型作业。
Apache Hadoop YARN(一种资源协调者), 作为一个开源的通用资源管理系统,是一种新的 Hadoop 资源管理器,为上层应 用提供统一的资源管理和调度,为集群在利用率、资源统一管理和数据共享等方 面带来巨大好处。YARN 的基本思想是将资源管理、任务调度与监测分散到不同 的进程中。资源管理器(RM)掌控全局,每个应用有自己的应用主控器(AM), 应用要么是单独作业,要么是有向无环图作业。YARN 是 Hadoop 的扩展,它不 仅可以支持 MapReduce 计算,还能管理诸如 Hive、Hbase、Pig、Spark/Shark 等 应用,从而使得各种类型的应用互不干扰地运行在同一个 Hadoop 上面,并通过 YARN 从 系 统 层 面 进 行 统 一 管 理 , 共 享 整 个 集 群 资 源 ,链 接 :https://hadoop.apache.org/
作为 AI 训练的前置需求,数据发现一直是企业在实施 AI 过程中消耗资源最 为巨大的部分。DataCatalog 作为解决数据发现难题的手段,被主流厂商和社区 所重视。DataCatalog 旨在通过对复杂场景下的多数据中心、多种数据源进行元 数据(MetaData)统一管理来解决数据逻辑统一、物理分布的数据共享问题。
在开源社区领域,作为大数据端到端的数据治理方案包括:Apache Atlas(元 数据治理)、Avro(统一数据交换格式)。伯克利大学的 RISELab Ground 项目也 是专注于 Big Meta Data 管理,通过管理数据上下文,解决数据使用效率低下、 治理困难等问题。
Apache Atlas(元数据治理)是一个可扩展核心数据治理服务集,支持数据分 类、集中策略引擎、数据血缘、安全和生命周期管理,该项目支持管理共享元数 据、数据分级&分类、审计、安全性以及数据保护。使企业能够有效地和高效地 满足数据的合规性要求。链接:https://atlas.apache.org/
Apache Avro 可以将数据结构或对象转化成便于存储或传输的格式。Avro 设 计之初就用来支持数据密集型应用,适合于远程或本地大规模数据的存储和交 换。avro 支持跨编程语言实现(C, C++, C#,Java, Python, Ruby, PHP)。avro 依赖 于一套可定义的 Schema,通过动态加载相关数据的 Schema,可以有效减少写入 数据的开销,使得序列化快速轻巧。链接:https://avro.apache.org/
RISELab Ground 是一个数据湖(data lake)context 管理系统。它提供了一个 RESTful 服务的机制,让用户去推论他们拥有什么数据,数据从哪里来向哪里去, 谁在使用数据,数据何时变化,为什么会有这种变化等。通过管理数据上下文, 解决数据使用效率低下、治理困难等问题。Ground 提供了一个通用 API 和追踪 信 息 的 元 模 型 , 可 以 和 很 多 数 据 储 存 库 一 起 工 作 。链 接 :https://rise.cs.berkeley.edu/projects/ground/
ONNX 是微软、Facebook 为联手打造 AI 生态系统,推出的 Open Neural Network Exchange(ONNX,开放神经网络交换)格式。这是一个用于表示深度学 习模型的标准,可使模型在不同框架之间进行转移。ONNX 是迈向开放生态系统 的第一步,AI 开发人员可以轻松地在工具之间转换,选择最适合他们的组合。现 在支持 ONNX 的框架有 Caffe2、PyTorch、Cognitive Toolkit、MXNet。谷歌的 TensorFlow 尚不支持 ONNX。链接:https://github.com/onnx/onnx
NNEF 是由 Khronos 集团主导的跨厂商神经网络文件格式,定义了压缩网络 正式语义、结构、数据格式、通用操作(例如卷积、池化、正则化等),解决神 经网络分裂化等问题。NNEF 计划支持包括 Torch、Caffe、TensorFlow、Theano、 Chainer、Caffe2、PyTorch、MXNet 等几乎所有 AI 框架的模型格式转换。目前, 已经有 30 多家芯片企业参与其中。链接:https://www.khronos.org/nnef
TensorFlow 在 Google Brain 团队支持下,已经成为最大的活跃社区。它支持 在多 GPU 上运行深度学习模型,为高效的数据流水线提供使用程序,并具有用 于模型检查、可视化、序列化的配套模块。TensorFlow 今年对生态系统进行了大 量的扩充,将 TensorFlow 的触角延伸到更多领域:支持 Keras 高级 API 封装,提 高了开发效率;构建模型集,构建完善的常用模型库,方便数据科学家使用;发 布 TensorFlow Hub,为再训练和迁移学习提供常用模型算法,共享多种精度预先 训练好的模型;通过 TensorFlow.js 占据浏览器端深度学习生态,成为 TensorFlow 当前一个重要的发展方向。链接 https://www.tensorflow.org/
MXNet 是亚马逊(Amazon)主导的深度学习平台,性能优良,目前是 Apache 孵化器项目。MXNet 可以在任何硬件上运行(包括手机),支持多种编程语言:Python、R、Julia、C++、Scala、Matlab、Javascript 等。为了减低学习和使用的难 度,MXNet 推出了 Gluon 高级 API 封装。链接:https://mxnet.apache.org/
Caffe/2+PyTorch 是 Facebook 主导的深度学习平台,目前已合并到 PyTorch 进 行统一维护。在图像处理领域,Caffe 有着深厚的生态积累,同时 PyTorch 作为一个易用性很强的框架,受到越来越多数据科学家的喜爱。在国内,很多 AI 图像 处理团队在试用 PyTorch、TensorFlow、MXNet 后,往往选择 PyTorch 作为其主要 工作平台。链接:https://pytorch.org/
PaddlePaddle 是百度旗下深度学习开源平台,Paddle(Parallel Distributed Deep Learning)表示并行分布式深度学习。其前身是百度于 2013 年自主研发的深度学 习平台,且一直供百度内部工程师研发使用。PaddlePaddle 是一个功能相对全面、 易于使用的深度学习框架,一些算法封装良好,如果仅仅只需要使用现成的算法 (VGG、ResNet、LSTM、GRU 等),那么直接执行命令,替换数据进行训练。PaddlePaddle 的设计和 Caffe 类似,按照功能来构造整个框架,二次开发要从 C++ 底层写起,因此适用于使用成熟稳定模型处理新数据的情况。它的分布式部署做 得很好,支持 Kubernetes 的部署。链接:http://www.paddlepaddle.org/
BigDL是一种面向Apache Spark的分布式深度学习库。用户可以通过BigDL 将 深度学习应用编写为标准的 Spark 程序,这些程序可以直接在 Sparkshedu Hadoop 集群上运行。BigDL 提供了丰富的深度学习支持,结合英特尔 MKL 和多线程应用, 因此有极高的性能,可以实现高效的横向扩展,执行大规模数据分析。链接:https://bigdl-project.github.io/0.6.0/
Analytics Zoo 是一个基于 Spark 和 BigDL 的端到端智能分析流水线,通过提 供高水平的流水线 API、内置深度学习模型、参考用例等,可以轻松地在 Spark 和BigDL 上构建和生成深度学习应用程序,特别适合大数据集群分析和深度学习。链接:https://github.com/intel-analytics/analytics-zoo
本报告中的开源指源码公开、源数据公开及其他成果形式(如软件、系统或 平台架构等)的公开。近年来开源技术蓬勃发展,诸如计算机视觉开源社区 OpenCV、开源数据集 ImageNet、开源智能终端操作系统 Android 和其他大量开 源工具及平台,无不表明开源创新与协同有力推动了产业进程。同理,人工智能 尤其是深度学习相关的开源蓬勃发展,也将对我国人工智能相关产业产生积极影响。
本号资料全部上传至知识星球,更多内容请登录智能计算芯知识(知识星球)星球下载全部资料。
免责申明:本号聚焦相关技术分享,内容观点不代表本号立场,可追溯内容均注明来源,发布文章若存在版权等问题,请留言联系删除,谢谢。
电子书<服务器基础知识全解(终极版)>更新完毕,知识点深度讲解,提供182页完整版下载。
获取方式:点击“阅读原文”即可查看PPT可编辑版本和PDF阅读版本详情。
温馨提示:
请搜索“AI_Architect”或“扫码”关注公众号实时掌握深度技术分享,点击“阅读原文”获取更多原创技术干货。