跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

基于 LLaMA-Factory 微调 Qwen3.5-4B 构建医疗 AI 助手

利用 LLaMA-Factory 框架结合 Qwen3.5-4B 模型进行 LoRA 微调,构建垂直领域医疗 AI 助手。流程涵盖环境搭建、数据集准备、参数配置及训练部署。通过优化显存占用与学习率策略,解决资源受限下的微调难题。最终实现模型在医疗问答场景的专业化提升,并支持权重合并与 API 服务部署。注意数据质量与合规性,确保输出仅供参考。

不羁发布于 2026/3/27更新于 2026/9/1158 浏览
基于 LLaMA-Factory 微调 Qwen3.5-4B 构建医疗 AI 助手

本文将分享基于 LLaMA-Factory 微调 Qwen3.5-4B 构建医疗 AI 助手的完整流程。核心工具链为 LLaMA-Factory + Qwen3.5-4B + 医疗问答数据集。

Qwen3.5 是阿里最新发布的千问系列模型,4B 参数量在效果与显存占用之间取得了很好的平衡;LLaMA-Factory 则是目前开源社区最成熟的微调框架,上手简单且坑相对较少。

准备工作

先说硬件要求。使用 LoRA 微调 4B 模型的话,一张 12GB 显存的显卡就够了(比如 RTX 4070)。如果手头只有 8GB 显存的卡,可以上 QLoRA 量化方案,牺牲一点精度换显存空间。

微调方式4B 模型显存需求推荐显卡
LoRA (16-bit)~10-12 GBRTX 4070 / RTX 3090
QLoRA (8-bit)~6-8 GBRTX 4060 / RTX 3070
QLoRA (4-bit)~4-6 GBRTX 3060

软件环境建议 Python 3.11+,PyTorch 2.0 以上。CUDA 版本最好 12.x,兼容性更好。

下载 Qwen3.5-4B 模型

模型从魔搭社区下载,国内速度很快:

# 安装 modelscope
pip install modelscope

方式一:Python 代码下载

from modelscope import snapshot_download
model_dir = snapshot_download('Qwen/Qwen3.5-4B')
print(f"模型已下载到:{model_dir}")

方式二:命令行下载

modelscope download --model Qwen/Qwen3.5-4B --local_dir ./models/Qwen3.5-4B

注意: 模型大约 9.3GB,建议挂个代理或者选择网络好的时间段下载。下载完记得检查一下文件完整性。

搭建 LLaMA-Factory 环境

LLaMA-Factory 的安装很直接:

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e .
pip install -r requirements/metrics.txt
# 如果需要 DeepSpeed 加速(可选)
pip install -r requirements/deepspeed.txt

装完之后可以跑一下测试命令确认环境没问题:

llamafactory-cli version

准备医疗数据集

数据集是微调效果的关键。这里用的是开源的中文医疗问答数据,主要来自几个渠道:GitHub 上的 llm-medical-data 仓库整理了几十万条医疗问答数据,覆盖内科、外科、妇产科、儿科等科室。另外 HuggingFace 上的 shibing624/medical 数据集也不错,格式比较规范。

LLaMA-Factory 要求的数据格式是这样的:

[
  {
    "instruction": "你是一个专业的医疗助手,请根据患者描述给出建议。",
    "input": "我最近总是头痛,尤其是下午的时候,已经持续一周了。",
    "output": "持续性头痛需要关注。建议您先排除以下几个常见原因:1)睡眠质量,2)用眼过度,3)颈椎问题。如果休息后仍不缓解,建议到医院神经内科就诊,做个头部 CT 检查。"
  },
  {
    "instruction": "你是一个专业的医疗助手,请根据患者描述给出建议。",
    "input": "孩子 3 岁,发烧 38.5 度,要不要去医院?",
    "output": "38.5 度属于中度发热。可以先在家观察处理:1)物理降温,温水擦拭腋下、腹股沟;2)保持室内通风;3)多喝水。如果体温超过 39 度、持续超过 3 天、或出现精神萎靡、抽搐等情况,需要立即就医。"
  }
]

把处理好的数据放到 data/ 目录下,然后在 data/dataset_info.json 里注册:

{
  "medical_qa": {
    "file_name": "medical_qa.json",
    "columns": {
      "prompt": "instruction",
      "query": "input",
      "response": "output"
    }
  }
}

开始微调

配置文件是整个流程的核心。在 examples/train_lora/ 下创建一个 qwen35_medical_lora.yaml:

### 模型配置 ###
model_name_or_path: ./models/Qwen3.5-4B
trust_remote_code: true

### 微调方法 ###
stage: sft
do_train: true
finetuning_type: lora
lora_rank: 64
lora_alpha: 128
lora_target: all

### 数据集配置 ###
dataset: medical_qa
template: qwen3
cutoff_len: 2048
preprocessing_num_workers: 8

### 训练参数 ###
output_dir: ./output/qwen35_medical_lora
per_device_train_batch_size: 2
gradient_accumulation_steps: 8
learning_rate: 1.0e-4
num_train_epochs: 3.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
logging_steps: 10
save_steps: 500

### 显存优化 ###
bf16: true
gradient_checkpointing: true

参数解读:

  • lora_rank: 64 —— LoRA 秩,越大表达能力越强,但显存占用也越大
  • lora_target: all —— 对所有线性层应用 LoRA,效果更好
  • gradient_checkpointing: true —— 用时间换空间,降低显存占用

一切就绪,启动训练:

llamafactory-cli train examples/train_lora/qwen35_medical_lora.yaml

训练过程中可以通过 TensorBoard 监控 loss 曲线:

tensorboard --logdir=./output/qwen35_medical_lora/runs

在我的测试环境(RTX 4090)上,1 万条数据训练 3 个 epoch 大约需要 40 分钟。

测试效果

训练完成后,先在命令行跑个快速测试:

llamafactory-cli chat examples/inference/qwen35_medical_lora.yaml

对应的推理配置文件 qwen35_medical_lora.yaml:

model_name_or_path: ./models/Qwen3.5-4B
adapter_name_or_path: ./output/qwen35_medical_lora
template: qwen3
finetuning_type: lora

实测下来,微调后的模型在医疗问答上明显比原版更专业。比如问'孕妇能不能吃螃蟹',原版模型可能给个模棱两可的回答,微调后的版本会从中医寒凉属性、现代营养学、个体差异等多个角度分析,更像一个有经验的医生。

导出和部署

如果效果满意,可以把 LoRA 权重合并到基座模型里,方便后续部署:

llamafactory-cli export examples/merge_lora/qwen35_medical_merge.yaml

合并配置:

model_name_or_path: ./models/Qwen3.5-4B
adapter_name_or_path: ./output/qwen35_medical_lora
template: qwen3
finetuning_type: lora
export_dir: ./models/Qwen35-Medical
export_size: 2
export_device: cuda
export_legacy_format: false

合并后的模型可以直接用 vLLM 或者 SGLang 部署成 API 服务:

# vLLM 部署
pip install vllm
vllm serve ./models/Qwen35-Medical --port 8000

# 或者 LLaMA-Factory 内置的 API 服务
API_PORT=8000 llamafactory-cli api examples/inference/qwen35_medical.yaml

踩坑记录

分享几个我遇到过的问题:

1. 显存不够用 把 per_device_train_batch_size 调小,或者启用 gradient_checkpointing。实在不行就上 4-bit 量化。

2. Loss 不下降 检查数据格式是否正确,尤其是 dataset_info.json 里的字段映射。另外学习率不要设太大,1e-4 到 5e-5 之间比较稳。

3. 微调后模型变傻了 可能是数据质量问题,或者训练轮数太多导致过拟合。适当减少 epoch 数,或者在数据里混入一些通用对话保持泛化能力。

医疗领域的 AI 应用一定要注意:模型输出仅供参考,不能替代专业医生的诊断。在产品设计时要做好免责声明和人工审核机制。

整个流程走下来,从环境搭建到模型部署,熟练的话半天就能搞定。LLaMA-Factory 确实把微调的门槛降低了很多,配合 Qwen3.5 这样的高质量基座模型,普通开发者也能做出效果不错的垂直领域 AI 助手。

当然,真要做成产品级的医疗 AI,还需要在数据质量、安全合规、持续迭代等方面下功夫。但至少,迈出第一步没那么难。

目录

  1. 准备工作
  2. 下载 Qwen3.5-4B 模型
  3. 安装 modelscope
  4. 搭建 LLaMA-Factory 环境
  5. 如果需要 DeepSpeed 加速(可选)
  6. 准备医疗数据集
  7. 开始微调
  8. 模型配置
  9. 微调方法
  10. 数据集配置
  11. 训练参数
  12. 显存优化
  13. 测试效果
  14. 导出和部署
  15. vLLM 部署
  16. 或者 LLaMA-Factory 内置的 API 服务
  17. 踩坑记录

更多推荐文章

查看全部
  • 使用 Layui 框架解决 Unity WebGL 渲染在 Tab 切换时黑屏问题
  • Mac 使用 VMware 安装 Windows 11 虚拟机教程
  • 攻防世界 Web 题解 (八): 加密解密、反序列化、RCE 及文件包含
  • 基于Java+Vue+MySQL的学生信息管理系统设计与实现
  • Midjourney 以图生图与提示词反推教程
  • AIGC 产品经理的核心职责与能力模型解析
  • AI 零基础入门:从概念到实践完全指南
  • LM Studio 本地部署实战:模型格式识别与加载配置
  • Trae IDE 使用指南:模型管理与实战技巧
  • 多模态 AI 应用:图文音视频一体化开发实战
  • SpringAI Agent 开发:使用 Agent Skills 进行代码评审
  • 飞书 lark-cli 命令行工具与 AI Agent 集成解析
  • PromptPilot 重构 AI 创作逻辑:企业级支撑与创意角色扮演实战
  • 深入理解 JSON Web Token (JWT)
  • Java 结合 AI 能力的混合编程落地方案
  • OpenClaw 在 Windows 与 Linux 系统的部署实战
  • Effective Modern C++ 第 38 条:std::thread 与 std::future 析构行为详解
  • 开源大模型重塑企业 AI 应用:16 个落地案例与部署挑战
  • 机器学习:逻辑回归与线性回归的区别
  • CSS 盒模型中 Padding 撑大盒子的解决方法

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online