wangyuxinwhy / uniem

unified embedding model
Apache License 2.0
814 stars 61 forks source link

fintuner如何使用gpu? #124

Closed susht3 closed 4 months ago

susht3 commented 5 months ago

您好,有两个问题想请教: 1、我参考了示例里的实现,加了accelerator_kwargs,但是好像没有跑gpu,跑的还是cpu: finetuner.run( epochs=epoch, output_dir=saved_path, batch_size=32, accelerator_kwargs={'kwargs_handlers': [DistributedDataParallelKwargs(find_unused_parameters=True)]}, )

2、finetuner和train_m3e.py文件的训练是一样的吗?finetuner写死跑完整个epoch,想打印中间batch输出怎么打印,train_m3e.py里面可以配置batch来训练

wangyuxinwhy commented 5 months ago
  1. uniem 使用 accelerate 框架来管理训练策略,默认情况下会自动使用 GPU ,如果发现没有跑 gpu,请先在相同环境下检查 cuda 是否可用 torch.cuda.is_available()

  2. finetuner 和 train_m3e.py 都依赖于 uniem 提供的 Trainer 进行训练,如果你想要在中间 batch 进行输出,目前只能通过 fork 此项目,并修改 Trainer 代码。uniem 的设计目标就是尽量没有魔法,所以没有设计复杂的 callback/hook 系统,见谅