# 医疗分诊大模型微调实战：基于Qwen3-1.7B的完整MLOps流水线

> 本文介绍了一个完整的医疗分诊大模型微调项目，使用Qwen3-1.7B基础模型，通过QLoRA进行监督微调(SFT)，再经DPO对齐人类偏好，最终部署为vLLM+FastAPI推理服务。项目涵盖数据管道、训练、评估到CI/CD部署的全流程。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-05-26T09:14:13.000Z
- 最近活动: 2026-05-26T09:21:02.036Z
- 热度: 161.9
- 关键词: 医疗AI, 大模型微调, QLoRA, DPO, Qwen3, MLOps, vLLM, FastAPI, 医疗分诊
- 页面链接: https://www.zingnex.cn/forum/thread/qwen3-1-7bmlops
- Canonical: https://www.zingnex.cn/forum/thread/qwen3-1-7bmlops
- Markdown 来源: ingested_event

---

## 原作者与来源

- 原作者/维护者：RandomFab
- 来源平台：GitHub
- 原始标题：medical-triage-llm-finetuning
- 原始链接：https://github.com/RandomFab/medical-triage-llm-finetuning
- 来源发布时间/更新时间：2026-05-26T09:14:13Z

---

## 项目背景与目标

医疗分诊是医院急诊流程中的关键环节，需要根据患者描述的症状快速判断紧急程度（立即/中等/延后）。传统的人工分诊依赖经验丰富的护士，但在医疗资源紧张的情况下，AI辅助分诊可以显著提高效率。

本项目由Centre Hospitalier Saint-Aurélien (CHSA)发起，旨在构建一个能够处理英法双语患者描述、自动分类紧急程度的AI助手。项目采用Apache 2.0开源协议，完整展示了从数据准备到生产部署的全链路实现。

## 技术架构概览

整个系统采用分层架构设计，分为数据管道、训练流程和部署服务三个主要模块：

**数据层**：整合四个公开医疗问答数据集（MediQAL MCQU、FrenchMedMCQA、MedQuAD、UltraMedical），经过清洗、匿名化处理后，生成5000条SFT训练样本和5000条DPO偏好对齐样本。

**训练层**：以Qwen3-1.7B-Base为基座模型，先使用QLoRA进行4-bit量化监督微调（LoRA秩设为16），再通过DPO（Direct Preference Optimization）对齐人类偏好。训练过程使用MLflow进行实验追踪，模型权重存储在Google Cloud Storage。

**推理层**：合并后的完整模型通过vLLM部署，支持连续批处理和PagedAttention优化，对外提供FastAPI REST接口。整个服务容器化后部署在GCP虚拟机，通过GitHub Actions实现CI/CD自动化。

## 关键技术细节

### QLoRA高效微调

QLoRA（Quantized Low-Rank Adaptation）是本项目的核心技术之一。通过在4-bit Normal Float量化后的基座模型上添加低秩适配器，可以在单张16GB显存的GPU（如T4、L4）上完成训练。相比全参数微调，QLoRA将显存占用降低了约75%，同时保持了较好的微调效果。

### DPO偏好对齐

传统的RLHF（基于人类反馈的强化学习）需要训练奖励模型，流程复杂。DPO直接从偏好数据中学习，将问题转化为简单的分类任务，大幅简化了实现。项目中DPO数据采用UltraMedical-Preference数据集的三元组格式（问题、优选回答、劣选回答）。

### DVC数据版本控制

医疗数据涉及隐私和合规要求，项目使用DVC（Data Version Control）管理数据管道。从原始数据下载到最终训练集生成，共定义6个处理阶段（clean → anonymize → tokenize → split），任何参数变更都会自动触发相应阶段的重新执行。

## 训练成果与评估

SFT阶段在训练集上损失降至1.112，验证集损失为1.189，显示模型收敛良好。项目包含70个单元测试，覆盖数据管道、API接口和模型推理逻辑。

当前项目处于第4周部署阶段，API服务已就绪，正在进行最终的生产环境验证。DPO对齐模型和完整技术报告也在同步推进中。

## 快速上手指南

项目使用uv作为Python包管理工具，安装流程简洁：

```bash
git clone https://github.com/RandomFab/FINE-TUNING_MEDICAL.git
cd FINE-TUNING_MEDICAL
uv sync --all-groups
source .venv/bin/activate
```

数据管道通过DVC管理，执行`dvc repro`即可运行全部6个处理阶段。训练脚本支持MLflow自动追踪，DPO脚本会自动从MLflow获取最新的SFT冠军模型，无需手动配置路径。

本地测试API无需GPU：
```bash
uvicorn src.api.main:app --reload --port 8000
```

## 实践启示

本项目为医疗领域的大模型应用提供了可复用的工程模板。几个值得借鉴的点：

1. **双语数据处理**：英法混合语料的处理策略对多语言场景有参考价值
2. **隐私合规**：使用Presidio进行PII（个人身份信息）匿名化，满足医疗数据合规要求
3. **MLOps完整度**：从DVC数据版本、MLflow实验追踪到GitHub Actions CI/CD，形成完整闭环
4. **资源优化**：QLoRA+DPO的组合让中小团队也能在有限算力下完成大模型微调

对于希望在垂直领域落地大模型的团队，这个项目展示了从原型到生产的完整路径，具有很高的参考价值。
