使用opencompass评估InternLM3报错:

问题的核心在于 ​transformers 库版本与 InternLM3 模型代码不兼容,以下是系统化解决方案:


🔧 问题根源分析

  1. 版本冲突​:

    • LossKwargs 是 transformers 库在 ​2025年新增的类​(用于统一管理损失函数参数),旧版本(<4.38.0)中不存在该模块5
    • 您的模型文件 modeling_internlm3.py 尝试导入新版特性,但当前环境的 transformers 版本过低。
  2. 模型与库的绑定关系​:

    • InternLM3 作为 2025 年发布的新模型,其代码依赖 transformers ≥4.38.0 的 API 设计6
    • 模型合并时使用的工具(如 ms-swift)若基于新版 transformers,会导致生成代码与旧环境不兼容6

🛠️ 完整解决方案

1. ​强制升级 transformers 至兼容版本
# 指定安装2025年兼容版本(≥4.38.0)
pip install transformers==4.38.0 --upgrade
  • 验证安装​:
    python -c "import transformers; print(transformers.__version__)"
    预期输出​:4.38.0
2. ​重建模型权重(若升级无效)​

若升级后仍报错,需重新合并 LoRA 权重以匹配当前库版本:

# 使用新版 ms-swift 重新合并权重
swift export \
  --adapters /root/paper/config/sft_swift_output/InternLM3-8B-Lora-sft/v5-20250721-173910/checkpoint-124 \
  --merge_lora true \
  --output_dir /root/paper/config/internlm3-remerged-20250726
  • 在配置文件中更新模型路径为新输出目录6
3. ​环境重置(终极方案)​

若存在复杂依赖冲突,重建隔离环境:

conda create -n oc_new python=3.10 -y
conda activate oc_new
pip install torch==2.7.1 torchvision==0.22.1  # 保持CUDA版本一致
pip install transformers==4.38.0 opencompass

⚠️ 关键注意事项

  1. CUDA 兼容性​:

    • PyTorch 2.7.1 需 CUDA 12.6,执行 nvcc --version 确认输出 release 12.6
    • 若使用 NPU(如昇腾),需额外安装 torch_npu 适配包。
  2. 依赖冲突排查​:

    pip check  # 检查包冲突

    若提示冲突(如 timmtorchvision),用 pip uninstall 移除冗余包。


📊 技术原理说明

  1. ​**LossKwargs 的作用**​:

    • 该类在 transformers 4.38.0 引入,用于封装 ​动态损失缩放​(Dynamic Loss Scaling)参数,替代旧版的分散参数传递方式5
    • InternLM3 使用该特性实现混合精度训练中的梯度稳定性控制。
  2. 模型合并的版本敏感性​:

    • LoRA 权重合并工具(如 ms-swift)会嵌入 transformers 的 API 调用代码到输出模型中。
    • 若合并时使用新版库,而推理环境为旧版,会触发元数据缺失错误(如本例)6

✅ 验证步骤

  1. 创建测试脚本 /root/paper/config/losskwargs_test.py

    from transformers.utils import LossKwargs
    print("LossKwargs import success!")
  2. 运行验证:

    python /root/paper/config/losskwargs_test.py

    预期输出​:LossKwargs import success!

  3. 重新执行评测:

    python run.py /root/paper/config/internlm3-oc_eval.py --debug

替代方案​:若时间紧迫,可直接使用官方 OpenCompass Docker 镜像:

docker run -it --gpus all -v /root/paper:/workspace/paper \
  opencompass/opencompass:2025.07 \
  bash -c "cd /workspace && python paper/config/internlm3-oc_eval.py"
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值