新闻动态
探索 AI 框架的发展趋势
2022-05-24

  到底什么是AI算法?什么是神经网络?神经网络有什么用?为什么神经网络需要训练?什么是模型?AI框架有什么用?AI框架能解决什么问题?基于上述问题进行思考,实际上可以认为深度学习是机器学习研究领域中的一种,深度学习的概念源于对人工神经网络的研究,很多深度学习算法都使用神经网络进行表示,因为神经网络的性能精度和通用效果都非常好,于是业界习惯性地把深度学习算法等同于AI。

  一、函数逼近与神经网络

  1.神经网络概念的理解

  从通用概念的角度上来看,神经网络是在模拟人脑的工作机制,神经元与神经突触之 间 的连接产生不同的信号传递,每个神经元都记录着信号的特征。 从统计学的角度来说 就是 在预测数据的分布,从数据中学得一个模型,然后再通过这个模型去预测新的数据(这一点就要求测试数据和训练数据必须是同分布)。

  如果把神经网络看做一个复杂函数,那么这个函数可以逼近任何函数。 上文只是定义 了什么是神经网络,其实神经网络内部有很多参数需要通过求解函数逼进行确定。 直观 地看一个简单的例子: 假设 1 个圆圈代表一个神经元,那么一个神经元可模拟“与或 非”3 种运算,3 个神经元组成包含 1 个隐层的神经网络即可以模拟异或运算。 因此, 理论上如此组合的神经网络可模拟任意组合的逻辑函数。

  多数人认为,神经网络只要网络模型足够深和足够宽就可以拟合(fit)任意函数。严格地说,神经网络并不是拟合任意函数,其数学理论建立在通用逼近定理(Universal approximation theorem)的基础之上,神经网络则是传统的逼近论中的逼近函数的一种推广。逼近理论证明,只要神经网络规模经过巧妙的设计,使用非线性函数进行组合,它可以以任意精度逼近任意一个在闭集里的连续函数。

  既然神经网络模型理论上能够逼近任何连续函数,我们就可以利用神经网络处理数学上分类、回归、拟合、逼近等问题。例如在CV领域对图像进行分类,通过回归检测图像中的车辆和行人,在NLP中对离散的语料数据进行拟合。

  2.逼近函数求解神经网络

  在数学的理论研究和实际应用中经常遇到逼近求解问题,在选定的一类函数中寻找某个函数f,使它与已知函数g(或观测数据)在一定意义下为最佳近似表示,并求出用f近似表示g而产生的最小误差(即损失函数): loss(w)=f(w)-g。 所以,神经网络可以通过求解损失函数的最小值来确定这个神经网络中的参数w,从而固化这个逼近函数。

  二、反向求导与AI框架

  • 深度学习流程

  •   深度学习的流程一般包括四部分:构建神经网络模型、定义损失函数和优化器、开始训练神经网络模型、验证精度。因为AI框架已经封装好了许多功能,所以当遇到神经网络模型的精度不达标时,算法工程师可以通过调整网络模型结构、损失函数、优化器等参数重新训练,不断地测试验证精度。训练的过程本质是进行反向求导的过程,通过迭代计算求得神经网络中的参数,通过调整参数进而控制深度学习的前进速度和方向。

      2.导数的定义

      导数是函数的局部性质。一个函数在某一点的导数,描述该函数在这一点附近的变化率。如果函数的自变量和取值都是实数的话,函数在某一点的导数就是该函数所代表的曲线在这一点上的切线斜率。

      针对导数的几何意义,其可以表示为函数在某点处的切线斜率;在代数上,其意味着可以求得函数的瞬时变化率。如果把神经网络看做一个高维复杂的函数,那么训练的过程就是对损失函数进行求导,利用导数的性质找到损失函数的变化趋势,每次一点点地改变神经网络中的参数w,最后逼近得到这个高维函数。因此,一个AI框架最核心和基础的功能是自动求导。

      3. 反向求导

      假设神经网络是一个复合函数(高维函数),那么对这个复合函数求导,用的是链式法则。既然有了链式求导法则,而神经网络其实就是个庞大的复合函数,因此催生了自动反向求导的强大需求。

      图3左侧的公式是神经网络表示的复合函数表示,右侧蓝色框表示的是AI框架,AI框架给开发者提供构建神经网络模型的数学操作,AI框架把复杂的数学表达,转换成计算机可识别的计算图。

      定义整个神经网络最终的损失函数为Loss之后,AI框架会自动对损失函数求导(即对神经网络模型中各个参数求其偏导数)。上文提到过,每一次求导都会复用前一次的计算结果和与其对称的原公式中的变量,因此可直接基于表示神经网络的计算图构建一个与之对称的计算图(反向计算图)。通过反向计算图表示神经网络模型中的偏导数,反向传播则是对链式求导法则的展开。

      通过损失函数对神经网络模型进行求导,训练过程中更新网络模型中的参数(函数逼近的过程),使得损失函数的值越来越小(表示网络模型的表现越好)。AI框架对整体开发流程进行了封装,好处是让算法研究人员专注于神经网络模型结构的设计(更好地设计出逼近复合函数),针对数据集提供更好的解决方案,研究让训练加速的优化器或者算法等。

      三、AI算法发展引出架构需求

      随着人工智能的进一步发展,新的趋势不断涌现,例如超大规模模型的出现(GPT-3等) 向AI框架提出了更高的要求。随着人工智能应用场景的扩展以及与更多领域交叉融合进程的加快,越来越多的需求被提出,如对全场景多任务的支持,对高算力的需求等,这就要求AI框架最大化的实现编译优化,更好地利用算力、调动算力,充分发挥硬件资源的潜力。此外,人工智能与社会伦理的痛点问题也促使可信赖人工智能在框架层面的进步。基于以上背景,现有的流行框架都在探索下一代人工智能框架的发展方向,如2020年华为推出昇思MindSpore,在全场景协同、可信赖方面有一定的突破;旷视推出天元MegEngine,在训练推理一体化方面深度布局。在这一阶段,AI框架正向着全场景支持、超大规模AI、安全可信等技术特性深化探索,不断实现新的突破。

      1. 全场景:AI框架将支持端边云全场景跨平台设备部署

      在全场景方面,AI模型需要适配部署到端边云全场景设备,对AI框架提出了多样化、复杂化、碎片化的挑战。随着云服务器、边缘设备、终端设备等人工智能硬件运算设备的不断涌现,以及各类人工智能运算库、中间表示工具以及编程框架的快速发展,人工智能软硬件生态呈现多样化发展趋势。但主流框架训练出来的模型却不能通用,学术科研项目间难以合作延伸,造成了深度学习框架的“碎片化”。目前业界并没有统一的中间表示层标准,导致各硬件厂商解决方案存在一定差异,以致应用模型迁移不畅,增加了应用部署难度。因此,基于AI框架训练出来的模型进行标准化互通将是未来的挑战。

      AI 框架需要与硬件基础设施平台充分解耦,通过标准的硬件注册接口实现跨设备平台的快速部署。随着处理任务的复杂化、处理数据的密集化,跨架构的开发能力将会成为常态化的需求。AI框架迫切需要开放一套可解耦的硬件注册接口,支持硬件厂商无需触碰框架核心代码即可完成适配,避免硬件厂商面对多种AI框架以及不同框架版本的适配代码进行维护。可解耦的硬件注册接口,需包括标准的硬件运行状态管理、算子抽象定义、性能优化适配等接口,使得AI框架和硬件平台开发者遵从相同接口定义设备驱动、运行时以及算子和计算图等关键信息。除上述接口标准化外,还应该对模型的中间表示和算子进行标准化,硬件厂商只需基于同一种模型格式和同一套算子即可完成不同AI框架的适配,满足端-边-云不同业务场景同步适配的业务需求。

      2. 超大规模:AI框架将着力强化对超大规模AI的支持

      超大规模AI成为新的深度学习范式。OpenAI于2020年5月发布GPT-3模型,包含1750亿参数,数据集(处理前)达到45T,在多项NLP任务中超越了人类水平。这种通过超大规模的模型参数及超大规模的数据集的AI大模型范式,实现了深度学习新的突破。产业界和学术界看到这种新型范式的潜力后纷纷入局,继OpenAI后,华为基于MindSpore框架发布了盘古大模型、智源发布了悟道模型、阿里发布了M6模型、百度发布了文心模型等。超大规模AI正成为下一代人工智能的突破口,也是最有潜力的强人工智能技术。

      超大规模AI需要大模型、大数据、大算力的三重支持,对AI框架也提出了新的挑战。一是内存墙,大模型训练过程中需要存储参数、激活、梯度、优化器状态,鹏程 . 盘古一个模型的训练就需要近4TB的内存。二是算力墙,以鹏程 . 盘古2000亿参数量的大模型为例,需要3.6EFLOPS的算力支持,这要求必须构建大规模的异构AI计算集群才能满足这样的算力需求,同时算力平台要满足智能调度来提升算力资源的利用率。三是通信墙,大模型并行切分到集群后,模型切片之间会产生大量通信,由此通信就成了主要的瓶颈。四是调优墙,在E级算力集群上训练一个千亿参数规模的,节点之间的通信关系非常复杂,要保证计算的正确性、高性能和可用性,手动调试难以全面兼顾。五是部署墙,超大规模AI面临“大模型、小推理”的部署难题,需要对大模型进行完美压缩以适应推理侧的部署需求。

      AI框架将通过自动混合并行、全局内存管理、可视化调优以及分布式推理等核心技术支持超大规模AI发展。AI框架可通过多维度自动混合并行,支持数据并行、模型并行、流水并行、优化器并行、子图并行等多种维度的AI 并行计算技术,解决模型及集群的横向扩展问题,支持超大规模模型切分到大集群进行高效训练,并实现最优的计算通信比,进而提升算力的利用率。AI框架可通过全局内存管理及计算调度实现CPU内存、NPU 内存和 NVMe三层存储的统一管理,从而提升单卡的纵向扩展能力。超大规模AI的数据集、网络深度和宽度都非常大,AI框架需要通过张量分析、图码结合等方式快速定位出现精度异常的网络结构或者算子,提供方便快捷的精度问题定位能力,并通过可视化的方式记录并且分析开发者的调优路径和AI模型的精度收敛趋势,向开发者推荐调优策略,加速调优过程。此外,对于大模型的推理服务,AI框架需要自动从分布式训练模式转换成分布式推理模式,并实现服务化封装,支持快速上线大模型服务。

      3. 安全可信:AI框架将助力提升AI模型可解释性与鲁棒性

      随着可解释性的需求增加对AI框架提出了进阶性要求。通过对模型决策结果以人类可理解的方式呈现,有助于人们理解复杂模型内部的工作机理以及模型如何做出决策等重要问题。安全可信的AI框架需对模型可解释性进行支持,将黑盒的人工智能决策转化为可解释的决策判断。这不仅能增加开发者对AI模型决策的理解与信任,也能帮助诊断出影响模型性能的因素,进一步提升模型性能。目前已有部分框架开始支持可解释性的需求,比如基于PyTorch框架出现了Captum 等可解释库支持, 基于TensorFlow出现了TF-explain等库支持,以及同时支持PyTorch和TensorFlow的AIX360、Alibi等可解释库,国内则有MindSpore的MindSpore XAI,以及PaddlePaddle的InterpretDL。另外,已经有一些平台从可解释的角度出发对模型进行评测,例如启智社区的重明平台、瑞莱智慧平台等。

      AI框架需要提供丰富的AI鲁棒性检测工具,提升AI模型的鲁棒性。训练模型时样本训练不足,使得模型泛化能力不足;模型面对恶意样本时,无法给出正确的判断结果。AI框架可通过支持网络蒸馏、对抗训练等方式,以及黑盒、白盒、灰盒测试等对抗检测技术,帮助开发者提高模型的鲁棒性。MindSpore推出鲁棒性测试工具 MindSpore Armour,基于黑白盒对抗样本、自然扰动等技术提供高效的鲁棒性评测方案,帮助客户评估模型的鲁棒性、识别模型脆弱点。

      四、AI应用方向和行业展望

      总体来说,相对通用的问题如图像处理、自然语言处理的AI算法发展进入了一个成熟期,随着AI在各行各业的跨界融合,已经深入到气象、交通、医疗、教育、安防等各个行业。甚至连考古这样的领域也能跟AI发生化学反应,今年二月央视播出大型纪录片《甲骨王朝》,整整二十多分钟原汁原味地纪录了人类通过领先的 OCR+NLP+ ModelArts技术进行深度学习,短短不到两周时间就还原了以往考古学家需要花二十年的时间考释出的文字。

      安防行业也是AI应用最为广泛和成熟的领域。相对于甲骨文语料库有限、识别难度高、训练难度大等种种难题,在公共安全行业AI有着海量的场景和应用。例如在交管领域,业界领先的AI超微光卡口、全息路口可以降低城市光污染和道路拥堵的问题。一拖N的智能摄像机不仅有海量的算法应对不同的场景,还能在传统普通摄像机的基础上平滑演进和升级,一体六智参考架构的提出,让公共安全信息化已经从局部的智能发展到体系化智能阶段。

      华为中国政企安平业务部副总裁钟家献表示:面对宏观环境的变化,智能化在疫情防控和社会治理现代化的过程中发挥越来越重要的作用。向科技要警力,智能化已成为公共安全发展的必然选择。华为公司愿与广大安防同仁一道,用科技和智能的力量为建设更高水平的平安中国贡献一份力量。

    来源: 同花顺财经 中国安防协会 http://news.10jqka.com.cn/20220524/c639325396.shtml

    赤同网络 技术支持&Powered by eLooie.com