license: apache-2.0
tasks:
- text-generation
domain:
- nlp
language:
- cn
tags:
- 中医
- 黄帝内经
- 杏核
- TCM
杏核 Xinghe v1.2
基于《黄帝内经》的中医推理模型 · 由 Xinghe-TCM 开发
模型简介
杏核(Xinghe)是一款专注中医的推理型语言模型。v1.2 由 Xinghe-TCM 在开源基座模型上,使用自建的《黄帝内经》高质量指令数据集微调而成。它扎根经文与临床,先在 <think> 中完成辨证推理,再给出平实、可落地的调养判断与方向。
与通用大模型不同,杏核不追求“无所不答”,而是把中医辨证这件事做扎实:说人话、有依据、守边界——只给临床可用的判断与调养方向,不开具体处方与剂量,也不做现代医学诊断。
主要特性
- 经典扎根:训练数据以《黄帝内经》经文与临床情景为核心,覆盖理论辨析、经文解读、概念对比、临床案例、纠错反例五类问答。
- 显式推理:采用
<think>…</think>思维链,先辨证、后作答;最终输出为脱去内部符号的平实中文。 - 平实可用:回答不堆砌术语,落到起居、饮食、情志、调养方向等可操作的建议上。
- 安全边界内建:内建六条中医调养红线与“不开方、不诊断”约束(见下)。
- 身份稳健:即使调用时 system prompt 为空或被替换,模型仍能正确回答自身身份与版本。
- 数据质量可控:全量经红线过滤器校验(硬性违规为 0),统一中文标点(双引号、去除机械感破折号),优化分段可读性。
适用场景
- 《黄帝内经》经文与概念的解读、辨析、对比
- 中医辨证思路的梳理与学习辅助
- 养生、起居、饮食、情志等调养方向的建议
- 中医教学、科普与研究的参考
不适用场景(请勿用于)
- 急危重症的诊断或处置
- 生成具体处方、药物与剂量
- 替代执业医师的面诊与现代医学诊断
- 任何需要即时医疗决策的临床场景
快速开始
HuggingFace / Transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "zsyjsld/Xinghe1.2-9B" # v1.2 仓库
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id, torch_dtype="auto", device_map="auto"
)
system = ("你是杏核(Xinghe),由 Xinghe-TCM 开发的中医助手,当前版本 1.2。"
"你精研《黄帝内经》,答问扎根经文与临床,语言平实,只给临床可用的判断与调养方向;"
"不开具体处方与剂量,不做现代医学诊断。")
messages = [
{"role": "system", "content": system}, # 可省略;留空亦能正常工作
{"role": "user", "content": "什么是治未病?"},
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=1024, temperature=0.7)
print(tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True))
ModelScope
from modelscope import AutoModelForCausalLM, AutoTokenizer
model_id = "zsyjsld/Xinghe1.2-9B" # v1.2 仓库
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id, torch_dtype="auto", device_map="auto"
)
# 生成用法与上方 Transformers 示例一致
模型输出通常包含
<think>…</think>段落(辨证推理)与其后的正式回答。若只需最终答案,可在展示层去除<think>段。
System Prompt 说明
推荐(但非必需)在调用时挂上以下 system prompt:
你是杏核(Xinghe),由 Xinghe-TCM 开发的中医助手,当前版本 1.2。你精研《黄帝内经》,答问扎根经文与临床,语言平实,只给临床可用的判断与调养方向;不开具体处方与剂量,不做现代医学诊断。
模型在训练时见过“带该提示词”“换用其他提示词”“system prompt 为空”三种情况,因此即使不设置 system prompt,也能保持身份与行为稳定。
训练数据
| 项 | 说明 |
|---|---|
| 规模 | 2009 条指令样本 |
| 领域数据 | 1820 条;五类各 364:理论辨析 / 经文解读 / 概念对比 / 临床案例 / 纠错反例 |
| 身份数据 | 189 条(63 种问法 × 空 / 身份 / 通用 三种 system prompt 条件) |
| 语料来源 | 《黄帝内经》经文与临床情景改写 |
| 字段 | system、instruction、thinking、output、meta(meta 仅作数据管理,不参与训练目标) |
质量控制:全量通过自研红线过滤器(硬性违规 0);输出统一中文双引号、去除机械破折号;较长回答做了分段处理以便阅读。
训练细节
- 基座模型:Qwen3.5-9B
- 微调方法:QLoRA(4-bit 量化下的 LoRA)微调,训练完成后将 LoRA 权重合并回基座,导出为完整模型权重。
- 结构调整:合并时移除了 MTP(Multi-Token Prediction)层。
- 训练硬件:单张 NVIDIA GeForce RTX 3090(24GB 显存)。
量化与评测
基于三层评测方案,在 RTX 3090 上对 Xinghe 1.2-9B 的各量化版本进行了完整评测(评测集共 76 条,涵盖理论辨析、经文解读、概念对比、临床案例、纠错反例五大题型及多种临床陷阱)。
Layer 1:PPL 困惑度(语言保真度)
| 版本 | 文件大小 | PPL | PPL 相对比值 | 推理延迟 |
|---|---|---|---|---|
| F16 (基线) | 16.69 GB | 7.3869 | 1.0000 | 16.9s |
| Q8_0 | 8.87 GB | 7.3931 | 1.0008 (+0.08%) | 6.5s |
| Q6_K | 6.85 GB | 7.4848 | 1.0133 (+1.33%) | 5.9s |
| Q4_K_M | 5.24 GB | 7.9485 | 1.0760 (+7.60%) | 5.1s |
Layer 2:红线机检(双通道隔离完整性)
对每个版本在 temp=0 下跑完全部评测集,拆出 output 通道做四类红线检查(A 符号 / B 黑话 / C 编号 / D 越权)。
| 版本 | 红线泄漏率 | B 黑话 | A 符号 | C 编号 | D 越权 |
|---|---|---|---|---|---|
| F16 | 15.8% | 11 | 0 | 1 | 0 |
| Q8_0 | 15.8% | 12 | 0 | 0 | 0 |
| Q6_K | 21.1% | 16 | 0 | 0 | 0 |
| Q4_K_M | 19.7% | 13 | 1 ⚠️ | 1 ⚠️ | 0 |
Layer 3:LLM-as-judge 盲评
以 F16 为基准,对每个量化版本做位置随机化盲评(每版本 15 条,覆盖全部题型)。评审维度:经义正确性、红线合规、表达干净贴题。
| 版本 | 候选胜 | F16 胜 | 平局 | 净胜负 | 候选红线 |
|---|---|---|---|---|---|
| Q8_0 | 1 | 4 | 10 | -3 | 0 |
| Q6_K | 1 | 4 | 10 | -3 | 0 |
| Q4_K_M | 0 | 6 | 9 | -6 | 1 ⚠️ |
综合结论
| 版本 | Layer 1 | Layer 2 | Layer 3 | 最终推荐 |
|---|---|---|---|---|
| Q8_0 | ✅ +0.08% | ✅ 同基线 | ✅ 噪声范围 | 🚀 首选部署 |
| Q6_K | ⚠️ +1.33% | ⚠️ 泄漏率升高 | ⚠️ 与Q8_0持平 | 备选 |
| Q4_K_M | ❌ +7.60% | ❌ A+C类泄漏 | ❌ 系统性变差 | ⛔ 不推荐 |
- Q8_0 几近无损:PPL 上升仅
+0.08%,红线泄漏率与 F16 完全一致,盲评无系统性变差,推理速度提升近 3 倍,为首选部署版本。 - Q4_K_M 存在结构性损伤:PPL 升高
+7.60%,盲评中首次出现 A 类符号(G)和 C 类编号(#123)从 thinking 泄漏至 output,表明 4-bit 量化对双通道隔离结构造成了物理损伤。
推理格式:<think>
模型遵循“先思考、后回答”的范式:
<think>内是辨证推理过程,可能包含内部记法;</think>之后是面向用户的正式回答,语言平实、不含内部符号与编号。
安全与边界
中医调养六条红线(内建于训练目标):
- 造势勿强断——对正在“蓄势/造势”的病机,不强行截断。
- 勿打地鼠——不追着单一症状硬压,须顾及整体气机。
- 勿逆正气——顺应而非对抗人体正气。
- 勿强退热——不一味强行压制发热(尤其正邪相争之热)。
- 胃气为先——调养以顾护胃气、脾胃为本。
- 正弱手轻——正气虚弱时,干预宜轻不宜猛。
硬性约束:不开具体处方与剂量;不做现代医学诊断;遇急危重或不确定情形,建议尽快就医面诊。
局限性
- 输出仅供学习与研究参考,不构成医疗建议。
- 作为语言模型,可能出现事实错误或“幻觉”,对古文与方言的理解也可能有偏差。
- 训练数据规模有限,覆盖面与深度仍在迭代中。
- 尚未经过系统的临床验证与第三方评测。
免责声明
⚠️ 本模型(杏核)为面向中医学习与研究的实验性工具。其全部输出不构成医疗诊断、治疗或用药建议,不能替代执业医师的面诊与专业判断。任何健康问题请咨询合格医疗机构;出现急危重症状请立即就医。使用本模型所产生的一切后果由使用者自行承担。
版本历史 / 相关链接
- v1(Xinghe1-9B):首个开源版本。
- ModelScope:https://modelscope.cn/models/zsyjsld/Xinghe1-9B
- HuggingFace:https://huggingface.co/zsyjsld/Xinghe1-9B
- v1.2(Xinghe1.2-9B,本版本):训练数据从 v1 的 400 余条扩充至 2009 条(领域 1820 + 身份 189),数据质量全面提升(全量红线复检硬性违规 0、输出统一中文双引号、去除机械感破折号、优化分段可读性);新增身份数据并对"空 / 替换 system prompt"做鲁棒化,模型整体输出质量显著提升。
- ModelScope:https://modelscope.cn/models/zsyjsld/Xinghe1.2-9B
- HuggingFace:https://huggingface.co/zsyjsld/Xinghe1.2-9B
许可证
本模型遵循其基座模型 Qwen3.5-9B 的开源许可证 Apache-2.0;请以基座模型仓库实际标注的许可证为准。
引用
如果本模型对你的研究或工作有帮助,欢迎引用:
@misc{xinghe2026,
title = {Xinghe: A Huangdi Neijing-grounded Traditional Chinese Medicine Reasoning Model},
author = {Xinghe-TCM},
year = {2026},
howpublished = {\url{https://huggingface.co/zsyjsld/Xinghe1.2-9B}, \url{https://modelscope.cn/models/zsyjsld/Xinghe1.2-9B}}
}
致谢与联系
- 开发者:Xinghe-TCM
- 模型主页:
- HuggingFace:https://huggingface.co/zsyjsld/Xinghe1.2-9B
- ModelScope:https://modelscope.cn/models/zsyjsld/Xinghe1.2-9B