如何提升网络对AI大模型流量的承载能力?

news2024/11/15 21:09:19

前言

随着AI大模型的兴起,数据中心正在经历前所未有的变革。AI模型的规模巨大并持续快速增长。自2017年起,AI模型的规模每半年翻一番,从初代Transformer的6500万增长到GPT-4的1.76万亿,预计下一代大语言模型的尺寸将达到10万亿。

什么是AI大模型?

AI大模型(Artificial Intelligence Large Model)是指具有庞大参数规模和复杂程度的神经网络模型,它们通过大规模的数据训练,能够在各种任务中表现出高度准确和广泛的泛化能力(即对新鲜样本或未知数据的适应能力)。

AI大模型具备以下特点:

  1. 参数规模庞大:AI大模型通常包含数十亿至数千亿个参数,这使得它们能够处理更加复杂的数据和任务。
  2. 学习能力强:由于参数众多,AI大模型能够从海量数据中学习到丰富的特征和模式,从而实现对复杂问题的准确预测和判断。
  3. 应用广泛:AI大模型在自然语言处理、计算机视觉、自动驾驶、医疗健康等多个领域都有广泛的应用。

不过AI大模型在展现其强大能力的同时,也为我们带来了如下挑战:

  1. 训练成本高昂:由于参数规模庞大,AI大模型的训练需要大量的计算资源和时间。
  2. 数据隐私和安全性问题:训练过程中可能涉及大量的敏感数据,如何保护这些数据不被泄露是一个重要问题。
  3. 泛化能力限制:尽管AI大模型在大规模数据上表现出色,但在少样本、小样本场景下的泛化能力仍有待提高。

AI模型是如何训练的?

上文提到AI大模型训练成本昂贵,那么AI模型是如何来训练的呢?它的训练步骤有哪些?

AI训练程序首先将模型参数加载到GPU内存中,之后进行多个epoch的训练。

每个epoch的处理过程可以简单描述为4步:

  1. 加载训练数据,在每个epoch中,根据batch size将整个数据集分为若干个mini-batch,分批次加载训练数据,直到遍历整个训练数据集。
  2. 训练,包括前向传播、计算损失、反向传播和参数/梯度更新,每个mini-batch都进行上述步骤。
  3. 评估,使用评估数据集对模型的指标进行评估。这一步是可选的,可以在整个训练完成后单独进行,也可以间隔若干个epoch进行一次。
  4. 保存checkpoint,包括模型状态、优化器状态和训练指标等。为了减少存储需求,通常经过多个epoch后保存一次。

AI大模型训练的网络流量有哪些?

在大模型出现之前,整个过程在一台AI服务器内部完成,训练程序从服务器本地磁盘读取AI模型和训练集,加载到内存中,训练、评估,然后将结果存储回本地磁盘。而大模型的出现改变了这一切。

首先是模型的参数规模超出了单个GPU的内存,以GPT-3为例,要加载1750亿参数及其优化器状态,需要至少125块H100/A100。其计算量也非常庞大,为了加速计算,需要更多的GPU,OpenAI在训练GPT-3时使用了1024块A100。 这些GPU要协同起来一起计算,需要相互之间通信以交换信息,包括参数/梯度、中间激活等。

同时,庞大的数据集被所有GPU共享,需要集中存放到存储服务器中。另一方面,定期保存的checkpoint包含了所有参数和优化器状态,也需要通过存储服务器共享。这样,在每个训练epoch中,都要通过网络读写数据,这些网络流量分为两类,如图1所示:

图1 AI训练时的网络流量分类

  1. 第一类是GPU之间同步梯度和中间激活的网络流量,它发生在所有GPU之间,是一种广播式流量,逻辑上需要所有GPU全连接。
  2. 第二类是GPU和存储服务器之间的流量,它仅仅发生在GPU和存储服务器之间,是一种单播流量,逻辑上仅需要以存储服务器为中心的星型连接。

网络如何承载AI大模型流量?

上述第一类网络流量——GPU之间的网络流量,与传统数据中心内部的流量迥然不同,具有广播式、超大流量、超低时延、超高频率、零容忍丢包和严格时间同步的特点。毋庸置疑,这样的流量特点对网络提出了新的需求。网络承载AI大模型流量是一个复杂而关键的任务,需要从多个方面进行优化和应对。

(一)网络架构优化

  1. 高带宽网络:AI大模型训练需要处理大量的数据,因此网络必须具备高带宽以支持高速数据传输。传统数据中心的100Gbps带宽接入可能无法满足需求,需要升级到800Gbps、1.6Tbps甚至更高的接入带宽。
  2. 多轨道网络架构:采用多轨道网络架构可以提高集群通信效率,减少跨交换机的通信量。例如星融元的星智AI网络——基于LLM大模型的Rail Only网络,架构图如下。

Rail-Only网络架构

3. 全互联架构:在AI大模型训练场景中,采用全互联架构可以减少网络跳数,降低时延。例如,在星融智算中心网络中,每个通道内Spine交换机和Leaf交换机之间做fullmesh全互联,如图2所示。

图2:full-mesh全互联组网

(二)协议与技术升级

1. RDMA:使用RDMA(远程直接内存访问)协议可以减少传输时延和提升网络吞吐。

图3:RDMA工作原理

从图3可以看出,RDMA绕过了操作系统提供的协议栈,规避了TCP/IP的限制,直接在网络传输层之下进行数据传输,并且允许网络适配器直接从内存缓冲区中读写数据,而无需CPU的干预。与传统模式相比,RDMA大幅度降低了消息传输中的处理延迟,能够充分利用网络带宽,提高数据传输的效率。

传统模式和RDMA模式的对比
 

国际组织(InfiniBand Trade Association, IBTA)发布了最早的 RDMA技术——IB。IB是为 RDMA 量身定制的网络技术,能够提供极高的网络带宽,以满足高性能计算中对数据传输速度的需求。但RDMA 在早期采用 IB 作为传输层,必须使用专门的IB 交换机和 IB 网卡才可实现,导致设备成本和维护成本高,兼容性和灵活性差。

而后IBTA 发布了RoCE技术,允许应用通过以太网实现远程内存访问。RoCE 技术可通过普通以太网交换机实现,只需服务器支持 RoCE 网卡即可。目前的 RoCEv2标准是UDP 协议,虽然 UDP 协议效率比较高,但不像 TCP 协议那样有重传机制等来保障可靠的传输,一旦出现丢包,必须依靠上层应用发现了再做重传,这就会大大降低 RDMA 的传输效率。因此,要想发挥 RoCE 真正的效果,必须为 RDMA 搭建一套不丢包的无损网络环境。星融元的CX-N系列云交换机搭建的超低时延无损以太网能够很好地承载RoCEv2,并基于RoCEv2打造了一张低时延、零丢包、高性能的HPC高性能计算网络。

2. 流量调控:流量控制技术的核心是限制单个客户端向服务器发送的数据量,以确保服务器能够及时处理这些数据。例如,星融元Asterfusion CX-N系列云交换机使用PFC技术来进行流控。

PFC是一种基于优先级的流量控制技术,如图所示,DeviceA发送接口被分成了8个优先级队列,DeviceB接收接口则存在8个接收缓存,二者一一对应。DeviceB接收接口上某个接收缓存发生拥塞时,会发送一个反压信号“STOP”到DeviceA,DeviceA则停止发送对应优先级队列的流量。

图5:PFC工作机制

3. 负载均衡:负载均衡技术的核心是将请求分发到多个服务器上,以提高系统的性能和可用性,避免拥塞和瓶颈。目前的负载均衡技术有DNS负载均衡、七层负载均衡、四层负载均衡等。下图是典型分布式架构的多层负载方案。

图6:多层负载方案

(三)硬件与设备优化

  • 高性能交换机:使用高性能的交换机来支持高速数据转发和交换。交换机需要具备足够的端口数量和带宽,以支持大规模GPU集群的通信需求。如星融元CX864E-N 800G交换机等。
  • DPU硬件卸载:通过DPU(数据处理单元)硬件卸载技术,可以将网络处理任务从CPU转移到DPU上,从而减轻CPU的负担并提高网络性能。例如,GPU Direct RDMA和GPU Direct Storage等技术可以优化GPU之间的通信路径和数据传输效率。

为AI流量而生——800G超级以太网交换机

上文提到优化硬件以承载AI大模型流量,数据中心交换机需要马不停蹄地升级换代,而星融元CX864E-N 800G交换机正是这样一款超级以太网交换机。它具有如下特点:

  • 超大容量,支持64个800G以太网接口,共51.2T交换容量。
  • 超低时延交换网,在800G端口上实现业界最强的560ns cut-through时延。
  • 200+ MB大容量高速片上包缓存,显著减小集体通信时RoCE流量的存储转发时延。
  • Intel至强CPU + 大容量可扩展内存,运行持续进化的企业级SONiC——AsterNOS网络操作系统,并通过DMA直接访问包缓存,对网络流量进行实时加工。
  • INNOFLEX可编程转发引擎,可以根据业务需求和网络状态实时调整转发流程,最大程度避免网络拥塞和故障而造成的丢包。
  • FLASHLIGHT精细化流量分析引擎,实时测量每个包的延迟和往返时间等,经过CPU的智能分析,实现自适应路由和拥塞控制。
  • 10纳秒级别的PTP/SyncE时间同步,保证所有GPU同步计算。
  • 开放API,通过REST API开放全部功能给AI数据中心管理系统,与计算设备相互协同,实现GPU集群的自动化部署。

总之,星融元CX864E-N 800G交换机在保持极致性能的同时,实现可编程、可升级的能力,与计算设备形成协同,共同打造10万级别的计算节点互联,将数据中心重构为可与超级计算机媲美的AI超级工厂。

关注vx公号“星融元Asterfusion”,获取更多技术分享和最新产品动态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2058672.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSE12 Lab 4: Simple CSV File Analysis

This file shows the stock returns from an investment portfolio over a year. The “A” column contains the stock name and the “B” column indicates the returns in USD (You can assume that there are no negative stock returns in any of our CSV data files ).…

深度解析|comfyui画面词云效果工作流搭建和讲解

前言 本篇文章共分为4部分: 工作流展示 工作流节点逻辑梳理 工作流拆解搭建 总结 我会对里面的重要的节点做详细的说明和解释,希望大家看完之后能学会并自己进行搭建,可以把出图效果放评论区一起学习探讨哦。 1.工作流效果展示 今天我…

45.【C语言】指针(重难点)(H)

目录: 22.函数指针变量 *创建 *使用 *两段代码分析 23.函数指针数组 *基本用法 *作用 往期推荐 22.函数指针变量 *创建 类比数组指针变量的定义:存放数组地址的指针变量,同理函数指针变量存放函数的地址 格式 函数的返回类型 (*指针变量的…

【python报错已解决】“string indices must be integers”

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引言 你是否在处理Python字符串时遇到了“string indices must be integers”的错误?这个错误可能会让你的代码运行…

[SWPU2019]Network

TTL加密 python脚本解密 import binasciif open(attachment_3.txt, "r") str Binary number while 1:num f.readline()if not num:breakif num.rstrip() 63: # 去掉每行后面的空格Binary 00elif num.rstrip() 127:Binary 01elif num.rstrip() 191:Bi…

C++那些事之helgrind并发编程检测

C那些事之helgrind并发编程检测 大纲 死锁数据竞争提问 通常我们在写多线程程序的时候很容易遇到两个问题: 死锁了,不知道什么原因导致数据不一致,多个线程没保护数据 那么有没有工具来检测这两种场景呢 答案是有的,我们可以使用v…

【Qt】常用控件QProgreeBar

常用控件QProgreeBar 使用QProgressBar表示一个进度条!!! QProgressBar的核心属性 属性说明 minimum 进度条最⼩值 maximum 进度条最⼤值 value 进度条当前值 alignment ⽂本在进度条中的对⻬⽅式. Qt::AlignLeft : 左对⻬Qt::Align…

Unity(2022.3.38LTS) - 性能分析器

目录 一. 简介 二. 打开分析器 1. 打开 2.在目标平台上分析应用程序 三. 分析分析器 四. 模块详细介绍 1.Asset Loading Profiler 模块 2.Audio Profiler 模块 3.CPU Usage Profiler 模块 4.File Access Profiler 模块 5.Global Illumination Profiler 模块 6.GPU …

多线程任务中设置MDC的实践

多线程任务中设置MDC的实践 引言 在当今的软件开发中,日志记录是不可或缺的一部分。日志不仅仅是调试工具,还在系统监控、性能分析、故障排除中扮演着关键角色。尤其在多线程环境中,日志的上下文信息一致性至关重要。MDC(Mapped…

WPF 动画 插值动画、关键帧动画、路径动画

WPF动画,分为三种:插值动画、关键帧动画、路径动画 2.1 插值动画:     1)定义:插值动画是指,属性值从某一个值,经过一段时间后,连续变化值另一个值的动画。         例…

订单到期关闭如何实现?

目录 一、被动关闭 二、定时任务 三、JDK自带的DelayQueue 四、Netty的时间轮 五、Kafka的时间轮 六、RocketMQ延迟消息 七、RabbitMQ死信队列 八、RabbitMQ插件 九、Redis过期监听 十、Redis的Zset 十一、Redisson 在电商、支付等系统中,一般都是先创建…

win/mac数字资产管理软件Adobe Bridge (BR)软件下载安装

目录 一、Adobe BR软件介绍 1.1 软件概述 1.2 主要功能 1.3 系统要求 二、Adobe BR安装步骤 2.1 下载软件 2.2 安装前准备 2.3 安装过程 三、Adobe BR使用教程 3.1 基础操作 3.1.1 浏览与预览 3.1.2 搜索与筛选 3.1.3 批量操作 3.2 进阶功能 3.2.1 元数据管理 …

鸿蒙OS高级应用开发例题

44项目需要同时进行应用和元服务的开发,并针对当前项目工程中的代码可以分别构建出应用和元服务的包,如何在DevEco Studio中设置不同的构建配置,达成这个目的 A. 在模块级别buld-pronlejson5定义两个target;将两个target的bundleType分别设置…

8.20模拟赛题解

简单点评一下 整体上来看 ,A题拿满分的同学可能占一半吧 ,这个数据其实是不太理想的 ,说明同学们对于思维模拟题还是不熟练,没抓住题目要分析的本质。 B题显然是保证有解的,有解的情况下问最优解,说明翻到满…

动力电池系统面向开发的测试——电池阻抗特性测试(下)

接动力电池系统面向开发的测试——开路电压测试(上)本文主要围绕BMS设计中的等效电路模型第二大动态特性参数——阻抗特性及测试内容来展开分享。 阻抗特性测试方法: 方案1:直流脉冲测试 前面在分享功率评估内容的时候&#xf…

【正点原子K210连载】第三十二章 音频FFT实验 摘自【正点原子】DNK210使用指南-CanMV版指南

第三十二章 音频FFT实验 本章将介绍CanMV下FFT的应用,通过将时域采集到的音频数据通过FFT为频域。通过本章的学习,读者将学习到CanMV下控制FFT加速器进行FFT的使用。 本章分为如下几个小节: 32.1 maix.FFT模块介绍 32.2 硬件设计 32.3 程序设…

How can OpenAI Gym‘s visualizations work within Docker?

题意:OpenAI Gym 的可视化功能如何在 Docker 中运行? 问题背景: Id like to get OpenAI Gym working with the rendered OpenGL visualizations within a docker container. 我想在 Docker 容器中让 OpenAI Gym 与渲染的 OpenGL 可视化一起…

数据通信基础

信道特性 信道带宽 W 模拟信道:WF max - F min (信道最大频率减去最小频率,单位Hz) 数字信道:数字信道是离散信道,带宽为信道能够达到的最大数据传输速率,单位bit/s 奈奎斯定理(理…

IOy系列BL196MQTT远程IO模块智能农业灌溉水质监测

随着农业科技的进步和智能农业的发展,传统的灌溉和水质管理方式正逐渐被更为高效和智能的解决方案所取代。在智能农业系统中,水质监测作为灌溉管理的关键环节,对保障作物健康和提高水资源利用效率具有重要作用。 IOy系列BL196 MQTT远程IO模块…

第七届机械、控制与计算机工程国际学术会议(ICMCCE2024)

第七届机械、控制与计算机工程国际学术会议定于2024年10月25日至27日在中国杭州召开。本届会议由巢湖学院主办,主要围绕“机械”、“控制”与“计算机工程”等研究领域展开讨论。旨在为机械、控制与计算机工程方面的专家学者及企业发展人提供一个分享研究成果、讨论…