☰
AI 框架之争:从四阶段演进到三代架构的 AI 框架发展史(AISystem 系列解读)
2026/10/3 1:44:42 网站建设 项目流程
  • 文档
  • 教程
  • 人工智能

【免费下载链接】AISystem

AISystem 主要是指AI系统,包括AI芯片、AI编译器、AI推理和训练框架等AI全栈底层技术

项目地址:https://gitcode.com/GitHub_Trending/ai/AISystem
点击查看免费下载

本文是 AISystem 仓库《AI 框架基础》系列中"AI 框架之争"章节的深度解读,以《AI 框架作用》中"自动微分 + 计算图"的数学表达为起点,系统梳理 AI 框架从 2000 年萌芽到当下的发展脉络——时间维度的萌芽、成长、爆发、深化四个阶段,以及技术维度的三代架构——并剖析 AI 框架"可编程性与性能"两大互相制约的设计目标,最后展望全场景、易用性、大规模分布式、科学计算四大未来方向。读完本文,你将掌握 AI 框架为何而生的完整逻辑,以及 TensorFlow、PyTorch、MindSpore、JAX 等主流框架设计路线分野与演进动因。

引言:AI 框架要系统化解决的问题

前文《AI 框架作用》已说明,AI 框架最核心的基础功能是自动微分(AutoGrad):基于计算图与链式法则,把开发者定义的神经网络模型自动求导、转换为计算机可识别和执行的程序,最终成为一个开发者和应用程序都能很好编写深度学习中神经网络的工具和库。整体流程如下所示:

除了最核心的数学表示原理以外,一个能商用版本的 AI 框架还需要系统性梳理软件栈每一层中遇到的具体问题,以提供更好的开发特性:

  • 前端(面向用户):如何灵活地表达一个神经网络模型?
  • 算子(执行计算):如何保证每个算子的执行性能和泛化性?
  • 微分(更新参数):如何自动、高效地提供求导运算?
  • 后端(系统相关):如何将同一个算子跑在不同的加速设备(GPU/NPU)上?
  • 运行时:如何自动地优化和调度网络模型进行计算?

其中"微分与计算图"层面的底层实现,可进一步深入仓库中的自动微分系列阅读;本文聚焦 AI 框架的目的、发展脉络与未来走向。

AI 框架的目的

为什么需要 AI 框架

神经网络是机器学习中一类具体算法分支,通过堆叠基本处理单元形成宽度和深度,构建出带拓扑结构的、高度复杂的非凸函数,对蕴含在各类数据分布中的统计规律进行拟合。传统机器学习方法在面对不同应用时,为达到所需学习效果往往需要重新选择函数空间、设计新的学习目标;相比之下,神经网络通过调节处理单元、堆叠方式与学习算法,用较为统一的算法设计视角解决各类应用任务,大幅减轻了机器学习算法设计的选择困难。同时,深度学习方法在图像分类、语音识别、自然语言处理等任务中的突破性进展,揭示了构建更大规模神经网络对大规模数据进行学习是一种有效策略。

然而,神经网络应用的开发需要对软件栈的各个抽象层进行编程,对新算法的开发效率和算力都提出了很高要求,由此催生了 AI 框架:AI 框架让开发者专注于应用程序的业务逻辑,而不需要关注底层的数学和计算细节;通常还提供可视化界面,方便开发者设计、训练和优化模型;框架之上还提供预训练网络模型,可直接用于图像识别、语音识别和自然语言处理等常见场景。

一句话概括:AI 框架是为了在计算加速硬件(GPU/NPU)和 AI 集群上高效训练神经网络而设计的可编程系统,需要同时兼顾两个互相制约的设计目标——可编程性与性能。

目标一:提供灵活的编程模型和编程接口

  • 自动推导计算图:根据开发者编写的神经网络模型和对应代码,自动构建自动微分功能,并转换为计算机可以识别和执行的计算图;
  • 较好地支持与现有生态融合:AI 应用层出不穷,需要提供良好的编程环境和编程体系方便开发者接入,这里以 PyTorch 框架为例,对外提供超过 2000+ API;
  • 提供直观的模型构建方式、简洁的神经网络计算编程语言:使用易用的编程接口,用高层次语义描述各类主流神经网络模型和训练算法;编程范式以声明式编程和命令式编程为主,提供丰富的编程方式,有效提升开发者开发效率与 AI 框架的易用性。

关于声明式 / 命令式(以及函数式)三种编程范式对 AI 框架架构的影响,可进一步阅读仓库中的《框架编程范式》,其中给出了 PyTorch 动态图(define-by-run)与 TensorFlow1.X 静态图(define-and-run)的完整可运行示例,也解释了 JAX、MindSpore 如何走向函数式编程与动静统一。

目标二:提供高效和可扩展的计算能力

  • 自动编译优化算法:为可复用的处理单元提供高效实现,使 AI 算法在真正训练或推理过程中执行得更快;需要对计算图做进一步优化,如子表达式消除、内核融合、内存优化等,并支持多设备、分布式计算;
  • 根据不同体系结构和硬件设备自动并行化:体系结构差异主要指 GPU、NPU、TPU 等 AI 加速硬件的实现不同,有必要进行深度优化;面对大模型、大规模分布式的冲击,需要对自动分布式化、扩展多计算节点等进行性能提升;
  • 降低新模型的开发成本:在添加新计算加速硬件(GPU/NPU)支持时,降低增加计算原语和进行计算优化的开发成本。

AI 框架的发展:时间维度

AI 框架作为智能经济时代的中枢,是 AI 开发环节中的基础工具,承担着 AI 技术生态中操作系统的角色,是 AI 学术创新与产业商业化的重要载体,助力 AI 由理论走入实践,快速进入场景化应用时代,也是发展 AI 所必需的基础设施之一。结合 AI 的发展历程,AI 框架在时间维度上的发展大致分为四个阶段:1)2000 年初期的萌芽阶段、2)2012~2014 年的成长阶段、3)2015 年~2019 年的爆发阶段、4)2020 年以后的深化阶段,其发展脉络与 AI、特别是深度学习范式下神经网络技术的异峰突起有非常紧密的联系:

萌芽阶段(2000 年初期)

早期受限于计算能力不足,神经网络技术影响力相对有限,因而出现了传统机器学习工具提供基本支持,即 AI 框架的雏形。这些工具要么不是专门为神经网络模型开发定制的,要么 API 极其复杂对开发者并不友好,且没有对异构加速算力(GPU/NPU 等)进行支持。缺点在于萌芽阶段的 AI 框架并不完善,开发者需要编写大量基础工作,例如手写反向传播、搭建网络结构、自行设计优化器等。其以 MATLAB 的神经网络库为代表作品:

成长阶段(2012~2014)

2012 年,Alex Krizhevsky 等人提出 AlexNet 神经网络架构,在 ImageNet 数据集上达到最佳精度,并大幅领先第二名(提升 15% 以上准确率),引爆了神经网络的热潮。自此极大推动了 AI 框架的发展,出现了 Caffe、Chainer 和 Theano 等具有代表性的早期 AI 框架,帮助开发者方便地建立 CNN、RNN、LSTM 等复杂神经网络模型,并且这些框架支持多 GPU 训练,让开展更大、更深的模型训练成为可能。在这一阶段,AI 框架体系初步形成,声明式编程和命令式编程为下一阶段 AI 框架发展的两条截然不同的道路做了铺垫。

爆发阶段(2015~2019)

2015 年,何恺明等人提出 ResNet,再次突破图像分类边界,在 ImageNet 上的准确率再创新高,也凝聚了产业界和学界的共识——深度学习将成为下一个重大技术趋势。2016 年谷歌开源 TensorFlow 框架;Meta AI 研究团队发布了基于动态图的 AI 框架 PyTorch(拓展自 Torch 框架,使用更流行的 Python 重构对外 API);Caffe 的发明者加入 Meta 并发布 Caffe2,融入了 PyTorch 的推理生态;微软研究院开发了 CNTK 框架;Amazon 采用了华盛顿大学、CMU 等机构的联合学术项目 MXNet;国内百度率先布局 PaddlePaddle 飞桨并于 2016 年发布。

在爆发阶段,AI 系统迎来繁荣,各种框架不断迭代并被开发者自然选择。经过激烈竞争后,最终形成 TensorFlow 与 PyTorch 双头垄断的两大阵营:2019 年 Chainer 团队将开发工作转移到 PyTorch,Microsoft 停止 CNTK 框架的积极开发、部分团队成员转而支持 PyTorch,Keras 被 TensorFlow 收编并在 TensorFlow2.X 版本中成为其高级 API 之一:

深化阶段(2020 年以后)

随着 AI 进一步发展、应用场景扩展以及与更多领域交叉融合进程加快,新趋势不断涌现:超大模型的出现(GPT-3、ChatGPT 等)对 AI 框架提出更高要求,如对全场景多任务、异构算力的支持,要求框架最大化实现编译优化、更好地利用和调动算力、充分发挥集群硬件资源潜力;同时,AI 与社会伦理的痛点问题也促使可信赖 AI(AI 安全)在 AI 框架层面的进步。

基于以上背景,主流 AI 框架都在探索下一代发展方向:2020 年华为推出昇思 MindSpore,在全场景协同、可信赖方面有一定突破;旷视推出天元 MegEngine,在训练推理一体化方面深度布局;PyTorch 捐赠给 Linux 基金会,并面向图模式提出了新的架构和新版本 PyTorch2.X。在这一阶段,AI 框架正向着全场景支持、大模型、分布式 AI、超大规模 AI、安全可信 AI 等技术特性深化探索。仓库中的《昇思 MindSpore 关键特性》对深化阶段的典型框架(动静统一、端边云全场景、轻量化推理、联邦学习、图算融合、梯度累积等)有专门章节展开。

AI 框架的发展:技术维度(三代架构)

以技术维度划分,AI 框架主要经历三代架构,其与深度学习范式下神经网络技术发展、编程语言及其编程体系的发展紧密关联:

第一代 AI 框架(2010 年前)

第一代 AI 框架在时间上主要是 2010 年前,面向需要解决的问题有:1)机器学习 ML 中缺乏统一的算法库;2)提供稳定和统一的神经网络 NN 定义。其广义上并不能称为 AI 框架,更多是对机器学习算法进行统一封装,并在一定程度上提供少量神经网络模型算法和 API 定义。具体形态有 2 种:

第一种以库(Library)的方式对外提供脚本式编程,方便开发者通过简单配置定义神经网络,并针对特殊的 ML/NN 算法提供接口,代表性作品是 MATLAB 和 SciPy;另外还有针对矩阵计算提供特定计算接口的 NumPy。优点是:面向 AI 领域提供了一定程度的可编程性,支持 CPU 加速计算。

第二种在编程上以 CNN 网络模型为主,由常用 layers 组成(如 Convolution、Pooling、BatchNorm、Activation 等),以 Layer Base 为驱动,通过简单配置文件定义神经网络,模型由常用 layer 构成简单图,AI 框架提供每个 layer 及其梯度计算实现。代表性作品是 Torch、Theano。优点是提供了一定程度的可编程性,计算性能有一定提升,部分支持 GPU/NPU 加速计算。

同时,第一代 AI 框架的缺点也比较明显,集中在 1)灵活性和 2)面向新场景支持不足:易用性限制难以满足深度学习的快速发展——层出不穷的新型网络结构需要重新实现前向和后向计算;大部分使用非高级语言实现,修改和定制化成本较高、对开发者不友好;新优化器要求对梯度和参数进行更通用复杂的运算。随着生成对抗网络 GAN、深度强化学习 DRL、Stable Diffusion 等新结构出现,基于简单"前向+后向"的训练模式难以满足新的训练模式——例如循环神经网络 LSTM 需要引入控制流、对抗神经网络 GAN 需要两个网络交替训练、强化学习模型 RL 需要与外部环境交互:

第二代 AI 框架:基于数据流图(DAG)的计算框架

第二代 AI 框架在技术上统一称为基于数据流图(DAG)的计算框架:将复杂的神经网络模型根据数据流拆解为若干处理环节,构建数据流图;数据流图中的处理环节相互独立,支持混合编排控制流与计算,以任务流为最终导向;AI 框架将数据流图转换为计算机可以执行或识别的任务流图,通过执行引擎(Runtime)解析任务流,进行分发调度、监控与结果回传,最终实现神经网络模型的构建与运行。

以数据流图描述神经网络的实践最终催生出了工业级 AI 框架,如 TensorFlow 和 PyTorch,这一时期同时伴随着 Chainer、DyNet 等激发了 AI 框架设计灵感的实验项目。TensorFlow 和 PyTorch 代表了现今 AI 框架的两种不同设计路径:系统性能优先改善灵活性,与灵活性易用性优先改善系统性能。这两种选择随着神经网络算法研究和应用的更进一步发展,逐步造成了 AI 框架在具体技术实现方案上的分裂——这正是仓库《框架编程范式》所剖析的动态图(命令式、define-by-run)与静态图(声明式、define-and-run)之争。

第三代 AI 框架:面向 DSL 的统一设计

在第三代 AI 框架中,面向通用化场景(如 CNN、LSTM、RNN)开始走向统一的设计架构,不同 AI 框架在一定程度上都会模仿或参考 PyTorch 的动态图 Eager 模式,提升自身易用性,更好地接入 AI 生态。目前在技术上已开始迈进第三代,其主要面向设计特定领域语言(Domain-Specific Language,DSL),最大特性是:1)兼顾编程的灵活性和计算的高效性;2)提高描述神经网络算法表达能力和编程灵活性;3)通过编译期优化技术来改善运行时性能。

面向不同业务场景存在差异(即特定领域):如 JAX 是 Autograd 和 XLA 的结合,作为一个高性能数值计算库,更是结合了可组合的函数转换库,除用于 AI 场景计算外,更重要的是可用于高性能机器学习研究;Taichi 面向图形图像可微分编程,作为开源并行计算框架,可用于云原生的 3D 内容创作:

在仓库中,《框架编程范式》给出了 JAX 的函数式编程范式讲解,《昇思 MindSpore 关键特性》展示了 MindSpore 面向对象 + 函数式融合编程与动静统一(JIT Fallback)的落地方式,而PyTorch2.0 图模式则从编译器视角展示了 PyTorch 面向图模式的演进。

AI 框架的未来

全场景:端边云全场景跨平台设备部署

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

易用性:前端便捷性与后端高效性的统一

AI 框架需要提供更全面的 API 体系以及前端语言支持转换能力,提升前端开发便捷性;需要为开发者提供完备度高、性能优异、易于理解和使用的 API 体系。同时,AI 框架需要提供更优质的动静态图转换能力,提升后端运行高效性——从开发者使用 AI 框架实现模型训练和推理部署的角度看:训练开发阶段希望通过动态图编程范式获得灵活易用的开发体验,以提升模型开发效率;部署阶段希望通过静态图实现高性能运行;并通过动态图转静态图的方式实现方便的部署和性能优化。目前 PyTorch2.0 的图编译模式走在业界前列,但不一定成为最终形态,在性能和易用性方面的兼顾仍待进一步探索——仓库PyTorch2.0 图模式正是围绕这一主题展开。

大规模分布式:强化对超大规模 AI 的支持

OpenAI 于 2020 年 5 月发布 GPT-3 模型,包含 1750 亿参数,数据集(处理前)达到 45T,在多项 NLP 任务中超越了人类水平。随之谷歌不断跟进分布式技术,超大规模 AI 逐渐成为新的深度学习范式。超大规模 AI 需要大模型、大数据、大算力的三重支持,对 AI 框架提出五大挑战:

  1. 内存:大模型训练过程中需要存储参数、激活、梯度、优化器状态;
  2. 算力:以 2000 亿参数量的大模型为例,需要约 3.6EFLOPS 的算力支持,必须构建 AI 计算集群满足算力需求;
  3. 通信:大模型并行切分到集群后,模型切片之间会产生大量通信,通信成为主要瓶颈;
  4. 调优:E 级 AI 算力集群训练千亿参数规模,节点间通信复杂,要保证计算正确性、性能和可用性,手动调试难以全面兼顾,需要更自动化的调试调优手段;
  5. 部署:超大规模 AI 面临大模型、小推理的部署难题,需要对大模型进行压缩以适应推理侧的部署需求。

仓库中的并行系列从数据并行、张量并行、流水线并行、混合并行等角度给出了分布式训练的框架级实现路径,可视为上述通信与调优挑战的工程落点。

科学计算:与科学计算深度融合交叉

传统科学计算领域亟需 AI 技术加持融合,计算图形可微编程(类似 Taichi 这样的语言和框架)提供可微物理引擎、可微渲染引擎等新功能。未来是 AI 与科学计算融合的时代,业界在探索三个方向:

  1. AI 神经网络建模:利用 AI 神经网络进行建模,替代传统的计算模型或数值模型,目前已有很大进展,如获得戈登贝尔奖的分子动力学模型 DeepMD;
  2. AI 求解:模型仍是传统科学计算模型,但使用深度学习算法来求解,已有一定探索(如 PINNs、PINN-Net 等),挑战仍很大,特别是在精度收敛方面;在 AI 框架上使用 AI 求解科学计算模型,最大的挑战主要在前端表达和高性能的高阶微分;
  3. 使用 AI 框架加速方程求解:科学计算的模型和方法都不变,与深度学习共用同一个框架求解——即把 AI 框架看作面向张量计算的通用分布式计算框架。

小结与思考

  • AI 框架作为智能经济时代的基础设施,其发展经历了从萌芽到成长、爆发和深化的四个阶段,目前正向着全场景支持、大模型、分布式 AI、超大规模 AI、安全可信 AI 等技术特性深化探索;
  • AI 框架的核心目标是提供灵活易用的编程模型和高效可扩展的计算能力,以支持神经网络的训练和推理,同时兼顾可编程性和性能;
  • 随着 AI 应用场景的扩展和新趋势的出现,AI 框架正面临支持全场景跨平台设备部署、强化大规模分布式 AI 支持、与科学计算深度融合交叉等多样化挑战;
  • 未来 AI 框架将注重前端便捷性与后端高效性的统一,着力强化对超大规模 AI 的支持,并进一步探索与科学计算的深度融合,以适应不断涌现的新需求和场景。

延伸阅读(仓库内相关章节)

  • AI 框架基础:课程总览
  • AI 框架作用:深度学习原理、函数逼近与自动微分
  • 框架编程范式:命令式、声明式与函数式
  • 昇思 MindSpore 关键特性
  • 自动微分系列
  • PyTorch2.0 图模式
  • 分布式并行系列
  • 文档
  • 教程
  • 人工智能

【免费下载链接】AISystem

AISystem 主要是指AI系统,包括AI芯片、AI编译器、AI推理和训练框架等AI全栈底层技术

项目地址:https://gitcode.com/GitHub_Trending/ai/AISystem
点击查看免费下载
上一篇:终极PDF转Markdown解决方案:Marker如何实现高精度文档解析的革命性突破
下一篇:【亲测免费】 SPD-Conv: 一种新型CNN架构的开源项目

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询