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

EvalScope使用过程中的问题汇总

1. 自定义数据集使用时的KeyError问题

问题描述

使用自定义数据集评测时,配置tasks: ["CustomRetrieval"]会触发KeyError,报错信息如下:

KeyError: "KeyError: 'CustomRetrieval' not found. Did you mean: EcomRetrieval?"

背景说明

  • EvalScope官方文档明确自定义数据集评测任务需指定为CustomRetrieval
  • ./outputs目录下已存在CustomRetrieval相关数据集;
  • 个人理解:该报错不影响评测结果生成,仅导致最终评测流程的汇总表格无法输出,整体无核心影响。

相关脚本

BASE_TASK_CFG4 = {"work_dir": "./outputs/bge_m3_T2Retrieval_eng","eval_backend": "RAGEval","eval_config": {"tool": "MTEB","model": [{"model_name_or_path": "/gpu/huangyl3/Embedding_eval/model/bge_m3",  # 循环时动态赋值"pooling_mode": None,"max_seq_length": 512,"prompt": "","model_kwargs": {"torch_dtype": "auto"},"encode_kwargs": {"batch_size": 128},"hub": "modelscope"}],"eval": {"tasks": ["CustomRetrieval"],"dataset_path": "/gpu/huangyl3/Embedding_eval/datas/T2Retrieval_eng/retrieval_data","verbosity": 2,"overwrite_results": True,"top_k": 5},},
}if __name__ == "__main__":run_task(task_cfg=BASE_TASK_CFG4)

2. 两阶段测试脚本(检索+重排)

相关脚本

from evalscope.run import run_task
two_stage_task_cfg = {"work_dir": "./outputs/bge-reranker-v2-m3_T2Retrieval","eval_backend": "RAGEval","eval_config": {"tool": "MTEB","model": [{"model_name_or_path": "/gpu/huangyl3/Embedding_eval/model/bge_m3","is_cross_encoder": False,"max_seq_length": 512,"model_kwargs": {"torch_dtype": "auto"},"encode_kwargs": {"batch_size": 64,},},{"model_name_or_path": "/gpu/huangyl3/Embedding_eval/model/bge-reranker-v2-m3","is_cross_encoder": True,"max_seq_length": 512,"prompt": "为这个问题生成一个检索用的表示","model_kwargs": {"torch_dtype": "auto"},"encode_kwargs": {"batch_size": 32,},},],"eval": {"tasks": ["T2Retrieval"],"verbosity": 2,"overwrite_results": True,"top_k": 5},},
}
run_task(task_cfg=two_stage_task_cfg)

3. model_kwargs中torch_dtype报错问题

问题描述

评测gte-multilingual-mlm-baseQwen3-Embedding-0.6Bbge-m3模型(非检索数据集评测任务)时,原配置"model_kwargs": {"torch_dtype": "auto"}会触发报错;
临时解决方案:将torch_dtype: auto硬改为dtype: float可规避报错,但并非最优方案。

4. 批量评测脚本的执行报错问题

问题描述

批量循环评测多个模型时,第一个模型可正常执行,后续模型会触发报错;仅改为枚举式写法可正常批量运行,报错原因暂未明确,需指导。

相关脚本

import time
import datetime
from evalscope.run import run_task# ===================== 配置核心参数 =====================
# 定义需要批量评测的模型列表(替换为你要测的模型名)
MODEL_LIST = ["iic/gte-multilingual-mlm-base",  # BGE系列示例"Qwen/Qwen3-Embedding-0.6B",  # 多语言嵌入模型示例"BAAI/bge-m3"  # GTE-large示例
]# 基础配置模板(不包含model_name_or_path,循环时动态填充)
BASE_TASK_CFG = {"work_dir": "/Users/hyl/PyCharmMiscProject/GAi/Embedding_eval/outputs","eval_backend": "RAGEval","eval_config": {"tool": "MTEB","model": [{"model_name_or_path": "",  # 循环时动态赋值"pooling_mode": None,"max_seq_length": 512,"prompt": "","model_kwargs": {"torch_dtype": "auto"},"encode_kwargs": {"batch_size": 128},"hub": "modelscope"}],"eval": {"tasks": ["T2Retrieval"],"verbosity": 2,"overwrite_results": True,"top_k": 5,"hub": "modelscope"},},
}# ===================== 核心逻辑:循环评测 + 晚上自动执行 =====================
def run_batch_evaluation():# 遍历模型列表,逐个执行评测for idx, model_name in enumerate(MODEL_LIST):try:# 复制基础配置,避免修改原字典task_cfg = BASE_TASK_CFG.copy()# 动态替换模型名task_cfg["eval_config"]["model"][0]["model_name_or_path"] = model_name# 打印当前评测进度current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")print(f"\n===== 开始评测第 {idx + 1}/{len(MODEL_LIST)} 个模型 =====")print(f"批次时间:{current_time}")print(f"模型名:{model_name}")# 记录评测开始时间(精确到毫秒)start_time = datetime.datetime.now()print(f"评测开始时间:{start_time.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]}")  # 保留毫秒print("===========================\n")# 执行评测任务run_task(task_cfg=task_cfg)# 记录评测结束时间,计算总耗时end_time = datetime.datetime.now()duration = end_time - start_time# 转换耗时为 时:分:秒 格式(总秒数转时分秒)hours = duration.seconds // 3600minutes = (duration.seconds % 3600) // 60seconds = duration.seconds % 60# 保留毫秒的耗时字符串duration_str = f"{hours}小时{minutes}分钟{seconds}秒(总耗时:{duration.total_seconds():.2f}秒)"# 打印完成提示 + 时间统计print(f"\n===== 模型 {model_name} 评测完成 =====")print(f"评测结束时间:{end_time.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]}")print(f"本次评测总耗时:{duration_str}")print("===========================\n")# 可选:模型间间隔(避免频繁请求,比如休息5分钟)time.sleep(300)except Exception as e:# 单个模型评测失败,记录错误并继续下一个end_time = datetime.datetime.now()print(f"\n===== 模型 {model_name} 评测失败 =====")print(f"失败时间:{end_time.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]}")print(f"错误信息:{str(e)}")print("继续评测下一个模型...\n")continue# ===================== 启动批量评测 =====================
if __name__ == "__main__":run_batch_evaluation()

备注

持续更新.......

http://www.jsqmd.com/news/138776/

相关文章:

  • QRemeshify终极指南:5分钟掌握Blender四边形重拓扑技巧
  • 2025年度工业脚轮品牌TOP5权威推荐:锤牌脚轮基本信息全解析 - mypinpai
  • 数据科学家都在用的AutoGLM,背后究竟有何不可告人的优势?(内部用户访谈实录)
  • Redis操作篇
  • 2025 年 12 月升降柱机芯厂家权威推荐榜:IP68/防撞/低压/液压/路障机全系机芯,坚固耐用与智能防护的工业级核心之选 - 品牌企业推荐师(官方)
  • PSMNet立体视觉实战指南:5步实现精准深度估计
  • 数小时视频,关键仅几秒:AI如何像侦探一样找到答案?LongVT:先定位再核验,精准不瞎猜
  • 2025年质量好的抽屉缓冲隐藏轨/静音缓冲隐藏轨厂家最新推荐权威榜 - 品牌宣传支持者
  • 【本地加载Open-AutoGLM终极指南】:手把手教你5步实现高效模型部署
  • 规划馆展厅设计公司哪家好、便宜、可靠?专业机构推荐与全解析 - myqiye
  • AI问答:传统的CFS调度器对一个线程的时间片是如何规定的?
  • Shell脚本——生成sa文件名
  • Linux系统下RTL8188EU无线网卡驱动终极解决方案
  • 2025超声波分散器专业厂家TOP5权威推荐:甄选企业助力材料分散升级 - 工业品牌热点
  • XV3DGS-UEPlugin深度解析:攻克UE5实时3D高斯渲染的技术瓶颈
  • 金属外表多种生锈检测数据集(1200张图片已划分)|面向工业巡检的目标检测数据集
  • 37、Elasticsearch 内存管理与性能优化指南(上)
  • knowledge-grab知识获取神器:教育资源下载终极指南与高效方法
  • Groove音乐播放器:解决音乐管理痛点的全能解决方案
  • 128陷阱,==与equals区别
  • BongoCat桌面伴侣:让键盘敲击充满生命力的终极互动体验
  • Fritzing在高校电子课程中的使用:系统学习指南
  • 2025年0 - 16岁儿童鞋服品牌大赏~闭眼入不亏! - 品牌测评鉴赏家
  • 图标字体生成实战指南:告别图标管理混乱时代
  • 2025年想转行网络安全的,可以选择什么方向?
  • 2025年质量好的双头同步滚丝机厂家最新热销排行 - 品牌宣传支持者
  • 基于微信小程序学生党员发展管理系统开题报告
  • 33、数据聚合与可视化实战指南
  • DB-GPT向量存储实战指南:8大数据库集成与性能优化策略
  • 2025年12月最新留学咨询哪家靠谱?四大机构与留学机构避坑指南 - 品牌企业推荐师(官方)