Skip to main content

ORPO Training

ORPO combines SFT and preference optimization in a single training phase.

What is ORPO?

ORPO (Odds Ratio Preference Optimization) is a simpler alternative to DPO that doesn’t require a reference model. It optimizes preferences using odds ratios directly, reducing memory usage and training complexity.

Quick Start

ORPO requires --prompt-text-column and --rejected-text-column. The --text-column defaults to "text", so only specify it if your chosen column has a different name.

Python API

Data Format

Same as DPO - preference pairs:

ORPO vs DPO

Parameters

VLM (Vision-Language) ORPO

ORPO supports vision-language models like Qwen 3.5-VL for image+text preference alignment. Set image_column to enable VLM mode:
The dataset should have chosen/rejected columns with messages lists, and an image column containing the images. The image column is automatically renamed to images for TRL compatibility.

When to Use ORPO

Choose ORPO when:
  • Memory is limited (no reference model needed)
  • You want combined SFT + alignment
  • Simpler training pipeline preferred
  • Starting from a base model (not instruction-tuned)
Choose DPO when:
  • You need fine-grained control
  • Working with already instruction-tuned models
  • Reference model behavior is important

Example: Customer Support

Next Steps

DPO Training

Alternative alignment method

Reward Modeling

Train reward models