gujilab/chinese-classical-bench
Chinese Classical Bench 中国古典语言能力评测基准 — 6 个任务 × 100 题 = 600 道,覆盖翻译、断句、字义、典故、续写填空、现代→文言压缩。 📊 在线排行榜: 🤗 Space — chinese-classical-bench-leaderboard 🔗 评测代码 & runner: github.com/gujilab/chinese-classical-bench — eval runner(OpenAI 兼容端点)、打分器、排行榜聚合脚本 📦 配套语料集: gujilab/chinese-classical-corpus (CC0 公有领域) — 题目均从该语料抽样生成 为什么做这个 中文(尤其文言文)常被说成"高密度优势"。这套基础设施(bench + corpus + 4 个论点实证实验)想把这个论点变成可验证的数字 —— 包括它在哪些场景成立、在哪些场景不成立。 Tokenizer 层面(实证) 7 个主流 tokenizer… See the full description on the dataset page: https://huggingface.co/datasets/gujilab/chinese-classical-bench.
Chinese Classical Bench
中国古典语言能力评测基准 — 6 个任务 × 100 题 = 600 道,覆盖翻译、断句、字义、典故、续写填空、现代→文言压缩。
📊 在线排行榜: 🤗 Space — chinese-classical-bench-leaderboard 🔗 评测代码 & runner: github.com/gujilab/chinese-classical-bench — eval runner(OpenAI 兼容端点)、打分器、排行榜聚合脚本 📦 配套语料集: gujilab/chinese-classical-corpus (CC0 公有领域) — 题目均从该语料抽样生成
为什么做这个
中文(尤其文言文)常被说成"高密度优势"。这套基础设施(bench + corpus + 4 个论点实证实验)想把这个论点变成可验证的数字 —— 包括它在哪些场景成立、在哪些场景不成立。
Tokenizer 层面(实证)
7 个主流 tokenizer 横评(详见下方 Tokenizer 横评章节):
- 国产 tokenizer (Qwen / DeepSeek / GLM) 上文言文 = 英文 0.57×、现代中文 0.69×
- 老 GPT-3.5/4 (cl100k_base) 对中文比英文还费 19% token
- 这一层的"省 token"是真的 ✓
Prompt / 任务层面(实证)
3 组下游实验(experiments/):
校准结论
Chinese 高密度 = 真的 tokenizer-level 优势,≠ LLM-task-level free lunch。 替换英文 prompt 大赢;替换现代中文或用典故压缩则省 token 但有质量代价。 详细数据:prompt-compression / idiom-prompting
时间深度(未实证)
3000+ 年单一书写系统的跨时代训练信号 —— 尚未做 task,欢迎社区贡献。
现状问题:训练语料古典占比极低,公开 benchmark(CMMLU / C-Eval)几乎只评白话,没人针对古典的"高密度短文本"优化 tokenizer 或评测体系。本评测 + 配套语料集是想把这条赛道做扎实的两个基础设施 —— 让 LLM 中文古典能力变得可量化、可对比、可训练。
具体到这个 bench,600 题在回答两个问题:
- 哪些模型在中文古典任务上已经达到可用水平? —— 给做古籍/教育/出版/法律/中医等应用的人选模型用
- 不同能力维度(理解 / 操控 / 记忆 / 推理 / 压缩)的 ceiling 和 bottleneck 在哪? —— 给训练/微调的人定方向用
6 个任务
数据格式
每行一条 JSON 记录,模型只看 instruction + input,输出与 reference 比较:
{
"id": "translate#1",
"task": "translate",
"instruction": "将下列古文翻译成现代汉语:",
"input": "周市军还去,田儋因率兵东略定齐地。",
"reference": "周市的军队撤走以后,田儋乘机带兵东进,夺取并平定了齐国的土地。",
"metadata": {"source": "史记·七十列传/田儋列传", "category": "史"}
}metadata 含评分需要的额外字段(如 idiom-source 的标准书名、fill-in 的被挖空位置)。任务详细说明见 docs/tasks.md。
Quick Start
from datasets import load_dataset
translate = load_dataset("gujilab/chinese-classical-bench", "translate", split="train")
punctuate = load_dataset("gujilab/chinese-classical-bench", "punctuate", split="train")
print(translate[0])跑评测(需先启动一个 OpenAI / Anthropic 兼容端点):
git clone https://github.com/gujilab/chinese-classical-bench
python scripts/eval_runner.py \
--model Qwen/Qwen3-7B-Instruct \
--base-url http://localhost:8000/v1 --api-key EMPTY --concurrency 8
python scripts/aggregate.py --out leaderboard.mdLeaderboard
compress (Eff) = chrF × (1 − 输出/输入字符比),同时奖励压缩率和保真度。人类参考上限 ≈ 0.49。核心发现:
- Claude Opus 4.7 接管榜首(0.482)—— 5/6 项前三(翻译 / 断句 / 字义 / 单字填空 / 总分),仅典故记忆和压缩不是绝对最强。同代 Sonnet 4.6 仅 0.432、Haiku 4.5 仅 0.306 —— 说明"Claude 中文古典弱"是尺寸问题
- Thinking 模式整体退步 —— Opus 4.7 thinking (0.472) 6 项里 5 项更差。压缩任务 thinking 崩塌(0.091 vs 0.147):thinking 把内容压成 ratio 0.26(人类 0.51),chrF 跌到 0.20。"力求简洁"指令下走过头,延长推理对"分寸"类任务有害
- 压缩任务 Sonnet 4.6 / DeepSeek V3.2 并列第一(0.163) —— 都把 ratio 维持在 ~0.52(人类基线 0.51),chrF 维持 0.35。GLM-5 (0.153) 紧随。这个任务直接验证"中文古典作为信息密度工具"的可行性 —— 顶级模型已经能稳定输出 50% 压缩、保真度可接受的文言文
- 典故识别 GLM-5 已追平 DeepSeek —— 并列 (0.74) > MiniMax-2.1 (0.66) > Opus 4.7 (0.65)
- fill-in(单字填空)Claude 全家通吃 —— Opus thinking 0.87 / Opus 0.84 / Sonnet 0.70 / DeepSeek 0.55
- GLM-5(0.425)/ DeepSeek(0.429)/ Sonnet 4.6(0.432)三家咬得很紧 —— 三家平均分仅差 0.007,国产开源在中文古典上已经平视 Claude 中端
- MiniMax M2.1 → M2.5 是中文古典 retrograde —— 新版 m2.5 (0.387) 反而低于老版 m2.1 (0.414)
欢迎提交其他模型结果 —— 在 GitHub 仓库 开 PR 把 results/<model>.json 加进来即可。关于分数
chrF是字符级 n-gram F2 分数(n=1..6),同义改写会扣分但语义对的话主要靠char_f1兜底- `chrF` 与 LLM-as-judge 相关性 moderate — Claude Opus 4.7 对 5 模型 × 1000 道题重打分(experiments/llm-judge):translate Pearson +0.46 / char-gloss +0.47。chrF 是方向正确的下限,不是质量指标。Judge 重排后 Sonnet 4.6 上升、GLM-5 下降 —— 当前 chrF leaderboard 排名需要结合 judge 分数解读
idiom-source的 Book EM 较宽松:模型答 "《史记》" 就算对,不要求卷次/篇名匹配fill-in单字答案,模型能从带引号或单字输出中抽取
Tokenizer 横评(实证文言文的 token 经济学)
为了量化"中文古典 = 高密度语言"这个论点,我们做了一个独立的 tokenizer 横评:30 对文言文 + 现代中文 + 英文翻译三联对照,跑过 7 个主流 tokenizer(详见 tokenizer_study/report.md)。
关键发现:
- 国产 tokenizer (Qwen / DeepSeek / GLM / Yi) 对文言文 ≈ 英文的 57%
- 老 GPT-3.5/4 (cl100k_base) 对现代中文反而比英文还费 19% token(1.19×)—— 老 GPT 用户为中文付了双倍的钱
- 用 DeepSeek-V3 tokenizer,1000 个英文 token ≈ 685 现代中文 token ≈ 574 文言文 token —— 用文言文做 prompt 压缩可降本 ~45%
已知 limitation
translate/char-gloss用 chrF 评分,对同义改写过严 — 已加 LLM judge 实验(experiments/llm-judge,Pearson 0.46-0.47,建议结合使用)- 题目均从配套 corpus 抽样,可能与某些模型的训练数据有重合污染(开源模型大多训练过《十三经》《史记》)
- 100 题/task 是 trade-off:太少噪声大,太多跑评测贵 — 后续可能扩到 200/task
License
题目和评分代码:MIT。源数据来自 chinese-classical-corpus (CC0)。
