HuangLK / transpeeder

train llama on a single A100 80G node using 🤗 transformers and 🚀 Deepspeed Pipeline Parallelism
Apache License 2.0
208 stars 18 forks source link

关于batchsize问题 #7

Closed zhhao1 closed 1 year ago

zhhao1 commented 1 year ago

你好,config.json里train_micro_batch_size_per_gpu在pipeline机制下是表示chunk吗?train_batch_size是总的batch size。

HuangLK commented 1 year ago

不好意思前一个问题的chunk概念我也不太清楚。

train_batch_size是总的batch size。

是的,具体可以查看文档

zhhao1 commented 1 year ago

不好意思前一个问题的chunk概念我也不太清楚。

train_batch_size是总的batch size。

是的,具体可以查看文档

另外有个问题,我做实验发现,train_micro_batch_size_per_gpu设为1的情况下,train_batch_size不管怎么变,gpu显存占用好像都不变,这个有什么原因不。

HuangLK commented 1 year ago

这个是合理的,train_batch_size其实就是做梯度累加,把多个micro_batch的loss合并起来再做bp,不会有明显的显存开销。

zhhao1 commented 1 year ago

这个是合理的,train_batch_size其实就是做梯度累加,把多个micro_batch的loss合并起来再做bp,不会有明显的显存开销。

它这个是不是做了额外的处理,只是梯度积累的话按道理来说,micro_batch不变,无论积累多少次,应该都不会移除。我train_micro_batch_size_per_gpu设为1,train_batch_size设的比较大就会OOM。您对这个地方有什么看法不。之前这种pipeline机制有1F1B这些,它这个说是按梯度积累实现的,我没太看明白。