TRL documentation

Geri Çağrılar

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v1.17.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Geri Çağrılar

RichProgressCallback

sınıf trl.RichProgressCallback

< >

( )

Eğitim veya değerlendirme ilerlemesini Rich kullanarak görüntüleyen bir TrainerCallback.

LogCompletionsCallback

sınıf trl.LogCompletionsCallback

< >

( trainer: Trainergeneration_config: transformers.generation.configuration_utils.GenerationConfig | None = Nonenum_prompts: int | None = Nonefreq: int | None = None )

Parametreler

  • trainer (Trainer) — Callback'ın bağlanacağı Trainer. Trainer'ın değerlendirme veri seti, tamamlamaları üretmek için istemleri içeren bir "prompt" sütunu içermelidir.
  • generation_config (GenerationConfig, isteğe bağlı) — Tamamlamaları üretmek için kullanılacak üretim yapılandırması.
  • num_prompts (int, isteğe bağlı) — Tamamlamalar üretilecek istemlerin sayısı. Verilmezse, varsayılan olarak değerlendirme veri setindeki örnek sayısına eşittir.
  • freq (int, isteğe bağlı) — Tamamlamaların kaydedileceği sıklık. Verilmezse, eğitimcinin eval_steps değerine varsayılan olarak ayarlanır.

Weights & Biases ve/veya Comet'e tamamlamaları kaydeden bir TrainerCallback.

Kullanım:

>>> trainer = DPOTrainer(...)
>>> completions_callback = LogCompletionsCallback(trainer=trainer)
>>> trainer.add_callback(completions_callback)

BEMACallback

sınıf trl.BEMACallback

< >

( update_freq: int = 400ema_power: float = 0.5bias_power: float = 0.2lag: int = 10update_after: int = 0multiplier: float = 1.0min_ema_multiplier: float = 0.0device: str = 'cpu' )

Parametreler

  • update_freq (int, isteğe bağlı, varsayılan olarak 400) — BEMA ağırlıklarını her X adımda günceller. Makalede buna {@html "ϕ \\phi ϕ"} in the paper.
  • ema_power (float, optional, defaults to 0.5) — Power for the EMA decay factor. Denoted {@html "κ \\kappa κ "} denir. EMA'yı devre dışı bırakmak için bunu 0.0.
  • bias_power (float, isteğe bağlı, varsayılan olarak 0.2) — BEMA ölçekleme faktörü için güç. Makalede {@html "η \\eta η"} ile gösterilir. Büyük bir değer (ör. 8.0), {@html "αt \\alpha_t αt​"} değerini 0'a düşürerek önyargı düzeltmesinin devre dışı bırakılmasını taklit eder; 0.0 değeri ise {@html "αt \\alpha_t αt​"} değerini her adımda 1'de sabitler (maksimum, azalmamış düzeltme). lag (int, isteğe bağlı, varsayılan olarak 10) — Ağırlık azalma zamanlamasındaki başlangıç ofseti, güncellemeler için sanal bir başlangıç yaşı görevi görerek erken aşamadaki pürüzsüzlüğü kontrol eder. Makalede {@html "ρ \\rho ρ "}η \\eta η"} in the paper. A large value (e.g. 8.0) makes {@html "αt \\alpha_t αt​"} decay to 0, approximating disabled bias-correction; 0.0 instead pins {@html "αt \\alpha_t αt​"} at 1 for every step (maximum, undecayed correction).
  • lag (int, optional, defaults to 10) — Initial offset in the weight decay schedule that controls early-stage smoothness by acting as a virtual starting age for the updates. Denoted as {@html "ρ \\rho ρ"} ile gösterilir.
  • update_after (int, isteğe bağlı, varsayılan olarak 0) — BEMA ağırlıklarını güncellemeye başlamadan önceki ısınma süresi. Makalede {@html "τ \\tau τ"} in the paper.
  • multiplier (float, optional, defaults to 1.0) — Initial value for the EMA decay factor. Denoted as {@html "γ \\gamma γ"} olarak gösterilir.
  • min_ema_multiplier (float, isteğe bağlı, varsayılan 0.0) — EMA sönümleme katsayısı için minimum değer.
  • device (str, isteğe bağlı, varsayılan "cpu") — BEMA tamponları için kullanılacak cihaz, örn. "cpu" veya "cuda". Çoğu durumda, OOM (bellek taşması) sorununu önlemek için bu cihazın, eğitimde kullanılan cihazdan FARKLI OLMASI GEREKTİĞİNİ unutmayın.

Adam Block ve Cyril Zhang tarafından BEMA (Bias-Corrected Exponential Moving Average) uygulayan bir TrainerCallback. https://github.com/abblock/bema adresindeki kod, MIT lisansı altındadır.

BEMA, şu şekilde ölçeklenen model ağırlıklarını hesaplar: θt′=αt⋅(θt−θ0)+EMAt \theta_t' = \alpha_t \cdot (\theta_t - \theta_0) + \text{EMA}_t

burada θt \theta_t mevcut model ağırlıklarıdır, θ0 \theta_0 ilk update_after adımındaki model ağırlıklarının bir anlık görüntüsüdür, EMAt \text{EMA}_t model ağırlıklarının üstel hareketli ortalamasıdır veαt \alpha_t adım sayısıyla birlikte azalan bir ölçekleme faktörüdür t t şeklinde αt=(ρ+γ⋅t)−η. \alpha_t = (\rho + \gamma \cdot t)^{-\eta}.

EMA şu şekilde hesaplanır: EMAt=(1−βt)⋅EMAt−1+βt⋅θt \text{EMA}_t = (1 - \beta_t) \cdot \text{EMA}_{t-1} + \beta_t \cdot \theta_t

burada βt \beta_t adım sayısıyla azalan bir sönümleme katsayısıdır t t şeklinde βt=(ρ+γ⋅t)−κ. \beta_t = (\rho + \gamma \cdot t)^{-\kappa}.

Örnek:

>>> from trl import BEMACallback

>>> trainer = Trainer(..., callbacks=[BEMACallback()])

WeaveCallback

sınıf trl.WeaveCallback

< >

( trainer: Trainerproject_name: str | None = Nonescorers: dict[str, callable] | None = Nonegeneration_config: transformers.generation.configuration_utils.GenerationConfig | None = Nonenum_prompts: int | None = Nonedataset_name: str = 'eval_dataset'model_name: str | None = None )

Parametreler

  • trainer (Trainer) — Callback'ın bağlanacağı Trainer. Trainer'ın değerlendirme veri seti, tamamlamaları üretmek için istemleri içeren bir "prompt" sütunu içermelidir.
  • project_name (str, isteğe bağlı) — Verilerin kaydedileceği Weave projesinin adı. Sağlanmazsa, mevcut weave istemcisi kullanılmaya çalışılır veya aktif wandb çalışmasının proje adına geri dönülür. Bunların hiçbiri kullanılamıyorsa bir hata oluşturur.
  • scorers (dict[str, Callable], isteğe bağlı) — Skorer adlarını skorer fonksiyonlarına eşleyen sözlük. None ise izleme modunda çalışır (yalnızca tahminler). Sağlanırsa değerlendirme modunda çalışır (tahminler + puanlar + özet). Skorer fonksiyonlarının imzası şu şekilde olmalıdır: scorer(prompt: str, completion: str) -> float | int
  • generation_config (GenerationConfig, isteğe bağlı) — Tamamlamaları üretmek için kullanılacak üretim yapılandırması.
  • num_prompts (int, isteğe bağlı) — Tamamlamalar üretilecek istemlerin sayısı. Verilmezse, varsayılan olarak değerlendirme veri setindeki örnek sayısına eşittir.
  • dataset_name (str, isteğe bağlı, varsayılan "eval_dataset") — Weave'deki veri seti meta verileri için ad.
  • model_name (str, isteğe bağlı) — Weave'deki model meta verileri için ad. Sağlanmazsa, model yapılandırmasından çıkarılmaya çalışılır.

W&B Weave'e izleri ve değerlendirmeleri kaydeden bir TrainerCallback. Geri çağrı, her değerlendirme adımında izleri ve değerlendirmeleri kaydetmek için https://weave-docs.wandb.ai/guides/evaluation/evaluation_logger/ kullanır.

scorers parametresine dayalı olarak iki modu destekler:

  • İzleme Modu (scorers=None olduğunda): Veri keşfi ve analizi için tahminleri kaydeder
  • Değerlendirme Modu (puanlayıcılar sağlandığında): Puanlama ve özet metriklerle tahminleri kaydeder

Her iki mod da yapılandırılmış ve tutarlı veri günlükleme için Weave'in EvaluationLogger'ını kullanır.

Geri çağrı, eğitim adımları yerine değerlendirme aşamalarında (on_evaluate) veri kaydeder; bu durum onu daha verimli ve anlamsal olarak doğru kılar. weave kurulumunun eksik olmasını, uyarılar kaydederek ve weave'e özgü işlevselliği atlayarak zarif bir şekilde ele alır. Ayrıca yeni weave istemcileri başlatmadan önce mevcut weave istemcilerini kontrol eder.

Kullanım:

# Tracing mode (just log predictions)
trainer = DPOTrainer(...)
weave_callback = WeaveTraceCallback(trainer=trainer)  # project_name optional
trainer.add_callback(weave_callback)

# Or specify a project name
weave_callback = WeaveTraceCallback(trainer=trainer, project_name="my-llm-training")
trainer.add_callback(weave_callback)


# Evaluation mode (log predictions + scores + summary)
def accuracy_scorer(prompt: str, completion: str) -> float:
    # Your scoring logic here (metadata available via eval_attributes)
    return score


weave_callback = WeaveTraceCallback(
    trainer=trainer,
    project_name="my-llm-training",  # optional and needed only if weave client is not initialized
    scorers={"accuracy": accuracy_scorer},
)
trainer.add_callback(weave_callback)

on_train_begin

< >

( argsstatecontrol**kwargs )

Eğitim başladığında Weave'i başlatın.

Update on GitHub