当前位置: 首页 > news >正文

支持大模型训练的计算机系统

摘要:

       训练数据决定了基础大模型可用的理论信息,模型架构和训练目标决定了可以提取多少信息,计算机系统决定了实际可实现的内容。在数据和模型大小方面,系统是扩展的关键瓶颈,这两者似乎都可以可靠地跟踪能力的改进。在时间和成本方面,为了确保我们能够有效地训练下一代基础大模型,我们将需要协同设计算法、模型、软件和硬件。这种协同设计已经开始以各种形式发生,从精心调整的并行策略到新的架构,如基于检索和混合专家模型。除了训练之外,我们还考虑在基础模型之上部署应用程序所需的条件。

       计算机系统是开发基础大模型的最大瓶颈之一。基础大模型通常太大,无法容纳单个加速器(例如,GPU)的主内存,并且需要大量的计算来训练(例如,对于GPT-3 > 1000 petaFLOP/s-days )。此外,随着时间的推移,这些模型可能会变得更大:例如,最先进的语言模型的计算和内存需求在过去三年中增长了三个数量级,并且预计将继续以远快于硬件能力的速度增长(1)。一旦经过训练,这些大型模型执行推理的成本很高,并且难以在生产应用程序中进行调试、监控和维护。我们认为,基础模型的性能和可用性的进一步进步将需要跨算法、模型、软件和硬件系统进行仔细的协同设计,以及用于编程和部署ML应用程序的新接口。在本节中,我们讨论了在开发和生产大规模基础模型时的关键计算机系统挑战。

1所示。图中显示了基于transformer的语言模型的参数数和训练操作数(FLOPs)的增长(蓝色表示),以及NVIDIA P100V100A100 gpu的内存容量和峰值设备吞吐量(红色表示)随时间的增长。最先进的语言模型的增长率(每条线的斜率)(大约每年10)远远超过硬件计算能力的增长率(大约410),这激发了对大量加速器之间并行性的需求,以及算法、模型、软件和硬件的协同设计,以推动进一步的进步。参数数量和训练操作次数从相关论文中获得,内存容量和峰值吞吐量从GPU规格表中获得。

1. 通过协同设计提高性能

       如今,训练大规模基础模型通常需要定制软件系统,如Megatron, DeepSpeed, or Mesh Transformer JAX​​​​​​​,建立在PyTorchTensorFlowJAX等标准框架之上这些软件系统依赖于跨堆栈的许多创新来大规模高效地训练模型:新的并行化维度,如管道parallelism 在保持设备繁忙的同时限制通信,状态分片优化器减少内存使用,即时(JIT)编译器优化计算图,以及优化库如cuDNNNCCL 。Megatron和DeepSpeed在特定规模上是有效的;例如,Megatron可以在具有1万亿个参数的模型上使用大约3000GPU提取高达现代硬件理论峰值吞吐量的52% 。然而,扩展到具有更多GPU的更大模型仍然具有挑战性,因为现有的并行化策略在更大的GPU数量下会崩溃。数据并行性受限于批大小,管道并行性受限于模型中的层数,以及单个服务器上GPU数量的张量模型并行度

       虽然我们将继续从新硬件中实现性能提升,但大型模型资源需求的增长远远超过了几代硬件的改进。为了促进模型容量的下一个重大飞跃,并使模型质量的进步民主化,协同设计训练算法、模型、软件和硬件将变得越来越重要,因为许多显著提高性能的途径会改变训练计算的语义。例如,以较低精度(fp16)执行操作可以帮助提高现代硬件的吞吐量(例如,V100A100 GPU具有用于低精度矩阵乘法的专用张量核心单元),但也会影响优化过程的数值。类似地,利用权值稀疏性可以显著提高训练和推理时间只对模型中的非零进行数学运算,但需要不同的训练算法协同设计的其他例子包括更有效地映射到硬件的模型架构,新颖的代币化替代方案,专门架构的硬件训练平台,以及放宽权重更新语义的分布式并行化策略

案例研究:有效的知识表示

      作为成功协同设计的具体案例研究,基于检索的模型,如REALMRAGColBERT-QARETRO 采用了与简单增加模型参数数量不同的模型设计方法。基于检索的模型不是试图将越来越大的数据集中的隐性知识直接积累到具有数十亿个参数的DNN模型中(GPT- 3),而是以文本段落的形式存储模型参数之外的知识,以密集的向量表示捕获段落内的知识。然后,这些模型使用可扩展的top-𝑘搜索机制来提取与每个输入相关的知识,同时保持DNN模型本身较小。这种设计提高了模型在生产中的计算效率和可维护性:例如,开发人员可以通过替换文本段落来更新模型的知识,而无需重新训练大型DNN

       基于检索的模型通过利用几个新的跨职能思想取得了有希望的初步结果,包括在训练期间通过检索器反向传播损失(这需要通过由数百万个段落组成的知识存储近似梯度)和建模查询和段落之间的细粒度交互(这需要将计算分解为向量级最近邻搜索操作)这些技术允许基于检索的模型是准确的和高效,但需要的功能不容易被流行的ML框架和最近邻指数(如FAISS)支持

2. 自动优化

       系统中的另一个重要挑战是自动化跨算法、模型、软件和硬件的优化应用。虽然许多优化和并行化策略是互补的,但识别最有效的优化组合是具有挑战性的,因为联合搜索空间以组合方式增长,优化以非平凡的方式相互作用。基础模型增加了对自动优化的需求,因为在数千个gpu的规模下,手动实验非常昂贵且耗时。

       该领域最近的工作集中在以语义保持优化为目标的系统上。特别是,已经提出了自动发现数学等效图替换的系统,通过高级api和低级编译器促进算子图的分布式执行,以及混合配送策略的自动化选择这些系统已经帮助在工业中部署了许多基础模型

      不幸的是,当组合语义改变优化时,自动优化变得更加困难,因为通常不清楚如何联合建模这些技术的统计影响(例如,需要多少训练迭代才能达到特定的精度?)。因此,我们将需要新的软件工具、库和编译器来自动识别针对时间-精度等综合指标的优化组合构建这样的工具需要系统和机器学习专家之间的紧密协作。

3. 执行和编程模型

        基础模型独特的多任务性质提供了将训练和推理成本分摊到许多应用程序上的机会。特别是,适应等范式意味着在模型实例之间有更多的共享。例如,来自同一预训练模型的两个经过前缀调优的模型可以共享相同的模型“干”,从而减少了存储占用(共享的干只需要存储一次),同时也使得跨前缀调优模型共享和批处理执行成为可能因此,所使用的特定适应机制为系统优化提供了信息

      应该使用什么编程接口来指定从相同的预训练模型(例如,模型)派生的各种适应模型,这是一个悬而未决的问题 (𝑌 𝑍是从相同的预训练模型𝑋衍生出来, 或者两个模型的各个组成部分共享参数(例如,两个模型𝐴和𝐵具备相同的网络)LudwigPyTorchModule提供了在模型内组合功能的简单方法,但目前没有系统支持跨模型依赖关系。让用户有机会提供注释将允许训练和推理系统更有效地优化和编排计算;如果没有这样的注释,系统将无法看到哪些计算和参数可以跨模型实例共享。模型的“适应历史”(这个特定的模型是从什么模型改编的)也可以用于调试:一个被改编的模型在特定类型的输入上的错误可能源于预训练的模型,指出预训练过程与适应过程中的问题。像PyTorch这样的框架,以及训练基础模型,如HuggingFace Transformers,不允许指定整个模型实例的细粒度血统信息。

    构建和维护一个由数千个加速器组成的集群也需要巨大的努力。新的培训范式如Learning@Home 探索利用互联网上的志愿者计算来协同训练基础模型。这种全新的执行模型可以降低任何一个实体的培训成本,但需要跨多个不同领域的协作,如安全性(确保恶意志愿者不能显著改变培训过程)、分布式系统(在志愿者退出时处理容错问题)和众包。

4. 基础模型的产品化

       随着社区继续推动基础模型的能力,实现其潜力将需要解决与在生产中部署这些资源密集型模型相关的挑战。这些挑战包括以严格的延迟目标执行模型推理,并确保以自动化的方式监控模型和数据。

       对于具有严格成本和延迟约束的应用,蒸馏等模型压缩技术,量化,修剪和稀疏性可以通过转换更大的模型来获得所需的推理时间属性来帮助部署。这些技术最初是为低内存环境(例如,移动电话)中的较小模型(例如,BERT-L)设计的,但现在需要处理数据中心部署中现代基础模型的极端规模。像张量模型并行化(tensor model parallelism) 这样传统上用于训练的并行化技术,也可能有助于减少推理延迟,并且还可以跨gpu提供额外的内存容量来拟合模型的参数。

       除了这些实际约束外,基础模型的大小和复杂性以及用于训练它们的数据集的增加也给模型和数据集生命周期管理带来了新的挑战。由于具有大量参数的模型很难由人类手动检查,因此我们需要更好的系统来实现自动数据集管理和模型质量保证。行为测试和模型断言等技术通过为最终应用程序中部署的模型提供类似于单元测试、运行时监控(以测试时间断言的形式)和持续的模型改进(随着新输入的到来)来简化生产中的模型维护。这些工具可以帮助解决公平性和偏见问题,并减少模型错误预测。

相关文章:

支持大模型训练的计算机系统

摘要: 训练数据决定了基础大模型可用的理论信息,模型架构和训练目标决定了可以提取多少信息,计算机系统决定了实际可实现的内容。在数据和模型大小方面,系统是扩展的关键瓶颈,这两者似乎都可以可靠地跟踪能力的改进。在…...

SAP ABAP-AVL-OO方法中的ALV的如何自己添加按钮及其响应

ABAP-AVL-OO方法中的ALV的如何自己添加按钮及其响应 SAP在做报表开发中,不同公司对报表的风格往往各异,为此经常在使用OO方法做ALV报表中需要去掉自带的工具栏而自行添加一些工具按钮,下面将简单介绍一下添加按钮及如何响应的实现方法&#…...

uniapp移动端悬浮按钮(吸附边缘)

Uniapp移动端悬浮按钮可以通过CSS实现吸附边缘的效果。具体实现步骤如下&#xff1a; html&#xff1a; <movable-area class"movable-area"><movable-view class"movable-view" :position"position" :x"x" :y"y"…...

【成功】Linux安装Mysql8并设置远程连接

今天在新搞来的阿里云的服务器里安装MySQL8&#xff0c;记录一下过程&#xff1a; 这是MySQL的官网和下载地址&#xff1a;MySQL :: Download MySQL Community Server (Archived Versions) 1. 先进入安装目录 cd /usr/local 2. 安装 wget https://downloads.mysql.com/arch…...

高效纯化树脂A-2313 CPR

在化工、制药等行业中&#xff0c;对colorful chemicals的纯化一直是挑战。本文将为您介绍一款具有卓越性能的强碱性阴离子交换树脂——Tulsion A-2313 CPR。通过分析其特性和应用&#xff0c;展示其在colorful chemicals纯化领域的优势。 一、Tulsion A-2313 CPR离子交换树脂的…...

uni-app实现安卓原生态调用身份证阅读器读卡库读身份证和社保卡、银行卡、IC卡等功能

DONSEE系列多功能读写器Android Uniapp API接口规范V1.0.0 本项目Uniapp调用了身份证读卡器的库文件&#xff1a;DonseeDeviceLib-debug.aar&#xff0c;该库放到nativeplugins\donsee-card\android&#xff0c;然后会自动加载。SDK会自动检查是否拥有USB设备权限&#xff0c;…...

【QT】QComboBox和QPlainTextEdit基本介绍和应用示例

目录 1.QComboBox 1.1 QComboBox概述 1.2 QComboBox信号 1.3 QComboBox常用功能 1.4 QComboBox添加简单项 1.6 QComboBox列表项的访问 2.QPlainTextEdit 2.1 QPlainTextEdit概述 2.2 QPlainTextEdit的基本属性 2.3 QPlainTextEdit的公共函数 2.4 QPlainTextEdit的公…...

Path的使用-path绘制折线的时候带上圆角

场景&#xff1a; 使用antv-g6 自定义边的时候&#xff0c;绘制折线&#xff0c;此时都是直角&#xff0c;需要加圆角&#xff0c;没找到属性&#xff0c;自己绘制&#xff1a; 最后使用了A&#xff08;elliptical Arc&#xff09;弧形 A命令用于画弧形。 A rx ry x-axis-r…...

Go Fyne 入门

Fyne是一个用于创建原生应用程序的UI工具包&#xff0c;它简单易用&#xff0c;并且支持跨平台。以下是一个简单的Fyne教程&#xff0c;帮助你入门&#xff1a; 1. 安装Fyne 首先&#xff0c;确保你已经安装了Go语言。然后&#xff0c;在终端中运行以下命令来安装Fyne&#x…...

如何为游戏角色3D模型设置纹理贴图

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时&#xff0c;有几种不同的风格&#xf…...

2024 年 SEO 现状

搜索引擎优化&#xff08;SEO&#xff09;一直以来都是网络知名度和成功的基石。随着我们踏上 2024 年的征程&#xff0c;SEO领域正在经历重大变革&#xff0c;有些变革已经开始&#xff0c;这对企业、创作者和营销人员来说既是挑战也是机遇。 语音搜索 语音搜索曾是一个未来…...

Mac虚拟机CrossOver23破解版下载和许可证下载

CrossOver Mac Mac 和 Windows 系统之间的兼容工具。使 Mac 操作系统的用户可以运行 Windows 系统的应用&#xff0c;从办公软件、实用工具、游戏到设计软件&#xff0c; 您都可以在 Mac 程序和 Windows 程序之间随意切换。 系统要求 运行macOS的基于Intel或Apple Silicon 的…...

宝藏级实用工具,制作电子书轻而易举

电子书是一种数字化的书籍形式&#xff0c;可以通过互联网进行传播和分享。相比于传统的纸质书籍&#xff0c;电子书具有便携、环保、易于分享等优点。如今&#xff0c;越来越多的人开始选择阅读电子书&#xff0c;它已经成为了一种流行的阅读方式。 那么&#xff0c;如何制作电…...

虚拟局域网(VLAN)解析(Virtual Local Area Network)(用于在不受物理位置限制的情况下将设备划分到同一网络或不同网络)

文章目录 虚拟局域网&#xff08;VLAN&#xff09;解析1. VLAN简介2. VLAN工作原理3. VLAN类型1. 静态VLAN2. 动态VLAN 4. VLAN优点提高安全性降低网络拥堵更简单的管理 5. 如何配置VLAN1. 进入全局配置模式2. 创建VLAN并命名3. 将端口分配给VLAN4. 验证VLAN配置 6. 常见问题与…...

uni-app 微信小程序之好看的ui登录页面(四)

文章目录 1. 页面效果2. 页面样式代码 更多登录ui页面 uni-app 微信小程序之好看的ui登录页面&#xff08;一&#xff09; uni-app 微信小程序之好看的ui登录页面&#xff08;二&#xff09; uni-app 微信小程序之好看的ui登录页面&#xff08;三&#xff09; uni-app 微信小程…...

解决火狐浏览器拖拽事件打开新页面的问题

产生原因及解决方案 我们在进行拖拽事件的编写时会发现&#xff0c;在火狐浏览器上会发生打开新窗口的问题&#xff0c;这是火狐浏览器的一个特性。 这是因为在 Firefox 中 ondrop 事件会触发 Firefox 自带的拖拽搜索功能&#xff0c;在 ondrop 事件触发执行时触发的函数中加…...

以为回调函数是同步的(js的问题)

回调函数可以用来处理 JavaScript 的异步操作&#xff0c;但是选用 Promise、async/await 更好&#xff0c;因为多重回调函数会导致回调地狱。 回调函数不是**同步的**&#xff0c;它是延时操作执行完毕后会被调用的一个函数。 比如全局方法 "setTimeout" &#xf…...

如何在小米路由器4A千兆版刷入OpenWRT并通过内网穿透工具实现公网远程访问

文章目录 前言1. 安装Python和需要的库2. 使用 OpenWRTInvasion 破解路由器3. 备份当前分区并刷入新的Breed4. 安装cpolar内网穿透4.1 注册账号4.2 下载cpolar客户端4.3 登录cpolar web ui管理界面4.4 创建公网地址 5. 固定公网地址访问 前言 OpenWRT是一个高度模块化、高度自…...

diffusers pipeline拆解:理解pipelines、models和schedulers

diffusers pipeline拆解&#xff1a;理解pipelines、models和schedulers 翻译自&#xff1a;https://huggingface.co/docs/diffusers/using-diffusers/write_own_pipeline v0.24.0 diffusers 设计初衷就是作为一个简单且易用的工具包&#xff0c;来帮助你在自己的使用场景中构建…...

Spring 装配Bean详解

一、简介 ​ Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系。Spring具有非常大的灵活性&#xff0c;它提供了三种主要的装配机制&#xff1a; 在XML中进行显示配置&#xff1b;在Java中进行显示配置&#xff1b;隐式的bean发现机制和自动装配。 二、…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...