已合并
update data helpers faq #665
jializheng创建于 2024年8月19日
update data helpers faq #665
已合并
jializheng创建于 2024年8月19日
refs/pull/665/head合入到master
1 个文件变更+15-7
Mdocs/faq/data_helpers.md+15-7
@@ -1,6 +1,6 @@
1# Data helpers overflow bug1# Data helpers overflow bug
2## 问题现象2## 问题现象
3-在模型预处理数据集的阶段报如下错误:3+增大 gbs、iteration 等理论上不影响模型内存的参数后,出现OOM现象,或者在模型预处理数据集的阶段报如下错误:
4```shell4```shell
5Traceback (most recent call last):5Traceback (most recent call last):
6 File "pretrain_gpt.py", line 121, in <module>6 File "pretrain_gpt.py", line 121, in <module>
@@ -42,13 +42,21 @@ RuntimeError: stack expects each tensor to be equal size, but got [8193] at entr
42在数据集中的句子较短,而要求训练的步数 * Global Batch Size * Sequence Length 较大的情况下就会出现 `doc_idx_index` 超过 int32 的表达范围而导致最终的 index 溢出。42在数据集中的句子较短,而要求训练的步数 * Global Batch Size * Sequence Length 较大的情况下就会出现 `doc_idx_index` 超过 int32 的表达范围而导致最终的 index 溢出。
43 43 
44## 解决方案44## 解决方案
45-1. 【临时规避】减小模型训练步数
46-2. 将相关变量修改为 int64 数据类型,具体可查看:[PR](https://github.com/NVIDIA/Megatron-LM/pull/598)
47 45 
48- 可以在 Megatron-LM 目录下,运行`mindspeed -P`命令,自动完成修改。46+#### 规避方案
49- ```shell47+1. 减小模型训练步数
50- mindspeed -P48+ 
51- ```49+ 
50+#### 推荐方案
51+1. 将相关变量修改为 int64 数据类型,具体可查看:[PR](https://github.com/NVIDIA/Megatron-LM/pull/598)
52+ 
53+ > 可以在 Megatron-LM 目录下,运行`mindspeed -P`命令,自动完成修改。
54+ >```shell
55+ > mindspeed -P
56+ >```
57+2. 删除 `megatron/core/datasets/` 下面的 `helpers.cpython-xx-xxx-linux-gnu.so` 文件。
58+3. 删除已生成的数据集缓存文件夹,例如 `enwiki/my-t5_text_sentence/cache/GPTDataset_indices`
59+ 
52 60 
53## 备注61## 备注
54此问题为 Megatron-LM 原生问题,CPP 代码难以通过 monkey patch 的方式进行修改。已多次提交修复 PR,但似乎 Megatron-LM 较为封闭,无人管理且不接受来自社区的代码提交。62此问题为 Megatron-LM 原生问题,CPP 代码难以通过 monkey patch 的方式进行修改。已多次提交修复 PR,但似乎 Megatron-LM 较为封闭,无人管理且不接受来自社区的代码提交。