【AI系统】AI系统概述与设计目标

简介: 本文介绍了AI系统的全栈架构,涵盖设计目标、组成和生态。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 系统,提供基础模型服务、赋能模型微调和应用开发。

03Architecture01.png

AI 系统详细定义

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

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

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

03Architecture02.png

由于不同领域的输入数据格式不同,预测输出结果不同,数据获取方式不同,造成模型结构和训练方式产生非常多样的需求,各家公司和组织不断研发新的针对特定领域的 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)

03Architecture03.png

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

AI 系统设计目标

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

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

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

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

    03Architecture04.png

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

    03Architecture05.png

  2. AI 任务系统级支持

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

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

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

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

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

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

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

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

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

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

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

目录
相关文章
|
5天前
|
机器学习/深度学习 人工智能 并行计算
【AI系统】NVLink 原理剖析
随着AI技术的发展,大模型参数量激增,对底层硬件和网络架构提出新挑战。高效训练这些模型需要大规模GPU集群及高速网络连接,以实现快速数据交换。然而,网络瓶颈限制了GPU性能的充分发挥,表明单纯增加GPU数量不能线性提升算力。因此,算存互连和算力互连技术成为关键,如PCIe、NVLink和NVSwitch等,它们通过提高数据传输速度和效率,支持大规模并行计算,解决了大规模GPU集群中的通信延迟问题,推动了万亿级模型训练的实现。
20 2
|
7天前
|
机器学习/深度学习 人工智能 算法
【AI系统】AI系统架构的组成
本文概述了AI系统的组成,从AI训练与推理框架、AI编译与计算架构到AI硬件与体系结构,详细介绍了各层的功能与技术细节。同时,探讨了AI系统生态的广泛领域,包括核心系统软硬件、AI算法和框架以及更广泛的生态组成部分,强调了在模型训练、推理、安全与隐私等方面的技术挑战与解决方案。
22 2
|
7天前
|
机器学习/深度学习 人工智能 算法
【AI系统】AI 系统与程序代码关系
本文探讨了AI系统与程序代码之间的关系,通过PyTorch实现LeNet5神经网络模型为例,详细介绍了AI训练流程原理、网络模型构建方法、算子实现的系统问题以及AI系统执行的具体计算过程。文章不仅解释了神经网络的前向传播和反向传播机制,还深入分析了算子在AI框架中的作用及其底层实现,包括卷积层的具体计算和优化问题。此外,文章对比了使用PyTorch与直接使用cuDNN+CUDA编程实现神经网络模型的差异,强调了AI框架在提高开发效率、自动化内存管理和实现自动微分等方面的重要性。
23 1
|
2月前
|
机器学习/深度学习 人工智能 开发框架
【AI系统】AI 学习方法与算法现状
在人工智能的历史长河中,我们见证了从规则驱动系统到现代机器学习模型的转变。AI的学习方法基于深度神经网络,通过前向传播、反向传播和梯度更新不断优化权重,实现从训练到推理的过程。当前,AI算法如CNN、RNN、GNN和GAN等在各自领域取得突破,推动技术进步的同时也带来了更大的挑战,要求算法工程师与系统设计师紧密合作,共同拓展AI技术的边界。
90 1
|
2月前
|
机器学习/深度学习 人工智能 安全
【AI系统】AI系统的设计目标与挑战
本文探讨了AI系统设计的核心目标及其面临的挑战。AI系统作为硬件与应用间的桥梁,需提升开发效率、优化用户体验,并支持数据处理、模型训练等全生命周期环节。此外,还需在系统级上灵活支持多样化AI任务,应对新技术带来的挑战,如动态图支持、大规模部署及安全需求。未来,AI系统设计将更注重高效、灵活与安全。
91 0
|
2月前
|
机器学习/深度学习 人工智能 算法
【AI系统】AI的历史、现状与理论基础
人工智能(AI)作为一门跨学科的研究领域,其目标是模拟、延伸和扩展人的智能。本文旨在概述AI的历史发展、当前趋势以及理论基础,为读者提供一个系统的视角。
91 0
|
4月前
|
人工智能 Java 知识图谱
典型热点应用问题之Conversational AI团队探索了哪些智能对话中的新任务
典型热点应用问题之Conversational AI团队探索了哪些智能对话中的新任务
|
4月前
|
机器学习/深度学习 数据采集 人工智能
数据工作中的自动化与AI融合实践
【8月更文第13天】随着大数据和人工智能(AI)技术的发展,数据处理和分析变得越来越重要。本文将探讨如何通过自动化工具和AI技术来优化数据处理流程,包括数据清洗、特征工程、模型训练以及结果可视化等步骤。我们将使用Python编程语言及其相关库(如Pandas、Scikit-learn和TensorFlow)作为实现手段。
283 0