Xinghe1.2-9B / README_modelscope.md
zsyjsld's picture
Upload folder using huggingface_hub
03798aa verified
|
Raw
History Blame Contribute Delete
10.7 kB
metadata
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 条件)
语料来源 《黄帝内经》经文与临床情景改写
字段 systeminstructionthinkingoutputmetameta 仅作数据管理,不参与训练目标)

质量控制:全量通过自研红线过滤器(硬性违规 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> 之后是面向用户的正式回答,语言平实、不含内部符号与编号。

安全与边界

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

  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}}
}

致谢与联系