4.转载:【AI系统】AI系统概述与设计目标

简介: 本文全面介绍了AI系统全栈架构,涵盖设计目标、组成和生态,强调系统性能、用户体验及稳定性,探讨了AI系统在开源社区的作用。文章还深入解析了AI系统的基本概念、详细定义及其设计目标,旨在为读者构建AI系统的完整知识体系。

AI 系统全栈架构

通过对 AI 的发展、以及模型算法、硬件与数据的趋势介绍,我们已经了解了 AI 系统的重要性。本文将介 AI 系统的设计目标、组成和生态,让读者形成 AI 系统的知识体系,为后续展开每篇文章的内容做好铺垫。

AI 系统设计本身需要各个环节通盘考量,无论是系统性能,还是用户体验,亦或是稳定性等指标,甚至在开源如火如荼发展的今天,开源社区运营也成为 AI 系统推广本身不可忽视的环节。接下来将从不同的维度和技术层面展开 AI 系统的全景图。

AI 系统概述

AI 系统基本概念

从类比的角度理解 AI 系统:AI 时代连接硬件和上层应用的中间层软硬件基础设施

因此在部分语境中,又有人称为 AI Infra 人工智能的基础设施,但是因为基础设施更偏向于底层硬件、集群等内容,而 AI 系统是多的是强调让 AI 执行起来的系统体系结构,因此更愿意称包括软硬件的内容为 AI 系统。

传统本地部署时代,三大基础软件(数据库、操作系统、中间件)实现控制硬件交互、存储管理数据、网络通信调度等共性功能,抽象并隔绝底层硬件系统的复杂性,让上层应用开发者能够专注于业务逻辑和应用功能本身的创新实现。

云时代同理,形成了 IaaS、PaaS、SaaS 三层架构,其中 PaaS 层提供应用开发环境和基础的数据分析管理服务。类比来看,我们认为,进入 AI 时代也有承担类似功能的、连接算力和应用的基础设施中间层即 AI 系统,提供基础模型服务、赋能模型微调和应用开发。

AI 系统详细定义

开发者一般通过编程语言 Python 和 AI 框架(例如 PyTorch、MindSpore 等)API 编码和描述以上 AI 模型,声明训练作业和部署模型流程。由最开始 AlexNet 是作者直接通过 CUDA 实现网络模型,到目前有通过 Python 语言灵活和轻松调用的 AI 框架,到大家习惯使用 HuggingFace 社区提供的组件进行大语言模型进行微调和推理,背后是系统工程师贴合实际需求不断研发新的工具,并推动深度学习生产力提升的结果。

但是这些 AI 编程语言和 AI 框架应对自动化机器学习、强化学习等多样执行方式,以及细分的应用场景显得越来越低效,不够灵活,需要用户自定义一些特殊优化,没有好的工具和系统的支撑,这些问题一定程度上会拖慢和阻碍算法工程师研发效率,影响算法本身的发展。

因此,目前开源社区中也不断涌现针对特定应用领域而设计的框架和工具,例如 Hugging Face 提供语言预训练模型 ModelZoo 和社区,FairSeq 自然语言处理中的序列到序列模型开发套件和MMDetection 物体检测套件,针对自动化机器学习设计的 NNI 加速库等,进而针对特定领域模型应用负载进行定制化设计和性能优化,并提供更简化的接口和应用体验。

由于不同领域的输入数据格式不同,预测输出结果不同,数据获取方式不同,造成模型结构和训练方式产生非常多样的需求,各家公司和组织不断研发新的针对特定领域的 AI 框架或上层应用接口封装,以支持特定领域数据科学家快速验证和实现新的 AI 想法,工程化部署和批量训练成熟的模型。如 Meta 推出的 Torch 演化到 PyTorch,谷歌 TensorFlow 及新推出的 JAX,基于 PyTorch 构建的 HuggingFace 等。AI 开发工具与 AI 框架本身也是随着用户的模型构建与程序编写与部署需求不断演进。

这其中快速获取用户的原因,有一些是其提供了针对应用场景非常简化的模型操作,并提供模型中心快速微调相应的模型,有一些是因为其能支持大模型训练或者有特定领域模型结构的系统优化。

AI 系统自身设计挑战较高(如更大的规模、更大的超参数搜索空间、更复杂的模型结构设计),人工智能的代表性开发框架 PyTorch 是 Meta 开发,后续贡献给 Linux 开源基金会;TensorFlow 是谷歌(谷歌)从 2016 年开源;华为(HUAWEI)为了避免美国全面封锁 AI 领域推出自研的 AI 框架 MindSpore。

硬件厂商围绕其设计了大量的专有 AI 芯片(如 GPU、TPU、NPU 等)来加速 AI 算法的训练微调和部署推理,微软(Microsoft)、亚马逊(Amazon)、特斯拉(Tesla)等公司早已部署数以万计的 GPU 用于 AI 模型的训练,OpenAI 等公司不断挑战更大规模的分布式模型训练。

英伟达(NVIDIA)、华为(HUAWEI)、英特尔(Intel)、谷歌(谷歌)等公司不断根据 AI 模型特点设计新的 AI 加速器芯片和对应的 AI 加速模块,如张量核 Tensor Core、脉动阵列等提供更大算力 AI 加速器。

上述从顶层的 AI 算法应用、AI 框架(包括训练和推理)到底层 AI 编译器,和对 AI 算法应用进行加速的 AI 芯片。所介绍的 AI 全栈相关内容中则是指 AI 系统(AI System),是围绕深度学习而衍生和设计的系统,因此也叫做深度学习系统(Deep Learning System)

但是 AI 系统很多也可以应用于机器学习算法或使用机器学习算法,例如自动化机器学习、集群管理系统等。同时这些系统设计方法具有一定的通用性,有些继承自机器学习系统或者可以借鉴用于机器学习系统。即使作为系统工程师,也需要密切关注算法和应用的演进,才能紧跟潮流设计出贴合应用实际的工具与系统。

AI 系统设计目标

深度学习系统的设计目标可以总结为以下几个部分。

  1. 高效编程语言、开发框架和工具链

设计更具表达能力和简洁的神经网络计算原语以及高级编程语言。让用户能够提升 AI 应用程序的开发效率,屏蔽底层硬件计算的细节,更灵活的原语支持。当前神经网络模型除了特定领域模型的算子和流程可以复用(如大语言模型 Transformer 架构在自然语言处理 NLP 领域被广泛作为基础结构),其新结构新算子的设计与开发仍遵循试错(Trial And Error)的方式进行。那么如何灵活表达新的计算算子,算子间的组合以及融合形式,屏蔽经典熟知的算子与基础模型,是算法工程师所需要语言、库与 AI 框架层所提供的功能支持。

更直观的编辑、调试和实验工具。让用户可以完整的进行神经网络模型的开发、测试、调整诊断与修复和优化程序,提升所开发 AI 应用程序的性能与鲁棒性。训练过程不是一蹴而就,其中伴随着损失函数 LOSS 曲线不收敛、Loss 值出现 NaN 无效值、内存溢出等算法问题与算法设计缺陷(Bug)。AI 工具链与 AI 系统本身如何在设计之初就考虑到这点,提供良好的可观测性、可调试性、允许用户注册自定义扩展等支持,是需要工具链与 AI 系统的设计者,所需要在 AI 系统的设计之初就需要提上日程的,否则之后更多是缝缝补补造成不好的开发体验与不能满足的需求,对用户来说就像使用一个黑盒且单片的工具。

支持 AI 生命周期中的各个环节:数据处理、模型开发与训练、模型压缩与推理、安全和隐私保护等。不仅能构建 AI 模型,能够支持全生命周期的 AI 程序开发,并在 AI 系统内对全生命周期进行分析与优化。当前的 AI 工程化场景,已经不是灵感一现和单一的优化就能迅速取得领先优势,更多的是能否有完善的 AI 基础设施,快速复现开源社区工作,批量验证新的想法进行试错,所以一套好的完善的全流程的生命周期管理能够大幅度提升 AI 算法层面的生产力。

  1. AI 任务系统级支持

除了对深度学习训练与推理的支持,还能支持强化学习、自动化机器学习等新的训练范式。例如,需要不断和环境或模拟器交互以获取新数据的强化学习方式,批量大规模提交搜索空间的自动化机器学习方式等,这些新的范式造成对之前单一支持单模型之外,在多模型层面,训练与推理任务层面产生了新的系统抽象与资源,作业管理需求。

提供更强大和可扩展的计算能力。让用户的 AI 程序可扩展并部署于可以并行计算的节点或者集群,应对大数据和大模型的挑战。因为当前 AI 模型不断通过大模型,多模态大模型以产生更好的算法效果,促使 AI 系统需要支持更大的模型、更多模态的输入。同时由于企业 IT 基础设施不断完善,能够不断沉淀新的数据,也会伴随着大数据而衍生的问题。大模型与大数据促使存储与计算层面的系统,在摩尔定律失效的大背景下,迫切需要通过并行与分布式计算的方式,扩展算力与存储的支持。

自动编译优化算法。1)对计算图自动推导:尽可能的通过符号执行或即时编译 JIT 技术,获取更多的计算图信息,让 AI 框架或者 AI 编译器自动执行定制化的计算优化。2)根据不同体系结构自动并行化:面对部署场景的多样化体系结构,训练阶段异构硬件的趋势,AI 框架让用户透明的进行任务配置和并行化,以期以最为优化的方式在 AI 集群配置下,并行化、减少 I/O、充分利用通信带宽,逼近硬件提供的极限性能上限。

云原生自动分布式化。自动分布式并行扩展到多个计算节点,面对云与集群场景,自动将 AI 任务扩展与部署,进而支撑分布式计算、弹性计算,让用户按需使用资源,也是云原生背景下,AI 系统所需要考虑和支持的。

  1. 探索并解决新挑战下系统设计、实现和演化

在 AI 系统中会随着 AI 算法的发展,出现了对动态图、动态 Shape 的支持需求,利用网络模型结构的稀疏性进行压缩加速优化,为了提升训练指标 TTA 实现混合精度训练与部署,还有混合训练范式(如强化学习)、多任务(如自动化机器学习)等特性支持。

提供在更大规模的企业级环境的部署需求。如云环境、多租环境的训练部署需求:面对多组织,多研究员和工程师共享集群资源,以及大家迫切使用 GPU 资源的日益增长的需求,如何提供公平、稳定、高效的多租环境也是平台系统需要首先考虑的。

跨平台的推理部署需求。面对割裂的边缘侧硬件与软件栈,如何让模型训练一次,跨平台部署到不同软硬件平台,也是推理场景需要解决的重要问题。

最后是安全与隐私的需求。由于网络模型类似传统程序的功能,接受输入,处理后产生输出,但是相比传统程序,其解释性差,造成更容易产生安全问题,容易被攻击。同时模型本身的重要信息为权重,我们也要注意模型本身的隐私保护。同时如果是企业级环境或公有云环境,会有更高的安全和隐私保护要求。

了解完 AI 系统设计的宏观目标,可以进一步了解,当前在人工智能的大生态环境中 AI 系统的技术栈是如何构成的,整个技术栈中 AI 系统的各处于哪个抽象层次,互相之间的关系是什么。

如果您想了解更多AI知识,与AI专业人士交流,请立即访问昇腾社区官方网站https://www.hiascend.com/或者深入研读《AI系统:原理与架构》一书,这里汇聚了海量的AI学习资源和实践课程,为您的AI技术成长提供强劲动力。不仅如此,您还有机会投身于全国昇腾AI创新大赛和昇腾AI开发者创享日等盛事,发现AI世界的无限奥秘~

相关文章
|
7天前
|
存储 编解码 人工智能
【AI系统】FBNet 系列
本文介绍了FBNet系列的三种版本,从FBNetV1基于NAS的轻量级网络设计,到FBNetV2通过DMaskingNAS增加搜索空间,再到FBNetV3联合搜索网络结构与训练参数,展示了如何利用NAS技术优化网络结构和提升模型性能。文章详细解释了各版本的技术特点和实现方法,为读者提供了深入了解和应用NAS技术的宝贵资料。
42 10
【AI系统】FBNet 系列
|
7天前
|
人工智能 编解码 算法
【AI系统】EfficientFormer 系列
本文介绍了一种名为 EfficientFormer 的轻量化 Transformer 模型,旨在优化移动设备上的推理速度。通过重新设计 ViT 及其变体,特别是针对移动设备的延迟优化,EfficientFormer 引入了维度一致的 Transformer Block,并通过网络模型搜索获得了多个系列的模型。EfficientFormer V2 进一步改进了模型设计,引入细粒度联合搜索策略,优化了延迟和参数量,实现了更高的性能和效率。
31 8
【AI系统】EfficientFormer 系列
|
7天前
|
机器学习/深度学习 人工智能 编解码
【AI系统】MobileFormer
本文介绍了MobileFormer,一种创新的网络结构,通过双线桥将MobileNet的局部特征与Transformer的全局特征相结合,实现了高效且低计算成本的模型设计。MobileFormer使用少量tokens来学习全局先验,从而在保持高性能的同时,显著降低了计算量。通过本文,读者可以深入了解如何有效结合CNN和Transformer的优势,实现模型的轻量化。
28 7
【AI系统】MobileFormer
|
7天前
|
机器学习/深度学习 人工智能 算法
【AI系统】AI 框架基础介绍
本文介绍了AI算法、神经网络及AI框架的基础概念,探讨了神经网络的作用、训练目的以及AI框架如何简化模型设计、训练与验证过程。文章还概述了AI框架的发展历程和技术演进,强调了国内外主要AI框架的特点及其对AI技术发展的推动作用。
29 2
【AI系统】AI 框架基础介绍
|
2天前
|
机器学习/深度学习 人工智能 算法
5.转载:【AI系统】AI系统架构的组成
AI系统由训练与推理框架、编译与计算架构、硬件与体系结构三大部分构成,涵盖网络模型构建、模型算法实现、计算图构建、自动求导、中间表达构建、工具链、生命周期管理等关键领域。这些组件共同作用,支持AI模型的开发、优化、部署与执行,推动AI技术在各行业的广泛应用。
5.转载:【AI系统】AI系统架构的组成
|
9天前
|
机器学习/深度学习 人工智能 算法
【AI系统】推理系统介绍
推理系统是一种专门用于部署和执行神经网络模型预测任务的AI系统,类似于Web服务或移动端应用,但专注于AI模型的部署与运行。它支持将模型部署到云端或边缘端,处理用户请求。本文介绍了训练与推理的基本流程、两者差异、推理系统的优化目标及挑战,并对比了推理系统与推理引擎的流程结构,强调了设计推理系统时需考虑的优化目标,如灵活性、延迟、吞吐量、高效率、扩展性和可靠性。同时,文章还讨论了推理系统与推理引擎的区别,帮助读者深入了解推理引擎的核心技术。
33 5
|
18天前
|
机器学习/深度学习 人工智能 算法
【AI系统】AI系统概述与设计目标
本文介绍了AI系统的全栈架构,涵盖设计目标、组成和生态。AI系统旨在连接硬件与应用,提供高效的模型服务和开发支持。文中探讨了高效编程语言、开发框架、工具链的重要性,以及AI任务系统级支持、自动编译优化和云原生自动分布式化等关键设计目标。此外,还详细讨论了AI训练与推理框架、AI编译与计算架构、AI硬件与体系结构等组成部分,以及AI算法和框架、更广泛的生态系统等。
55 1
|
16天前
|
机器学习/深度学习 人工智能 并行计算
【AI系统】NVLink 原理剖析
随着AI技术的发展,大模型参数量激增,对底层硬件和网络架构提出新挑战。高效训练这些模型需要大规模GPU集群及高速网络连接,以实现快速数据交换。然而,网络瓶颈限制了GPU性能的充分发挥,表明单纯增加GPU数量不能线性提升算力。因此,算存互连和算力互连技术成为关键,如PCIe、NVLink和NVSwitch等,它们通过提高数据传输速度和效率,支持大规模并行计算,解决了大规模GPU集群中的通信延迟问题,推动了万亿级模型训练的实现。
35 2
|
18天前
|
机器学习/深度学习 人工智能 算法
【AI系统】AI系统架构的组成
本文概述了AI系统的组成,从AI训练与推理框架、AI编译与计算架构到AI硬件与体系结构,详细介绍了各层的功能与技术细节。同时,探讨了AI系统生态的广泛领域,包括核心系统软硬件、AI算法和框架以及更广泛的生态组成部分,强调了在模型训练、推理、安全与隐私等方面的技术挑战与解决方案。
32 2
|
2天前
|
机器学习/深度学习 人工智能 算法
转载:【AI系统】AI系统概述与设计目标
本文介绍了AI系统全栈架构,涵盖AI系统的设计目标、组成和生态,强调了系统性能、用户体验、稳定性及开源社区运营的重要性。文章详细解析了AI系统的基本概念、定义及其设计挑战,旨在为读者构建AI系统知识体系,助力AI技术的全面发展。通过对比传统软件和云计算架构,阐述了AI系统在连接硬件与应用间的独特作用,探讨了高效编程语言、开发框架和工具链的设计,以及AI任务的系统级支持,包括计算能力的扩展、自动编译优化、云原生自动分布式化等方面,为应对AI技术的新挑战提供了全面视角。