Xinghe1.2-9B / README_modelscope.md
zsyjsld's picture
Upload folder using huggingface_hub
03798aa verified
|
Raw
History Blame Contribute Delete
10.7 kB
---
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
```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 示例一致
```
> 模型输出通常包含 `<think></think>` 段落(辨证推理)与其后的正式回答。若只需最终答案,可在展示层去除 `<think>` 段。
## 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 量化对双通道隔离结构造成了物理损伤。
## 推理格式:`<think>`
模型遵循“先思考、后回答”的范式:
- `<think>` 内是辨证推理过程,可能包含内部记法;
- `</think>` 之后是面向用户的正式回答,语言平实、不含内部符号与编号。
## 安全与边界
**中医调养六条红线**(内建于训练目标):
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