TRL documentation
Geri Çağrılar
Geri Çağrılar
RichProgressCallback
Eğitim veya değerlendirme ilerlemesini Rich kullanarak görüntüleyen bir TrainerCallback.
LogCompletionsCallback
sınıf trl.LogCompletionsCallback
< source >( 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ğitimcinineval_stepsdeğerine varsayılan olarak ayarlanır.
Weights & Biases ve/veya Comet'e tamamlamaları kaydeden bir TrainerCallback.
BEMACallback
sınıf trl.BEMACallback
< source >( 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 olarak400) — BEMA ağırlıklarını her X adımda günceller. Makalede buna {@html "ϕ"} in the paper. - ema_power (
float, optional, defaults to0.5) — Power for the EMA decay factor. Denoted {@html "κ "} denir. EMA'yı devre dışı bırakmak için bunu0.0. - bias_power (
float, isteğe bağlı, varsayılan olarak0.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 ρ "}η"} in the paper. A large value (e.g.8.0) makes {@html "αt"} decay to0, approximating disabled bias-correction;0.0instead pins {@html "αt"} at1for every step (maximum, undecayed correction). - lag (
int, optional, defaults to10) — 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 "ρ"} ile gösterilir. - update_after (
int, isteğe bağlı, varsayılan olarak0) — BEMA ağırlıklarını güncellemeye başlamadan önceki ısınma süresi. Makalede {@html "τ"} in the paper. - multiplier (
float, optional, defaults to1.0) — Initial value for the EMA decay factor. Denoted as {@html "γ"} olarak gösterilir. - min_ema_multiplier (
float, isteğe bağlı, varsayılan0.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:
burada mevcut model ağırlıklarıdır, ilk update_after adımındaki model ağırlıklarının bir anlık görüntüsüdür, model ağırlıklarının üstel hareketli ortalamasıdır ve adım sayısıyla birlikte azalan bir ölçekleme faktörüdür şeklinde
EMA şu şekilde hesaplanır:
burada adım sayısıyla azalan bir sönümleme katsayısıdır şeklinde
WeaveCallback
sınıf trl.WeaveCallback
< source >( 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.Noneise 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)Eğitim başladığında Weave'i başlatın.