DPO训练过程小记

1. Megatron

主要问题:单机训练太慢,所以需要多机器来训练。

Megatron是NVIDIA搞出来的一个多机多卡训练的协议,Swift已经支持这个组件。

为了加速模型训练,需要把hf格式的模型转换成Megatron的格式。这个一般都有脚本,例如Swift 官方给出的。

2. DPO

一般都是把sft得到的模型,再做DPO。我们都知道sft有多种方式,例如全参数微调/lora 微调。那么问题就来了,如果是基于全参数微调,那么可以直接在dpo上用lora微调;但是如果sft阶段就是lora微调的方式(会得到一个adapter)那么DPO阶段还能用lora的方式微调吗?可以。

但是我自己的实战经验告诉我:

  • lora方式做的sft后,再以lora方式做DPO,效果几乎没有提升。
  • 全参数sft后,再以lora方式做DPO,效果会有1个点的提升。

发表回复

Your email address will not be published. Required fields are marked *.