LLM 大模型的 SFT 及 DPO 实践
·
1. 动机与背景
Q: 为什么需要 SFT ?
GPT等预训练模型已经展现出了强大的通用能力。然而,这些“通才”模型在面对特定领域任务、遵循特定格式要求或适应特定企业需求时,往往表现不佳。这时,监督微调(Supervised Fine-Tuning, SFT) 就成为连接通用能力与专业需求的关键桥梁。
SFT 是在预训练模型的基础上,使用高质量的指令-回答配对数据,对模型进行有监督的微调,使其能够更好地理解并执行特定类型的任务。
2. Qwen2-VL SFT 实操
使用 Qwen2-VL-2B-Instruct.
2.1 模型计算图介绍
详见 参考 [1].
2.2 模型文件
从 hf 社区拉取 qwen 的模型文件.
模型权重 safetensors 文件占用为 4GB.
| 文件大小 | 文件名 |
|---|---|
| 1.2K | config.json |
| 76 | configuration.json |
| 272 | generation_config.json |
| 12K | LICENSE |
| 1.6M | merges.txt |
| 3.8G | model-00001-of-00002.safetensors |
| 410M | model-00002-of-00002.safetensors |
| 56K | model.safetensors.index.json |
| 347 | preprocessor_config.json |
| 17K | README.md |
| 4.1K | tokenizer_config.json |
| 6.8M | tokenizer.json |
| 2.7M | vocab.json |
2.3 数据准备
与预训练的海量无标注数据不同,SFT 数据通常规模较小但质量要求极高,直接决定了模型在目标场景下的表现。
3. tf-transformers 多代码
存什么精度 ≠ 微调时用什么精度训练。检查点 bf16 是因为推理和发布用. 实际 SFT 中通常这样:
| 组件 | dtype |
|---|---|
| 模型权重 | bf16(计算用)+ fp32(master,优化器维护) |
| 激活 | bf16 |
| 梯度 | bf16(反传时)→ 转 fp32 更新 |
| 优化器状态(Adam 的 m、v) | fp32 |
| loss | fp32(自动) |
4. LLaMa Factory 零代码
参考
- my blog, Qwen-VL 视觉大模型 计算图拆解及SFT实操
更多推荐
所有评论(0)