Skip to main content
Harmony provides four main training algorithms for custom recipes: SFT (Supervised Fine-Tuning), PPO (Proximal Policy Optimization), GRPO (Group Relative Policy Optimization), and DPO (Direct Preference Optimization).

SFT

SFT is the foundation training method that teaches a model to follow instructions using demonstration data.

Basic SFT Training

SFT Parameters

  • data_set: List of StringThread objects containing training examples
  • model: Training model instance
  • logger: Logger for tracking training metrics
  • lr: Learning rate
  • samples_per_batch: Batch size
  • max_grad_norm: Gradient clipping norm

PPO

PPO is a reinforcement learning algorithm that uses a reward function to improve model behavior.

Basic PPO Training

PPO Parameters

  • data_set: List of StringThread prompts
  • model: Policy model for training
  • value_model: Value model for advantage estimation
  • scoring_fn: Function that returns reward scores
  • lr_policy: Policy learning rate
  • lr_value: Value learning rate
  • kl_beta: KL divergence penalty coefficient
  • clip_range: PPO clipping range

GRPO

GRPO is similar to PPO but generates multiple completions per prompt and uses relative ranking for training.

Basic GRPO Training

GRPO Parameters

  • data_set: List of StringThread prompts
  • model: Training model
  • scoring_fn: Function that returns reward scores
  • completions_per_sample: Number of completions per prompt
  • lr: Learning rate
  • kl_beta: KL divergence penalty coefficient

DPO

DPO trains models using preference data (preferred vs non-preferred responses) without explicit reward modeling.

Basic DPO Training

DPO Parameters

  • data_set: List of tuples containing (preferred_response, non_preferred_response)
  • model: Training model
  • logger: Logger for tracking metrics
  • lr: Learning rate
  • samples_per_batch: Batch size
  • beta: DPO beta parameter