大语言模型概述(三):基于亚马逊云科技的研究分析与实践

上期介绍了基于亚马逊云科技的大语言模型相关研究方向,以及大语言模型的训练和构建优化。本期将介绍大语言模型训练在亚马逊云科技上的最佳实践。

大语言模型训练在亚马逊云科技上的最佳实践

本章节内容,将重点关注大语言模型在亚马逊云科技上的最佳训练实践。大致分为五大方面:

计算(Compute) — Amazon SageMaker Training

存储(Storage) — 可以通过两种方式完成数据加载和检查点(checkpointing)配置:Amazon FSx Lustre 文件系统或Amazon S3

并行化(Parallelism)— 选择分布式训练库对于正确使用 GPU 至关重要。我们建议使用经过云优化的库,例如 SageMaker 分片数据并行处理,但自管理库和开源库也可以使用

联网(Networking) — 确保 EFA 和 NVIDA的 GPUDirectRDMA已启用,以实现快速的机器间通信

弹性(Resiliency) — 在大规模情况下,可能会发生硬件故障。我们建议定期写入检查点(checkpointing)

以下我们会简单介绍下大语言模型训练并行化(Parallelism)在亚马逊云科技上的最佳实践。

大语言模型训练的并行化(Training Parallelism)

大语言模型通常有数十到数千亿个参数,这使得它们无法容纳在单个 GPU 卡中。大语言模型领域目前已有多个训练分布式计算的开源库,例如:FSDP、DeepSpeed 和 Megatron。你可以在 Amazon SageMaker Training 中直接运行这些库,也可以使用 Amazon SageMaker 分布式训练库,这些库已经针对亚马逊云进行了优化,可提供更简单的开发人员体验。

因此,在大语言模型领域的开发人员,在亚马逊云科技上目前有两种选择:

在 Amazon SageMaker 上使用优化过的分布式库进行分布式训练;

自己来管理分布式训练。

以下将概述如何在 Amazon SageMaker 上,使用优化过的分布式库进行分布式训练。

为了提供更好的分布式训练性能和可用性,Amazon SageMaker Training 提出了几种专有扩展来扩展 TensorFlow 和 PyTorch 训练代码。在真实场景里,大语言模型的训练通常以多维度并行(3D-parallelism)的方式在进行:

数据并行(data parallelism):可拆分训练小批次并将其馈送到大语言模型的多个相同副本,以提高处理速度

流水线并行(pipeline parallelism):将大语言模型的各个层归因于不同的 GPU 甚至实例,以便将大语言模型的大小扩展到单个 GPU 和单个服务器以外

Tensor 并行(tensor parallelism):将单个层拆分为多个 GPU,通常位于同一服务器内,以将单个层扩展到超过单个 GPU 的大小

以下示例图,展示了如何在具有 8*k*3 个 GPU(每台服务器 8 个 GPU)的 k*3 服务器集群上训练 6 层模型。数据并行度为 k,流水线并行度为 6,张量并行度为 4。集群中的每个 GPU 包含模型层的四分之一,完整模型分为三台服务器(总共 24 个 GPU)。

其中和大语言模型特别相关的分布式实践包括:

Amazon SageMaker 分布式模型并行 — 该库使用图形分区生成针对速度或内存进行了优化的智能大语言模型分区。Amazon SageMaker 分布式模型并行提供了最新、最好的大语言模型训练优化,包括数据并行、流水线并行、张量并行、优化器状态分片、激活检查点和卸载。

Amazon SageMaker 分片数据并行——在 MiCS: Near-linear Scaling for Training Gigantic Model on Public Cloud 论文中,引入了一种新的模型并行策略,该策略仅在数据并行组上划分模型,而不是整个集群。借助 MiCS,亚马逊云科技的科学家们能够在每个 GPU 上实现 176 万亿次浮点运算(理论峰值的 56.4%),从而在 EC2 P4de 实例上训练 210 层、1.06 万亿个参数的大语言模型。作为 Amazon SageMaker 并行共享数据,MIC 现已能够向 Amazon SageMaker Training 客户提供。

Amazon SageMaker 分布式训练库提供高性能和更简单的开发者体验。开发人员无需编写和维护自定义的并行进程启动器,或使用特定于框架的启动工具,因为并行启动器已经内置在 Amazon SageMaker 的任务启动 SDK 之中。

与传统分布式训练相比,大语言模型的微调通常不仅要求数据并行,数据并行和模型并行需要同时进行。Amazon SageMaker Model Parallelism 在易用性和稳定性 (OOM) 上与开源自建方案(如 DeepSpeed)相比具有核心竞争优势。对于基于哪些大语言模型进行具体微调、具体最佳实践等技术细节,你还可以咨询亚马逊云科技的解决方案架构师团队,获得更进一步的技术支持和专业建议。

总结

本期文章我们一起探讨大语言模型的发展历史、语料来源、数据预处理流程策略、训练使用的网络架构、最新研究方向分析(LLaMA、PaLM-E 等),以及在亚马逊云科技上进行大语言模型训练的一些最佳落地实践等。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp uni-popup组件在微信小程序中滚动穿透问题

起因 在微信小程序中使用uni-popup组件时&#xff0c;出现滚动穿透&#xff0c;并且uni-popup内部内容不会滚动问题。 解决 滚动穿透 查阅官方文档&#xff0c;发现滚动穿透是由于平台差异性造成的&#xff0c;具体解决可以参照文档禁止滚动穿透 <template><page-…

centos 显卡驱动安装(chatglm2大模型安装步骤一)

1.服务器配置 服务器系统:Centos7.9 x64 显卡:RTX3090 (24G) 2.安装环境 2.1 检查显卡驱动是否安装 输入命令:nvidia-smi(显示显卡信息) 如果有以下显示说明,已经有显卡驱动。否则需要重装。 2.2 下载显卡驱动 第一步:浏览器输入https://www.nvidia.cn/Downloa…

基于Java SSM框架+Vue实现汉服文化平台网站项目【项目源码+论文说明】

基于java的SSM框架Vue实现汉服文化平台系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个汉服文化平台网站 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将…

Gradle windows下配置

1.Gradle下载 打开官网下载界面&#xff1a;https://gradle.org/releases/ 如果你使用的SpringBoot项目&#xff0c;建议使用6.8及以上的版本 2.下载后放到目录下 3.配置环境变量 配置gradle_home 配置Path 4.配置成功 5.配置国内源 新建一个init.gradle文件&#xff0c;配…

WEB全面测试方法汇总

WEB功能测试方法 功能测试就是对产品的各功能进行验证&#xff0c;根据功能测试用例&#xff0c;逐项测试&#xff0c;检查产品是否达到用户要求的功能。常用的测试方法如下&#xff1a; 1. 页面链接检查&#xff1a;每一个链接是否都有对应的页面&#xff0c;并且页面之间切换…

倒计时(JS计时器)

<script>function countDown() {document.body.innerHTML ;//清空页面内容var nowTimer new Date(); //现在时间的毫秒数var valueTimer new Date("2024-1-1 12:00"); //用户输入年份倒计时时间毫秒数var timer (valueTimer - nowTimer) / 1000; //倒计时秒…

ESP32-Web-Server编程-CSS 基础 2

ESP32-Web-Server编程-CSS 基础 2 概述 如上节所述&#xff0c;可以使用外部 CSS 文件来修饰指定的 HTML 文件。 外部引用 - 使用外部 CSS 文件。 当样式需要被应用到很多页面的时候&#xff0c;外部样式表将是理想的选择。使用外部样式表&#xff0c;就可以通过更改一个文件…

什么是死锁?如何产生死锁?死锁的必要条件?怎么解决死锁?

🔒1、什么是死锁 死锁是一个非常让程序猿烦恼的问题,一旦所写的程序有了死锁,那么程序就无法执行下去,会出现严重的 bug,并且死锁非常隐蔽,我们不会轻易发现它,在开发阶段,不经意期间我们就会写出死锁,很难检测出来。 那么什么是死锁呢?竟然让我们如此烦恼。 “死…

设计循环队列

目录 设计循环队列 &#x1f642;【1】数组循环队列 思路分析 ❓1 ❓2 ❓3 易错总结 创建MyCircularQueue 初始化myCircularQueueCreate 为空否myCircularQueueIsEmpty 为满否myCircularQueueIsFull 插入元素myCircularQueueEnQueue 删除元素myCircularQueueDeQue…

【香橙派】实战记录2——烧录安卓镜像及基本功能

文章目录 一、安卓烧录二、安卓基本功能1、蓝牙2、相机功能3、投屏 一、安卓烧录 检查环境&#xff1a;检查PC系统&#xff0c;确保有Microsoft Visual C 2008 Redistrbutable - x86&#xff0c;否则在官网下载的官方工具 - 安卓镜像烧录工具里运行vcredist_x86.exe。 插入存储…

吸烟引发火灾,两涉案人被刑事拘留,是时候让AI保卫我们的安全了

3月23日17时30分&#xff0c;招远市玲珑镇睦邻庄村北山森林失火。经查&#xff0c;系王某某在山林作业期间&#xff0c;吸烟引发山火造成重大损失。王某某因涉嫌失火罪已被招远市公安局刑事拘留。 3月28日14时04分&#xff0c;龙口市下丁家镇大庄村南部山域森林失火。经查&…

PCB布线为什么不能走直角或锐角-笔记

PCB布线为什么不能走直角或锐角-笔记 摘要一.PCB走线在直角转弯的地方&#xff0c;信号前后部分相互影响这几个理由我们来一一分析一下传输线的直角带来的寄生电容从阻抗的角度来看直角的尖角产生放电或者电磁辐射走线直角的工艺问题 摘要 有一定熟悉画过PCB板的人或者PCB教学…

C 中的结构 - 存储、指针、函数和自引用结构

0. 结构体的内存分配 当声明某种类型的结构变量时&#xff0c;结构成员被分配连续&#xff08;相邻&#xff09;的内存位置。 struct student{char name[20];int roll;char gender;int marks[5];} stu1; 此处&#xff0c;内存将分配给name[20]、roll、gender和marks[5]。st1这…

Python--使用布林线设计均值回归策略

在本教程中,我们将探讨均值回归的概念以及如何使用 Python 中的布林线设计交易策略。均值回归是一种流行的交易策略,它基于这样的假设:随着时间的推移,资产价格往往会恢复到历史平均水平。布林线 (Bollinger Bands) 由约翰布林格 (John Bollinger) 开发,是一种技术分析工具…

分类预测 | Matlab实现NGO-KELM北方苍鹰算法优化核极限学习机分类预测

分类预测 | Matlab实现NGO-KELM北方苍鹰算法优化核极限学习机分类预测 目录 分类预测 | Matlab实现NGO-KELM北方苍鹰算法优化核极限学习机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现NGO-KELM北方苍鹰算法优化核极限学习机分类预测&#xff08;完…

深度学习(一):Pytorch之YOLOv8目标检测

1.YOLOv8 2.模型详解 2.1模型结构设计 和YOLOv5对比&#xff1a; 主要的模块&#xff1a; ConvSPPFBottleneckConcatUpsampleC2f Backbone ----->Neck------>head Backdone 1.第一个卷积层的 kernel 从 6x6 变成了 3x3 2. 所有的 C3 模块换成 C2f&#xff0c;可以发现…

大模型下交互式数据挖掘的探索与发现

在这个数据驱动的时代&#xff0c;数据挖掘已成为解锁信息宝库的关键。过去&#xff0c;我们依赖传统的拖拉拽方式来建模&#xff0c;这种方式在早期的数据探索中起到了作用&#xff0c;但随着数据量的激增和需求的多样化&#xff0c;它的局限性逐渐显露。 >>>> 首…

IPtables防火墙详解

一、IPtables介绍 iptables是unix/linux自带的一款开放源代码的完全自由的基于包过滤(对OSI模型的四层或者是四层以下进行过滤)的防火墙工具&#xff0c;它的功能十分强大&#xff0c;使用非常灵活&#xff0c;可以对流入和流出服务器的数据包进行很精细的控制。主要针对网络访…

微软发布了Orca 2,一对小型语言模型,它们的性能超越了体积更大的同类产品

尽管全球目睹了OpenAI的权力斗争和大规模辞职&#xff0c;但作为AI领域的长期支持者&#xff0c;微软并没有放慢自己的人工智能努力。今天&#xff0c;由萨提亚纳德拉领导的公司研究部门发布了Orca 2&#xff0c;这是一对小型语言模型&#xff0c;它们在零样本设置下对复杂推理…

[Docker]十一.Docker Swarm集群raft算法,Docker Swarm Web管理工具

一.Docker Swarm集群raft算法讲解 Raft &#xff1a;一致性算法&#xff0c;在保证大多数管理节点存活的情况下&#xff0c;集群才能使用&#xff0c; 所以就要求如果集群的话&#xff0c; manager 节点必须 >3 台 &#xff0c;如果是两个台&#xff0c;其中一台宕机&#…