You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将LLaMA 13B权重转换为HuggingFace格式时出错求助

LLaMA 13B权重转HF格式时shape不匹配错误的解决方法

问题描述

已下载LLaMA 7B和13B模型权重,使用HuggingFace转换脚本成功将7B模型转为torch二进制文件,但转换13B时触发以下错误:

Fetching all parameters from the checkpoint at /content/drive/MyDrive/User/NLP/Base_Models/Llama_weights/13B.
Traceback (most recent call last):
  File "/content/drive/MyDrive/User/NLP/Base_Models/convert_llama_weights_to_hf.py", line 278, in <module>
    main()
  File "/content/drive/MyDrive/User/NLP/Base_Models/convert_llama_weights_to_hf.py", line 268, in main
    write_model(
  File "/content/drive/MyDrive/User/NLP/Base_Models/convert_llama_weights_to_hf.py", line 151, in write_model
    [
  File "/content/drive/MyDrive/User/NLP/Base_Models/convert_llama_weights_to_hf.py", line 152, in <listcomp>
    loaded[i][f"layers.{layer_i}.attention.wq.weight"].view(n_heads_per_shard, dims_per_head, dim)
RuntimeError: shape '[20, 128, 5120]' is invalid for input of size 16777216

使用环境为Google Colab,初始安装命令:

!pip install git+https://github.com/zphang/transformers.git@llama_push torch

需解决该问题以获取基于LLaMA 13B的StableVicuna模型。


解决步骤

1. 检查13B权重文件完整性

  • 确认13B权重目录下存在consolidated.00.pth、consolidated.01.pth两个分片文件,以及params.json配置文件
  • 核对文件大小:每个consolidated文件约20GB,若文件缺失、大小不符,重新下载完整权重

2. 更换兼容的transformers版本

原安装的第三方旧分支存在兼容性问题,替换为官方最新版:

!pip uninstall -y transformers
!pip install --upgrade transformers accelerate torch

重新获取官方转换脚本:

!wget https://raw.githubusercontent.com/huggingface/transformers/main/src/transformers/models/llama/convert_llama_weights_to_hf.py

3. 正确执行转换命令(指定分片数量)

13B模型默认分为2个分片,转换时必须明确指定--num_shards 2,同时添加--low_cpu_mem_usage降低内存占用:

python convert_llama_weights_to_hf.py \
  --input_dir /content/drive/MyDrive/User/NLP/Base_Models/Llama_weights/13B \
  --output_dir /content/drive/MyDrive/User/NLP/Base_Models/Llama_hf/13B \
  --num_shards 2 \
  --low_cpu_mem_usage

注:若Colab内存不足,建议切换到高RAM实例(Colab Pro/Pro+)

4. 验证转换结果

转换完成后,用以下代码测试模型是否能正常加载:

from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("/content/drive/MyDrive/User/NLP/Base_Models/Llama_hf/13B", low_cpu_mem_usage=True)
tokenizer = AutoTokenizer.from_pretrained("/content/drive/MyDrive/User/NLP/Base_Models/Llama_hf/13B")

加载成功后,即可基于该HF格式LLaMA 13B模型获取StableVicuna(可通过加载LoRA权重合并或直接使用合并后的模型)


内容的提问来源于stack exchange,提问作者Kadri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 03:40:29