手把手教学:MosaicML 模型在 H100 上的预训练与调优

本文详细介绍了如何在DigitalOcean的Paperspace平台利用H100 GPU进行MosaicML的MPT模型预训练和微调。从环境设置、数据准备、YAML配置到实际训练,展示了端到端的过程。通过多节点配置,成功在H100 GPU上完成了大规模语言模型的训练,为后续的推理和部署打下了基础。
摘要由CSDN通过智能技术生成

 MosaicML 的名字应该很多搞 AI 的人都知道。他们推出的 MPT 系列模型,其中 70 亿参数版在性能测试中与 LLaMA 打个平手。

H100 应该也是无人不知吧?虽然现在性能最强的,应该是 NVIDIA 在“AI 春晚”发布的 B200。不过,现在大多数人能接触到的应该还是 H100。

OK,那我们来用这一篇教程,来讲讲使用 H100 进行 MosaicML 模型的预训练和调优的过程。

首先,我们与大家一样,也买不到那么多的 H100。所以,我们会借助云端的力量来解决算力、存储等一系列问题。否则,整个预训练和 finetuning 的过程会用很多天才能完成。

我们在这里会使用 DigitalOcean 的多节点机器和 Paperspace 上的 H100 GPU 做这次大型语言模型(LLM)的端到端预训练和微调。用到的是 4个节点,每个节点配备 H100×8 GPU,可提供高达 127 petaFLOPS 的计算能力,让我们能够在短短几小时内对全尺寸的最先进 LLM 进行预训练、微调。本次选择的模型是 MPT-30B。

这里先简单介绍一下使用的工具,DigitalOcean 是一家已经上市的云服务平台,每个新注册的用户都会有一定的免费额度,而且它本身价格也比其它云服务大厂亲民很多。Paperspace 是 GPU 云服务平台,在去年也被 DigitalOcean 收购了。该平台目前提供了包括 H100、A100 等多种 GPU。使用 GPU 云服务,总比自己买 GPU 然后搭建机器要方便得多。


获取 H100 的方式很简单。
 
DigitalOcean 旗下的 Paperspace 已经为开发者提供 NVIDIA H100 GPU 的服务,包括 H100×1 或 H100×8 的配置。

Paperspace 的云服务简化了 GPU 的配置和使用过程,而且通过该平台提供的 ML-in-a-Box 模板功能为开发者提供现成的 AI/ML 软件堆栈。

在 Paperspace 的后台,只需要在界面中点击以下选项,即可开始使用 H100×8。不过,如果你使用的量比较大,需要在该平台上预约一下。具体如果还有其他疑问和需求,比如想要更多 GPU 资源,可以直接找DigitalOcean官方的中国区技术支持

图:创建 H100 机器的过程
图:创建 H100 机器的过程

MosaicML MPT 模型

MosaicML 维护的 LLM Foundry GitHub 仓库,提供了 MPT 系列模型。他们持续以在实践中端到端可用的设置,提供最新版本的开源LLM。

这里我们重点关注其中两个模型:

  • MPT-760m 用于预训练:MPT 系列包含不同大小的模型,它们的命名基于参数数量(m代表百万,b代表十亿):125m、350m、760m、1b、3b、7b、13b、30b、70b。我们选择760m进行预训练,是因为它的大小适中,不需要等待数天或数周来完成训练。(较大的模型不仅尺寸更大,还需要更多的批次进行训练。MosaicML的原始7B模型预训练在440个A100-40G GPU上进行了9.5天,花费了20万美元。)
  • MPT-30B 用于微调:通常,通用的 LLM 在回答问题时,更像是继续聊天而不是回答问题。MPT-30B 模型经过调整,能比基础模型更好地更流畅地回答问题。我们选择300亿参数的模型是因为(a)它代表了大多数企业想要调整以解决其实际问题的完整大小的模型,(b)在 LLM Foundry 上有针对 30B 的优化 YAML。最终模型应该与 MosaicML 在 Hugging Face 上提供的 MPT-30B-Instruct 模型相似。

重要的是,这些模型是开源的,它们也允许商业使用,这意味着你可以把他们用在你的业务上。


端到端的过程


这是大家经常说的人工智能的端到端流程,总共有 11 步,它包括了从商业问题的产生到实现商业价值:

  1. 商业问题
  2. 数据起源
  3. 数据收集
  4. 数据存储
  5. 数据准备
  6. 模型训练
  7. 模型转换为推理
  8. 推理/部署
  9. 部署到生产环境
  10. 监控
  11. 获取商业价值的接口

那么,我们这篇文章真的会做到一个端到端的训练吗?

事实上,我们并没有将这次训练的模型投入到盈利的产品中,但我们确实完成了大部分步骤。最重要的是,虽然在这篇博文中我们没有完成这 11 个步骤,但在 DigitalOcean 的 Paperspace 平台上,可以跑完这些步骤。

我们简单讲一下,以上每一步,我们会做什么,即大家会阅读到的内容。

第一步,商业问题,是我们希望从我们的数据开始,从头开始预训练一个大语言模型(LLM),以便我们拥有完全的控制权,然后微调另一个模型,以便更好地回答我们用户的问题。由于数据已经存在于线上,因此这里不执行步骤2。对于步骤3到步骤5,我们正在下载相当大的数据,将其存储起来,以便高效地访问,而不会让它成为H100 GPU的瓶颈,并执行诸如分词之类的准备工作。步骤6是模型预训练或微调,我们正在通过 GitHub 仓库的代码和 YAML 设置执行此操作。同样,步骤7将训练得到的检查点模型转换为更适合部署的格式。(进行推理的模型不需要来自训练的所有信息,例如优化器状态,因此格式可以更小。)然后,步骤8是我们将用户提示传递给模型并查看其响应。

步骤9到步骤11可以完成,但我们在这里并不尝试。首先,我们需要将步骤8中使用的模型放在一个 endpoint 上,例如通过 Paperspace Deployments 让它进入云端,成为一个 API 供后续的业务进行调用,甚至之后的产品化。然后,可以使用诸如 Arize 之类的监控软件来查看模型在线时的状态以及其行为是否正确。最后,步骤11将通过指向模型的Web应用提供一个窗口,让非技术人员也可以与之交互。

设置

OK,具体了解过我们这次端到端流程,接下来让我们看看如何实现它。

首先,我们将详细介绍如何在 DigitalOcean 的 Paperspace 上设置模型,进行训练。然后,我们将做预训练和微调,最后是推理和部署。

这些部分相当长,但它们真实地反映了在大规模运行 LLM 时所需采取的步骤,以及您在运行自己的LLM时可能采取的步骤。

我们开始吧!

注册平台

要运行这两个模型并访问H100 GPU,需要注册一个 Paperspace 账号。作为注册过程的一部分,你将被引导申请启动 H100 。

H100机器

在Paperspace 的后台(即 Paperspace Core)中启动时,系统会通知你需要一个专用网络。这看似不太方便,因为当所有机器都需要它时,必须手动添加,但在Paperspace 上,操作非常简单:只需点击“添加专用网络”,选择一个名称,然后从“选择网络”下拉菜单中选择它即可。

对于多节点(multinode)任务,机器之间需要相互通信,因此无论如何都需要一个专用网络。我们将在下文中使用这个网络,并访问共享存储来存储我们的数据和模型。

访问存储用的主机还需要一个SSH密钥。磁盘大小应从默认的 100 GB 增加到 1-2 TB。

其他选项,如动态 IP,可以保留其默认设置。NVLink 是默认启用的。

通过 SSH 从本地计算机的终端访问主机的动态IP,例如

ssh paperspace@123.456.789.012

你可以在后台详细信息页面上查看机器的 IP。在 Mac 上,可以直接用 iTerm2,其它任何带有 SSH 功能的终端都应该可以。访问成功后,你应该能看到机器的命令行。

如果即计划进行多节点人物,请重复上述步骤,以创建足够的节点数量。

共享存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值