Transformers 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 (v5.22.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

Callbacks, PyTorch Trainer içindeki eğitim döngüsünün davranışını özelleştirebilen, eğitim döngüsünün durumunu inceleyebilen (ilerleme raporlama, TensorBoard veya diğer ML platformlarında günlük tutma…) ve kararlar alabilen (erken durdurma gibi) nesnelerdir.

Callbacks, döndürdükleri TrainerControl nesnesi dışında “salt okunur” kod parçalarıdır; eğitim döngüsünde hiçbir şeyi değiştiremezler. Eğitim döngüsünde değişiklik gerektiren özelleştirmeler için Trainer sınıfından türetip (trainer bölümüne örnekler için bakın) ihtiyaç duyduğunuz yöntemleri yeniden tanımlamalısınız.

Varsayılan olarak, TrainingArguments.report_to "none" olarak ayarlanır.

Geri çağrıları uygulayan ana sınıf TrainerCallback'dir. Trainer'i örneklemek için kullanılan TrainingArguments'i alır, o Trainer'ın iç durumuna TrainerState üzerinden erişebilir ve eğitim döngüsünde TrainerControl aracılığıyla bazı eylemler gerçekleştirebilir.

Kullanılabilir Geri Çağrılar

Kütüphanedeki mevcut TrainerCallback listesi şudur:

sınıf transformers.integrations.CometCallback

< >

( )

TrainerCallback sınıfı, günlükleri Comet ML'e gönderir.

kurulum

< >

( argsstatemodel )

Opsiyonel Comet entegrasyonunu yapılandırın.

Ortam:

  • COMET_MODE (str, isteğe bağlı, varsayılan olarak get_or_create): Yeni bir Comet deneyi oluşturup günlüğe kaydetmek mi yoksa mevcut bir deneye eklemek mi istendiğini kontrol eder. Aşağıdaki değerleri kabul eder:
    • get_or_create: COMET_EXPERIMENT_KEY ayarlıysa ve bu anahtarla bir Experiment zaten var mı yoksa yok mu buna göre otomatik olarak karar verir.
    • create: Her zaman yeni bir Comet Deneyi oluşturun.
    • get: Her zaman mevcut bir Comet Deneyine eklemeye çalışın. COMET_EXPERIMENT_KEY'in ayarlanmış olması gerekir.
  • COMET_START_ONLINE (bool, isteğe bağlı): Bir deneyin çevrimiçi mi yoksa çevrimdışı mı oluşturulacağı.
  • COMET_PROJECT_NAME (str, isteğe bağlı): Deneyler için Comet proje adı.
  • COMET_LOG_ASSETS (str, isteğe bağlı, varsayılan TRUE): Eğitim varlıklarının (kontrol noktaları vb.) Comet'e kaydedilip kaydedilmeyeceğini belirtir. TRUE veya FALSE olabilir.

Ortamda yapılandırılabilir bir dizi öğe için buraya bakın.

sınıf transformers.DefaultFlowCallback

< >

( )

Günlük kayıtları, değerlendirme ve kontrol noktaları için eğitim döngüsünün varsayılan akışını yöneten bir TrainerCallback.

sınıf transformers.PrinterCallback

< >

( )

Sadece günlükleri yazdıran çıplak bir TrainerCallback.

sınıf transformers.ProgressCallback

< >

( max_str_len: int = 100 )

Eğitimin veya değerlendirmenin ilerlemesini görüntüleyen bir TrainerCallback. Günlüğe yazarken dizgelerin ne kadar kısaltılacağını kontrol etmek için max_str_len değerini değiştirebilirsiniz.

sınıf transformers.EarlyStoppingCallback

< >

( early_stopping_patience: int = 1early_stopping_threshold: float | None = 0.0 )

Parametreler

  • early_stopping_patience (int) — Belirtilen metrik early_stopping_patience değerlendirme çağrısı boyunca kötüleştiğinde eğitimi durdurmak için metric_for_best_model ile birlikte kullanın.
  • early_stopping_threshold(float, opsiyonel) — Erken durdurma koşullarının sağlanması için belirtilen metrikte ne kadar bir iyileşme gerektiğini belirtmek için TrainingArguments ile metric_for_best_model ve early_stopping_patience ile birlikte kullanılır. `

Erken durdurmayı yöneten bir TrainerCallback.

Bu geri çağırma, TrainerState içindeki best_metric değerini ayarlamak için TrainingArguments argümanının load_best_model_at_end işlevselliğine bağımlıdır. TrainingArguments argümanındaki save_steps değeri eval_steps değerinden farklıysa, erken durdurmanın bir sonraki kayıt adımına kadar gerçekleşmeyeceğini unutmayın.

sınıf transformers.integrations.TensorBoardCallback

< >

( tb_writer = None )

Parametreler

  • tb_writer (SummaryWriter, isteğe bağlı) — Kullanılacak yazar. Ayarlanmamışsa bir tane oluşturulur.

TrainerCallback TensorBoard'a günlükleri gönderir.

Ortam:

  • TENSORBOARD_LOGGING_DIR (str, isteğe bağlı, varsayılan None): Sonuçların kaydedileceği günlük kayıt dizini. Varsayılan değer os.path.join(args.output_dir, default_logdir())

sınıf transformers.integrations.TrackioCallback

< >

( )

Trackio'ya metrikleri kaydeden bir TrainerCallback.

kurulum

< >

( argsstatemodel**kwargs )

İsteğe bağlı Trackio entegrasyonunu yapılandırın.

Kurulumu özelleştirmek için TrainingArguments içinde project, trackio_space_id, trackio_bucket_id, trackio_static_space_id ve hub_private_repo değerlerini de ayarlayabilirsiniz.

sınıf transformers.integrations.WandbCallback

< >

( )

TrainerCallback sınıfı, metrikleri, medya dosyalarını ve model kontrol noktalarını Weight and Biases platformuna kaydeder.

kurulum

< >

( argsstatemodel**kwargs )

Opsiyonel Weights & Biases (wandb) entegrasyonunu yapılandırın.

Gerekirse bu yöntemi alt sınıflandırıp (subclass) yeniden tanımlayarak (override) kurulumu özelleştirebilirsiniz. Daha fazla bilgi için buraya bakabilirsiniz. Ayrıca aşağıdaki ortam değişkenlerini de yeniden tanımlayabilirsiniz:

Ortam:

  • WANDB_LOG_MODEL (str, isteğe bağlı, varsayılan "false"): Eğitim sırasında modelin ve checkpoint'lerin kaydedilip kaydedilmeyeceğini belirler. "end", "checkpoint" veya "false" olabilir. "end" olarak ayarlanırsa, model eğitim sonunda yüklenecektir. "checkpoint" olarak ayarlanırsa, checkpoint her args.save_steps adımında yüklenecektir. "false" olarak ayarlanırsa, model yüklenmeyecektir. En iyi modeli yüklemek için load_best_model_at_end() ile birlikte kullanın.
  • WANDB_WATCH (str, isteğe bağlı, varsayılan "false"): "gradients", "all", "parameters" veya "false" olabilir. Gradyanları ve parametreleri günlüğe kaydetmek için "all" olarak ayarlayın.
  • WANDB_PROJECT (str, isteğe bağlı, varsayılan "huggingface"): Sonuçları farklı bir projede saklamak için bunu özel bir dize olarak ayarlayın.

sınıf transformers.integrations.MLflowCallback

< >

( )

MLflow'a günlükleri gönderen bir TrainerCallback. DISABLE_MLFLOW_INTEGRATION = TRUE ortam değişkenini ayarlayarak devre dışı bırakılabilir.

kurulum

< >

( argsstatemodel )

İsteğe bağlı MLflow entegrasyonunu yapılandırın.

Ortam:

  • HF_MLFLOW_LOG_ARTIFACTS (str, isteğe bağlı): Artefaktları günlüğe kaydetmek için MLflow .log_artifact() özelliğinin kullanılıp kullanılmayacağını belirtir. Bu, yalnızca uzak bir sunucuya, örneğin s3 veya GCS'ye günlüğe kaydedildiğinde anlam taşır. True veya 1 olarak ayarlanırsa, TrainingArguments'in output_dir içindeki her kayıtta kaydedilen her kontrol noktası, yerel veya uzak artefakt depolama alanına kopyalanır. Uzak depolama olmadan kullanılması, dosyaları yalnızca artefakt konumunuza kopyalar.
  • MLFLOW_TRACKING_URI (str, isteğe bağlı): Çalışmaların belirli bir yolda veya uzak bir sunucuda saklanıp saklanmayacağı. Varsayılan olarak ayarlanmamıştır; bu, izleme URI'sinin tamamen ayarlanmamasına neden olur.
  • MLFLOW_EXPERIMENT_NAME (str, isteğe bağlı, varsayılan None): Çalışmanın başlatılacağı MLflow experiment_name'inin kullanılıp kullanılmayacağını belirtir. Varsayılan olarak None değerini alır ve bu, MLflow'daki Default deneyine işaret eder. Aksi takdirde, etkinleştirilecek deneyin büyük/küçük harfe duyarlı adıdır. Bu ada sahip bir deney yoksa, bu ada sahip yeni bir deney oluşturulur.
  • MLFLOW_TAGS (str, isteğe bağlı): MLflow çalıştırmasına etiket olarak eklenecek anahtar/değer çiftlerinden oluşan bir sözlüğün dize dökümü. Örnek: os.environ['MLFLOW_TAGS']='{"release.candidate": "RC1", "release.version": "2.2.0"}'.
  • MLFLOW_NESTED_RUN (str, isteğe bağlı): MLflow iç içe çalıştırmalarının (nested runs) kullanılacak olup olmayacağı. True veya 1 olarak ayarlanırsa, mevcut çalıştırmanın içinde iç içe bir çalıştırma oluşturulur.
  • MLFLOW_RUN_ID (str, isteğe bağlı): Bir kontrol noktasından eğitim devam ettirildiğinde faydalı olabilecek mevcut bir çalışmaya yeniden bağlanmayı sağlar. MLFLOW_RUN_ID ortam değişkeni ayarlandığında, start_run belirtilen çalışma kimliğine sahip bir çalışmayı yeniden başlatmayı dener ve diğer parametreler yok sayılır.
  • MLFLOW_FLATTEN_PARAMS (str, isteğe bağlı, varsayılan False): Kayıt öncesi parametre sözlüğünün düzleştirilip düzleştirilmeyeceğini belirtir.
  • MLFLOW_MAX_LOG_PARAMS (int, isteğe bağlı): Çalışmada kaydedilecek parametrelerin maksimum sayısını ayarlar.

sınıf transformers.integrations.AzureMLCallback

< >

( azureml_run = None )

TrainerCallback sınıfı, günlükleri AzureML adresine gönderir.

sınıf transformers.integrations.CodeCarbonCallback

< >

( )

Eğitimin CO2 emisyonunu izleyen bir TrainerCallback.

sınıf transformers.integrations.ClearMLCallback

< >

( )

TrainerCallback sınıfı, günlükleri ClearML'e gönderir.

Ortam:

  • CLEARML_PROJECT (str, isteğe bağlı, varsayılan HuggingFace Transformers): ClearML proje adı.
  • CLEARML_TASK (str, isteğe bağlı, varsayılan Trainer): ClearML görev adı.
  • CLEARML_LOG_MODEL (bool, isteğe bağlı, varsayılan False): Eğitim sırasında modellerin artefakt olarak kaydedilip kaydedilmeyeceğini belirtir.

sınıf transformers.integrations.DagsHubCallback

< >

( )

DagsHub için kayıt tutan bir TrainerCallback. MLflowCallback sınıfını genişletir

kurulum

< >

( *args**kwargs )

DagsHub'ın Kayıt (Logging) entegrasyonunu yapılandırın.

Ortam:

  • HF_DAGSHUB_LOG_ARTIFACTS (str, isteğe bağlı): Deneyin veri ve model artefaktlarının kaydedilip kaydedilmeyeceğini belirtir. Varsayılan değer False'tür.

sınıf transformers.integrations.FlyteCallback

< >

( save_log_history: bool = Truesync_checkpoints: bool = True )

Parametreler

  • save_log_history (bool, isteğe bağlı, varsayılan True) — True olarak ayarlandığında, eğitim günlükleri bir Flyte Deck olarak kaydedilir.
  • sync_checkpoints (bool, isteğe bağlı, varsayılan True) — True olarak ayarlandığında, kontrol noktaları Flyte ile senkronize edilir ve bir kesinti durumunda eğitimin devam ettirilmesinde kullanılabilir.

TrainerCallback sınıfı, günlükleri Flyte platformuna gönderir. NOT: Bu geri çağırma yalnızca bir Flyte görevi içinde çalışır.

Örnek:

# Note: This example skips over some setup steps for brevity.
from flytekit import current_context, task


@task
def train_hf_transformer():
    cp = current_context().checkpoint
    trainer = Trainer(..., callbacks=[FlyteCallback()])
    output = trainer.train(resume_from_checkpoint=cp.restore())

sınıf transformers.integrations.KubeflowCallback

< >

( )

Kubeflow Trainer için eğitim ilerlemesini raporlayan bir TrainerCallback.

Bu geri çağırma, TrainJobRuntimeStatus özellik kapısı etkinleştirilmiş bir Kubeflow TrainJob içinde eğitim yapıldığında otomatik olarak kaydedilir. Kubeflow denetleyicisi, gerekli ortam değişkenlerini eğitim pod'una enjekte eder.

Ortam Değişkenleri (kontrolcü tarafından enjekte edilir):

  • KUBEFLOW_TRAINER_SERVER_URL: Durum güncellemeleri için HTTPS uç noktası
  • KUBEFLOW_TRAINER_SERVER_CA_CERT: TLS doğrulaması için CA sertifikasının yolu
  • KUBEFLOW_TRAINER_SERVER_TOKEN: Kimlik doğrulama için hizmet hesabı belirtecinin yolu

Bildirilen Bilgiler:

  • İlerleme yüzdesi (0-100%)
  • Kalan tahmini süre (saniye)
  • Eğitim metrikleri (loss, learning_rate, vb.)

Özellikler:

  • Kontrolcüyü aşırı yüklemeyi önlemek için otomatik boğma (5 saniyede en fazla 1 güncelleme)
  • Dosya G/İ'yi en aza indirmek için token önbellekleme (5 dakika)
  • Dağıtık eğitimde yalnızca 0. sıra ilerlemeyi raporlar
  • Sessiz hatalar - ağ sorunları eğitimi yarıda kesmez

Ortam değişkeni DISABLE_KUBEFLOW_INTEGRATION=TRUE olarak ayarlanarak devre dışı bırakılabilir.

sınıf transformers.integrations.DVCLiveCallback

< >

( live: typing.Any | None = Nonelog_model: typing.Union[typing.Literal['all'], bool, NoneType] = None**kwargs )

Parametreler

  • live (dvclive.Live, isteğe bağlı, varsayılan None) — İsteğe bağlı Live örneği. None ise, **kwargs kullanılarak yeni bir örnek oluşturulur.
  • log_model (Union[Literal[“all”], bool], isteğe bağlı, varsayılan None) — Trainer tarafından oluşturulan kontrol noktalarını kaydetmek için dvclive.Live.log_artifact() kullanılacak mı? True olarak ayarlanırsa, eğitimin sonunda son kontrol noktası kaydedilir. "all" olarak ayarlanırsa, her kontrol noktasında TrainingArguments'nin output_dir dizini tamamen kaydedilir.

TrainerCallback sınıfı, günlükleri DVCLive'ya gönderir.

Entegrasyonu yapılandırmak için setup içinde aşağıdaki ortam değişkenlerini kullanın. Bu geri bildirimi bu ortam değişkenlerinin ötesinde özelleştirmek için buraya bakın.

kurulum

< >

( argsstatemodel )

İsteğe bağlı DVCLive entegrasyonunu yapılandırın. Bu geri çağrıyı aşağıdaki ortam değişkenlerinin ötesinde özelleştirmek için buraya bakın.

Ortam:

  • HF_DVCLIVE_LOG_MODEL (str, isteğe bağlı): Trainer tarafından oluşturulan kontrol noktalarını (checkpoint) günlüğe kaydetmek için dvclive.Live.log_artifact() kullanılacak mı? True veya 1 olarak ayarlanırsa, eğitim sonunda son kontrol noktası günlüğe kaydedilir. all olarak ayarlanırsa, her kontrol noktasında TrainingArguments'in output_dir dizini tamamen günlüğe kaydedilir.

sınıf transformers.integrations.SwanLabCallback

< >

( )

TrainerCallback sınıfı, metrikleri, medyayı ve model denetim noktalarını SwanLab üzerinden kaydeder.

kurulum

< >

( argsstatemodel**kwargs )

İsteğe bağlı SwanLab (swanlab) entegrasyonunu yapılandırın.

Gerekirse kurulumu özelleştirmek için bu yöntemi alt sınıflandırıp geçersiz kılabilirsiniz. Daha fazla bilgi için buraya bakın.

Aşağıdaki ortam değişkenlerini de geçersiz kılabilirsiniz. Ortam değişkenleri hakkında daha fazla bilgiyi burada bulabilirsiniz.

Ortam:

  • SWANLAB_API_KEY (str, isteğe bağlı, varsayılan None): Bulut API Anahtarı. Giriş sırasında bu ortam değişkeni önce kontrol edilir. Var değilse, sistem kullanıcının zaten oturum açmış olup olmadığını kontrol eder. Değilse, oturum açma süreci başlatılır.

    • login arayüzüne bir dize geçirilirse, bu ortam değişkeni yok sayılır.
    • Kullanıcı zaten oturum açmışsa, bu ortam değişkeni yerel olarak saklanan oturum bilgilerine öncelik tanır.
  • SWANLAB_PROJECT (str, isteğe bağlı, varsayılan None): Sonuçları farklı bir projede saklamak için bunu özel bir dize olarak ayarlayın. Belirtilmezse, çalışan dizinin adı kullanılır.

  • SWANLAB_LOG_DIR (str, isteğe bağlı, varsayılan swanlog): Bu ortam değişkeni, yerel modda çalışırken günlük dosyalarının depolama yolunu belirtir. Varsayılan olarak, günlükler çalışma dizininin altındaki swanlog adlı bir klasörde saklanır.

  • SWANLAB_MODE (Literal["local", "cloud", "disabled"], isteğe bağlı, varsayılan cloud): SwanLab’ın, operatör tarafından kaydedilen geri çağrıları içeren ayrıştırma modu. Şu anda üç mod bulunmaktadır: local, cloud ve disabled. Not: Büyük/küçük harfe duyarlıdır. Daha fazla bilgi için buraya bakın

  • SWANLAB_LOG_MODEL (str, isteğe bağlı, varsayılan None): SwanLab şu anda kayıt modu işlevini desteklememektedir. Bu özellik gelecekteki bir sürümde kullanılabilir olacaktır.

  • SWANLAB_WEB_HOST (str, isteğe bağlı, varsayılan None): Özel sürüm için SwanLab bulut ortamının web adresi (ücretsizdir)

  • SWANLAB_API_HOST (str, isteğe bağlı, varsayılan None): Özel sürüm için SwanLab bulut ortamının API adresi (ücretsizdir)

  • SWANLAB_RUN_ID (str, isteğe bağlı, varsayılan None): Önceki bir çalışmayı sürdürmek için deney kimliği. Mevcut bir deneyi devam ettirmek için SWANLAB_RESUME ile birlikte kullanın.

  • SWANLAB_RESUME (str, isteğe bağlı, varsayılan None): Devam modu ("must", "allow", "never"). resume_from_checkpoint kullanıldığında varsayılan olarak "allow" değerine ayarlanır.

TrainerCallback

sınıf transformers.TrainerCallback

< >

( )

Parametreler

  • args (TrainingArguments) — Trainer örneğini oluşturmak için kullanılan eğitim argümanları.
  • state (TrainerState) — Trainer'ın mevcut durumu.
  • control (TrainerControl) — Trainer'a döndürülen ve bazı kararlar almak için kullanılabilen nesne.
  • model (PreTrainedModel veya torch.nn.Module) — Eğitilen model.
  • processing_class ([PreTrainedTokenizer veya BaseImageProcessor veya ProcessorMixin veya FeatureExtractionMixin]) — Verilerin kodlanmasında kullanılan işleme sınıfı. Bir tokenizer, bir processor, bir image processor veya bir feature extractor olabilir.
  • optimizer (torch.optim.Optimizer) — Eğitim adımları için kullanılan optimizör.
  • lr_scheduler (torch.optim.lr_scheduler.LambdaLR) — Öğrenme hızını ayarlamak için kullanılan zamanlayıcı.
  • train_dataloader (torch.utils.data.DataLoader, isteğe bağlı) — Eğitim için kullanılan mevcut dataloader.
  • eval_dataloader (torch.utils.data.DataLoader, isteğe bağlı) — Değerlendirme için kullanılan mevcut veri yükleyici.
  • metrics (dict[str, float]) — Son değerlendirme aşamasında hesaplanan metrikler.

    Bunlar yalnızca on_evaluate olayında erişilebilir.

  • logs (dict[str, float]) — Kaydedilecek değerler.

    Bunlar yalnızca on_log olayında erişilebilir.

Eğitim döngüsünün durumunu belirli olaylarda inceleyip bazı kararlar alacak nesneler için bir sınıf. Bu olayların her birinde aşağıdaki argümanlar kullanılabilir:

control nesnesi, geri çağrının değiştirebileceği tek nesnedir; bu durumda onu değiştiren olay, değiştirilmiş sürümü döndürmelidir.

args, state ve control argümanları tüm olaylar için konumsal (positional) argümanlardır; diğerleri kwargs içinde gruplanır. Olayın imzasında bunları kullanarak ihtiyacınız olanları açabilirsiniz. Örnek olarak, basit PrinterCallback koduna bakın.

Örnek:

class PrinterCallback(TrainerCallback):
    def on_log(self, args, state, control, logs=None, **kwargs):
        _ = logs.pop("total_flos", None)
        if state.is_local_process_zero:
            print(logs)

on_epoch_begin

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Bir epoch'un başında çağrılan olay.

on_epoch_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Bir epoch'un sonunda çağrılan olay.

on_evaluate

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Bir değerlendirme aşamasından sonra çağrılan olay.

on_init_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Trainer başlatılmasının sonunda çağrılan olay.

on_log

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Son günlükler kaydedildikten sonra çağrılan olay.

on_optimizer_step

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Optimizatör adımı sonrasında ancak gradyanlar sıfırlanmadan önce çağrılan olay. Gradyanları izlemek için kullanışlıdır.

on_pre_optimizer_step

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Optimizatör adımı öncesinde ancak gradyan kırpma sonrasında çağrılan olay. Gradyanları izlemek için kullanışlıdır.

on_predict

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControlmetrics**kwargs )

Başarılı bir tahminin ardından çağrılan olay.

on_prediction_step

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Bir tahmin adımından sonra çağrılan olay.

on_push_begin

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Modelin hub'a gönderilmeden önce, Trainer.push_to_hub ve Trainer._push_from_checkpoint başlangıcında çağrılan olay.

on_save

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Bir kontrol noktası kaydedildikten sonra çağrılan olay.

on_step_begin

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Bir eğitim adımının başında çağrılan olay. Gradyan biriktirme kullanılıyorsa, bir eğitim adımı birkaç girdi alabilir.

on_step_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Bir eğitim adımının sonunda çağrılan olay. Gradyan biriktirme kullanılıyorsa, bir eğitim adımı birkaç girdi alabilir.

on_substep_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Gradyan birikimi sırasında bir alt adımın sonunda çağrılan olay.

on_train_begin

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Eğitimin başında çağrılan olay.

on_train_end

< >

( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )

Eğitimin sonunda çağrılan olay.

PyTorch Trainer ile özel bir geri çağrının nasıl kaydedileceğine dair bir örnek:

class MyCallback(TrainerCallback):
    "A callback that prints a message at the beginning of training"

    def on_train_begin(self, args, state, control, **kwargs):
        print("Starting training")


trainer = Trainer(
    model,
    args,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset,
    callbacks=[MyCallback],  # We can either pass the callback class this way or an instance of it (MyCallback())
)

Bir geri çağrımı kaydetmenin başka bir yolu, aşağıdaki gibi trainer.add_callback() fonksiyonunu çağırmaktır:

trainer = Trainer(...)
trainer.add_callback(MyCallback)
# Alternatively, we can pass an instance of the callback class
trainer.add_callback(MyCallback())

TrainerState

sınıf transformers.TrainerState

< >

( epoch: float = 0global_step: int = 0max_steps: int = 0logging_steps: int = 500eval_steps: int = 500save_steps: int = 500train_batch_size: int | None = Nonenum_train_epochs: int = 0num_input_tokens_seen: int = 0total_flos: float = 0log_history: list = Nonebest_metric: float | None = Nonebest_global_step: int | None = Nonebest_model_checkpoint: str | None = Noneis_local_process_zero: bool = Trueis_world_process_zero: bool = Trueis_hyper_param_search: bool = Falsetrial_name: str | None = Nonetrial_params: dict[str, str | float | int | bool] | None = Nonestateful_callbacks: list['TrainerCallback'] | None = None )

Parametreler

  • epoch (float, isteğe bağlı) — Yalnızca eğitim sırasında ayarlanır, eğitimin hangi epoch'ta olduğunu temsil eder (ondalık kısım, mevcut epoch'un tamamlanan yüzdesini gösterir).
  • global_step (int, isteğe bağlı, varsayılan 0) — Eğitim sırasında, tamamlanan güncelleme adım sayısını temsil eder.
  • max_steps (int, isteğe bağlı, varsayılan 0) — Mevcut eğitim sırasında yapılacak güncelleme adım sayısı.
  • logging_steps (int, isteğe bağlı, varsayılan 500) — Her X güncelleme adımında günlük kaydı yap
  • eval_steps (int, isteğe bağlı) — Her X adımda bir değerlendirme çalıştırın.
  • save_steps (int, isteğe bağlı, varsayılan 500) — Her X güncelleme adımında bir kontrol noktası kaydedin.
  • train_batch_size (int, isteğe bağlı) — Eğitim veri yükleyicisi için parti boyutu. Yalnızca auto_find_batch_size kullanıldığında gereklidir.
  • num_input_tokens_seen (int, isteğe bağlı, varsayılan 0) — Girdi tokenlarını izlerken, eğitim sırasında görülen token sayısı (girdi token sayısı, tahmin token sayısı değil).
  • total_flos (float, isteğe bağlı, varsayılan 0) — Eğitimin başlangıcından bu yana model tarafından gerçekleştirilen toplam kayan nokta işlem sayısı (taşmayı önlemek için float olarak saklanır).
  • log_history (list[dict[str, float]], isteğe bağlı) — Eğitimin başlangıcından bu yana yapılan günlüklerin listesi.
  • best_metric (float, isteğe bağlı) — En iyi modeli izlerken, şimdiye kadar karşılaşılan en iyi metrik değeri.
  • best_global_step (int, isteğe bağlı) — En iyi modeli izlerken, en iyi metrikle karşılaşılan adım. best_model_checkpoint değerini ayarlamak için kullanılır.
  • best_model_checkpoint (str, isteğe bağlı) — En iyi modeli izlerken, şimdiye kadar karşılaşılan en iyi modelin checkpoint adının değeri.
  • is_local_process_zero (bool, isteğe bağlı, varsayılan True) — Bu sürecin, dağıtık eğitimde birden fazla makine kullanıldığında yerel (örneğin tek bir makinede) ana süreç olup olmadığı.
  • is_world_process_zero (bool, isteğe bağlı, varsayılan True) — Bu sürecin küresel ana süreç olup olmadığı (birden fazla makinede dağıtık bir şekilde eğitim yapıldığında, bu yalnızca bir süreç için True olacaktır).
  • is_hyper_param_search (bool, isteğe bağlı, varsayılan False) — Trainer.hyperparameter_search kullanılarak bir hiperparametre araması sürecinde olup olmadığımızı belirtir. Bu, TensorBoard'da verilerin nasıl kaydedileceğini etkiler.
  • stateful_callbacks (list[StatefulTrainerCallback], isteğe bağlı) — Durumlarının kaydedilmesi veya geri yüklenmesi gereken, Trainer'a bağlı geri çağrılar. İlgili geri çağrılar bir state ve from_state fonksiyonu uygulamasımalıdır.

Kontrol noktası oluşturulurken model ve optimizörle birlikte kaydedilecek ve TrainerCallback'e iletilecek Trainer iç durumunu içeren bir sınıf

Bu sınıfın tamamında, bir adım bir güncelleme adımı olarak anlaşılmalıdır. Gradyan biriktirme kullanıldığında, bir güncelleme adımı birden fazla ileri ve geri geçiş gerektirebilir: gradient_accumulation_steps=n kullanıyorsanız, bir güncelleme adımı n partiden geçmeyi gerektirir.

compute_steps

< >

( argsmax_steps )

Kayıt, eval ve save adımları için orantı olup olmadığına göre mutlak değeri hesaplar ve saklar.

init_training_references

< >

( trainermax_stepsnum_train_epochstrial )

self içinde gerekli olan başlangıç eğitim referanslarını saklar

load_from_json

< >

( json_path: str )

json_path içeriğinden bir örnek oluşturun.

save_to_json

< >

( json_path: str )

Bu örneğin içeriğini json_path içinde JSON biçiminde kaydedin.

TrainerControl

sınıf transformers.TrainerControl

< >

( should_training_stop: bool = Falseshould_epoch_stop: bool = Falseshould_save: bool = Falseshould_evaluate: bool = Falseshould_log: bool = False )

Parametreler

  • should_training_stop (bool, isteğe bağlı, varsayılan olarak False) — Eğitimin yarıda kesilip kesilmeyeceğini belirtir.

    True ise, bu değişken False olarak geri ayarlanmaz. Eğitim yalnızca durur.

  • should_epoch_stop (bool, isteğe bağlı, varsayılan olarak False) — Geçerli epoch'un yarıda kesilip kesilmeyeceğini belirtir.

    True ise, bu değişken bir sonraki epoch'un başlangıcında False olarak ayarlanır.

  • should_save (bool, isteğe bağlı, varsayılan olarak False) — Modelin bu adımda kaydedilip kaydedilmeyeceği.

    True ise, bu değişken bir sonraki adımın başlangıcında False olarak ayarlanır.

  • should_evaluate (bool, isteğe bağlı, varsayılan olarak False) — Modelin bu adımda değerlendirilip değerlendirilmeyeceği.

    True ise, bu değişken bir sonraki adımın başlangıcında False olarak ayarlanır.

  • should_log (bool, isteğe bağlı, varsayılan olarak False) — Kayıtların bu adımda raporlanıp raporlanmayacağı.

    True ise, bu değişken bir sonraki adımın başlangıcında False olarak ayarlanır.

Trainer kontrol akışını yöneten bir sınıf. Bu sınıf, eğitim döngüsündeki bazı anahtarları etkinleştirmek için TrainerCallback tarafından kullanılır.

Update on GitHub