Transformers documentation
Geri Çağrılar
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:
TrainerCallback sınıfı, günlükleri Comet ML'e gönderir.
Opsiyonel Comet entegrasyonunu yapılandırın.
Ortam:
- COMET_MODE (
str, isteğe bağlı, varsayılan olarakget_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_KEYayarlı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ılanTRUE): Eğitim varlıklarının (kontrol noktaları vb.) Comet'e kaydedilip kaydedilmeyeceğini belirtir.TRUEveyaFALSEolabilir.
Ortamda yapılandırılabilir bir dizi öğe için buraya bakın.
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.
Sadece günlükleri yazdıran çıplak bir TrainerCallback.
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
< source >( early_stopping_patience: int = 1early_stopping_threshold: float | None = 0.0 )
Parametreler
- early_stopping_patience (
int) — Belirtilen metrikearly_stopping_patiencedeğerlendirme çağrısı boyunca kötüleştiğinde eğitimi durdurmak içinmetric_for_best_modelile 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 ilemetric_for_best_modelveearly_stopping_patienceile 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
< source >( tb_writer = None )
TrainerCallback TensorBoard'a günlükleri gönderir.
Ortam:
- TENSORBOARD_LOGGING_DIR (
str, isteğe bağlı, varsayılanNone): Sonuçların kaydedileceği günlük kayıt dizini. Varsayılan değer os.path.join(args.output_dir, default_logdir())
Trackio'ya metrikleri kaydeden bir TrainerCallback.
İ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.
TrainerCallback sınıfı, metrikleri, medya dosyalarını ve model kontrol noktalarını Weight and Biases platformuna kaydeder.
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 herargs.save_stepsadımında yüklenecektir."false"olarak ayarlanırsa, model yüklenmeyecektir. En iyi modeli yüklemek içinload_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.
MLflow'a günlükleri gönderen bir TrainerCallback. DISABLE_MLFLOW_INTEGRATION = TRUE ortam değişkenini ayarlayarak devre dışı bırakılabilir.
İ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.Trueveya 1 olarak ayarlanırsa, TrainingArguments'inoutput_diriç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ılanNone): Çalışmanın başlatılacağı MLflow experiment_name'inin kullanılıp kullanılmayacağını belirtir. Varsayılan olarakNonedeğerini alır ve bu, MLflow'dakiDefaultdeneyine 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ğı.Trueveya 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_IDortam değişkeni ayarlandığında,start_runbelirtilen ç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ılanFalse): 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.
TrainerCallback sınıfı, günlükleri AzureML adresine gönderir.
Eğitimin CO2 emisyonunu izleyen bir TrainerCallback.
TrainerCallback sınıfı, günlükleri ClearML'e gönderir.
Ortam:
- CLEARML_PROJECT (
str, isteğe bağlı, varsayılanHuggingFace Transformers): ClearML proje adı. - CLEARML_TASK (
str, isteğe bağlı, varsayılanTrainer): ClearML görev adı. - CLEARML_LOG_MODEL (
bool, isteğe bağlı, varsayılanFalse): Eğitim sırasında modellerin artefakt olarak kaydedilip kaydedilmeyeceğini belirtir.
DagsHub için kayıt tutan bir TrainerCallback. MLflowCallback sınıfını genişletir
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ğerFalse'tür.
sınıf transformers.integrations.FlyteCallback
< source >( save_log_history: bool = Truesync_checkpoints: bool = True )
Parametreler
- save_log_history (
bool, isteğe bağlı, varsayılanTrue) — True olarak ayarlandığında, eğitim günlükleri bir Flyte Deck olarak kaydedilir. - sync_checkpoints (
bool, isteğe bağlı, varsayılanTrue) — 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.
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 yoluKUBEFLOW_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
< source >( live: typing.Any | None = Nonelog_model: typing.Union[typing.Literal['all'], bool, NoneType] = None**kwargs )
Parametreler
- live (
dvclive.Live, isteğe bağlı, varsayılanNone) — İ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çindvclive.Live.log_artifact()kullanılacak mı?Trueolarak ayarlanırsa, eğitimin sonunda son kontrol noktası kaydedilir."all"olarak ayarlanırsa, her kontrol noktasında TrainingArguments'ninoutput_dirdizini 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.
İ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çindvclive.Live.log_artifact()kullanılacak mı?Trueveya 1 olarak ayarlanırsa, eğitim sonunda son kontrol noktası günlüğe kaydedilir.allolarak ayarlanırsa, her kontrol noktasında TrainingArguments'inoutput_dirdizini tamamen günlüğe kaydedilir.
TrainerCallback sınıfı, metrikleri, medyayı ve model denetim noktalarını SwanLab üzerinden kaydeder.
İ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ılanNone): 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ılanNone): 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ılanswanlog): 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ılancloud): 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ınSWANLAB_LOG_MODEL (
str, isteğe bağlı, varsayılanNone): 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ılanNone): Özel sürüm için SwanLab bulut ortamının web adresi (ücretsizdir)SWANLAB_API_HOST (
str, isteğe bağlı, varsayılanNone): Özel sürüm için SwanLab bulut ortamının API adresi (ücretsizdir)SWANLAB_RUN_ID (
str, isteğe bağlı, varsayılanNone): Önceki bir çalışmayı sürdürmek için deney kimliği. Mevcut bir deneyi devam ettirmek içinSWANLAB_RESUMEile birlikte kullanın.SWANLAB_RESUME (
str, isteğe bağlı, varsayılanNone): Devam modu ("must","allow","never").resume_from_checkpointkullanıldığında varsayılan olarak"allow"değerine ayarlanır.
TrainerCallback
sınıf transformers.TrainerCallback
< source >( )
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 ([
PreTrainedTokenizerveyaBaseImageProcessorveyaProcessorMixinveyaFeatureExtractionMixin]) — 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_evaluateolayında erişilebilir. - logs (
dict[str, float]) — Kaydedilecek değerler.Bunlar yalnızca
on_logolayı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
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
Bir epoch'un başında çağrılan olay.
on_epoch_end
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
Bir epoch'un sonunda çağrılan olay.
on_evaluate
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
Bir değerlendirme aşamasından sonra çağrılan olay.
on_init_end
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
Trainer başlatılmasının sonunda çağrılan olay.
Son günlükler kaydedildikten sonra çağrılan olay.
on_optimizer_step
< source >( 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
< source >( 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
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControlmetrics**kwargs )
Başarılı bir tahminin ardından çağrılan olay.
on_prediction_step
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
Bir tahmin adımından sonra çağrılan olay.
on_push_begin
< source >( 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.
Bir kontrol noktası kaydedildikten sonra çağrılan olay.
on_step_begin
< source >( 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
< source >( 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
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
Gradyan birikimi sırasında bir alt adımın sonunda çağrılan olay.
on_train_begin
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
Eğitimin başında çağrılan olay.
on_train_end
< source >( 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
< source >( 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ızcaauto_find_batch_sizekullanı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_checkpointdeğ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ılanTrue) — 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ılanTrue) — 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çinTrueolacaktır). - is_hyper_param_search (
bool, isteğe bağlı, varsayılanFalse) — 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 birstatevefrom_statefonksiyonu 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=nkullanıyorsanız, bir güncelleme adımı n partiden geçmeyi gerektirir.
Kayıt, eval ve save adımları için orantı olup olmadığına göre mutlak değeri hesaplar ve saklar.
self içinde gerekli olan başlangıç eğitim referanslarını saklar
json_path içeriğinden bir örnek oluşturun.
Bu örneğin içeriğini json_path içinde JSON biçiminde kaydedin.
TrainerControl
sınıf transformers.TrainerControl
< source >( 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 olarakFalse) — Eğitimin yarıda kesilip kesilmeyeceğini belirtir.Trueise, bu değişkenFalseolarak geri ayarlanmaz. Eğitim yalnızca durur. - should_epoch_stop (
bool, isteğe bağlı, varsayılan olarakFalse) — Geçerli epoch'un yarıda kesilip kesilmeyeceğini belirtir.Trueise, bu değişken bir sonraki epoch'un başlangıcındaFalseolarak ayarlanır. - should_save (
bool, isteğe bağlı, varsayılan olarakFalse) — Modelin bu adımda kaydedilip kaydedilmeyeceği.Trueise, bu değişken bir sonraki adımın başlangıcındaFalseolarak ayarlanır. - should_evaluate (
bool, isteğe bağlı, varsayılan olarakFalse) — Modelin bu adımda değerlendirilip değerlendirilmeyeceği.Trueise, bu değişken bir sonraki adımın başlangıcındaFalseolarak ayarlanır. - should_log (
bool, isteğe bağlı, varsayılan olarakFalse) — Kayıtların bu adımda raporlanıp raporlanmayacağı.Trueise, bu değişken bir sonraki adımın başlangıcındaFalseolarak 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.