Interleave different fine-tuning stages
mainThe SelfRewardingTrainer allows for arbitrary orders of fine-tuning by passing a list of configuration objects to finetune_configs. This enables research into interleaving different methods like SFT, SPIN, Self-Play, and DPO (with either self-generated or external rewards).
Supported configuration classes:
SFTConfigSelfPlayConfigExternalRewardDPOConfigSelfRewardDPOConfig
from self_rewarding_lm_pytorch import (
SFTConfig,
SelfRewardDPOConfig,
ExternalRewardDPOConfig,
SelfPlayConfig,
)
trainer = SelfRewardingTrainer(
model,
finetune_configs = [
SFTConfig(...),
SelfPlayConfig(...),
ExternalRewardDPOConfig(...),
SelfRewardDPOConfig(...),
SelfPlayConfig(...),
SelfRewardDPOConfig(...)
],
...
)
trainer()