-
Notifications
You must be signed in to change notification settings - Fork 110
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
deepseek模型转换问题 #327
Comments
您好,具体的命令发下,我们复现下 |
cd Pai-Megatron-Patch/toolkits/model_checkpoints_convertor/deepseek |
因为 deepspeek 的开源权重是 bfloat16,huggingface load 进来会自动转换成 float32,占用空间就会 double,如果你想按原类型加载,需要将加载代码修改为如下,原类型是权重目录中 config.json 的 torch_dtype 值 config = AutoConfig.from_pretrained(args.load)
hf_model = AutoModelForCausalLM.from_pretrained(args.load, trust_remote_code=True, torch_dtype=config.torch_dtype) 或者添加 --bf16/--fp16 参数,但是我实验过,精度损失不小,不建议使用这个参数控制类型。 |
感谢大佬回答,但是为什么原类型加载会有精度损失? |
如果你加上了 --bf16/--fp16,在代码中实际是先 load 时自动转换为 fp32 类型,再在转换时执行 model.bfloat16()/float16(),会有精度损失,具体代码见 |
同学您好,方便进入钉钉,然后加下我们一起对焦一下这个问题吗? |
我在转换qwen2-7B的时候也遇到了,hf的权重15G,megatron的权重36G。 我起初以为是hf用了safetensor,但是发现转换的megatron权重不连续,不能直接用safetensor保存。 然后如果转成连续,用torch.save保存空间也更小。所以感觉可能是转换的megatron 的权重tensor不连续的问题 |
模型转换前后大小差别很大(30G->53G),是存在什么问题吗
The text was updated successfully, but these errors were encountered: