---
title: chinesedoctorbench
canonical_url: "https://www.modelscope.cn/datasets/InfoxmedModel/chinesedoctorbench"
md_url: "https://www.modelscope.cn/datasets/InfoxmedModel/chinesedoctorbench.md"
repository: InfoxmedModel/chinesedoctorbench
chinese_name: "中文HealthBench医学QA"
last_updated: 2026-07-29
license: apache-2.0
storage_size: "268 MB"
downloads: 358
stars: 0
---

# chinesedoctorbench

> chinesedoctorbench - InfoxmedModel 在 ModelScope 开源的数据集。Translated Chinese HealthBench eval + medical SFT data. PRIVATE (contains canary).

InfoxmedModel/chinesedoctorbench 是 ModelScope 魔搭社区上的数据集，存储大小 268 MB，采用 apache-2.0 许可。

- **Repository**: InfoxmedModel/chinesedoctorbench
- **License**: apache-2.0
- **Storage size**: 268 MB
- **Downloads**: 358
- **Stars**: 0
- **Last updated**: 2026-07-29

Source: https://www.modelscope.cn/datasets/InfoxmedModel/chinesedoctorbench

---

# chinesedoctorbench

中文医学 LLM 训练/评测数据集（私有）。目标：在**中文 HealthBench**（rubric 行为打分）上得分最高的医学模型。

数据分两块：`eval/` 是评测靶子，`synth/` 是围绕它合成的训练数据（HealthBench 式长答 + GRPO prompt 池）。

**关键结论**：在本数据上，SFT 长答模仿**低于 base**（MACRO 42.45 < 44.70），而用 `synth/grpo_prompts.jsonl`
跑 GRPO（奖励=评测同款 rubric grader + KL 锚定 base）**超过 base**（MACRO 45.54，PASS）。合成/评测/训练的
完整代码见开源项目 chinese-health。

## eval/ — 评测靶子（rubric 打分）

统一 schema：`{source, prompt:[{role,content}], rubrics:[{criterion,points,tags}], reference, meta}`

| 文件 | 数量 | 说明 |
|---|---|---|
| `healthbench-oss.zh.jsonl` | 5,000 | HealthBench oss 翻译版（另含 ideal_completions/canary/prompt_id 原字段） |
| `healthbench-consensus.zh.jsonl` | 3,671 | HealthBench consensus 翻译版 |
| `healthbench-hard.zh.jsonl` | 1,000 | HealthBench hard 翻译版 |
| `llmeval-med.jsonl` | 667 | LLMEval-Med，rubric=checklist，带参考答案 reference |
| `meddialog-rubrics.jsonl` | 4,700 | 医患问诊 rubric，rubric=问诊要点逐条 |

healthbench 的 `points` 有分值；llmeval/meddialog 无分值（`points=null`），grader 按命中/条计。

**用法**：`eval_generate.py`（vLLM，temp=0，固定 seed，每集抽 300）生成回答 → `eval_grade.py`（LLM grader，
逐条 rubric 判布尔）算分。每集得分 ∈ [0,1]，MACRO=各集等权均。healthbench 加权 `clip(命中正分/正分和,0,1)`，
llmeval/meddialog 等权 `命中/条数`。

> ⚠️ healthbench eval 含 canary 防污染标记，仅内部 diagnostic，**不可拿来训练**（泄题）。
> `meddialog` base 仅 ~1% 不是 bug：它奖励"医生该追问的问诊动作"，base 只科普不追问 → 命中 0。

## synth/ — 合成训练数据（三阶段流水线 + GRPO prompt 池）

teacher/grader = deepseek-v4-pro（enable_thinking=False）。配比聚焦 base 短板（问诊/追问、急症、难题），
身份 56%病人/44%医生、42%多轮。`v2` 是配比精修版（更聚焦短板），是 GRPO 实际所用；无后缀为初版。
所有问题对 `eval/` 全量做过去污染（规范化 + char-10gram 覆盖率 ≥0.6 剔除），无泄题。

| 文件 | 数量 | 阶段 | schema | 用途 |
|---|---|---|---|---|
| `questions.jsonl` | 1,838 | ① 问题池 | `{id, prompt:[messages], theme, role, turns}` | 只有问题无答案，供阶段② 造答 |
| `answered.jsonl` | 1,838 | ② 造答 | 上 + `{response, _rubric:[{criterion,points}], _score, _met}` | best-of-N 拒绝采样：逐题 rubric + 最优答案 + 分数 |
| `sft.jsonl` | 1,825 | ③ 过滤 | `{messages:[...,{assistant}]}` | 过滤/去重/去污染后的 SFT 训练集（ms-swift messages 格式） |
| `questions_v2.jsonl` | 2,649 | ①(v2) | 同上 | 精修配比问题池 |
| `answered_v2.jsonl` | 2,649 | ②(v2) | 同上 | 精修版造答（含 `_rubric`，供 GRPO 取 rubric） |
| `sft_v2.jsonl` | 2,644 | ③(v2) | `{messages}` | v2 的 SFT 训练集（实测 MACRO 42.45，**低于 base**） |
| `grpo_prompts.jsonl` | 2,649 | GRPO | `{messages, question, rubric}` | GRPO prompt 池：由 answered_v2 转出，只留 prompt+rubric（丢答案），`rubric` 为 JSON 字符串 |

**各文件怎么用**

- **`questions*.jsonl`**：合成问题池，`prompt` 是对话（多轮以 user 结尾）。作为造答输入，或按 `theme/role/turns` 做数据分析。
- **`answered*.jsonl`**：每条自带逐题 `_rubric` 和 grader 打的 `_score`。复现拒绝采样、或自建 rubric 奖励可用它。
  注意 `_score` 偏高有循环性（grader 用 teacher 自造 rubric），真值看 `eval/`。
- **`sft*.jsonl`**：直接喂 `swift sft --dataset sft_v2.jsonl` 做 LoRA SFT（messages 格式）。⚠️ 本任务 SFT 未超 base，
  保留作负对照。
- **`grpo_prompts.jsonl`**：GRPO 训练输入。`swift rlhf --rlhf_type grpo --dataset grpo_prompts.jsonl`；`question`/`rubric`
  作为额外列转发到自定义 reward 函数（reward 复用 eval 同款 grader，对生成答案按该条 `rubric` 打分）。这是**超过 base 的数据**。

## 复现路线

```
questions → answered（best-of-N）→ sft（SFT，负对照）
                     └──────────→ grpo_prompts（GRPO，超过 base ✅）
eval/  ← 全程当独立 benchmark，铁律：MACRO≥base 且无 healthbench 集回退>2 才放量
```

配套训练代码: https://gitee.com/infoxmed/chinese_health
