Lightning AI:128GPU解锁AI大模型训练新可能,效率飙升!
Monarch + Lightning AI:分布式训练解锁新可能
人工智能领域的快速发展,对大规模模型训练提出了更高的要求。传统的分布式训练工作流往往冗长且复杂,严重制约了开发效率。在此背景下,Meta旗下PyTorch团队主导的Monarch项目与Lightning AI达成战略合作,旨在通过将Monarch的强大功能直接集成到Lightning Studio笔记本中,彻底革新分布式训练体验。新媒网跨境获悉,此次合作标志着集群规模开发进入新阶段,赋能新一代AI开发者,使其能够在一个熟悉的工具环境中,快速、大规模地进行迭代。
此次合作的核心在于重新构想无缝分布式训练。Monarch旨在解决在大型GPU集群上进行开发时,反复迭代周期长的问题。以往,每一次代码改动都意味着需要重新分配资源、重新构建并重新部署整个工作流,效率低下。Monarch通过提供一种通用的分布式计算语言,直接攻克了这些迭代瓶颈。这一框架不仅使用户能够直接在集群上保持连接并进行开发,还能从单一的本地训练脚本中管理整个工作流。
Monarch与Lightning AI的协同,展示了这种脚本的强大潜力。Monarch已与Lightning AI平台及其多机训练(Multi-Machine Training, MMT)应用深度整合。Lightning MMT支持用户异步调度大规模任务,负责从亚马逊云服务(AWS)、谷歌云平台(Google Cloud Platform)、Voltage Park、Nebius和Lambda等多个云服务商,配置训练优化的计算环境。通过Monarch的应用程序接口(API),Lightning Studio的交互式开发体验得以延伸至Lightning MMT的大规模计算能力。
在这一全新的工作流中,资源通过Lightning MMT仅需配置一次。此后,用户便能利用Monarch的API,直接控制任务的生命周期。由于用户现在能直接掌控集群的执行,代码更改和意外异常不再需要重新分配新集群。用户可以在同一资源分配的上下文中,通过熟悉的交互式笔记本环境,添加遗漏的打印语句、更改模型配置,甚至调整执行流程。Monarch的API围绕着具有可扩展消息传递机制的远程“Actor”模型构建。Actor被分组为“网格”(meshes),消息可以广播给所有成员。这一简洁而强大的API使用户能够命令式地描述如何创建进程和Actor,使分布式编程直观易懂。
from import
# spawn 8 trainer processes one for each gpu
"gpus" 8
# define the actor to run on each process
class def int
# create the trainers
"trainers"
# tell all the trainers to to take a step
0
# wait for all trainers to complete
Monarch与Lightning:三大革新性能力
- 持久化计算与高效迭代
Monarch的核心优势之一在于其计算资源的持久性。这意味着即使在迭代、实验或暂时离开工作期间,计算环境仍能保持不变。用户每次都能从上次中断的地方继续工作,无需重新配置。
当与Monarch一同部署时,计算节点通过Monarch的进程分配器运行。该分配器职责明确:首先是路由Monarch生态系统内部传递的任何消息;其次是生成任意形态的进程网格。这种集群职责的简化,使得节点职责得以封装,从而将运行计算的硬件与用户的运行时环境分隔开来。
与传统的集群规模工作流启动方法不同,进程分配器(以及用户分配的资源)在用户代码出现异常或连接断开后依然存活,这意味着它可以在多次迭代中重复使用。即使客户端程序完成或崩溃,计算环境也能保持活跃,减少了手动干预,并提高了交互式和长时间运行工作负载的可靠性。
Monarch的核心抽象始于分配“进程网格”(Process Meshes)的能力。一旦进程分配完成,用户便可利用Monarch的Actor模型来部署封装好的Python代码单元。这些Actor本身就像服务器一样,通过暴露“端点”作为通信原语。这些端点可以由其他Actor或任意Python进程异步调用。这一接口可以轻松地编排,以创建多机训练程序。
import asyncio
from import
4
class def async def print (f"Identity: {self.rank}, {msg=}")
# Note: Meshes can be also be created on different nodes, but we're ignoring that in this example
async def
# This spawns 4 instances of 'ToyActor'
await return
# Once actors are spawned, we can call all of them simultaneously with Actor.endpoint.call
async def await "hey there, from script!!"
- 笔记本原生集群管理
Monarch将集群的强大功能带到开发者的指尖,同时保留了Lightning Studio应有的简洁性。用户可以在Studio笔记本中,将工作负载扩展到数百个图形处理器(GPU),并编排复杂的分布式任务。
通过Lightning MMT,用户只需定义所需的GPU数量、节点数量以及每个节点的GPU数量,即可预留集群资源。完成资源预留后,用户可以通过定义的进程网格调用训练Actor。
from import
16
8
# Install the MMT plugin befor running the actual job
"multi-machine-training"
# Machine with T4 GPUs
# machine\_type = getattr(Machine, f"T4\_X\_{NUM\_GPUS}")
# Machine with L40S GPUs
# machine\_type = getattr(Machine, f"L40S\_X\_{NUM\_GPUS}")
# Machine with H100 GPUs
getattr f"H100\_X\_{NUM\_GPUS}"
"Multi-Nodes-Monarch-Titan"
"CUDA\_VISIBLE\_DEVICES": "0,1,2,3,4,5,6,7"
当训练任务完成后,用户无需担心资源流失。Monarch提供了一种笔记本原生的集群管理体验。用户可以根据需要更改配置和文件;Monarch会处理笔记本与工作节点之间的代码和文件共享。用户无需重新启动多机训练(MMT)任务,只需使用新配置调用Actor即可。Monarch将多机训练的迭代时间从数分钟缩短到几乎零等待,极大地提升了连续启动的效率。
- 实时交互式调试
Monarch支持对Python Actor网格进行调试,即使是正在运行的分布式任务也能进行交互式调试,且不中断工作流。这为深度洞察和控制提供了新的可能性,加速了AI发现与创新。
用户可以通过Python内置的断点(breakpoint()
)为Actor设置调试点。当运行Monarch程序时,界面会显示一个表格,列出所有当前停在断点处的Actor,并包含Actor名称、排名、坐标、主机名、函数和行号等详细信息。在monarch_dbg>
提示符下,用户可以使用attach
命令,指定Actor的名称和排名,进入特定的Actor或断点进行调试。
from import
def raise "bad rank"
def if 4 0
breakpoint # noqa
return
elif 4 1
breakpoint # noqa
return
elif 4 2
breakpoint # noqa
4 3
breakpoint # noqa
return
class async def return
if "\_\_main\_\_"
# Create a mesh with 4 "hosts" and 4 gpus per "host"
"host" 4
"gpu" 4
# Spawn the actor you want to debug on the mesh
# Call the endpoint you want to debug
print 'help' for 'list'
解锁新工作流与协作模式
Monarch与Lightning AI的结合,为AI开发领域带来了诸多新机遇:
- 信心十足地运行长时间、探索性实验。 持久化的计算资源减少了因中断而需重新开始的担忧。
- 从原型开发无缝过渡到大规模训练。 统一的平台和工具链简化了从小型实验到大规模部署的流程。
- 在笔记本环境中实时协作和调试。 交互式调试功能支持团队成员共同解决分布式系统中的复杂问题。
英雄演示:128个GPU,一个笔记本
新媒网跨境了解到,通过Torchtitan的加持,用户可以在单个Studio笔记本中启动一个128个GPU的训练任务,亲身体验Monarch的强大功能。这项演示展现了无缝扩展、持久化资源和交互式调试的集成优势。用户可以轻松请求集群的GPU资源需求,按需调整节点数量和每节点GPU数量,Monarch将通过Lightning MMT处理其余配置。
# Configuration for 128 GPUs
NUM_NODES = 16
NUM_GPUS =
在此示例中,经典的单程序多数据(SPMD)TorchTitan工作负载被封装为Monarch内部的一个Actor,从而支持在交互式笔记本中以128个GPU的规模预训练大语言模型(如Llama3、Llama4等)。一旦资源预留完成,Titan训练器(Trainer)被定义为一个继承自Actor的类。
from import
from import
from class def def print f"Initializing actor: {self.rank} {current\_rank()=} {socket.gethostname()=}"
def "Starting training"
None
try if 0
"Created seed checkpoint"
else finally if if "Process group destroyed."
print "Done training"
创建的Actor会被部署到“进程网格”上——这是一组可以访问已预留资源的Actor。进程网格利用Monarch的进程分配器与集群中的所有节点进行通信。
from import
from import
await async def await await await "trainer\_actor" await await
用户只需定义训练配置并启动训练器,即可在进程网格上触发训练器Actor。日志信息会在Rank_0的笔记本单元格中报告,同时也可通过MMT日志、Lightning原生的日志工具LitLogger或WandB访问,因为Titan会将日志推送到WandB。
from import
"--job.config\_file" ("/torchtitan/torchtitan/models/llama3/train\_configs/llama3\_8b.toml"),
"--model.tokenizer-path",
"/teamspace/studios/this\_studio/torchtitan/assets/hf/Llama-3.1-8B",
"--training.steps",
"1000000",
"--training.dataset\_path",
"/teamspace/studios/this\_studio/torchtitan/tests/assets/c4",
"--job.dump\_folder",
"/teamspace/studios/this\_studio/torchtitan/outputs/"
await
训练结束后,用户可以更改Titan训练器的配置,或定义新的Actor并在相同资源上重新启动新进程,无需等待。此外,用户可以在@endpoint
装饰器定义的方法内部放置Python断点(breakpoint()
),以在开发过程中实现更强的交互性。例如,用户可能希望在实际运行前检查Titan训练器的配置参数,或在训练器内部设置断点。
class TitanTrainerWrapper(Actor):
def \_\_init\_\_(self, job\_config: JobConfig):
self.rank = current\_rank().rank
self.job\_config = job\_config
@endpoint
def init(self):
logging.getLogger().addHandler(logging.StreamHandler(sys.stderr))
breakpoint () # noqa
print ( f"Initializing actor: {self.rank} {current\_rank()=} {socket.gethostname()=}" )
@endpoint
def train(self):
logger.info( "Starting training" )
config = self.job\_config
trainer: Optional\[Trainer] = None
try :
trainer = Trainer(config)
breakpoint () # noqa
trainer.train()
立即体验:在Lightning Studio中使用Monarch
用户可以通过克隆Lightning Studio提供的Monarch Studio模板或访问Lightning AI上的Meta AI组织,即刻开始在Studio笔记本中体验Monarch。
- Monarch Studio模板:
- Lightning上的Meta AI组织:
更多快速入门指南、文档及社区论坛链接:
- Monarch 文档:
- Monarch Github:
- 多机训练(Lightning):
- OneNotebook 体验:
- Titan Github:
新媒网(公号: 新媒网跨境发布),是一个专业的跨境电商、游戏、支付、贸易和广告社区平台,为百万跨境人传递最新的海外淘金精准资讯情报。
本文来源:新媒网 https://nmedialink.com/posts/lightning-ai-128gpu-unlocks-ai-model-speed.html

评论(0)