Qwen3 Reranker 模型微调教程(LoRA高效微调+DeepSpeed训练加速)

Lesson Summary

Qwen3-Reranker-SFT 项目简介

Qwen3-Reranker-SFT 是一个基于 Qwen3-Reranker-0.6B 模型的监督微调(SFT)项目,旨在提升文本检索与重排任务的性能。该项目采用 LoRA(Low-Rank Adaptation)技术实现高效的参数微调,专注于改善查询与文档匹配的重排效果,特别优化了中文查询-文档场景。

项目结构

  • README 项目说明文档
  • DeepSpeed 配置文件(训练脚本)
  • toy_dataset.jsonl 示例训练数据集

功能特点

  • 高效微调:采用 LoRA 技术,减少计算资源需求
  • 中文优化:针对中文检索场景专门优化模型
  • 完整流程:覆盖从数据准备到模型训练和测试的全流程

环境配置步骤

  • 初始化 conda 环境并安装 ipykernel
  • 创建并安装名为 flag_venv 的内核
  • 安装依赖包 FlagEmbedding[finetune]

数据格式说明

训练数据应为 JSONL 格式,每行包含一个样本,结构示例如下:

{
  "query": "查询文本",
  "neg": ["负例文档1", "负例文档2", "负例文档3"]
}

使用方法

  1. 准备数据,格式为 toy_dataset.jsonl
  2. 配置训练参数,示例脚本 sft.sh 中指定:
    • train_data 设置为数据路径
    • model_name_or_path 指定预训练模型路径
    • output_dir 指定输出目录
  3. 运行训练脚本 bash reranker_sft.sh
  4. 训练完成后,执行测试脚本 python test.py 进行模型验证

训练配置详解

  • LoRA 参数:
    • Rank: 8
    • Alpha: 16
    • 作用模块: q_proj, k_proj, v_proj, o_proj
  • 训练超参数:
    • 学习率: 2e-4
    • 批量大小: 4
    • 梯度累积步数: 10
    • 训练序列长度: 512
  • DeepSpeed 配置:
    • 阶段: Stage 0,适用于单卡训练和小规模模型
    • 混合精度训练:
      • 支持动态 FP16 损失缩放,保障数值稳定
      • 自动启用 BF16(如果硬件支持),减少溢出风险
    • 优化器: AdamW,自动设置动量、eps 和权重衰减参数
    • 学习率策略: 包含 warmup 预热和衰减,均自动配置
    • 梯度裁剪与日志打印间隔等自动设置

学习资源与联系方式

  • B站/公众号/YouTube: 唐国梁Tommy
  • 官方网站(国内科学上网访问):TGLTommy.com
  • AI 进阶精品课程:

    README.pdf
    Download
    Complete and Continue  
    Discussion

    0 comments