Skip to content

基于 LoRA 技术对大语言模型进行中文医疗问答领域的 SFT(监督微调)实验项目,并提供 reference-grounded 的 LLM-as-a-Judge 多维 pairwise 评测管线(并发调用、可审计证据、可视化报告)。

Notifications You must be signed in to change notification settings

aug618/MedAlign-SFT

Repository files navigation

MedAlign-SFT Qwen3

AI Doctor (logo)

基于 LoRA 技术对大语言模型进行中文医疗问答领域的 SFT(监督微调)实验项目,并提供 reference-grounded 的 LLM-as-a-Judge 多维 pairwise 评测管线(并发调用、可审计证据、可视化报告)。

🖼️ 最终评测结果分析

Judge Report

📋 项目简介

本项目旨在探索领域微调对通用大模型在医疗问答场景下的改进效果:

  • 基座模型: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
🚀 快速开始

1. 环境要求

  • Python 3.11 - 3.13
  • CUDA 12.8+
  • GPU 显存:≥ 15GB(推荐)
  • uv 包管理器

2. 安装 uv 包管理器

curl -LsSf https://astral.sh/uv/install.sh | sh

3. 获取代码

# 克隆仓库(包含子模块)

git clone --recurse-submodules https://github.com/aug618/MedAlign-SFT.git
cd MedAlign-SFT

# 如果已经克隆但忘了带子模块
git submodule update --init --recursive

4. 创建并激活虚拟环境

uv venv .venv --python 3.12
source .venv/bin/activate

5. 安装依赖

# 使用锁文件安装,保证可复现
uv sync --frozen

说明pyproject.toml 通过 [tool.uv.sources]llamafactory 指向本地子模块路径,uv sync 会以可编辑模式安装 LLaMA-Factory。

6. 下载模型和数据集(本地使用,不建议提交到仓库)

# 下载 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

🧾 数据格式(仓库提供 5 条样例)

仓库不提交完整 data/,只提供 5 条样例用于说明“每一步输入/输出长啥样”:见 data_examples/README.md

📈 Judge 评测

  • 脚本用法与参数:见 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

🔗 依赖项目

⚠️ 免责声明

本项目仅供学习和研究使用。模型生成的医疗建议仅供参考,不能替代专业医生的诊断和治疗。如有健康问题,请咨询专业医疗机构。

📄 License

Apache-2.0

About

基于 LoRA 技术对大语言模型进行中文医疗问答领域的 SFT(监督微调)实验项目,并提供 reference-grounded 的 LLM-as-a-Judge 多维 pairwise 评测管线(并发调用、可审计证据、可视化报告)。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •