yuanzhoulvpi2017 / zero_nlp

中文nlp解决方案(大模型、数据、模型、训练、推理)
MIT License
2.85k stars 355 forks source link

进行多卡训练的时候,device_map_dict应该如何进行编号设置 #91

Open 168liuliu168 opened 1 year ago

168liuliu168 commented 1 year ago

device_map_dict = {'transformer.word_embeddings': 0, 'transformer.layers.0': 1, 'transformer.layers.1': 1, 'transformer.layers.2': 1, 'transformer.layers.3': 1, 'transformer.layers.4': 1, 'transformer.layers.5': 1, 'transformer.layers.6': 2, 'transformer.layers.7': 2, 'transformer.layers.8': 2, 'transformer.layers.9': 2, 'transformer.layers.10': 2, 'transformer.layers.11': 2, 'transformer.layers.12': 3, 'transformer.layers.13': 3, 'transformer.layers.14': 3, 'transformer.layers.15': 3, 'transformer.layers.16': 3, 'transformer.layers.17': 3, 'transformer.layers.18': 1, 'transformer.layers.19': 1, 'transformer.layers.20': 1, 'transformer.layers.21': 2, 'transformer.layers.22': 2, 'transformer.layers.23': 2, 'transformer.layers.24': 3, 'transformer.layers.25': 3, 'transformer.layers.26': 3, 'transformer.layers.27': 0, 'transformer.final_layernorm': 0, 'transformer.prefix_encoder': 0, 'lm_head': 0, }

以上时我这边的设置,RuntimeError: expected scalar type Float but found Half

针对这样的问题,有相关的设置建议吗,就是具体我应该保持哪些内容是在一个设备上,哪些可以进行分散设置。

yuanzhoulvpi2017 commented 1 year ago

你这个错误和device_map_dict是没有任何关系。你是不是修改了模型的数据类型?

168liuliu168 commented 1 year ago

image image 上面那个报错是我试用了int4量化后的模型没有基于正常的6B模型,但是我修改后还是显存不足,我看确实试用了多个显卡。 但是单个显卡11G 是不是不足以支撑模型训练的启动啊。

前两天看官方的github上也有反馈类似问题的,有人说11G 显存是无法启动多卡训练的(单卡正常)

yuntong613 commented 1 year ago

求问怎么设置编号,8张16G卡

gebilaoman commented 1 year ago

mark