Fine-tuning efficiente in RLHF

Reinforcement Learning from Human Feedback (RLHF)

Mina Parham

AI Engineer

Fine-tuning a efficienza di parametri

  • Fine-tuning dell'intero modello

Illustrazione che rappresenta una rete neurale.

Reinforcement Learning from Human Feedback (RLHF)

Fine-tuning a efficienza di parametri

  • Fine-tuning con PEFT

Illustrazione di una rete neurale con la maggior parte dei parametri congelati.

  • LoRA: aggiorna solo pochi layer
  • Quantizzazione: riduce la precisione del tipo di dato
Reinforcement Learning from Human Feedback (RLHF)

Passo 1: carica il modello attivo in precisione a 8 bit

from peft import prepare_model_for_int8_training

pretrained_model = AutoModelForCausalLM.from_pretrained( model_name, load_in_8bit=True )
pretrained_model_8bit = prepare_model_for_int8_training(pretrained_model)
Reinforcement Learning from Human Feedback (RLHF)

Passo 2: aggiungi adapter addestrabili con peft

from peft import LoraConfig, get_peft_model


config = LoraConfig(
r=32, # Rank delle matrici a bassa dimensione
lora_alpha=32, # Fattore di scala per gli aggiornamenti LoRA
lora_dropout=0.1, # Tasso di dropout per i layer LoRA
bias="lora_only"# Aggiorna solo i termini di bias dei layer LoRA, gli altri restano congelati
)
lora_model = get_peft_model(pretrained_model_8bit, config) model = AutoModelForCausalLMWithValueHead.from_pretrained(lora_model)
Reinforcement Learning from Human Feedback (RLHF)

Passo 3: usa un modello per logits di riferimento e attivi

ppo_trainer = PPOTrainer(
    config, # La config appena definita
    model, # Il nostro modello PPO
    ref_model=None, 
    tokenizer=tokenizer, 
    dataset=dataset, 
    data_collator=collator, 
    optimizer=optimizer
)
Reinforcement Learning from Human Feedback (RLHF)

Esercitiamoci!

Reinforcement Learning from Human Feedback (RLHF)

Preparing Video For Download...