当前位置: 首页 > news >正文

使用 lm-eval 评估模型时报错:TypeError: ‘NoneType’ object is not callable 的解决方案

问题描述

在使用 lm-evaluation-harness 进行多 GPU 模型评估时,使用如下命令:

accelerate launch --multi-gpu --num_processes 2 \
    -m lm_eval --model hf \
    --model_args pretrained=${local_model_path} \
    --tasks mmlu \
    --batch_size 8 \
    --log_samples \
    --output_path ${output_path} \
    --trust_remote_code

却报错如下:

TypeError: 'NoneType' object is not callable

错误栈显示问题出现在 datasets.load_dataset() 时,builder_cls 为 NoneType:

builder_instance: DatasetBuilder = builder_cls(
TypeError: 'NoneType' object is not callable

问题分析

报错的关键在于:

datasets.load_dataset()

的过程中,某个数据集无法被正确加载;

  • 此错误通常是由于 datasets 包版本过新或过旧 与 lm-eval 中的任务配置不兼容导致的;
  • 在 lm-eval0.4.5 搭配 datasets3.1.0 时出现该错误;
  • 很可能是 mmlu 任务依赖的数据集在新版 datasets 中的加载逻辑发生了改变或 metadata 不兼容。

解决方法

将 datasets 包从 3.1.0 降级至 2.16.0:

pip install datasets==2.16.0

再次运行命令,即可成功评估:

accelerate launch --multi-gpu --num_processes 2 \
    -m lm_eval --model hf \
    --model_args pretrained=${local_model_path} \
    --tasks mmlu \
    --batch_size 8 \
    --log_samples \
    --output_path ${output_path} \
    --trust_remote_code

参考链接

lm-evaluation-harness GitHub

相关文章:

  • StableDiffusion完美扩图
  • 【计算机网络实践】(十二)大学校园网综合项目设计
  • JUC.atomic原子操作类原理分析
  • 大模型可视化应用敏捷开发方案:Dify+Echarts
  • 【NLP】18. Encoder 和 Decoder
  • 吴恩达深度学习复盘(14)迁移学习|项目基本周期
  • MATLAB 中文注释乱码的问题
  • ubuntu离线安装docker
  • 第二十三:内存逃逸、互斥锁 Map 线程安全
  • Spring Boot 项目基于责任链模式实现复杂接口的解耦和动态编排!
  • Python生成器:解锁高效编程的新姿势
  • 搭建一个Spring Boot聚合项目
  • 苍穹外卖day03
  • Redis之缓存更新策略
  • 10-常见笔试题-mk
  • 破解 MCP 认证难题方法深入了解考试内容
  • [MySQL] 索引
  • 使用Apache POI实现Java操作Office文件:从Excel、Word到PPT模板写入
  • 码界奇缘 Java 觉醒 后记 第二十二章 Epsilon无为秘境 - 寂静之地的内存试炼
  • 25软考中级*高项网课+历年真题+笔记+电子书+刷题【计算机软考】
  • “宝马女司机驾车拖行虐猫”引关注,海口警方介入调查
  • 王毅同丹麦外交大臣会谈,表示在格陵兰问题充分尊重丹麦主权和领土完整
  • 王楚钦球拍检测环节受损,国际乒联发声明
  • 俄美元首通话超2小时,普京称愿与乌方共同起草和平备忘录
  • 习近平向第三十四届阿拉伯国家联盟首脑理事会会议致贺信
  • 广州医药集团有限公司原党委书记、董事长李楚源被“双开”