当前位置: 首页 > 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

http://www.dtcms.com/a/129910.html

相关文章:

  • 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软考中级*高项网课+历年真题+笔记+电子书+刷题【计算机软考】
  • C++——继承、权限对继承的影响
  • ubuntu学习day1
  • RuoYi-Vue升级为https访问-后端安装SSL证书(单台Linux服务器部署)
  • 图论基础理论
  • 低资源需求的大模型训练项目---调研0.5B大语言模型
  • 2025.04.13【Density 2d】| 基因表达数据可视化
  • Linux编程c/c++程序
  • 前端vue 项目px转为rem的自适应解决方案
  • open harmony多模组子系统分析
  • BM25、BGE以及text2vec-base-chinese的区别