s-JoL / Open-Llama

The complete training code of the open-source high-performance Llama model, including the full process from pre-training to RLHF.
https://huggingface.co/s-JoL/Open-Llama-V2
MIT License
30 stars 4 forks source link

关于v2 #35

Closed leiwen83 closed 1 year ago

leiwen83 commented 1 year ago

Hi,

很高兴看到性能在v2能有大幅的提升。有几个疑问。

本次更新主要包含以下几个方面,相对于v1版本提升有效训练速度50%,其中pad从30%减少至5%,训练速度从3200token/s提升至3600token/s。

  1. 这里pad从30%减少至5%哪里可以看的出来?有打印可以debug相关的pad百分比吗?
  2. 训练速度是xx token/s,这个是从耗时计算出来的吗?在代码中可以有相关的debug代码吗?个人觉得这样更加直观一些。
s-JoL commented 1 year ago

感谢对本项目的关注

  1. 在v1版本中数据处理过程是先对每个句子分词,如果短于设定的seq_length会进行pad,如果长于seq_length会切分成多段,最后一段如果较短还会再次pad。在v2中我们参考gopher将10个doc的文本拼接在一起后再进行分段,同样最后一段会pad,主要是对于原本就比较短的doc减少了pad占比。具体统计没有体现在训练过程中。但是在v1的data_iter和v2的dataset最下面都有一段测试代码,可以进行简单的修改统计其中token_id=3的比例。

  2. 在训练中会打印出训练速度为xx token/s,同时也会直接记录到wandb便于查看速度。

On Sun, Apr 30, 2023 at 18:25 leiwen83 @.***> wrote:

Hi,

很高兴看到性能在v2能有大幅的提升。有几个疑问。

本次更新主要包含以下几个方面,相对于v1版本提升有效训练速度50%,其中pad从30%减少至5%,训练速度从3200token/s提升至3600token/s。

  1. 这里pad从30%减少至5%哪里可以看的出来?有打印可以debug相关的pad百分比吗?
  2. 训练速度是xx token/s,这个是从耗时计算出来的吗?在代码中可以有相关的debug代码吗?个人觉得这样更加直观一些。

— Reply to this email directly, view it on GitHub https://github.com/s-JoL/Open-Llama/issues/35, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEBJYUFKIGX43TJ5KNCJL73XDY4Y3ANCNFSM6AAAAAAXQ2Q37I . You are receiving this because you are subscribed to this thread.Message ID: @.***>

s-JoL commented 1 year ago

补充一张wandb上的对比图片 截屏2023-04-30 20 49 45

leiwen83 commented 1 year ago

3600token/s 这个数据是20*8=160 A100上取得的结果吗?也就是单卡的训练速度是22.5token/s?

s-JoL commented 1 year ago

这已经是换算到每张卡的了

leiwen83 commented 1 year ago

ok,了解~