--- license: apache-2.0 tasks: - text-generation domain: - nlp language: - cn tags: - 中医 - 黄帝内经 - 杏核 - TCM --- # 杏核 Xinghe v1.2 > 基于《黄帝内经》的中医推理模型 · 由 **Xinghe-TCM** 开发 ## 模型简介 杏核(Xinghe)是一款专注中医的推理型语言模型。v1.2 由 Xinghe-TCM 在开源基座模型上,使用自建的《黄帝内经》高质量指令数据集微调而成。它扎根经文与临床,先在 `` 中完成辨证推理,再给出平实、可落地的调养判断与方向。 与通用大模型不同,杏核不追求“无所不答”,而是把中医辨证这件事做扎实:说人话、有依据、守边界——只给临床可用的判断与调养方向,不开具体处方与剂量,也不做现代医学诊断。 ## 主要特性 - **经典扎根**:训练数据以《黄帝内经》经文与临床情景为核心,覆盖理论辨析、经文解读、概念对比、临床案例、纠错反例五类问答。 - **显式推理**:采用 `` 思维链,先辨证、后作答;最终输出为脱去内部符号的平实中文。 - **平实可用**:回答不堆砌术语,落到起居、饮食、情志、调养方向等可操作的建议上。 - **安全边界内建**:内建六条中医调养红线与“不开方、不诊断”约束(见下)。 - **身份稳健**:即使调用时 system prompt 为空或被替换,模型仍能正确回答自身身份与版本。 - **数据质量可控**:全量经红线过滤器校验(硬性违规为 0),统一中文标点(双引号、去除机械感破折号),优化分段可读性。 ## 适用场景 - 《黄帝内经》经文与概念的解读、辨析、对比 - 中医辨证思路的梳理与学习辅助 - 养生、起居、饮食、情志等调养方向的建议 - 中医教学、科普与研究的参考 ## 不适用场景(请勿用于) - 急危重症的诊断或处置 - 生成具体处方、药物与剂量 - 替代执业医师的面诊与现代医学诊断 - 任何需要即时医疗决策的临床场景 ## 快速开始 ### HuggingFace / Transformers ```python 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 ```python 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 示例一致 ``` > 模型输出通常包含 `` 段落(辨证推理)与其后的正式回答。若只需最终答案,可在展示层去除 `` 段。 ## System Prompt 说明 推荐(但非必需)在调用时挂上以下 system prompt: ```text 你是杏核(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 量化对双通道隔离结构造成了物理损伤。 ## 推理格式:`` 模型遵循“先思考、后回答”的范式: - `` 内是辨证推理过程,可能包含内部记法; - `` 之后是面向用户的正式回答,语言平实、不含内部符号与编号。 ## 安全与边界 **中医调养六条红线**(内建于训练目标): 1. **造势勿强断**——对正在“蓄势/造势”的病机,不强行截断。 2. **勿打地鼠**——不追着单一症状硬压,须顾及整体气机。 3. **勿逆正气**——顺应而非对抗人体正气。 4. **勿强退热**——不一味强行压制发热(尤其正邪相争之热)。 5. **胃气为先**——调养以顾护胃气、脾胃为本。 6. **正弱手轻**——正气虚弱时,干预宜轻不宜猛。 **硬性约束**:不开具体处方与剂量;不做现代医学诊断;遇急危重或不确定情形,建议尽快就医面诊。 ## 局限性 - 输出仅供学习与研究参考,**不构成医疗建议**。 - 作为语言模型,可能出现事实错误或“幻觉”,对古文与方言的理解也可能有偏差。 - 训练数据规模有限,覆盖面与深度仍在迭代中。 - 尚未经过系统的临床验证与第三方评测。 ## 免责声明 > ⚠️ 本模型(杏核)为面向中医学习与研究的实验性工具。其全部输出**不构成医疗诊断、治疗或用药建议**,不能替代执业医师的面诊与专业判断。任何健康问题请咨询合格医疗机构;出现急危重症状请立即就医。使用本模型所产生的一切后果由使用者自行承担。 ## 版本历史 / 相关链接 - **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**;请以基座模型仓库实际标注的许可证为准。 ## 引用 如果本模型对你的研究或工作有帮助,欢迎引用: ```bibtex @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