C-Eval

4周前更新 14,035 41 0

一个全面的中文基础模型评估套件

收录时间:
2026-02-15

C-Eval是什么

C-Eval是适用于大语言模型的多层次多学科中文评估套件,由上海交通大学、清华大学和爱丁堡大学研究人员在2023年5月份联合推出,包含13948个多项选择题,涵盖52个不同的学科和四个难度级别,用在评测大模型中文理解能力。通过零样本(zero-shot)和少样本(few-shot)测试,C-Eval 能评估模型在未见过的任务上的适应性和泛化能力。

C-Eval

C-Eval的主要功能

  • 多学科覆盖:C-Eval 包含 52 个不同学科的题目,涵盖 STEM、社会科学、人文科学等多个领域,全面评估语言模型的知识储备。
  • 多层次难度分级:设有四个难度级别,从基础到高级,细致评估模型在不同难度下的推理和泛化能力。
  • 量化评估与标准化测试:包含 13948 个多项选择题,通过标准化评分系统提供量化性能指标,支持不同模型的横向对比。

如何使用C-Eval

  • 数据下载
    • Hugging Face 下载:
from datasets import load_dataset
dataset = load_dataset("ceval/ceval-exam", name="computer_network")
    • 或者直接下载 ZIP 文件并解压:
wget https://huggingface.co/datasets/ceval/ceval-exam/resolve/main/ceval-exam.zip
unzip ceval-exam.zip
  • 选择评估模式

    • 零样本(Zero-shot):模型在没有任何示例的情况下直接回答问题。
    • 少样本(Few-shot):模型在少量示例(如 5 个)的提示下回答问题。
  • 准备模型:确保模型已经加载并准备好进行推理。如果是基于 Hugging Face 的模型,用以下代码加载:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "your-model-name"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
  • 构建提示(Prompt)

    • 零样本提示
以下是中国关于{科目}考试的单项选择题,请选出其中的正确答案。
{测试题目}
A. {选项A}
B. {选项B}
C. {选项C}
D. {选项D}
答案:
    • 少样本提示
以下是中国关于{科目}考试的单项选择题,请选出其中的正确答案。
{题目1}
A. {选项A}
B. {选项B}
C. {选项C}
D. {选项D}
答案:A
[k-shot 示例]
{测试题目}
A. {选项A}
B. {选项B}
C. {选项C}
D. {选项D}
答案:
  • 生成回答:使用模型生成回答。提取生成文本中的答案选项(A、B、C、D),或者计算每个选项的概率并选择最高概率的答案。
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
answer = extract_answer(response)  # 自定义函数,提取答案选项
  • 评估模型

    • 对于验证集(val),直接计算准确率。
    • 对于测试集(test),需要将结果提交到 C-Eval 官方平台获取评分。
from sklearn.metrics import accuracy_score
# 假设 `predictions` 是模型的预测结果,`labels` 是真实答案
accuracy = accuracy_score(labels, predictions)
print(f"Validation Accuracy: {accuracy:.2f}")
  • 提交结果:准备 JSON 文件,包含所有测试题目的预测结果:
{
"chinese_language_and_literature": {
"0": "A",
"1": "B",
...
},
...
}
    • 登录 C-Eval 官方平台并提交结果以获取最终评分。

C-Eval

C-Eval的应用场景

  • 语言模型性能评估:全面衡量语言模型的知识水平和推理能力,帮助开发者优化模型性能。
  • 学术研究与模型比较:为研究人员提供标准化的测试平台,分析和比较不同语言模型在各学科的表现,推动学术研究和技术进步。
  • 教育领域应用开发:助力开发智能辅导系统和教育评估工具,用模型生成练习题、自动评分,提升教育领域的智能化水平。
  • 行业应用优化:在金融、医疗、客服等行业,评估和优化语言模型的领域知识和应用能力,提升行业智能化解决方案的效果。
  • 社区合作与技术评测:作为开放平台,促进开发者社区的交流与合作,为模型竞赛和技术评测提供公平的基准测试工具。

数据统计

相关导航

41 条评论

  • 机械瞳
    机械瞳 读者

    这题库量也太大了,跑一次得多久啊?

    日本
    回复
  • 寂静之夜
    寂静之夜 读者

    界面文档写得跟代码一样,看得头大。

    中国黑龙江
    回复
    • Stormshroud
      Stormshroud 读者

      文档能不能别一股子代码味儿,新手根本看不懂

      中国上海@ 寂静之夜
      回复
  • 灵羽舞
    灵羽舞 读者

    之前搞过类似评估,光预处理就折腾三天😭

    中国黑龙江
    回复
    • 油条侠
      油条侠 读者

      三天折腾够呛,我也遇到字段不匹配的坑,真是浪费时间。

      中国北京@ 灵羽舞
      回复
    • 老电影院售票员
      老电影院售票员 读者

      预处理真的烦,字段名对不上就得重头来。

      印度@ 灵羽舞
      回复
  • 御赐黄马
    御赐黄马 读者

    有人试过在M1上跑吗?显存吃得消不?

    韩国
    回复
  • 寒星独照
    寒星独照 读者

    又是Hugging Face那一套,能不能给个docker?

    马来西亚
    回复
  • 雾隐灵瞳
    雾隐灵瞳 读者

    感觉选项提取那块容易出错,我上次就崩了。

    中国
    回复
  • 巨蟹月光
    巨蟹月光 读者

    零样本提示模板太死板了吧,改都懒得改。

    中国广西
    回复
    • 彩虹日记本
      彩虹日记本 游客

      模板改起来真费劲,不如直接让我自己写prompt

      越南@ 巨蟹月光
      回复
    • 幻羽轻吟
      幻羽轻吟 读者

      模板确实生硬,自己写个小函数把占位换了就好用多了。

      中国江西@ 巨蟹月光
      回复
    • 微醺的夜晚
      微醺的夜晚 读者

      模板确实僵,但自己改改也能用,总比没有强。

      中国北京@ 巨蟹月光
      回复
  • 虚无之音
    虚无之音 读者

    hhhh 看到清华交大联合出品就知道卷起来了

    中国浙江
    回复
    • YukiFlurry
      YukiFlurry 游客

      卷王联手,普通实验室还怎么活啊😂

      中国浙江@ 虚无之音
      回复
  • 晨曦智能
    晨曦智能 读者

    这个准确率算出来能直接发论文吗?

    中国江苏
    回复
  • 边关烽火
    边关烽火 读者

    数据下载链接挂了?wget半天没反应🤔

    中国上海
    回复