基于 LoRA 技术对大语言模型进行中文医疗问答领域的 SFT(监督微调)实验项目,并提供 reference-grounded 的 LLM-as-a-Judge 多维 pairwise 评测管线(并发调用、可审计证据、可视化报告)。
本项目旨在探索领域微调对通用大模型在医疗问答场景下的改进效果:
- 基座模型:Qwen3-4B(已具备通用对话能力)
- 微调方法:LoRA 参数高效微调
- 训练数据:Huatuo26M-Lite 中文医疗问答数据集
- 训练框架:LLaMA-Factory
- 推理框架:vLLM
- 评测方案:LLM-as-a-Judge 自动评测 + Pairwise 偏好对比
MedAlign-SFT/
├── data_examples/ # 仅 5 条样例数据(展示每一步数据格式)
├── configs/ # 训练/推理/合并配置参考(见 configs/README.md)
├── prompts/ # Judge 提示词(核心)
├── tools/ # 工具脚本
│ ├── call_LLM/ # 并发调用 + 抽样评测脚本
│ ├── dataProcess/ # 数据处理/融合工具
│ └── analyze_judged_results.py # 评测结果统计与报告生成
├── analyze/ # 可展示的评测产物/报告(HTML/CSV/统计)
├── visualize/ # HTML 可视化页面(默认读取 data_examples)
├── third_party/
│ └── LLaMA-Factory/ # 训练框架(Git 子模块)
├── pyproject.toml # 项目依赖配置
├── uv.lock # 依赖锁文件
└── README.md
🚀 快速开始
- Python 3.11 - 3.13
- CUDA 12.8+
- GPU 显存:≥ 15GB(推荐)
- uv 包管理器
curl -LsSf https://astral.sh/uv/install.sh | sh# 克隆仓库(包含子模块)
git clone --recurse-submodules https://github.com/aug618/MedAlign-SFT.git
cd MedAlign-SFT
# 如果已经克隆但忘了带子模块
git submodule update --init --recursiveuv venv .venv --python 3.12
source .venv/bin/activate# 使用锁文件安装,保证可复现
uv sync --frozen说明:
pyproject.toml通过[tool.uv.sources]将llamafactory指向本地子模块路径,uv sync会以可编辑模式安装 LLaMA-Factory。
# 下载 Huatuo26M-Lite 数据集
modelscope download --dataset FreedomIntelligence/Huatuo26M-Lite --local_dir ./data/raw
# 下载 Qwen3-4B 模型
modelscope download --model Qwen/Qwen3-4B --local_dir ./models/Qwen3-4B说明:仓库默认只提供
data_examples/(5 条样例数据),不提交完整data//models/(避免体积过大与数据合规风险)。
训练/推理/合并的配置参考放在 configs/ 下:
- 训练脚本参数示例:
configs/llamafactory-sft.sh - 详细说明:
configs/README.md
仓库不提交完整 data/,只提供 5 条样例用于说明“每一步输入/输出长啥样”:见 data_examples/README.md。
- 脚本用法与参数:见
tools/README.md - 离线可复现演示(用样例数据):用样例 Judge 输出直接生成报告
- 在线评测(抽样 + 并发调用 Judge):环境变量与命令参数详见
tools/README.md - 可视化页面:
visualize/visualize_judge_results.html(默认读取data_examples/judged_results_200.sample.jsonl)visualize/visualize_merged.html(默认读取data_examples/merged_base_sft.sample.jsonl)
- LLaMA-Factory - 大模型微调框架
- Huatuo26M-Lite - 中文医疗问答数据集
- Qwen3 - 基座模型
- vllm - 推理框架
本项目仅供学习和研究使用。模型生成的医疗建议仅供参考,不能替代专业医生的诊断和治疗。如有健康问题,请咨询专业医疗机构。
Apache-2.0

