$ pip install accelerate==0.17.1 4.2 accelerate 分布式训练代码实现逻辑
from accelerate import Accelerator
- Trainer 训练类编写 class Trainer:
argS, config, model_engine, criterion, optimizer, accelerator):
self.accelerator = accelerator
def train (self, train_loader, dev_loader=None):
for step, batch_data in enumerate (train_loader): self.model_engine.train ( logits, label = self.on_step (batch_data) loss = self.criterion (logits, label)
self.accelerator. backward (loss) self.optimizer.step ( self.optimizer.zero_ gradO
- main ()函数编写
# 定义模型、优化器、损失函数
accelerator = Accelerator () args.local_rank = int (dist.get_rank ()) print (args. local_rank) model_engine, optimizer_engine, accelerator.prepare ( model, optimizer, train_loader, dev_loader
train_loader_engine,
dev_loader_engine =