language: zh
tags:
- 医疗
- qwen
- 指令微调
- 医疗保健
- lora
library_name: transformers
pipeline_tag: 文本生成
license: apache-2.0
ü߆ Qwen2.5-3B-医疗-LoRA模型

作者: AbdullahAlnemr1
基础模型: Qwen/Qwen2.5-3B-Instruct
数据集: lavita/ChatDoctor-HealthCareMagic-100k
训练类型: 参数高效微调(LoRA)
框架: ü§ó Transformers, PEFT, bitsandbytes, Accelerate
ü©∫ 模型概述
Qwen2.5-3B-医疗-LoRA
是基于Qwen2.5-3B-Instruct模型在医疗健康数据集ChatDoctor-HealthCareMagic-100k
上微调的版本。该模型旨在生成与医疗相关的响应,为用户提供清晰简洁的健康指导。
本模型采用LoRA(低秩适应)进行高效训练,支持通过4位量化和bitsandbytes在消费级硬件上部署。
üìÅ 文件与构件
adapter_model
: 在医疗数据集上训练的LoRA权重。
README.md
: 项目文档。
training_args.bin
: 训练配置。
tokenizer_config.json
, tokenizer.model
, special_tokens_map.json
: 分词器文件。
üß™ 预期用途
- 医疗问答
- 健康咨询系统
- 医疗专业人员的教育工具
- AI辅助医疗助手
‚ö†Ô∏è 本模型不能替代专业医疗建议、诊断或治疗。请务必咨询持牌医疗专业人士。
üí° 提示格式
本模型遵循指令微调格式:
<|im_start|>system
您是一位知识渊博且准确的医疗助手,接受过提供循证医学建议的训练。请根据医学最佳实践清晰简洁地回答。如果问题不明确或回答可能有害,请附带免责声明。<|im_end|>
<|im_start|>user
指令: [您的指令]
[可选输入]<|im_end|>
<|im_start|>assistant
üîç 示例
输入:
instruction = "我是一名60岁男性,有高血压和2型糖尿病病史..."
response = generate_response(instruction)
输出:
您描述的症状——包括运动时胸痛、疲劳、呼吸急促和脚踝肿胀——可能表明充血性心力衰竭或冠状动脉疾病...
üì¶ 推理
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
from peft import PeftModel
import torch
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-3B-Instruct", trust_remote_code=True)
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.float16,
bnb_4bit_use_double_quant=True,
bnb_4bit_quant_type="nf4"
)
base_model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen2.5-3B-Instruct",
quantization_config=bnb_config,
device_map="auto",
trust_remote_code=True
)
model = PeftModel.from_pretrained(base_model, "AbdullahAlnemr1/qwen2.5-medical-lora")
model = model.merge_and_unload()
model.eval()
prompt = '''<|im_start|>system
您是一位知识渊博且准确的医疗助手...
<|im_end|>
<|im_start|>user
指令: 贫血的症状有哪些?<|im_end|>
<|im_start|>assistant
'''
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=512)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)