Closed liaosnow closed 1 year ago
你好,megatron-core=0.2.0经过测试可以使用。BTW,新版本的报错是什么,方便贴个图吗?
[EXTERNAL EMAIL]
我用的Megatron-LM是拉的最新代码,然后用的Megatron-LM里的megatron.core。
下面是报错信息。
Traceback (most recent call last):
File "alpaca/train.py", line 75, in
以下是我的修改方式,把涉及megatron.core调用的都要加这两个:config=config, init_method=config.init_method,就能运行,纯数据并行下loss nan,能运行。加张量并行会loss nan,然后挂掉。
class LlamaForCausalLM(CollieModelForCausalLM):
def __init__(self, config: CollieConfig) -> None:
super().__init__(config)
self.embed_tokens = tensor_parallel.VocabParallelEmbedding(
self.collie_config.vocab_size,
self.collie_config.hidden_size
config=config, init_method=config.init_method
)
你好,megatron-core=0.2.0经过测试可以使用。BTW,新版本的报错是什么,方便贴个图吗?
使用megatron-core=0.2.0后,在main分支下运行examples下的alpaca/train.py,数据并行、张量并行和流水并行都能正常运行,但是loss都为NAN。请问这是代码存在问题吗,还是我的运行方式有问题呢? @KaiLv69
请尝试一下dev分支的代码,里面修复了一些main分支存在的问题。
谢谢!已经可以正常运行起来了。
你好,dev分支下,adalomo优化器,megatron-core=0.2.0,可以使用,但是训练loss都为NAN,请问可能是什么问题呢?谢谢
你好,dev分支下,adalomo优化器,megatron-core=0.2.0,可以使用,但是训练loss都为NAN,请问可能是什么问题呢?谢谢
可以尝试把传入AdaLomo的loss_scale从2**10
调小点,比如到2**6
你好,dev分支下,adalomo优化器,megatron-core=0.2.0,可以使用,但是训练loss都为NAN,请问可能是什么问题呢?谢谢
可以尝试把传入AdaLomo的loss_scale从
2**10
调小点,比如到2**6
谢谢回复,但是loss_scale从2**10
调到2**6
或者2**4
的情况下,loss也不太正常,大概十几个step迅速降到0以后就不再变化了…
谢谢!已经可以正常运行起来了。
您有遇到过这种情况嘛?训练loss是正常的嘛?
谢谢!已经可以正常运行起来了。
您有遇到过这种情况嘛?训练loss是正常的嘛?
还没使用adalomo优化器跑过,所以不太清楚你这种状况,用adam是正常的。 看你修改了loss-scale有现象的改变,你可以试试先不用混精跑看看正不正常,排除下混精的影响。混精的动态loss-scale一般降到1就容易溢出导致NAN,看你这loss降到0,可能代码对溢出有啥处理变成0了。用fp32试试看。
谢谢!已经可以正常运行起来了。
您有遇到过这种情况嘛?训练loss是正常的嘛?
还没使用adalomo优化器跑过,所以不太清楚你这种状况,用adam是正常的。 看你修改了loss-scale有现象的改变,你可以试试先不用混精跑看看正不正常,排除下混精的影响。混精的动态loss-scale一般降到1就容易溢出导致NAN,看你这loss降到0,可能代码对溢出有啥处理变成0了。用fp32试试看。
感谢!但是奇怪的是用fp32也是一样的现象…
examples下的alpaca/train.py,使用到了Megatron-LM,用最新的Megatron-LM版本运行会报错。 修改源码绕开报错后,跑数据并行和张量并行的loss都为NAN。 可以提供一下Megatron-LM使用的版本吗。