simpo-training

Train an LLM with SimPO on chosen/rejected pairs without a reference model.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/box755/simlens-research --skill simpo-training-box755
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: simpo-training
Source: https://github.com/box755/simlens-research/tree/main/skill-packs/AI-Research-SKILLs/06-post-training/simpo
Command: npx skills add https://github.com/box755/simlens-research --skill simpo-training-box755

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires torch, transformers, datasets, trl, accelerate, and includes references (resource) components.

What problem does it solve?

SimPO helps you align a language model to human (or synthetic) preferences by learning from chosen/rejected response pairs without needing a separate reference model, which simplifies training while maintaining strong performance.

Core Features & Use Cases

  • Reference-free preference optimization: Optimizes directly from preference pairs (chosen vs rejected) rather than computing differences against a reference model.
  • Efficient DPO-style alternative: Uses SimPO’s beta and margin (gamma-beta ratio) to control the strength of preference separation and training behavior.
  • Loss configuration for stability and intent: Supports sigmoid (recommended) or hinge loss types and optional SFT regularization to reduce capability forgetting.

Use case example: Train a 7B model on an instruction-following preference dataset (e.g., UltraFeedback) to improve helpfulness and adherence to preference signals with a straightforward single-node setup.

Quick Start

Ask the AI to train a Mistral 7B SimPO model using the provided training script and a YAML config for UltraFeedback preference pairs, with acceleration via DeepSpeed ZeRO-3.

Frequently Asked Questions about simpo-training

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

FAQPage Schema
How do I align an LLM with human preferences without a reference model?

You can use SimPO (Simple Preference Optimization) to train an LLM directly on chosen and rejected response pairs, bypassing the reference model requirement entirely. This simplifies training while maintaining strong preference alignment performance.

What is the best DPO alternative for preference-based helpfulness improvements?

SimPO is a strong DPO alternative that optimizes preference separation using beta and a margin (gamma-beta ratio) instead of a reference model. It supports sigmoid or hinge loss types and optional SFT regularization to reduce capability forgetting.

How do I train a Mistral 7B model using SimPO on UltraFeedback preference pairs?

You can train a Mistral 7B model using a SimPO-compatible training script with a YAML config for UltraFeedback, accelerating the process via DeepSpeed ZeRO-3. You need to configure hyperparameters like beta, gamma_beta_ratio, loss_type, and optional sft_weight.

Do I need TRL and PyTorch to run SimPO post-training on my LLM?

Yes, SimPO training requires PyTorch, Transformers, TRL, Datasets, and Accelerate dependencies. You must also provide a dataset mixer that supplies prompt, chosen, and rejected fields for the preference optimization process.

Can I use SimPO for domain-specific tuning like math reasoning?

Yes, SimPO supports domain-specific tuning for math reasoning and instruction-following alignment. You can apply it to post-training scenarios by providing chosen and rejected response pairs specific to your target domain.

Why does SimPO include an optional SFT weight hyperparameter?

The optional sft_weight in SimPO provides SFT regularization to reduce capability forgetting during preference optimization. This helps maintain the model's existing abilities while it learns to separate chosen and rejected responses.