simpo-training

Optimize SimPO loss over chosen and rejected response pairs for reference-free preference alignment.

Updated Apr 9, 2026
One-click install
npx skills add https://github.com/MarbleSodas/Mavis --skill simpo-training-marblesodas
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: simpo-training
Source: https://github.com/MarbleSodas/Mavis/tree/main/optional-skills/mlops/simpo
Command: npx skills add https://github.com/MarbleSodas/Mavis --skill simpo-training-marblesodas

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires torch, transformers, datasets, trl, accelerate, flash-attn, conda, deepspeed, and includes references (resource) components.

What problem does it solve?

SimPO trains language models to prefer chosen responses over rejected ones using preference pairs, without requiring a reference model.

Core Features & Use Cases

  • Reference-Free Preference Optimization: Uses the SimPO objective directly from chosen/rejected pairs, avoiding the extra reference model step required by DPO.
  • Efficient Preference Alignment: Improves alignment performance while keeping training setup simpler than multi-component RL approaches.
  • Practical Training Recipes: Supports common workflows including base-model alignment (e.g., Mistral 7B), instruct-model fine-tuning (e.g., Llama 3 8B), and reasoning-focused configurations.

Quick Start

Use SimPO to fine-tune your model on preference pairs by launching training with your chosen training config.

Frequently Asked Questions about simpo-training

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How does reference-free preference optimization work for LLM alignment?

Reference-free preference optimization trains language models directly on chosen and rejected response pairs using a SimPO loss, bypassing the extra reference model required by DPO to simplify the training setup.

Can I fine-tune a Mistral or Llama instruct model using SimPO?

Yes, SimPO supports practical training recipes for both base-model alignment like Mistral 7B and instruct-model fine-tuning like Llama 3 8B using supervised preference tuning.

What distinguishes SimPO from DPO for preference tuning?

SimPO removes the reference model requirement entirely, applying a reference-free preference optimization objective directly to chosen and rejected pairs, making alignment training simpler than DPO.

Do I need PyTorch and Transformers to run SimPO preference training?

Yes, SimPO requires a deterministic training setup using PyTorch, Transformers, TRL, and Accelerate-compatible environments along with configuration parameters like beta and gamma_beta_ratio.

How do I configure SimPO loss parameters for supervised preference tuning?

You configure SimPO by setting parameters such as beta, gamma_beta_ratio, loss_type, and optional sft_weight to optimize the preference loss over your chosen and rejected response pairs.

When should I not use SimPO for LLM alignment?

SimPO is not suitable when your alignment task lacks explicit chosen and rejected response pairs, as the reference-free optimization objective fundamentally requires supervised preference data to function.