详细介绍
CMMLU是什么
CMMLU是一个综合性的中文语言模型评估基准,旨在全面衡量大型语言模型在中文语境下的知识储备与逻辑推理能力。该基准覆盖了从基础学科到高阶专业领域的67个主题,内容既包含需要复杂计算与推理的自然科学,也涉及依赖深厚知识积淀的人文社科,甚至包括具有中国本土特色的生活常识(如中国驾驶规则等)。由于CMMLU中的许多任务答案具有鲜明的中国文化或地域特定性,因此它成为评估模型是否真正理解中文语境的重要标尺。CMMLU提供了丰富的测试数据集及实时更新的排行榜,支持Zero-shot(零样本)和Five-shot(五样本)等多种评估模式,是业界衡量中文大模型性能的核心工具之一。

CMMLU的主要功能
- 性能排行榜:直观展示各大语言模型在Five-shot和Zero-shot测试环境下的得分表现,便于用户横向对比不同模型的综合实力。
- 高质量数据集:提供用于开发调试和最终测试的标准数据集,支持研究人员快速接入并进行模型评估。
- 预处理代码库:内置高效的提示词(Prompt)生成方法及相关脚本,简化模型训练前的数据准备流程。
- 多样化评估工具:支持多种评估策略,方便开发者和研究者灵活测试模型在不同任务设定下的具体能力。
如何使用CMMLU
- 获取数据集:
- 从GitHub下载:访问 CMMLU 官方 GitHub 页面:https://github.com/haonan-li/CMMLU/,进入
data目录即可找到开发集和测试集文件。 - 通过Hugging Face获取:前往 Hugging Face 平台:https://huggingface.co/datasets/haonan-li/cmmlu,可直接在线加载或使用API调用CMMLU数据集。
- 准备测试环境:
- 安装依赖:确保本地环境已安装必要的 Python 库,例如
transformers、datasets等。 - 克隆代码库:通过 Git 克隆 CMMLU 的 GitHub 仓库,以获取完整的测试代码框架及数据预处理工具。
git clone https://github.com/haonan-li/CMMLU.git
cd CMMLU- 预处理数据:进入
src/mp_utils目录,执行提供的脚本对原始数据进行预处理,将其转换为模型可接受的输入格式。
python src/mp_utils/preprocess.py- 运行评估代码
- 选择模型:根据测试需求,加载待评估的语言模型及其对应的 Tokenizer。
- 运行测试脚本:进入
script目录,执行测试脚本以评估模型在各类任务中的实际表现。
python script/evaluate.py --model <model_name> --data_path <data_path>- 提交测试结果:
- 开源模型:直接发起拉取请求(Pull Request),提交更新后的测试代码及结果文件。
- 未开放模型:将测试代码及运行结果发送至指定邮箱(如
haonan.li@librai.tech),经官方验证后将更新至公共排行榜。
- 分析结果:访问 GitHub 项目页面的排行榜区域,详细查看模型在各个子任务上的得分,深入分析其优势领域与潜在不足。
CMMLU的应用场景
- 语言模型性能评估:用于全方位测试和对比不同语言模型在中文多任务环境下的知识广度与推理深度,为模型架构优化提供数据支持。
- 教育领域的智能辅导:基于CMMLU的多学科数据开发智能辅导系统,为学生提供个性化的练习题目和学习建议,从而提升学习效率。
- 智能客服优化:评估模型在垂直领域的知识理解准确率,进而优化智能客服系统的回答质量,提升用户服务体验。
- 文化知识传播:利用CMMLU中富含中国特定文化元素的数据集,开发文化问答机器人,助力中国传统文化的数字化传承与普及。
- 医疗健康知识评估:检验语言模型在医学健康领域的专业知识掌握程度,辅助开发更可靠的医疗咨询助手,为用户提供科学的健康建议。
查看更多
最新文章
Go Benchmark报告allocs/op并定位临时对象来源的方法
用 go test -benchmem 和 testing.B.ReportAllocs 读懂 B/op
Redis Sentinel故障转移期间客户端重连的配置方法
Redis Sentinel故障转移时,客户端不能继续依赖旧主节点地址。本文以服务发现、连接池、超时、退
商汤Seko能做AI短剧工具吗?功能范围和适用场景
本文解答商汤Seko作为AI短剧工具的核心能力,拆解功能边界、适用场景与选型要点,为创作者和工作室提供实
Go MultiWriter第一个Writer失败后其他Writer未完成的处理边界
Go io.MultiWriter按顺序写入多个Writer,首个错误会截断后续目标。本文用故障示例拆解
MySQL 复合索引跳过最左列时的访问边界
围绕 (tenant_id, status, created_at) 示例,说明跳过复合索引最左列后普通
Go fuzz测试把崩溃输入写入回归语料的流程
Go fuzz 测试发现崩溃输入后,如何利用 testdata/fuzz 语料目录在普通 go test
