项目分享|MedicalGPT:一站式医疗大模型训练框架
MedicalGPT是一款面向医疗领域的大模型训练项目,基于ChatGPT训练范式,实现了增量预训练、有监督微调、RLHF、DPO、ORPO等全流程训练方案。该项目支持LLaMA、Qwen、ChatGLM等主流模型,适配LoRA/QLoRA等轻量化训练方式,提供了医疗领域微调模型及完整的训练、推理、部署脚本,兼顾易用性与高性能,可快速落地医疗大模型的定制化训练需求。
引言
随着大语言模型在垂直领域的落地加速,医疗行业对专属大模型的需求日益迫切——既要适配医疗数据分布,又要对齐人类医疗问答的偏好与专业要求。MedicalGPT项目聚焦这一痛点,基于成熟的ChatGPT训练Pipeline,打造了从基础预训练到最终偏好优化的全链路医疗大模型训练方案,让开发者能够低成本、高效率地构建符合医疗场景的大模型。
项目核心介绍
MedicalGPT是一款开源的医疗大模型训练框架,核心目标是通过标准化的训练流程,让普通开发者也能完成医疗领域大模型的定制化训练。项目覆盖了大模型训练的核心阶段:
- 增量预训练(PT):在海量医疗文档数据上二次预训练基础模型,适配医疗数据分布;
- 有监督微调(SFT):基于医疗问答数据集精调模型,对齐指令意图并注入医疗知识;
- 偏好优化:支持RLHF(奖励建模+强化学习)、DPO(直接偏好优化)、ORPO(比值比偏好优化)、GRPO等多种对齐方案,让模型输出符合人类医疗问答的偏好。
项目还提供了多款已训练完成的医疗模型(如shibing624/ziya-llama-13b-medical-lora),以及交互式Demo、多卡推理、vllm部署等配套功能,覆盖从训练到落地的全环节。
创新点与核心优势
1. 全流程训练覆盖,适配多种优化范式
项目不仅实现了经典的RLHF训练流程,还率先支持DPO、ORPO、GRPO等前沿偏好优化方法:
- DPO无需复杂的强化学习流程,直接优化模型以学习人类偏好,易训练、效果优;
- ORPO将SFT与偏好对齐整合为单一步骤,缓解模型灾难性遗忘问题;
- GRPO通过纯RL方法实现模型效果的“aha moment”提升。
2. 多模型适配+轻量化训练,降低落地门槛
支持LLaMA3、Qwen2.5、ChatGLM3、Baichuan等数十款主流大模型,适配LoRA/QLoRA/全参等多种训练方式,不同精度下的显存需求如下(以7B模型为例):
- QLoRA(4bit)仅需6GB显存,普通消费级显卡即可训练;
- LoRA(16bit)需16GB显存,满足中小团队训练需求。
3. 医疗领域适配性强,提供现成数据集与预训练模型
配套240万条中英文医疗数据集(shibing624/medical),以及多款微调后的医疗模型,开发者可直接基于现有资源快速启动训练,无需从零构建数据与模型。
技术原理、代码实现与部署
1. 核心技术原理
以DPO(直接偏好优化)为例,其核心是通过对比“优选回答”与“次优回答”,直接优化模型的对数概率比,替代RLHF中复杂的奖励模型与强化学习流程,公式核心为:
L DPO = − log σ ( β log π θ ( y 1 ∣ x ) π ref ( y 1 ∣ x ) − β log π θ ( y 2 ∣ x ) π ref ( y 2 ∣ x ) ) \mathcal{L}_{\text{DPO}} = -\log \sigma\left(\beta \log \frac{\pi_\theta\left(y_1 \mid x\right)}{\pi_{\text{ref}}\left(y_1 \mid x\right)} - \beta \log \frac{\pi_\theta\left(y_2 \mid x\right)}{\pi_{\text{ref}}\left(y_2 \mid x\right)}\right) LDPO=−logσ(βlogπref(y1∣x)πθ(y1∣x)−βlogπref(y2∣x)πθ(y2∣x))
其中 π θ \pi_\theta πθ为待训练模型, π ref \pi_{\text{ref}} πref为参考模型, β \beta β为温度系数, y 1 / y 2 y_1/y_2 y1/y2分别为优选/次优回答。
2. 代码实现(以DPO训练为例)
步骤1:安装依赖
git clone https://github.com/shibing624/MedicalGPT
cd MedicalGPT
pip install -r requirements.txt --upgrade
步骤2:执行DPO训练
# 运行DPO训练脚本
bash run_dpo.sh
run_dpo.sh核心配置示例:
CUDA_VISIBLE_DEVICES=0 python dpo_training.py \
--model_name_or_path path_to_base_model \
--train_file data/dpo_medical_data.json \
--per_device_train_batch_size 4 \
--gradient_accumulation_steps 4 \
--learning_rate 5e-6 \
--max_steps 1000 \
--lora_rank 8 \
--lora_alpha 32 \
--lora_dropout 0.05 \
--beta 0.1 \
--output_dir dpo_medical_model \
--logging_steps 10 \
--save_steps 100 \
--fp16
3. 模型推理与部署
单卡交互式推理
CUDA_VISIBLE_DEVICES=0 python inference.py \
--base_model path_to_model_hf_dir \
--lora_model path_to_lora \
--interactive
多卡推理(数据并行)
CUDA_VISIBLE_DEVICES=0,1 torchrun --nproc_per_node 2 inference_multigpu_demo.py --base_model shibing624/vicuna-baichuan-13b-chat
vllm高性能部署
sh vllm_deployment.sh
Gradio交互式Demo部署
CUDA_VISIBLE_DEVICES=0 python gradio_demo.py --base_model path_to_llama_hf_dir --lora_model path_to_lora_dir
该项目及相关内容已 AladdinEdu课题广场同步发布,欢迎前往了解更多技术实现与资源
项目地址:AladdinEdu课题广场
更多推荐



所有评论(0)