Tongjilibo / bert4torch

An elegent pytorch implement of transformers
https://bert4torch.readthedocs.io/
MIT License
1.22k stars 152 forks source link

accelerate 不支持对抗训练 #113

Open skykiseki opened 1 year ago

skykiseki commented 1 year ago

提问时请尽可能提供如下信息:

基本信息 你使用的操作系统: ubuntu20.04 你使用的Python版本: 3.8.10 你使用的Pytorch版本: 1.10.2 你使用的bert4torch版本: 0.2.7.post2 你加载的预训练模型: bert-base

核心代码

adversarial_train = AdversarialTraining('fgm')

model, optimizer, train_dataloader, eval_dataloader, lr_scheduler, adversarial_train  = accelerator.prepare(
        model, optimizer, train_dataloader, eval_dataloader, lr_scheduler, adversarial_train 
    )

#除了prepare加入了对抗,无其他代码改动
model.fit(train_dataloader, epochs=num_epochs, steps_per_epoch=10, callbacks=[evaluator, AccelerateCallback(accelerator)], verbose=verbose)

输出信息

# 必然在epoch 1的evaluate阶段卡住,显存扔占着且利用率100%,删掉后对抗后恢复正常
# rdrop, fgm, pgd等问题相同
skykiseki commented 1 year ago

留个待优化项免得忘记hhhhhhhhhh,有空看