What problem does it solve?
SimPO solves inefficient and reference-model-dependent preference alignment by enabling reference-free training from chosen/rejected pairs, so you can get better aligned behavior without the DPO-style setup overhead.
Core Features & Use Cases
- Reference-free preference optimization: Trains directly from preference pairs (chosen vs rejected) without requiring π_ref or a separate reference model.
- SimPO loss with controllable preference margin: Uses β and gamma_beta_ratio to scale reward signal and enforce a target margin in logit space.
- Optionally preserve capabilities with SFT regularization: Adds an SFT component via sft_weight to reduce forgetting, especially when starting from instruct/chat models.
- Use Case: If you have an UltraFeedback-style dataset of (prompt, chosen, rejected) pairs and want to improve instruction-following, you can fine-tune a Mistral or Llama model using SimPO to push chosen responses above rejected ones.
Quick Start
Use the simpo-training skill to fine-tune a model on a chosen/rejected preference dataset by running SimPO training with a config like training_configs/mistral-7b-base-simpo.yaml.