InternLM / InternEvo

InternEvo is an open-sourced lightweight training framework aims to support model pre-training without the need for extensive dependencies.
https://internevo.readthedocs.io/zh-cn/latest/?badge=latest
Apache License 2.0
310 stars 52 forks source link

[Bug] 910B已知BUG和解决情况 #307

Closed li126com closed 2 months ago

li126com commented 2 months ago

描述该错误

  1. 变长FA在tp=8的情况下不论模型大小都会出现nan grad norm的问题。(已解决) #309 分析问题还是从非变长FA的日志中发现了npu rotary embedding存在bug,直接替换为原生torch rotaryembedding可解决。

  2. 非变长FA在seq_len=2048测试时报错:RuntimeError: The size of tensor a (2049) must match the size of tensor b (2048) at non-siingleton dimension 1 (已解决) #309 问题出在数据indexes的判断逻辑上,indexes相关的处理逻辑采用的还是假unpack时的逻辑,以理解为是pack-data,然后在attention前后unpack掉。但是在我们目前实际的unpack处理后已经不存在indexes了,处理逻辑错误导致seq_len计算多了1。

  3. parallel_output为True在长序列下会有精度问题,此问题源于FlashCrossEntropyLoss(未解决)

  4. torch_npu算子不支持reduceop为AVG的allreduce通信,暂时采用SUM代替后手动除法(isp部分尚未支持) #309

环境信息

大装置910B 环境:/ailab_internlm_data/llm_env/envs/0415/npu-20240415.sh 镜像:ailab_ccr/ywt_npu:0.5

其他信息

No response