What problem does it solve?
SimPO provides a simple, efficient way to align large language models to human preferences using chosen/rejected pairs without requiring a separate reference model, reducing compute and implementation complexity compared to DPO or PPO.
Core Features & Use Cases
- Reference-free preference optimization: Directly optimizes the policy using chosen vs rejected responses, removing the need for a reference model.
- Configurable losses and hyperparameters: Supports sigmoid and hinge losses, tunable beta and gamma_beta_ratio, and optional SFT regularization to preserve capabilities.
- Practical workflows and troubleshooting: Includes recommended configs for Mistral 7B and Llama 3 8B, dataset preparation guidance, and common fixes for divergence, OOM, and capability loss.
- Use Case: Fine-tune a 7B instruction model on UltraFeedback-style preference pairs to improve helpfulness and alignment while keeping training single-node and resource-efficient.
Quick Start
Run the provided SimPO training pipeline with your preference dataset and an accelerate configuration to fine-tune your LLM using the recommended SimPO hyperparameters.