Text Generation
PEFT
Safetensors
Chinese
medical
tcm
chinese-medicine
constitution
rag
lora
conversational
Instructions to use chenhaodev/tcm-constitution-qwen3-8b-lora with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use chenhaodev/tcm-constitution-qwen3-8b-lora with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("unsloth/qwen3-8b-unsloth-bnb-4bit") model = PeftModel.from_pretrained(base_model, "chenhaodev/tcm-constitution-qwen3-8b-lora") - Notebooks
- Google Colab
- Kaggle
中医体质与基础理论问答模型 (Qwen3-8B LoRA)
基于 Qwen/Qwen3-8B 微调的中医问答 LoRA,蒸馏以下 3 份 PDF 的中医知识: 《中医基础理论》、《中医诊断学》、GB/T 46939—2025《中医体质分类与判定》。
功能
- 中医体质辨识与判定(9 种基本体质:平和、气虚、阳虚、阴虚、痰湿、湿热、血瘀、气郁、特禀)
- 体质判定转化分计算与判定标准问答
- 中医基础理论(阴阳五行、藏象、精气血津液神、经络、病机、养生防治)
- 中医诊断学(四诊、八纲辨证、病性辨证、病位辨证)
- 回答严格基于教材/标准内容
训练数据(共 15,339 条)
由本地教师模型(蒸馏)从 3 份 PDF 生成多种问法,并按防遗忘 + 支撑 RAG 做了增强:
- 基础问答 (grounded) / 高难度试题 (hard) / 临床情景应用 (clinical)
- 跨章综合 (multihop) / 章节概述 (general)
- 结构化体质事实与体质判定计分计算模板
- RAG 上下文增强:为每条问答生成“给定资料→据资料作答”的训练样本,使模型在 RAG 检索场景下能依据上下文作答,同时降低对原始文本的记忆遗忘。
说明:训练数据为衍生问答,不含版权书籍的原文大段复制,符合来源版权要求。
训练方法
- 框架:unsloth + TRL SFTTrainer,LoRA (r=16, α=16, rslora),Qwen3-8B 4bit 量化
- 序列 1536,batch 2 × grad_accum 4,lr=2e-4 linear,2 epochs(15,339 条)
- 训练 loss:约 0.46 → 0.31
使用(加载 LoRA)
from unsloth import FastLanguageModel
import torch
model, tokenizer = FastLanguageModel.from_pretrained(
"Qwen/Qwen3-8B",
max_seq_length=1024, dtype=None, load_in_4bit=True,
)
model.load_adapter("checkpoints/qwen3-8b-tcm-lora-ep2-final")
text = tokenizer.apply_chat_template(
[{"role": "user", "content": "什么是阳虚质?有什么发病倾向?"}],
tokenize=False, add_generation_prompt=True,
)
inp = tokenizer(text, return_tensors="pt").to("cuda")
out = model.generate(**inp, max_new_tokens=300, temperature=0.4)
print(tokenizer.decode(out[0][inp.input_ids.shape[1]:], skip_special_tokens=True))
RAG 检索知识库
配套 FAISS 索引(output/rag/,BGE-small-zh-v1.5,512 维,354 个章节片段)可用于 RAG:
import json, numpy as np, faiss
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("BAAI/bge-small-zh-v1.5")
index = faiss.read_index("output/rag/index.faiss")
docs = json.load(open("output/rag/docs.json", encoding="utf-8"))
qe = model.encode(["阳虚质常见表现"], normalize_embeddings=True)
scores, idx = index.search(np.asarray(qe, dtype="float32"), 3)
for i in idx[0]:
print(docs[i]["chapter"], docs[i]["text"][:200])
声明(Medical Disclaimer)
本模型基于教材内容和标准生成,仅供学习与参考,不构成临床诊断或治疗建议。中医诊疗须由执业医师结合患者具体情况辨证施治。
版权说明
LoRA 权重与训练脚本可自由使用;训练数据为 AI 生成的问答集合,不包含版权书籍原文大段复制。来源书目:《中医基础理论》(郑洪新)、《中医诊断学》(李灿东)、GB/T 46939—2025。
- Downloads last month
- 21