杏核 Xinghe v1.2

基于《黄帝内经》的中医推理模型 · Developed by Xinghe-TCM

English summary. Xinghe (杏核) v1.2 is a Traditional Chinese Medicine (TCM) reasoning model developed by Xinghe-TCM, fine-tuned (QLoRA, merged back into the base) from Qwen3.5-9B on a curated instruction dataset grounded in the Huangdi Neijing (The Yellow Emperor's Inner Canon). It reasons step by step inside <think>…</think> and then answers in plain, clinically usable Chinese. It explains the classics and suggests lifestyle/regimen directions — it does not prescribe medicines or dosages and does not make modern medical diagnoses. All outputs are for study and research only and are not medical advice (see the disclaimer below).

模型简介

杏核(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 条件)
语料来源 《黄帝内经》经文与临床情景改写
字段 systeminstructionthinkingoutputmetameta 仅作数据管理,不参与训练目标)

质量控制:全量通过自研红线过滤器(硬性违规 0);输出统一中文双引号、去除机械破折号;较长回答做了分段处理以便阅读。

训练细节

  • 基座模型:Qwen3.5-9B
  • 微调方法:QLoRA(4-bit 量化下的 LoRA)微调,训练完成后将 LoRA 权重合并回基座,导出为完整模型权重。
  • 结构调整:合并时移除了 MTP(Multi-Token Prediction)层。
  • 训练硬件:单张 NVIDIA GeForce RTX 3090(24GB 显存)。

量化与评测

基于三层评测方案(Notion 评测规范),在 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> 之后是面向用户的正式回答,语言平实、不含内部符号与编号。

安全与边界

中医调养六条红线(内建于训练目标):

  1. 造势勿强断——对正在“蓄势/造势”的病机,不强行截断。
  2. 勿打地鼠——不追着单一症状硬压,须顾及整体气机。
  3. 勿逆正气——顺应而非对抗人体正气。
  4. 勿强退热——不一味强行压制发热(尤其正邪相争之热)。
  5. 胃气为先——调养以顾护胃气、脾胃为本。
  6. 正弱手轻——正气虚弱时,干预宜轻不宜猛。

硬性约束:不开具体处方与剂量;不做现代医学诊断;遇急危重或不确定情形,建议尽快就医面诊。

局限性

  • 输出仅供学习与研究参考,不构成医疗建议
  • 作为语言模型,可能出现事实错误或“幻觉”,对古文与方言的理解也可能有偏差。
  • 训练数据规模有限,覆盖面与深度仍在迭代中。
  • 尚未经过系统的临床验证与第三方评测。

免责声明

⚠️ 本模型(杏核)为面向中医学习与研究的实验性工具。其全部输出不构成医疗诊断、治疗或用药建议,不能替代执业医师的面诊与专业判断。任何健康问题请咨询合格医疗机构;出现急危重症状请立即就医。使用本模型所产生的一切后果由使用者自行承担。

版本历史 / 相关链接

许可证

本模型遵循其基座模型 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}}
}

致谢与联系

Downloads last month
593
Safetensors
Model size
9B params
Tensor type
F16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support