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"]
}
使用方法
- 准备数据,格式为 toy_dataset.jsonl
- 配置训练参数,示例脚本 sft.sh 中指定:
- train_data 设置为数据路径
- model_name_or_path 指定预训练模型路径
- output_dir 指定输出目录
- 运行训练脚本
bash reranker_sft.sh
- 训练完成后,执行测试脚本
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 进阶精品课程:
0 comments