AI系统AI系统架构的组成

如图所示,大致可以将AI系统分为以下几个具体的方向:

AI框架不仅仅是指如PyTorch等训练框架,还包括推理框架。其负责提供用户前端的AI编程语言,接口和工具链。负责静态程序分析与计算图构建,编译优化等工作。AI框架本身通过提供供用户编程的API获取用户表达的模型,数据读取等意图,在静态程序分析阶段完成尽可能的自动前向计算图构建,自动求导补全反向传播计算图,计算图整体编译优化,算子内循环编译优化等。

AI框架充分赋能深度学习领域,为AI算法的开发者提供了极大便利。早期的AI框架主要应用于学术界,如Theano、torch等,随着深度学习的快速发展以及在工业界的不断拓展,不断有新的AI框架被提出以满足不同场景的应用。

但是随着AI技术应用的全面发展,各厂家根据自身业务场景的需求,在AI硬件和算法上不断优化和探索,AI系统的体系结构越来越复杂,更多新的AI加速芯片被提出来,其设计变得更加多样化,AI框架运行的硬件环境和算法也趋于更多样和复杂,单一AI框架已经无法满足和平衡所有特性。所以,为了提供不同框架和硬件体系结构之间的迁移性,ONNX等中间IR被提出,其定义了表示神经网络模型的统一格式,以促进不同AI框架之间的模型转换。

为了实现硬件的多样性,需要将神经网络模型计算映射到不同架构的硬件中执行。在通用硬件上,高度优化的线性代数库为神经网络模型计算提供了基础加速库。此外,大多数硬件供应商还发布了专属的神经网络模型计算优化库,如:MKL-DNN和cuDNN等,但基于基础加速库的优化往往落后于深度学习算法模型的更新,且大多数情况下需要针对不同的平台进行定制化的开发。

为了解决多硬件平台上的性能优化的问题,多种AI编译器被提出并得到了普及和应用,比如:TVM,Glow,XLA和Jittor等。AI编译器以神经网络模型作为输入,将AI计算任务通过一层或多层中间表达IR进行翻译和优化,最后转化为目标硬件上可执行的代码,与传统的编译器(LLVM)类似,AI编译器也采用前端、中间表示和后端分层设计的方式。

AI编译与计算架构负责AI模型在真正运行前的编译和系统运行时的动态调度与优化。当获取的网络模型计算图部署于单卡、多卡甚至是分布式AI集群的环境,运行期的框架需要对整体的计算图按照执行顺序调度算子与任务的执行、多路复用资源,做好内存等资源的分配与释放。包括并不限于以下部分:

负责程序的真正执行、互联与加速。在更广的层面,作业与作业间需要平台提供调度,运行期资源分配与环境隔离。包括并不限于以下部分:

虽然AI系统在总的方向上分为开发体验层、框架层、编译与运行时和硬件体系结构和AI芯片4层结构。但是我们将在后续章节中,将会围绕核心系统软硬件,如AI训练和推理框架,AI编译器,AI芯片,部分涉及更广泛的AI系统生态中的重要内容如算法等展开介绍。

除了以上重要的AI系统构成之外,随着人工智能应用越来越广泛,我们还可以看到更广泛的AI系统生态的构成。其中包含以下领域:

通过核心系统软硬件,底层的基础架构已经可以给上层提供算力,存储,网络等资源池,可以按需给需要执行的深度学习作业隔离出指定规格的资源,执行深度学习作业,类似传统操作系统已经完成底层硬件的抽象与资源隔离,只需要用户的应用提交到系统中被执行和管理。

通过深度学习算法与框架,用户可以表达模型设计和训练配置等需求,就像给提供了一套特定领域的“编程语言”,并且提供了相应的编译器及工具链可以翻译成运行时软硬件环境可以执行的指令。

随着深度学习高速发展,更大的搜索空间,运行时才能获取的数据,模型安全与隐私,部署推理的多样化需求变得日益迫切,我们需要考虑除训练以外更多的AI系统问题。

THE END
1.决策树和模型体系结构良好的训练性能本身并不是一件坏事,但是树对于训练集已经变得高度专门化,以至于它可能在测试集上表现不佳。 这是因为树已经成功地学会了训练集中的关系,这些关系可能并不真实,例如,如果你年龄在 25 岁以下,体重 60 公斤就能保证获得奖牌。 模型体系结构会影响过度拟合 https://docs.microsoft.com/zh-cn/learn/modules/machine-learning-architectures-and-hyperparameters/2-decision-trees
2.什么叫结构化的算法为什么要提倡结构化的算法结构工程师将算法分解成模块化的部分。这样做可以增强代码的清晰度和可维护性,提高编程效率。提倡结构化算法,因为https://www.bkw.cn/zcjls/ask/4577918.html
3.什么叫结构化的算法?为什么要提倡结构化的算法?结构化算法的好处是结构化算法:由一些顺序、选择、循环等基本结构按照顺序组成,流程的转移只存在于一个基本的范围之内。 为什么要提倡结构化的算法? 机构化算法便于编写,可读性高,修改和维护起来简单,可以减少程序出错的机会,提高了程序的可靠性,保证了程序的质量,因此提倡结构化的算法。https://blog.csdn.net/bookanddream/article/details/116145916
4.C语言程序设计第五版谭浩强课后答案(第二章答案)C语言2. 什么叫结构化的算法?为什么要提倡结构化的算法?结构化算法:由一些顺序、选择、循环等基本结构按照顺序组成,流程的转移只存在于一个基本的范围之内。结构化算法便于编写,可读性高,修改和维护起来简单,可以减少程序出错的机会,提高了程序的可靠性,保证了程序的质量,因此提倡结构化的算法。https://www.jb51.net/article/208821.htm
5.indexedDB的精华和使用什么是indexDB一个事务型数据库系统什么是indexDB 一个事务型数据库系统 【注】 一个基于 JavaScript 的面向对象数据库 支持索引,可快速查找数据 可以存储结构化克隆算法支持的任何对象 不能被结构化克隆算法复制的数据 结构化克隆算法用于复制复杂 JavaScript 对象的算法,它通过递归输入对象来构建克隆,同时保持先前访问过的引用的映射,以避免无限遍历循环https://juejin.cn/post/7301968484766941218
6.深入理解数值计算网格(全篇)2. 结构化网格生成算法中,有一种间接生成方法,即首先创建非结构化网格,再合并。比如二维网格中先产生三角形,然后三角形两两组成一个四面体。六面体则是先生成四面体,然后组装六面体。这种方法又叫Morph算法。 3. 由于结构化网格有比较好的边界特性,所以多块(MultiBlock)划分也是常用的方法。即首先将几何区域分成子区域https://www.360doc.cn/article/79007735_1022656856.html
7.不懂这25个名词,好意思说你懂大数据?但是它真的是一个术语。所以一个数据湖(data lake)即一个以大量原始格式保存了公司级别的数据知识库。这里我们介绍一下数据仓库(Data warehouse)。数据仓库是一个与这里提到的数据湖类似的概念,但不同的是,它保存的是经过清理和并且其它资源整合后的结构化数据。https://gxq.guiyang.gov.cn/zjgxq/zjgxqxyzs/zjgxqxyzsdsjqy/201710/t20171013_17120534.html
8.结构化克隆算法结构化克隆算法用于复制复杂 JavaScript 对象的算法。通过来自 Worker 的 postMessage() 或使用 IndexedDB 存储对象时在内部使用。它通过递归输入对象来构建克隆,同时保持先前访问过的引用的映射,以避免无限遍历循环。http://developer.mozilla.org/zh-CN/docs/Web/API/Web_Workers_API/Structured_clone_algorithm
9.Web性能优化之Worker线程(上)结构化克隆算法可用于在两个独立上下文间共享数据 在通过postMessage()传递对象时,浏览器会遍历该对象,并在目标上下文中生成它的一个副本。 结构化克隆算法支持的类型 ![](files.mdnice.com/user/24720/…=50%x) 需要注意的点 结构化克隆算法在对象比较复杂时会存在计算性消耗。因此,实践中要尽可能避免过大、过https://developer.aliyun.com/article/1195770
10.结构化克隆算法结构化克隆算法是一种由HTML5 规范定义的新算法,用来序列化复杂的 JavaScript 对象。相比JSON,它对包含着循环图的对象序列化有着更好的支持——对象可以引用指向同一图中的其他的对象的对象。此外,在某些情况下,结构化克隆算法可能会比 JSON 有着更高的效率。 https://developer.mozilla.org.cach3.com/zh-CN/docs/Web/Guide/API/DOM/The_structured_clone_algorithm
11.055基于深度学习的搜索算法:深度结构化语义模型时长08:01 050 | 经典图算法之HITS 时长07:29 051 | 社区检测算法之“模块最大化 ” 时长06:40 052 | 机器学习排序算法经典模型:RankSVM 时长07:54 053 | 机器学习排序算法经典模型:GBDT 时长06:56 054 | 机器学习排序算法经典模型:LambdaMART 时长07:25 055 | 基于深度学习的搜索算法:深度结构化语义https://time.geekbang.org/column/article/2297
12.结构化网格生成算法及软件工程技术研讨会单菊林,中国,民族:汉。从 2001 年师从著名力学专家顾元宪教授和关振群教授至今,一直致力于固体、流体及多物理场分析优化中网格剖分理论、算法及相应的软件开发研究。尤其擅长 CAE 前处理软件架构的构建和网格生成方法的工业化研究。http://huodong.dlut.edu.cn/info/1012/6695.htm
13.挑战Transformer的Mamba是什么来头?作者博士论文理清SSM进化路径要克服这一计算瓶颈,就必须以一种适合高效算法的方式对状态矩阵 A 施加结构。作者介绍了具有各种形式结构矩阵 A 的结构化状态空间序列模型(S4)(或简称结构化状态空间)家族,以及能以任何表示形式(如循环或卷积)高效计算 S4 模型的新算法。 论文第 3 章介绍了这些高效 S4 模型的不同类型。第一种结构使用状态矩阵https://www.51cto.com/article/777511.html
14.算法概述算法具有4个性质:输入、输出、有限性、确定性 算法是方法,程序是方法的具体实现 著名计算机科学家沃思提出了下面的公式:程序 = 数据结构 + 算法; 实际上,一个程序应当采用结构化程序设计方法进行程序设计,并且用某一种计算机语言来表示。因此,可以用下面的公式表示:程序 = 算法 + 数据结构 + 程序设计方法 + 语言https://www.jianshu.com/p/8c8d20a9bde8