Transformers documentation

Trainer

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

Trainer

Trainer sınıfı, PyTorch için eksiksiz özelliklere sahip bir eğitim API’si sunar ve birden çok GPU/TPU üzerinde dağıtık eğitimi, NVIDIA GPU’lar için karma hassasiyeti, AMD GPU’lar ve PyTorch için torch.amp’yi destekler. Trainer, bir modelin nasıl eğitileceğini özelleştirmek için geniş bir seçenek yelpazesi sunan TrainingArguments sınıfıyla birlikte çalışır. Bu iki sınıf birlikte tam bir eğitim API’si sağlar.

Seq2SeqTrainer ve Seq2SeqTrainingArguments, Trainer ve TrainingArguments sınıflarından devralır ve özetleme veya çeviri gibi diziden-diziye (sequence-to-sequence) görevler için modellerin eğitimine uyarlanmıştır.

Trainer sınıfı 🤗 Transformers modelleri için optimize edilmiştir ve diğer modellerle kullanıldığında beklenmedik davranışlar sergileyebilir. Kendi modelinizle kullanırken şunlara dikkat edin:

  • modeliniz her zaman ModelOutput tüpleri veya alt sınıflarını döndürür
  • modeliniz, labels argümanı sağlandığında kaybı hesaplayabilir ve bu kayıp, modeliniz tuple döndürüyorsa, tuple'ın ilk öğesi olarak döndürülür
  • modeliniz birden çok etiket argümanı kabul edebilir (Trainer'a adlarını belirtmek için TrainingArguments içinde label_names kullanın) ancak bunların hiçbiri "label" olarak adlandırılmamalıdır

Trainer

sınıf transformers.Trainer

< >

( model: typing.Union[transformers.modeling_utils.PreTrainedModel, torch.nn.Module, NoneType] = Noneargs: transformers.training_args.TrainingArguments | None = Nonedata_collator: collections.abc.Callable[[list[typing.Any]], dict[str, typing.Any]] | None = Nonetrain_dataset: Dataset | IterableDataset | datasets.Dataset | None = Noneeval_dataset: Dataset | dict[str, Dataset] | datasets.Dataset | None = Noneprocessing_class: transformers.tokenization_utils_base.PreTrainedTokenizerBase | transformers.image_processing_utils.BaseImageProcessor | transformers.feature_extraction_utils.FeatureExtractionMixin | transformers.processing_utils.ProcessorMixin | None = Nonemodel_init: collections.abc.Callable[..., transformers.modeling_utils.PreTrainedModel] | None = Nonecompute_loss_func: collections.abc.Callable | None = Nonecompute_metrics: collections.abc.Callable[[transformers.trainer_utils.EvalPrediction], dict] | None = Nonecallbacks: list[transformers.trainer_callback.TrainerCallback] | None = Noneoptimizers: tuple = (None, None)optimizer_cls_and_kwargs: tuple[type[torch.optim.Optimizer], dict[str, typing.Any]] | None = Nonepreprocess_logits_for_metrics: collections.abc.Callable[[torch.Tensor, torch.Tensor], torch.Tensor] | None = None )

Parametreler

  • model (PreTrainedModel veya torch.nn.Module, isteğe bağlı) — Eğitilecek, değerlendirilecek veya tahminler için kullanılacak model. Sağlanmazsa bir model_init iletilmelidir.

    Trainer, kütüphanenin sağladığı PreTrainedModel ile çalışacak şekilde optimize edilmiştir. 🤗 Transformers modelleriyle aynı şekilde çalıştıkları sürece, torch.nn.Module olarak tanımladığınız kendi modellerinizi de kullanabilirsiniz.

  • args (TrainingArguments, isteğe bağlı) — Eğitim için ayarlanacak argümanlar. Verilmezse, TrainingArguments sınıfının output_dir değeri, mevcut dizindeki tmp_trainer adlı bir dizine ayarlanmış temel bir örneğine varsayılan olarak ayarlanır.
  • data_collator (DataCollator, isteğe bağlı) — train_dataset veya eval_dataset öğelerinin bir listesinden bir batch oluşturmak için kullanılacak işlev. processing_class sağlanmazsa varsayılan olarak default_data_collator() kullanılır; processing_class bir feature extractor veya tokenizer ise DataCollatorWithPadding örneği kullanılır.
  • train_dataset (torch.utils.data.Dataset | torch.utils.data.IterableDataset | datasets.Dataset, isteğe bağlı) — Eğitim için kullanılacak veri kümesi. Eğer bir Dataset, ise, model.forward() metodu tarafından kabul edilmeyen sütunlar otomatik olarak kaldırılır. Rastgelelik içeren bir torch.utils.data.IterableDataset kullanıyorsanız ve dağıtık bir şekilde eğitim yapıyorsanız, yineleme yapılabilir veri kümeniz, tüm süreçlerde aynı olması gereken rastgelelik için bir torch.Generator olan dahili bir öznitelik üreteci kullanmalı (ve Trainer bu üretecinin tohumunu her çağda manuel olarak ayarlayacaktır) veya kullanılan RNG'lerin tohumunu içsel olarak ayarlayan bir set_epoch() metoduna sahip olmalıdır. Veri kümesi __len__ uygulamiyorsa (ör. bir akışkan IterableDataset), toplam eğitim adımı sayısı çıkarılamadığı için max_steps ayarlanmalıdır.

    Eğer veri setiniz rastgelelik içeren bir torch.utils.data.IterableDataset ise ve dağıtık bir şekilde eğitim yapıyorsanız, yinelebilir veri setinizin ya tüm süreçlerde aynı olması gereken rastgelelik için kullanılan ve torch.Generator olan dahili bir generator özniteliğini kullanması (Trainer bu generator’ın tohumunu her epoch’ta manuel olarak ayarlayacaktır) ya da kullanılan RNG’lerin tohumunu içsel olarak ayarlayan bir set_epoch() metoduna sahip olması gerekir.

    Veri kümesi __len__ yöntemini uygulamıyorsa (ör. bir IterableDataset akışı), toplam eğitim adım sayısı çıkarılamadığı için max_steps parametresinin ayarlanması gerekir.

  • eval_dataset (torch.utils.data.Dataset | dict[str, torch.utils.data.Dataset] | datasets.Dataset, isteğe bağlı) — Değerlendirme için kullanılacak veri seti. Bir Dataset ise, model.forward() yöntemi tarafından kabul edilmeyen sütunlar otomatik olarak kaldırılır. Bir sözlükse, her veri seti üzerinde değerlendirme yapılır ve sözlük anahtarı, metrik adının başına eklenir.
  • processing_class (PreTrainedTokenizerBase veya BaseImageProcessor veya FeatureExtractionMixin veya ProcessorMixin, isteğe bağlı) — Verileri işlemek için kullanılan işleme sınıfı. Sağlanırsa, model girdilerini otomatik olarak işlemek için kullanılır ve yarıda kalan bir eğitimi yeniden çalıştırmayı veya ince ayarlanmış modeli yeniden kullanmayı kolaylaştırmak amacıyla modelle birlikte kaydedilir.
  • model_init (Callable[[], PreTrainedModel], isteğe bağlı) — Kullanılacak modeli örnekleyen bir işlev. Sağlanırsa, her train() çağrısı, bu işlev tarafından verilen modelin yeni bir örneğinden başlayacaktır.

    Fonksiyonun sıfır argümanı olabilir veya hiperparametrelere (katman sayısı, iç katman boyutları, dropout olasılıkları vb.) göre farklı mimariler seçebilmek için optuna/Ray Tune deneme nesnesini içeren tek bir argümanı olabilir.

  • compute_loss_func (Callable, isteğe bağlı) — Ham model çıktılarını, etiketleri ve birikmiş tüm batch'teki öğe sayısını (batch_size * gradient_accumulation_steps) kabul edip kaybı döndüren bir fonksiyon. Örneğin, Trainer'ın kullandığı varsayılan loss fonksiyonu'na bakın.
  • compute_metrics (Callable[[EvalPrediction], Dict], isteğe bağlı) — Değerlendirme sırasında metrikleri hesaplamak için kullanılacak işlev. Bir EvalPrediction almalı ve metrik değerlerini içeren bir sözlük döndürmelidir. Not batch_eval_metrics değeri True olarak ayarlanmış bir TrainingArgs geçirildiğinde, compute_metrics işleviniz bir compute_result boole argümanı almalıdır. Bu, son değerlendirme grubundan sonra tetiklenir ve işlevin, grup düzeyindeki istatistikleri biriktirmek yerine küresel özet istatistikleri hesaplayıp döndürmesi gerektiğini belirtir.
  • callbacks (List of TrainerCallback, opsiyonel) — Eğitim döngüsünü özelleştirmek için kullanılacak geri çağrılar listesi. Bunlar, burada.

    Varsayılan olarak kullanılan geri çağrılardan birini kaldırmak istiyorsanız, Trainer.remove_callback() yöntemini kullanın.

  • optimizers (tuple[torch.optim.Optimizer, torch.optim.lr_scheduler.LambdaLR], isteğe bağlı, varsayılan (None, None)) — Kullanılacak optimizörü ve zamanlayıcıyı içeren bir demet. Varsayılan olarak modelinizde bir AdamW örneği ve args tarafından kontrol edilen get_linear_schedule_with_warmup() tarafından verilen bir zamanlayıcı kullanılır.
  • optimizer_cls_and_kwargs (tuple[Type[torch.optim.Optimizer], dict[str, Any]], isteğe bağlı) — Kullanılacak optimizator sınıfını ve anahtar kelime argümanlarını içeren bir demet. optim ve optim_args içindeki args. ile uyumsuzdur. optimizers argümanı.

    optimizers'un aksine, bu argüman, Trainer'ı başlatmadan önce model parametrelerini doğru cihazlara yerleştirme ihtiyacını ortadan kaldırır.

  • preprocess_logits_for_metrics (Callable[[torch.Tensor, torch.Tensor], torch.Tensor], isteğe bağlı) — Her değerlendirme adımında logit'leri önbelleğe almadan hemen önce işleyen bir işlev. İki girdi (tensor) almalıdır: logit'ler ve etiketler; ardından istenildiği gibi işlenmiş logit'leri döndürmelidir. Bu işlev tarafından yapılan değişiklikler, compute_metrics.

    Etiketlerin (ikinci parametre) veri setinde bulunmaması durumunda None olacağını unutmayın.

Trainer, PyTorch için basit ancak eksiksiz özelliklere sahip bir eğitim ve değerlendirme döngüsüdür ve 🤗 Transformers için optimize edilmiştir.

Önemli öznitelikler:

  • model — Her zaman çekirdek modele işaret eder. Bir transformers modeli kullanılıyorsa, bir PreTrainedModel alt sınıfı olacaktır.
  • model_wrapped — Orijinal modeli saran bir veya daha fazla modül varsa, her zaman en dıştaki modele işaret eder. Bu, ileri geçiş (forward pass) için kullanılacak modeldir. Örneğin, DeepSpeed altında iç model önce DeepSpeed ile sarılır, ardından tekrar torch.nn.DistributedDataParallel ile sarılır. İç model sarılmamışsa, self.model_wrapped self.model ile aynıdır.
  • is_model_parallel — Bir modelin model paralel moduna (veri paralelliğinden farklı olarak, bu, model katmanlarının bir kısmının farklı GPU'lara dağıtılması anlamına gelir) geçip geçmediğini belirtir.
  • place_model_on_device — Modelin otomatik olarak cihaza yerleştirilip yerleştirilmeyeceğini belirtir. Model paralelliği, DeepSpeed, FSDP, tam fp16/bf16 değerlendirme veya SageMaker MP etkin değilse varsayılan olarak True'dur. TrainingArguments sınıfının alt sınıfını oluşturarak ve place_model_on_device özelliğini geçersiz kılarak devre dışı bırakılabilir.
  • is_in_train — Bir modelin şu anda train çalıştırıp çalıştırmadığı (ör. train sırasında evaluate çağrıldığında)
  • loss_is_scaled_for_ga — compute_loss tarafından döndürülen kaybın, gradyan biriktirme için zaten ölçeklenip ölçeklenmediğini belirtir. True: training_step bunu olduğu gibi kullanır. False: training_step bunu gradyan biriktirme adım sayısına böler. None (varsayılan): kayıp, num_items_in_batch ile normalize edildiğinde, yani model kayıp argümanlarını kabul ettiğinde veya compute_loss_func geçirildiğinde ölçeklenmiş sayılır. Kendi kaybını hesaplayan alt sınıflar bunu ayarlamalıdır.

add_callback

< >

( callback: type[transformers.trainer_callback.TrainerCallback] | transformers.trainer_callback.TrainerCallback )

Parametreler

  • callback (type or [`~transformers.TrainerCallback`]) — Bir TrainerCallback sınıfı veya TrainerCallback örneği. İlk durumda, bu sınıfın bir üyesi örneklenir.

Mevcut TrainerCallback listesine bir geri çağırma ekleyin.

autocast_smart_context_manager

< >

( cache_enabled: bool | None = True )

autocast için duruma göre istenen argümanları sağlayarak uygun bir bağlam yöneticisi oluşturan yardımcı bir sarmalayıcıdır. Autocast için accelerate'e güveniyoruz, bu nedenle burada hiçbir şey yapmıyoruz.

call_model_init

< >

( trial: optuna.Trial | dict[str, Any] | None = None )

Yeni bir model örneği almak için model_init çağrın; gerekirse bir hiperparametre denemesine bağlı olarak.

compute_loss

< >

( model: Moduleinputs: dictreturn_outputs: bool = Falsenum_items_in_batch: typing.Union[torch.Tensor, int, NoneType] = None )

Parametreler

  • model (nn.Module) — Kayıp (loss) hesaplanacak model.
  • inputs (dict[str, torch.Tensor | Any]) — Model için girdi verileri.
  • return_outputs (bool, isteğe bağlı, varsayılan False) — Kayıp ile birlikte model çıktılarının döndürülüp döndürülmeyeceği.
  • num_items_in_batch (Optional[torch.Tensor], isteğe bağlı) — Batch içindeki öğe sayısı. Geçirilmezse, kayıp varsayılan batch boyutu azaltma mantığı kullanılarak hesaplanır.

Trainer tarafından kaybın nasıl hesaplandığı. Varsayılan olarak, tüm modeller kaybı ilk öğede döndürür.

Özel davranış için alt sınıf oluşturup geçersiz kılın. Kendi kaybınızı hesaplıyorsanız, loss_is_scaled_for_ga değerini, kaybın gradyan biriktirme için zaten ölçeklenip ölçeklenmediğini belirtmek üzere ayarlayın: parti başına ortalama ise False (Trainer bu değeri gradyan biriktirme adım sayısına böler), biriktirilen tüm parti üzerinde zaten normalize ettiyseniz True.

compute_loss_context_manager

< >

( )

Bağlam yöneticilerini bir arada gruplamak için yardımcı bir sarmalayıcı.

create_accelerator_and_postprocess

< >

( )

Hızlandırıcıyı oluşturun ve oluşturma sonrası kurulumu (FSDP, DeepSpeed vb.) gerçekleştirin.

create_model_card

< >

( language: str | None = Nonelicense: str | None = Nonetags: str | list[str] | None = Nonemodel_name: str | None = Nonefinetuned_from: str | None = Nonetasks: str | list[str] | None = Nonedataset_tags: str | list[str] | None = Nonedataset: str | list[str] | None = Nonedataset_args: str | list[str] | None = None )

Parametreler

  • language (str, isteğe bağlı) — Modelin dili (uygunsa)
  • license (str, isteğe bağlı) — Modelin lisansı. Trainer'a verilen orijinal model Hub'daki bir repodan geliyorsa, kullanılan önceden eğitilmiş modelin lisansı varsayılan olarak kullanılır.
  • tags (str veya list[str], isteğe bağlı) — Model kartının meta verilerinde yer alacak bazı etiketler.
  • model_name (str, isteğe bağlı) — Modelin adı.
  • finetuned_from (str, isteğe bağlı) — Bu modelin ince ayarında kullanılan modelin adı (uygunsa). Trainer'a verilen orijinal modelin adının deposu adı olarak varsayılan değer olacaktır (Hub'dan geliyorsa).
  • tasks (str veya list[str], isteğe bağlı) — Model kartının meta verilerine dahil edilecek bir veya birden fazla görev tanımlayıcısı.
  • dataset_tags (str veya list[str], isteğe bağlı) — Model kartının meta verilerine dahil edilecek bir veya birden fazla veri seti etiketi.
  • dataset (str veya list[str], isteğe bağlı) — Model kartının meta verilerine dahil edilecek bir veya birden fazla veri seti tanımlayıcısı.
  • dataset_args (str veya list[str], isteğe bağlı) — Model kartının meta verilerine dahil edilecek bir veya birden fazla veri seti argümanı.

Trainer'in sahip olduğu bilgilerle bir model kartı taslağı oluşturur.

create_optimizer

< >

( model = None ) → torch.optim.Optimizer

Dönüş değeri

torch.optim.Optimizer

Optimizör örneği.

Optimizatörü yapılandırın.

Makul ve iyi çalışan bir varsayılan değer sunuyoruz. Başka bir şey kullanmak isterseniz, Trainer’ın init’ine optimizers üzerinden bir tuple geçirebilir veya bir alt sınıf oluşturup bu yöntemi o alt sınıfta geçersiz kılabilirsiniz.

create_optimizer_and_scheduler

< >

( num_training_steps: int )

Optimizatörü ve öğrenme hızı zamanlayıcısını yapılandırın.

Makul ve iyi çalışan bir varsayılan değer sunuyoruz. Başka bir şey kullanmak isterseniz, optimizers üzerinden Trainer’ın init’ine bir tuple geçirebilir veya bir alt sınıfta bu yöntemi (veya create_optimizer ve/veya create_scheduler) yeniden tanımlayabilirsiniz.

create_scheduler

< >

( num_training_steps: intoptimizer: typing.Optional[torch.optim.Optimizer] = None ) → torch.optim.lr_scheduler.LRScheduler

Parametreler

  • num_training_steps (int) — Yapılacak eğitim adım sayısı.

Dönüş değeri

torch.optim.lr_scheduler.LRScheduler

Öğrenme hızı zamanlayıcı örneği.

Zamanlayıcıyı yapılandırın. Eğiticinin optimizatörü, bu yöntem çağrılmadan önce yapılandırılmış olmalı ya da bir argüman olarak geçirilmelidir.

sonu

< >

( )

Takipçileri tamamlayın ve dağıtık işlem grubunu yok edin.

Bunu, diğer süreçlere ihtiyaç duyan her şeyin ardından, bir betiğin en sonunda bir kez çağırın: train(), evaluate(), predict(), save_model() ve push_to_hub() süreçler arasında iletişim kurar ve grup kaldırıldığında başarısız olur.

Örnek:

trainer.train()
trainer.evaluate()
trainer.push_to_hub()
trainer.end()

evaluate

< >

( eval_dataset: typing.Union[torch.utils.data.Dataset, dict[str, torch.utils.data.Dataset], NoneType] = Noneignore_keys: list[str] | None = Nonemetric_key_prefix: str = 'eval' )

Parametreler

  • eval_dataset (Dataset | dict[str, Dataset], isteğe bağlı) — self.eval_dataset değerini geçersiz kılmak istiyorsanız bir veri seti iletin. self.eval_dataset. Bir Dataset, ise, model.forward() metodunun kabul etmediği sütunlar otomatik olarak kaldırılır. Bir sözlük ise, her veri seti üzerinde değerlendirme yapılır ve metrik adının başına sözlük anahtarı eklenir.

    Anahtarları veri seti adları, değerleri veri setleri olan bir sözlük geçirirseniz, evaluate her veri seti üzerinde ayrı ayrı değerlendirme çalıştırır. Bu, eğitimin diğer veri setlerini nasıl etkilediğini izlemek veya daha ince taneli bir değerlendirme almak için faydalı olabilir. load_best_model_at_end ile kullanıldığında, metric_for_best_model'in veri setlerinden tam olarak birine atıfta bulunduğundan emin olun. Örneğin, data1 ve data2 adlı iki veri seti için {"data1": data1, "data2": data2} geçirirseniz, data1 üzerindeki kaybı kullanmak için metric_for_best_model="eval_data1_loss" ve data2 üzerindeki kaybı kullanmak için metric_for_best_model="eval_data2_loss" belirleyebilirsiniz.

  • ignore_keys (list[str], isteğe bağlı) — Modelinizin çıktısındaki (bir sözlükse) tahminleri toplarken yok sayılması gereken anahtarların listesi.
  • metric_key_prefix (str, isteğe bağlı, varsayılan "eval") — Metrik anahtarı öneki olarak kullanılacak isteğe bağlı bir önek. Örneğin, önek “eval” ise (varsayılan) “bleu” metriği “eval_bleu” olarak adlandırılır.

Değerlendirmeyi çalıştırır ve metrikleri döndürür.

Çağıran betik, görevlere bağlı oldukları için metrikleri hesaplamak için bir yöntem sağlamaktan sorumlu olacaktır (bunu init compute_metrics argümanına iletin).

Bu yöntemi alt sınıflandırıp özel davranış enjekte etmek için geçersiz kılabilirsiniz.

evaluation_loop

< >

( dataloader: DataLoaderdescription: strprediction_loss_only: bool | None = Noneignore_keys: list[str] | None = Nonemetric_key_prefix: str = 'eval' )

Trainer.evaluate() ve Trainer.predict() tarafından paylaşılan tahmin/değerlendirme döngüsü.

Etiketlerle veya etiketsiz olarak çalışır.

floating_point_ops

< >

( inputs: dict ) → int

Parametreler

  • inputs (dict[str, torch.Tensor | Any]) — Modelin girdileri ve hedefleri.

Dönüş değeri

int

Yüzen noktalı işlem sayısı.

PreTrainedModel sınıfından türeyen modeller için, her geri + ileri geçişte kayan noktalı sayı operasyonlarının sayısını hesaplamak için bu yöntem kullanılır. Başka bir model kullanıyorsanız, bu yöntemi modelde uygulamanız veya bir alt sınıf oluşturup bu yöntemi geçersiz kılmanız gerekir.

get_batch_samples

< >

( epoch_iterator: Iteratornum_batches: intdevice: device )

Dönem (epoch) yineleyicisinden belirtilen sayıda parti (batch) toplar ve kaybı doğru şekilde ölçeklemek için partilerdeki öğe sayısını isteğe bağlı olarak sayar.

get_cp_size

< >

( )

Bağlam paralel boyutunu alın

get_decay_parameter_names

< >

( model: Module )

Ağırlık çürümesinin (weight decay) uygulanacağı tüm parametre adlarını alın.

Bu fonksiyon parametreleri iki şekilde filtreler:

  1. Katman türüne göre (ALL_LAYERNORM_LAYERS içinde belirtilen katman örnekleri)
  2. Parametre ad kalıplarına göre (‘bias’ içeren veya ‘norm’ varyasyonları)

get_eval_dataloader

< >

( eval_dataset: typing.Union[str, torch.utils.data.Dataset, NoneType] = None )

Parametreler

  • eval_dataset (str veya torch.utils.data.Dataset, isteğe bağlı) — str ise, değerlendirme veri seti olarak self.eval_dataset[eval_dataset] kullanılır. Dataset ise self.eval_dataset üzerine yazar. Dataset ise, model.forward() metodu tarafından kabul edilmeyen sütunlar otomatik olarak kaldırılır.

Değerlendirme ~torch.utils.data.DataLoader'ini döndürür.

Özel bir davranış enjekte etmek istiyorsanız bu yöntemi alt sınıflandırıp geçersiz kılın.

get_learning_rates

< >

( )

self.optimizer'dan her parametrenin öğrenme hızını döndürür.

get_num_trainable_parameters

< >

( )

Eğitilebilir parametre sayısını alın.

get_optimizer_cls_and_kwargs

< >

( args: TrainingArgumentsmodel: transformers.modeling_utils.PreTrainedModel | None = None )

Parametreler

  • args (transformers.training_args.TrainingArguments) — Eğitim oturumu için eğitim argümanları.
  • model (PreTrainedModel, isteğe bağlı) — Eğitilen model. Bazı optimizörler için (GaLore, Apollo, LOMO) zorunludur.

Eğitim argümanlarına göre optimizör sınıfını ve optimizör parametrelerini döndürür.

get_optimizer_group

< >

( param: typing.Union[str, torch.nn.parameter.Parameter, NoneType] = None )

Parametreler

  • param (str veya torch.nn.parameter.Parameter, isteğe bağlı) — Dönülmesi gereken optimizör grubuna sahip parametre.

Verilen bir parametre için optimizör grubunu döndürür, aksi halde parametreler için tüm optimizör gruplarını döndürür.

get_sp_size

< >

( )

Dizi paralel boyutunu alın

get_test_dataloader

< >

( test_dataset: Dataset )

Parametreler

  • test_dataset (torch.utils.data.Dataset, isteğe bağlı) — Kullanılacak test veri seti. Bir Dataset ise, model.forward() metodu tarafından kabul edilmeyen sütunlar otomatik olarak kaldırılır.

Test ~torch.utils.data.DataLoader'ini döndürür.

Özel bir davranış enjekte etmek istiyorsanız bu yöntemi alt sınıflandırıp geçersiz kılın.

get_total_train_batch_size

< >

( args: TrainingArguments )

Toplam batch boyutunu hesaplar (micro_batch grad_accum dp_world_size).

TP, CP ve SP dahil tüm paralellik boyutlarını hesaba katar.

Formül: dp_world_size = world_size // (tp_size cp_size sp_size)

Burada:

  • TP (Tensor Parallelism): Model katmanları GPU'lar arasında bölünür
  • CP (Bağlam Paralelliği): Ring Attention (FSDP2) kullanılarak bölünen diziler
  • SP (Sequence Parallelism): ALST/Ulysses (DeepSpeed) kullanılarak bölünen diziler

Tüm boyutlar ayrı ve çarpımsaldır: world_size = dp_size tp_size cp_size * sp_size

get_tp_size

< >

( )

Gergilik paralel boyutunu modelden veya DeepSpeed yapılandırmasından alın.

get_train_dataloader

< >

( )

Eğitim ~torch.utils.data.DataLoader'ını döndürür.

train_dataset, __len__ uygulamıyorsa örnekleyici kullanılmaz; aksi halde rastgele bir örnekleyici (gerekirse dağıtık eğitime uyarlanmış) kullanılır.

Özel bir davranış enjekte etmek istiyorsanız bu yöntemi alt sınıflandırıp geçersiz kılın.

hyperparameter_search

< >

( hp_space: collections.abc.Callable[['optuna.Trial'], dict[str, float]] | None = Nonecompute_objective: collections.abc.Callable[[dict[str, float]], float] | None = Nonen_trials: int = 20direction: str | list[str] = 'minimize'backend: str | transformers.trainer_utils.HPSearchBackend | None = Nonehp_name: collections.abc.Callable[['optuna.Trial'], str] | None = None**kwargs ) → [trainer_utils.BestRun or list[trainer_utils.BestRun]]

Parametreler

  • hp_space (Callable[["optuna.Trial"], dict[str, float]], isteğe bağlı) — Hiperparametre arama uzayını tanımlayan bir işlev. Arka planınıza bağlı olarak varsayılan olarak default_hp_space_optuna() veya default_hp_space_ray() değerini alır.
  • compute_objective (Callable[[dict[str, float]], float], isteğe bağlı) — evaluate metodunun döndürdüğü metriklerden minimize veya maksimize edilecek hedefi hesaplayan bir fonksiyon. Varsayılan olarak default_compute_objective() kullanılır.
  • n_trials (int, isteğe bağlı, varsayılan 100) — Test edilecek deneme çalıştırma sayısı.
  • direction (str veya list[str], isteğe bağlı, varsayılan "minimize") — Tek amaçlı optimizasyon söz konusuysa str türünde olup "minimize" veya "maximize" olabilir; doğrulama kaybını optimize ederken "minimize", bir veya birden fazla metriği optimize ederken "maximize" seçmelisiniz. Çok amaçlı optimizasyon söz konusuysa list[str] türünde olup "minimize" ve "maximize" değerlerinden oluşan bir liste olabilir; doğrulama kaybını optimize ederken "minimize", bir veya birden fazla metriği optimize ederken "maximize" seçmelisiniz.
  • backend (str veya ~training_utils.HPSearchBackend, isteğe bağlı) — Hiparametre araması için kullanılacak arka uç. Hangisinin yüklü olduğuna bağlı olarak varsayılan olarak optuna veya Ray Tune kullanılır. Her ikisi de yüklüyse, varsayılan olarak optuna kullanılır.
  • hp_name (Callable[["optuna.Trial"], str]], isteğe bağlı) — Deneme/çalışma adını tanımlayan bir işlev. Varsayılan olarak None olur.
  • kwargs (dict[str, Any], isteğe bağlı) — Her arka uç için ek anahtar kelime argümanları:

Dönüş değeri

[trainer_utils.BestRun veya list[trainer_utils.BestRun]]

En iyi çalıştırma veya çok amaçlı optimizasyon için en iyi çalıştırmalar hakkında tüm bilgiler. Deney özeti, Ray arka ucu için run_summary özniteliğinde bulunabilir.

optuna veya Ray Tune kullanarak bir hiperparametre araması başlatın. Optimize edilen nicelik, compute_objective tarafından belirlenir; bu, bir metrik sağlanmadığında varsayılan olarak değerlendirme kaybını döndüren bir işlevdir, aksi halde tüm metriklerin toplamıdır.

Bu yöntemi kullanmak için, Trainer’ınızı başlatırken bir model_init sağlamış olmanız gerekir: her yeni çalıştırmada modelin yeniden başlatılması gerekir. Bu, optimizers argümanı ile uyumsuzdur, bu nedenle özel bir optimizer/scheduler için Trainer sınıfından türetip create_optimizer_and_scheduler() metodunu geçersiz kılmanız gerekir.

init_hf_repo

< >

( token: str | None = Noneprivate: bool | None = None )

Parametreler

  • token (str, isteğe bağlı) — Yazma iznine sahip jeton. Varsayılan olarak self.args.hub_token değerini alır.
  • private (bool, isteğe bağlı) — Depo oluşturulurken özel yapılıp yapılmayacağı. Varsayılan olarak self.args.hub_private_repo değerini alır. Depo zaten mevcutsa hiçbir etkisi yoktur.

self.args.hub_model_id içinde bir git deposu başlatır.

is_local_process_zero

< >

( )

Bu sürecin, dağıtık bir şekilde birden fazla makinede eğitim yapılıyorsa yerel (örneğin, tek bir makinede) ana süreç olup olmadığı.

is_world_process_zero

< >

( )

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).

kayıt

< >

( logs: dictstart_time: float | None = None )

Parametreler

  • logs (dict[str, float]) — Kaydedilecek değerler.
  • start_time (Optional[float]) — Eğitimin başlangıcı.

Eğitimi izleyen çeşitli nesneler üzerinde logs kaydedin.

Özel davranış enjekte etmek için bu yöntemi alt sınıflandırıp geçersiz kılın.

log_metrics

< >

( splitmetrics )

Parametreler

  • split (str) — Mod/ad ayrımı adı: train, eval, test değerlerinden biri
  • metrics (dict[str, float]) — train/evaluate/predictmetrics'ten döndürülen metrikler: metrikler sözlüğü

Metrikleri özel biçimlendirilmiş bir şekilde günlüğe kaydedin.

Dağıtık ortamda bu işlem yalnızca rank 0'a sahip bir süreç için yapılır.

Bellek raporlarına dair notlar:

Bellek kullanım raporu almak için psutil paketini yüklemeniz gerekir. Bunu pip install psutil komutuyla yapabilirsiniz.

Şimdi bu yöntem çalıştırıldığında, aşağıdakileri içeren bir rapor göreceksiniz:

init_mem_cpu_alloc_delta   =     1301MB
init_mem_cpu_peaked_delta  =      154MB
init_mem_gpu_alloc_delta   =      230MB
init_mem_gpu_peaked_delta  =        0MB
train_mem_cpu_alloc_delta  =     1345MB
train_mem_cpu_peaked_delta =        0MB
train_mem_gpu_alloc_delta  =      693MB
train_mem_gpu_peaked_delta =        7MB

Raporları anlama:

  • ilk segment, örneğin train__, metriklerin hangi aşamaya ait olduğunu belirtir. init_ ile başlayan raporlar, çalıştırılan ilk aşamaya eklenir. Böylece yalnızca değerlendirme çalıştırılırsa, __init__ bellek kullanımı eval_ metrikleriyle birlikte raporlanır.
  • üçüncü segment, cpu veya gpu olup, genel RAM mi yoksa gpu0 belleği metriği mi olduğunu belirtir.
  • *_alloc_delta - bir aşamanın başlangıcı ile sonu arasındaki kullanılan/ayrılan bellek sayacındaki farktır - bir fonksiyon, ayırdığından daha fazla bellek serbest bırakırsa negatif olabilir.
  • *_peaked_delta - mevcut ayrılmış bellek sayacıyla karşılaştırıldığında tüketildikten sonra serbest bırakılan ek bellektir - asla negatif değildir. Herhangi bir aşamanın metriklerine baktığınızda alloc_delta + peaked_delta değerlerini toplarsınız ve o aşamanın tamamlanması için ne kadar belleğe ihtiyaç duyulduğunu öğrenirsiniz.

Raporlama yalnızca rank 0 işlemi ve gpu 0 için yapılır (gpu varsa). Genellikle ana işlem büyük ölçüde işi yaptığı için bu yeterlidir, ancak model paralelliği kullanılıyorsa durum tam olarak böyle olmayabilir ve diğer GPU'lar farklı miktarda gpu belleği kullanabilir. Bu, DataParallel altında da aynı değildir; çünkü gpu0, katılan tüm GPU'lar için gradyan ve optimizör durumlarını sakladığı için diğerlerinden çok daha fazla bellek gerektirebilir. Belki gelecekte bu raporlar, bunları da ölçecek şekilde evrilecektir.

CPU RAM metriği, RSS (Resident Set Size) ölçer ve hem sürecin kendine özgü belleğini hem de diğer süreçlerle paylaşılan belleği içerir. Dikkat edilmesi gereken önemli bir nokta, bu metrikin takas dışına çıkarılan belleği içermediğidir; bu nedenle raporlar imha olabilir.

CPU tepe belleği, örneklemeye dayalı bir iş parçacığı kullanılarak ölçülür. Python’un GIL’i nedeniyle, en yüksek bellek kullanımı sırasında bu iş parçacığının çalışması için bir fırsat doğmazsa, tepe belleğin bir kısmı kaçırılabilir. Bu nedenle bu rapor, gerçek değerin altında olabilir. tracemalloc kullanılsaydı tam tepe bellek raporlanırdı, ancak Python dışındaki bellek tahsislerini raporlamaz. Dolayısıyla, bazı C++ CUDA eklentileri kendi belleğini tahsis etse bile bu raporlanmaz. Bu yüzden, mevcut süreç bellek kullanımını okuyan bellek örneklemesi yaklaşımı tercih edilerek bu yöntem elenmiştir.

GPU tahsisi ve tepe bellek raporlaması torch.cuda.memory_allocated() ve torch.cuda.max_memory_allocated() ile yapılır. Bu metrik yalnızca pytorch'a özgü tahsisler için “deltas” raporlar, çünkü torch.cuda bellek yönetim sistemi pytorch dışında tahsis edilen belleği takip etmez. Örneğin, ilk cuda çağrısı genellikle CUDA çekirdeklerini yükler ve bu işlem 0,5 ile 2 GB arasında GPU belleği kullanabilir.

Bu izleyicinin, Trainer'ın __init__, train, evaluate ve predict çağrıları dışında gerçekleşen bellek tahsislerini hesaba katmadığını unutmayın.

evaluation çağrıları train sırasında gerçekleşebileceğinden, torch.cuda.max_memory_allocated tek bir sayaç olduğu için iç içe çağrıları işleyemiyoruz; dolayısıyla iç içe bir eval çağrısı tarafından sıfırlanırsa, train izleyicisi yanlış bilgi raporlayacaktır. Bu pytorch sorunu çözülürse, bu sınıfın yeniden girilebilir (re-entrant) hale getirilmesi mümkün olacaktır. O zamana kadar yalnızca train, evaluate ve predict yöntemlerinin dış seviyesini izleyeceğiz. Bu da, eval train sırasında çağrılırsa, bellek kullanımının hem kendisinin hem de eval'in kullanımının train tarafından hesaba katılacağı anlamına gelir.

Bu, Trainer ile birlikte kullanılan herhangi bir aracın torch.cuda.reset_peak_memory_stats çağrısı yapması durumunda GPU tepe bellek istatistiklerinin geçersiz olabileceği anlamına da gelir. Ayrıca Trainer, kendi başlarına torch.cuda.reset_peak_memory_stats çağrısı yaparak çalışan bu tür araçların normal davranışını bozacaktır.

En iyi performansı elde etmek için üretim çalıştırmalarında bellek profilleme işlevini kapatmayı düşünebilirsiniz.

metrics_format

< >

( metrics: dict ) → metrics (dict[str, float])

Parametreler

  • metrics (dict[str, float]) — train/evaluate/predict tarafından döndürülen metrikler

Dönüş değeri

metrics (dict[str, float])

Biçimlendirilmiş metrikler

Trainer metrik değerlerini insan tarafından okunabilir bir biçime dönüştürün.

num_examples

< >

( dataloader: DataLoader )

Bir ~torch.utils.data.DataLoader'ın veri setine erişerek içindeki örnek sayısını almak için yardımcı. dataloader.dataset mevcut değilse veya uzunluğu yoksa, mümkün olan en iyi şekilde tahmin eder

pop_callback

< >

( callback: type[transformers.trainer_callback.TrainerCallback] | transformers.trainer_callback.TrainerCallback ) → TrainerCallback

Parametreler

  • callback (type veya [`~transformers.TrainerCallback`]) — Bir TrainerCallback sınıfı veya TrainerCallback örneği. İlk durumda, callback listesinde bulunan bu sınıfın ilk üyesi kaldırılır.

Dönüş değeri

TrainerCallback

Bulunduysa kaldırılan geri çağırma.

Mevcut TrainerCallback listesinden bir geri çağrıyı kaldırır ve onu döndürür.

Geri çağrı bulunamazsa None döndürülür (ve bir hata yükseltilmez).

predict

< >

( test_dataset: Datasetignore_keys: list[str] | None = Nonemetric_key_prefix: str = 'test' )

Parametreler

  • test_dataset (Dataset) — Tahminlerin çalıştırılacağı veri seti. Bir datasets.Dataset ise, model.forward() metodu tarafından kabul edilmeyen sütunlar otomatik olarak kaldırılır.
  • ignore_keys (list[str], isteğe bağlı) — Modelinizin çıktısındaki (bir sözlükse) tahminleri toplarken yok sayılması gereken anahtarların listesi.
  • metric_key_prefix (str, isteğe bağlı, varsayılan "test") — Metrik anahtarı öneki olarak kullanılacak isteğe bağlı bir önek. Örneğin, önek “test” (varsayılan) ise “bleu” metriği “test_bleu” olarak adlandırılır.

Tahmin çalıştırır ve tahminleri ile olası metrikleri döndürür.

Veri setine ve kullanım durumunuza bağlı olarak, test veri setiniz etiketler içerebilir. Bu durumda, bu yöntem evaluate() gibi metrikler de döndürür.

Tahminlerinizin veya etiketlerinizin farklı dizi uzunluklarına sahip olması durumunda (örneğin bir token sınıflandırma görevinde dinamik dolgu uygulamanız nedeniyle) tahminler, tek bir diziye birleştirilmeye izin vermek için (sağ taraftan) doldurulur. Dolgu indeksi -100'dür.

Dönüş: NamedTuple Aşağıdaki anahtarlara sahip bir namedtuple:

  • predictions (np.ndarray): test_dataset üzerindeki tahminler.
  • label_ids (np.ndarray, isteğe bağlı): Etiketler (veri kümesi etiket içeriyorsa).
  • metrics (dict[str, float], isteğe bağlı): Veri seti etiketler içeriyorsa, metriklerin olası sözlüğü.

prediction_step

< >

( model: Moduleinputs: dictprediction_loss_only: boolignore_keys: list[str] | None = None ) → tuple[Optional[torch.Tensor], Optional[torch.Tensor], Optional[torch.Tensor]]

Parametreler

  • model (nn.Module) — Değerlendirilecek model.
  • inputs (dict[str, torch.Tensor | Any]) — Modelin girdileri ve hedefleri.

    Sözlük, modele iletilmeden önce açılacaktır. Çoğu model, hedeflerin labels argümanı altında beklenmesini gerektirir. Kabul edilen tüm argümanlar için modelinizin belgelendirmesini kontrol edin.

  • prediction_loss_only (bool) — Yalnızca kaybın (loss) döndürülüp döndürülmediğini belirtir.
  • ignore_keys (list[str], isteğe bağlı) — Modelinizin çıktısındaki (bir sözlükse) tahminleri toplarken yok sayılması gereken anahtarların listesi.

Dönüş değeri

tuple[Optional[torch.Tensor], Optional[torch.Tensor], Optional[torch.Tensor]]

Kayıp, logits ve etiketleri içeren bir tuple (her biri isteğe bağlıdır).

inputs kullanarak model üzerinde bir değerlendirme adımı gerçekleştirin.

Özel davranış enjekte etmek için alt sınıf oluşturup geçersiz kılın.

push_to_hub

< >

( commit_message: str | None = 'End of training'blocking: bool = Truetoken: str | None = Nonerevision: str | None = Noneprivate: bool | None = None**kwargs )

Parametreler

  • commit_message (str, isteğe bağlı, varsayılan "End of training") — İterlerken gönderilecek mesaj.
  • blocking (bool, isteğe bağlı, varsayılan True) — Fonksiyonun yalnızca git push işlemi tamamlandığında mı değer döndürmesi gerektiğini belirtir.
  • token (str, isteğe bağlı, varsayılan None) — Trainer'ın orijinal argümanlarını üzerine yazma iznine sahip jeton.
  • revision (str, isteğe bağlı) — Commit'in alınacağı git revizyonu. Varsayılan olarak “main” dalının başıdır.
  • private (bool, isteğe bağlı) — Depo oluşturulurken özel yapılıp yapılmayacağı. Varsayılan olarak args.hub_private_repo değerini alır. Depo zaten mevcutsa hiçbir etkisi yoktur.
  • kwargs (dict[str, Any], isteğe bağlı) — create_model_card() fonksiyonuna iletilen ek anahtar kelime argümanları.

self.model ve self.processing_class öğelerini self.args.hub_model_id deposundaki 🤗 model hub'ına yükleyin.

remove_callback

< >

( callback: type[transformers.trainer_callback.TrainerCallback] | transformers.trainer_callback.TrainerCallback )

Parametreler

  • callback (type veya [`~transformers.TrainerCallback`]) — Bir TrainerCallback sınıfı veya bir TrainerCallback örneği. İlk durumda, callback listesinde bulunan bu sınıfın ilk üyesi kaldırılır.

Mevcut TrainerCallback listesinden bir geri çağrıyı kaldırır.

save_metrics

< >

( splitmetricscombined = True )

Parametreler

  • split (str) — Mod/ad ayrımı adı: train, eval, test, all değerlerinden biri
  • metrics (dict[str, float]) — train/evaluate/predict tarafından döndürülen metrikler
  • combined (bool, isteğe bağlı, varsayılan True) — Bu çağrının metrikleriyle all_results.json dosyasını güncelleyerek birleşik metrikler oluşturur

O bölme için metrikleri bir json dosyasına kaydedin, örneğin train_results.json.

Dağıtık ortamda bu işlem yalnızca rank 0'a sahip bir süreç için yapılır.

Metrikleri anlamak için log_metrics() dokümantasyon dizesini okuyun. Tek fark, mevcut yöntemde ham biçimlendirilmemiş sayıların kaydedilmesidir.

save_model

< >

( output_dir: str | None = None_internal_call: bool = False )

Modeli kaydeder, böylece from_pretrained() kullanarak yeniden yükleyebilirsiniz.

Yalnızca ana süreçten kaydedecektir.

save_state

< >

( )

Trainer.save_model yalnızca model ile birlikte tokenizer'ı kaydettiği için Trainer durumunu kaydeder.

Dağıtık ortamda bu işlem yalnızca rank 0'a sahip bir süreç için yapılır.

set_initial_training_values

< >

( args: TrainingArgumentsdataloader: DataLoader )

Aşağıdaki değerleri hesaplar ve döndürür:

  • num_train_epochs
  • num_update_steps_per_epoch
  • num_examples
  • num_train_samples
  • total_train_batch_size
  • steps_in_epoch (epoch başına toplam batch sayısı)
  • max_steps

store_flos

< >

( )

Modelin oluşturulmasında kullanılan kayan noktalı işlem sayısını saklayın.

eğit

< >

( resume_from_checkpoint: str | bool | None = Nonetrial: optuna.Trial | dict[str, Any] | None = Noneignore_keys_for_eval: list[str] | None = None ) → TrainOutput

Parametreler

  • resume_from_checkpoint (str veya bool, isteğe bağlı) — str ise, önceki bir Trainer örneği tarafından kaydedilen bir kontrol noktasının yerel yolu. bool ise ve True değerine eşitse, önceki bir Trainer örneği tarafından args.output_dir içinde kaydedilen son kontrol noktasını yükler. Mevcutsa, eğitim burada yüklenen model/optimizör/zamanlayıcı durumlarından devam eder.
  • trial (optuna.Trial veya dict[str, Any], isteğe bağlı) — Hiperparametre araması için deneme çalışması veya hiperparametre sözlüğü.
  • ignore_keys_for_eval (list[str], isteğe bağlı) — Eğitim sırasında değerlendirme için tahminleri toplarken göz ardı edilmesi gereken, model çıktısındaki (bir sözlükse) anahtarların listesi.

Dönüş değeri

TrainOutput

Küresel adım sayısını, eğitim kaybını ve metrikleri içeren nesne.

Ana eğitim giriş noktası.

training_step

< >

( model: Moduleinputs: dictnum_items_in_batch: typing.Union[torch.Tensor, int, NoneType] = None ) → torch.Tensor

Parametreler

  • model (nn.Module) — Eğitilecek model.
  • inputs (dict[str, torch.Tensor | Any]) — Modelin girdileri ve hedefleri.

    Sözlük, modele iletilmeden önce açılacaktır. Çoğu model, hedeflerin labels argümanı altında beklenmesini gerektirir. Kabul edilen tüm argümanlar için modelinizin belgelendirmesini kontrol edin.

Dönüş değeri

torch.Tensor

Bu batch'teki eğitim kaybına sahip tensör.

Bir girdi grubu üzerinde eğitim adımı gerçekleştirin.

Özel davranış enjekte etmek için alt sınıf oluşturup geçersiz kılın.

Seq2SeqTrainer

sınıf transformers.Seq2SeqTrainer

< >

( model: typing.Union[ForwardRef('PreTrainedModel'), torch.nn.Module, NoneType] = Noneargs: typing.Optional[ForwardRef('TrainingArguments')] = Nonedata_collator: typing.Optional[ForwardRef('DataCollator')] = Nonetrain_dataset: typing.Union[torch.utils.data.Dataset, ForwardRef('IterableDataset'), ForwardRef('datasets.Dataset'), NoneType] = Noneeval_dataset: typing.Union[torch.utils.data.Dataset, dict[str, torch.utils.data.Dataset], NoneType] = Noneprocessing_class: typing.Union[ForwardRef('PreTrainedTokenizerBase'), ForwardRef('BaseImageProcessor'), ForwardRef('FeatureExtractionMixin'), ForwardRef('ProcessorMixin'), NoneType] = Nonemodel_init: collections.abc.Callable[[], 'PreTrainedModel'] | None = Nonecompute_loss_func: collections.abc.Callable | None = Nonecompute_metrics: collections.abc.Callable[['EvalPrediction'], dict] | None = Nonecallbacks: list['TrainerCallback'] | None = Noneoptimizers: tuple = (None, None)preprocess_logits_for_metrics: collections.abc.Callable[[torch.Tensor, torch.Tensor], torch.Tensor] | None = None )

evaluate

< >

( eval_dataset: typing.Optional[torch.utils.data.Dataset] = Noneignore_keys: list[str] | None = Nonemetric_key_prefix: str = 'eval'**gen_kwargs )

Parametreler

  • eval_dataset (Dataset, isteğe bağlı) — self.eval_dataset değerini geçersiz kılmak istiyorsanız bir veri seti iletin. Bir Dataset ise, model.forward() metodu tarafından kabul edilmeyen sütunlar otomatik olarak kaldırılır. __len__ metodunu uygulaması gerekir.
  • ignore_keys (list[str], isteğe bağlı) — Modelinizin çıktısındaki (bir sözlükse) tahminleri toplarken yok sayılması gereken anahtarların listesi.
  • metric_key_prefix (str, isteğe bağlı, varsayılan "eval") — Metrik anahtarı öneki olarak kullanılacak isteğe bağlı bir önek. Örneğin, önek "eval" (varsayılan) ise “bleu” metriği “eval_bleu” olarak adlandırılır.
  • max_length (int, isteğe bağlı) — generate yöntemiyle tahmin yaparken kullanılacak maksimum hedef uzunluk.
  • num_beams (int, isteğe bağlı) — generate yöntemiyle tahmin yapılırken beam search için kullanılacak beam sayısı. 1, beam search kullanılmayacağı anlamına gelir.
  • gen_kwargs — Ek generate özel kwargs'ları.

Değerlendirmeyi çalıştırır ve metrikleri döndürür.

Çağıran betik, görevlere bağlı oldukları için metrikleri hesaplamak için bir yöntem sağlamaktan sorumlu olacaktır (bunu init compute_metrics argümanına iletin).

Bu yöntemi alt sınıflandırıp özel davranış enjekte etmek için geçersiz kılabilirsiniz.

predict

< >

( test_dataset: Datasetignore_keys: list[str] | None = Nonemetric_key_prefix: str = 'test'**gen_kwargs )

Parametreler

  • test_dataset (Dataset) — Tahminlerin çalıştırılacağı veri seti. Bir Dataset ise, model.forward() metodu tarafından kabul edilmeyen sütunlar otomatik olarak kaldırılır. __len__ metodunu uygulamak zorundadır.
  • ignore_keys (list[str], isteğe bağlı) — Modelinizin çıktısındaki (bir sözlükse) tahminleri toplarken yok sayılması gereken anahtarların listesi.
  • metric_key_prefix (str, isteğe bağlı, varsayılan "eval") — Metrik anahtarı öneki olarak kullanılacak isteğe bağlı bir önek. Örneğin, önek "eval" (varsayılan) ise “bleu” metriği “eval_bleu” olarak adlandırılır.
  • max_length (int, isteğe bağlı) — generate yöntemiyle tahmin yaparken kullanılacak maksimum hedef uzunluk.
  • num_beams (int, isteğe bağlı) — generate yöntemiyle tahmin yapılırken beam search için kullanılacak beam sayısı. 1, beam search kullanılmayacağı anlamına gelir.
  • gen_kwargs — Ek generate özel kwargs'ları.

Tahmin çalıştırır ve tahminleri ile olası metrikleri döndürür.

Veri setine ve kullanım durumunuza bağlı olarak, test veri setiniz etiketler içerebilir. Bu durumda, bu yöntem evaluate() gibi metrikler de döndürür.

Tahminlerinizin veya etiketlerinizin farklı dizi uzunluklarına sahip olması durumunda (örneğin bir token sınıflandırma görevinde dinamik dolgu uygulamanız nedeniyle) tahminler, tek bir diziye birleştirilmeye izin vermek için (sağ taraftan) doldurulur. Dolgu indeksi -100'dür.

Dönüş: NamedTuple Aşağıdaki anahtarlara sahip bir namedtuple:

  • predictions (np.ndarray): test_dataset üzerindeki tahminler.
  • label_ids (np.ndarray, isteğe bağlı): Etiketler (veri kümesi etiket içeriyorsa).
  • metrics (dict[str, float], isteğe bağlı): Veri seti etiketler içeriyorsa, metriklerin olası sözlüğü.

TrainingArguments

sınıf transformers.TrainingArguments

< >

( output_dir: str | None = Noneper_device_train_batch_size: int = 8num_train_epochs: float = 3.0max_steps: int = -1learning_rate: float = 5e-05lr_scheduler_type: transformers.trainer_utils.SchedulerType | str = 'linear'lr_scheduler_kwargs: dict | str | None = Nonewarmup_steps: float = 0optim: transformers.training_args.OptimizerNames | str = 'adamw_torch_fused'optim_args: str | None = Noneweight_decay: float = 0.0adam_beta1: float = 0.9adam_beta2: float = 0.999adam_epsilon: float = 1e-08optim_target_modules: None | str | list[str] = Nonegradient_accumulation_steps: int = 1average_tokens_across_devices: bool = Truemax_grad_norm: float = 1.0label_smoothing_factor: float = 0.0bf16: bool = Falsefp16: bool = Falsebf16_full_eval: bool = Falsefp16_full_eval: bool = Falsetf32: bool | None = Noneactivation_checkpointing: bool | None = Noneactivation_checkpointing_kwargs: dict[str, typing.Any] | str | None = Nonegradient_checkpointing: bool | None = Nonegradient_checkpointing_kwargs: dict[str, typing.Any] | str | None = Nonetorch_compile: bool = Falsetorch_compile_backend: str | None = Nonetorch_compile_mode: str | None = Noneuse_liger_kernel: bool = Falseliger_kernel_config: dict[str, bool] | None = Noneuse_cache: bool = Falseneftune_noise_alpha: float | None = Nonetorch_empty_cache_steps: int | None = Noneauto_find_batch_size: bool = Falselogging_strategy: transformers.trainer_utils.IntervalStrategy | str = 'steps'logging_steps: float = 500logging_first_step: bool = Falselog_on_each_node: bool = Truelogging_nan_inf_filter: bool = Trueinclude_num_input_tokens_seen: str | bool = 'no'log_level: str = 'passive'log_level_replica: str = 'warning'disable_tqdm: bool | None = Nonereport_to: None | str | list[str] = 'none'run_name: str | None = Noneproject: str = 'huggingface'trackio_space_id: str | None = Nonetrackio_bucket_id: str | None = Nonetrackio_static_space_id: typing.Union[str, NoneType, typing.Literal[False]] = Noneeval_strategy: transformers.trainer_utils.IntervalStrategy | str = 'no'eval_steps: float | None = Noneeval_delay: float = 0per_device_eval_batch_size: int = 8prediction_loss_only: bool = Falseeval_on_start: bool = Falseeval_do_concat_batches: bool = Trueeval_use_gather_object: bool = Falseeval_accumulation_steps: int | None = Noneinclude_for_metrics: list = <factory>batch_eval_metrics: bool = Falsesave_only_model: bool = Falsesave_strategy: transformers.trainer_utils.SaveStrategy | str = 'steps'save_steps: float = 500save_on_each_node: bool = Falsesave_total_limit: int | None = Noneenable_jit_checkpoint: bool = Falsepush_to_hub: bool = Falsehub_token: str | None = Nonehub_private_repo: bool | None = Nonehub_model_id: str | None = Nonehub_strategy: transformers.trainer_utils.HubStrategy | str = 'every_save'hub_always_push: bool = Falsehub_revision: str | None = Noneload_best_model_at_end: bool = Falsemetric_for_best_model: str | None = Nonegreater_is_better: bool | None = Noneignore_data_skip: bool = Falserestore_callback_states_from_checkpoint: bool = Falsefull_determinism: bool = Falseseed: int = 42data_seed: int | None = Noneuse_cpu: bool = Falseaccelerator_config: dict | str | None = Noneparallelism_config: typing.Any | None = Nonedataloader_drop_last: bool = Falsedataloader_num_workers: int = 0dataloader_pin_memory: bool = Truedataloader_persistent_workers: bool = Falsedataloader_prefetch_factor: int | None = Nonedataloader_multiprocessing_context: str | None = Nonedataloader_in_order: bool = Trueremove_unused_columns: bool = Truelabel_names: list[str] | None = Nonetrain_sampling_strategy: str = 'random'length_column_name: str = 'length'ddp_find_unused_parameters: bool | None = Noneddp_bucket_cap_mb: int | None = Noneddp_broadcast_buffers: bool | None = Noneddp_static_graph: bool | None = Noneddp_backend: str | None = Noneddp_timeout: int = 1800fsdp: str | None = Nonefsdp_config: dict[str, typing.Any] | str | None = Nonedeepspeed: dict | str | None = Nonedebug: str | list[transformers.debug_utils.DebugOption] = ''skip_memory_metrics: bool = Truedo_train: bool = Falsedo_eval: bool = Falsedo_predict: bool = Falseresume_from_checkpoint: str | None = Nonelocal_rank: int = -1 )

Parametreler

  • output_dir (str, isteğe bağlı, varsayılan "trainer_output") — Model tahminlerinin ve denetim noktalarının (checkpoints) yazılacağı çıktı dizini.

Eğitim Süresi ve Toplu İşlem Boyutu

  • per_device_train_batch_size (int, isteğe bağlı, varsayılan 8) — Cihaz başına parti boyutu. Küresel parti boyutu şu şekilde hesaplanır: per_device_train_batch_size * number_of_devices çoklu GPU veya dağıtık kurulumlarda.
  • num_train_epochs(float, isteğe bağlı, varsayılan 3.0) — Yürütülecek toplam eğitim epoch sayısı (tam sayı değilse, eğitim durdurulmadan önce son epoch'un ondalık kısmı yüzdesi kadar işlem yapılır).
  • max_steps (int, isteğe bağlı, varsayılan -1) — num_train_epochs değerini geçersiz kılar. Pozitif bir sayıya ayarlanırsa, gerçekleştirilecek toplam eğitim adım sayısıdır. Sonlu bir veri seti için, eğitim (tüm veriler tüketilirse) veri seti üzerinden tekrarlanarak max_steps değerine ulaşılana kadar devam eder. Eğitim veri seti __len__ yöntemini uygulamıyorsa (ör. bir akış veri seti) pozitif bir değere ayarlanmalıdır, çünkü bu durumda toplam adım sayısı çıkarılamaz ve eğitim döngüsünü sınırlamak ile öğrenme oranı zamanlayıcısını yapılandırmak için gereklidir.

Öğrenme Hızı ve Zamanlayıcı

  • learning_rate (float, isteğe bağlı, varsayılan 5e-5) — Optimizatör için başlangıç öğrenme oranı. Bu, genellikle ısınma (warmup) içeren bir zamanlayıcı (scheduler) kullanıldığında tepe öğrenme oranıdır.
  • lr_scheduler_type (str veya SchedulerType, isteğe bağlı, varsayılanı "linear") — Kullanılacak öğrenme hızı zamanlayıcı türü. Bkz. SchedulerType tüm olası değerler için. Yaygın seçimler:
  • lr_scheduler_kwargs (dict veya str, isteğe bağlı, varsayılan None) — lr_scheduler için ek argümanlar. Olası değerler için her zamanlayıcının (scheduler) belgelendirmesine bakın.
  • warmup_steps (int veya float, isteğe bağlı, varsayılan 0) — 0'dan learning_rate. learning_rate değerine doğrusal bir ısınma için adım sayısı. Isınma, eğitimin başlangıç aşamasında kararlılığı artırır. Şu değerlerden biri olabilir:
    • Bir tamsayı: tam ısınma adım sayısı
    • [0, 1) aralığında bir float: toplam eğitim adımının oranı olarak yorumlanır

Optimizatör

  • optim (str veya training_args.OptimizerNames, isteğe bağlı, varsayılan olarak "adamw_torch" (torch>=2.8 için "adamw_torch_fused")) — Kullanılacak optimizör. Yaygın seçenekler:
    • "adamw_torch": PyTorch’un AdamW’si (önerilen varsayılan)
    • "adamw_torch_fused": Birleşik AdamW çekirdeği
    • "adamw_hf": HuggingFace'in AdamW uygulaması
    • "sgd": Momentum ile Stokastik Gradyan İnişi
    • "adafactor": Büyük modeller için bellek verimli optimizör
    • "adamw_8bit": 8-bit AdamW (bitsandbytes gerektirir) Tam liste için OptimizerNames'e bakın.
  • optim_args (str, isteğe bağlı) — AnyPrecisionAdamW, AdEMAMix ve GaLore gibi optimizörlere sağlanan isteğe bağlı argümanlar.
  • weight_decay (float, isteğe bağlı, varsayılan 0) — Optimizatör tarafından uygulanan ağırlık azaltma katsayısı (kayıp fonksiyonu değil). Büyük ağırlıkları cezalandırarak aşırı öğrenmeyi önlemek için L2 düzenlemesi ekler. Bias ve LayerNorm parametrelerinden otomatik olarak hariç tutulur. Tipik değerler: 0.01 (standart), 0.1 (daha güçlü düzenleme), 0.0 (düzenleme yok).
  • adam_beta1 (float, isteğe bağlı, varsayılan 0.9) — Adam tabanlı optimizörlerde birinci an tahminleri (momentum) için üstel azalma oranı. Gradyan geçmişinin ne kadarının tutulacağını kontrol eder.
  • adam_beta2 (float, isteğe bağlı, varsayılan 0.999) — Adam tabanlı optimizörlerde ikinci an tahminlerinin (varyans) üstel azalma oranı. Uyarlanabilir öğrenme hızı ölçeklemesini kontrol eder.
  • adam_epsilon (float, isteğe bağlı, varsayılan 1e-8) — Adam tabanlı optimizörlerde sayısal kararlılık için epsilon değeri. Güncelleme kuralının paydasında sıfıra bölünmeyi önler.
  • optim_target_modules (Union[str, list[str]], isteğe bağlı) — Optimize edilecek hedef modüller, yani eğitmek istediğiniz modül adları. Şu anda GaLore algoritması ve APOLLO algoritması için kullanılır. Daha fazla ayrıntı için GaLore uygulaması ve APOLLO uygulamasına bakın. Geçerli bir GaLore veya APOLLO optimizatörü geçmenizden emin olmanız gerekir, örneğin şunlardan biri: “apollo_adamw”, “galore_adamw”, “galore_adamw_8bit”, “galore_adafactor” ve hedef modüllerin yalnızca nn.Linear modülleri olduğundan emin olun.

Düzenleme ve Eğitim Kararlılığı

  • gradient_accumulation_steps (int, isteğe bağlı, varsayılan 1) — Geriye doğru/ güncelleme geçişi yapılmadan önce gradyanların birikmesi için gereken güncelleme adım sayısı. Ek bellek kullanmadan daha büyük parti boyutlarını simüle eder. Etkili parti boyutu = per_device_train_batch_size × num_devices × gradient_accumulation_steps.

    Gradyan biriktirme kullanıldığında, bir “adım”, geriye yayılım içeren bir adım olarak sayılır. Bu nedenle, günlük tutma, değerlendirme ve kaydetme işlemleri her gradient_accumulation_steps × xxx_step eğitim örneğinde gerçekleşir.

  • average_tokens_across_devices (bool, isteğe bağlı, varsayılan True) — Cihazlar arasında token ortalaması yapılıp yapılmayacağı. Etkinleştirilirse, hassas kayıp hesabı için num_tokens_in_batch değerini senkronize etmek üzere all_reduce kullanılır. Referans: https://github.com/huggingface/transformers/issues/34242
  • max_grad_norm (float, isteğe bağlı, varsayılan 1.0) — Gradyan kırpma için maksimum gradyan normu. Geri yayılımın ardından, optimizör adımından önce uygulanır. Küresel normları bu eşiğin üzerine çıktığında gradyanları ölçekleyerek gradyan patlamasını önler. Kırpma işlemini devre dışı bırakmak için 0 olarak ayarlayın. Tipik değerler: 1.0 (standart), 0.5 (daha muhafazakâr), 5.0 (daha az agresif).
  • label_smoothing_factor (float, isteğe bağlı, varsayılan 0.0) — Aşırı güveni önlemek için etiket yumuşatma katsayısı. Sert 0/1 hedeflerini yumuşak hedeflerle değiştirir: 0, ε/num_labels olur ve 1, 1 - ε + ε/num_labels olur; burada ε = label_smoothing_factor. Sıfır, yumuşatma yapılmadığı anlamına gelir. Tipik aralık: 0.0 ile 0.1.

Karışık Hassasiyetli Eğitim

  • bf16 (bool, isteğe bağlı, varsayılan False) — bfloat16 (BF16) karma hassasiyetli eğitimi etkinleştirir Daha iyi sayısal kararlılık ve kayıp ölçekleme gerektirmemesi nedeniyle genellikle FP16'ye tercih edilir.
  • fp16 (bool, isteğe bağlı, varsayılan False) — float16 (FP16) karma hassasiyetli eğitimi etkinleştirir. Donanımınız destekliyorsa bunun yerine BF16 kullanmayı düşünün.
  • bf16_full_eval (bool, isteğe bağlı, varsayılan False) — Değerlendirme için tam BF16 hassasiyetini kullanır (yalnızca karma hassasiyet değil). Daha hızlıdır ve bellek tasarrufu sağlar ancak metrik değerlerini hafifçe etkileyebilir. Yalnızca değerlendirme sırasında uygulanır.
  • fp16_full_eval (bool, isteğe bağlı, varsayılan False) — Değerlendirme için tam FP16 hassasiyetini kullanır (yalnızca karma hassasiyet değil). Daha hızlıdır ve bellek tasarrufu sağlar ancak metrik değerlerini hafifçe etkileyebilir. Yalnızca değerlendirme sırasında uygulanır.
  • tf32 (bool, isteğe bağlı) — Ampere ve daha yeni GPU'larda TensorFloat-32 (TF32) modunu etkinleştirir. TF32, matris çarpımları için 19 bit hassasiyet kullanır (FP32'nin 23 bitine kıyasla) ve ihmal edilebilir bir doğruluk kaybıyla 8 kata kadar hızlanma sağlar. Varsayılan değer PyTorch sürümüne bağlıdır. TF32 belgeleri'ne bakın.

Aktivasyon Kontrol Noktalama

  • activation_checkpointing (bool, isteğe bağlı, varsayılan False) — Hesaplama gücünü bellek ile takas etmek için aktivasyon denetlemesini etkinleştirir. İleri geçiş sırasında aktivasyonları temizleyip geri geçiş sırasında yeniden hesaplayarak bellek kullanımını azaltır. Yaklaşık %20 daha yavaş eğitim maliyeti karşılığında daha büyük modellerin veya parti boyutlarının eğitimine olanak tanır.
  • activation_checkpointing_kwargs (dict, isteğe bağlı, varsayılan None) — activation_checkpointing_enable() işlevine aktarılan anahtar kelime argümanları. every_n_layers, tüm katmanlar yerine yalnızca her n'inci decoder katmanını checkpoint'ler; 1 değeri, tümünü ya da hiçbiri davranışını temsil eder, daha büyük değerler ise hız için biraz bellek geri kazandırır. offload, kaydedilen aktivasyonları sabitlenmiş host belleğinde tutar; bu, layers x sequence x hidden baytlık cihaz belleğini boşaltır ve adımı yavaşlatır. Diğer tüm anahtarlar torch.utils.checkpoint.checkpoint işlevine aktarılır.
  • gradient_checkpointing (bool, isteğe bağlı) — activation_checkpointing'in kullanımı durdurulan takma adı, v6 sürümünde kaldırılacaktır.
  • gradient_checkpointing_kwargs (dict, isteğe bağlı) — activation_checkpointing_kwargs'nın kullanımdan kaldırılmış takma adı, v6 sürümünde kaldırılacaktır.

Derleme

  • torch_compile (bool, isteğe bağlı, varsayılan False) — Modeli daha hızlı eğitim için PyTorch 2.0’ın torch.compile() özelliğiyle derler. Kod değişikliği gerektirmeden %20-50 hızlanma sağlayabilir. torch_compile_backend veya torch_compile_mode belirtilmedikçe varsayılan derleme ayarlarını kullanır.
  • torch_compile_backend (str, isteğe bağlı) — torch.compile() için backend. Ayarlanırsa torch_compile otomatik olarak etkinleştirilir. Seçenekler arasında "inductor" (varsayılan), "aot_eager", "cudagraphs" bulunur. Backend'ler PyTorch sürümüne göre değişir - kullanılabilir seçenekler için PyTorch belgelerine bakın.
  • torch_compile_mode (str, isteğe bağlı) — torch.compile() için derleme modu. Ayarlanırsa torch_compile otomatik olarak etkinleştirilir. Seçenekler: "default", "reduce-overhead" (Python yükünü en aza indirir), "max-autotune" (agresif optimizasyon, daha yavaş derleme süresi).

Çekirdekler

  • use_liger_kernel (bool, isteğe bağlı, varsayılan False) — Liger Kernel optimizasyonlarını etkinleştirir. Çoklu GPU geçirgenliğini ~%20 artırır ve bellek kullanımını ~%60 azaltır. Flash Attention, FSDP ve DeepSpeed ile çalışır. Şu anda Llama, Mistral, Mixtral ve Gemma modellerini destekler.
  • liger_kernel_config (Optional[dict], isteğe bağlı) — Liger Kernel yapılandırması. _apply_liger_kernel_to_instance() fonksiyonuna kwargs olarak iletilir. Seçenekler genellikle şunları içerir: "rope", "swiglu", "cross_entropy", "fused_linear_cross_entropy", "rms_norm". None ise varsayılan yapılandırma kullanılır.

Ek Optimizasyonlar

  • use_cache (bool, isteğe bağlı, varsayılan False) — Model için önbelleğin etkinleştirilip etkinleştirilmeyeceği. Eğitim için, past_key_values kullanan bazı PEFT yöntemleri dışında genellikle buna gerek yoktur.
  • neftune_noise_alpha (Optional[float]) — None değilse, NEFTune gürültü gömme işlevini etkinleştirir. Bu, talimatla ince ayar için model performansını önemli ölçüde artırabilir. orijinal makaleyi ve orijinal kodu inceleyin. transformers PreTrainedModel ve peft'ten PeftModel desteklenir. Orijinal makalede [5.0, 15.0] aralığında değerler kullanılmıştır.
  • torch_empty_cache_steps (int, isteğe bağlı) — torch.<device>.empty_cache() çağrılmadan önce beklenmesi gereken adım sayısı. Ayarlanmazsa veya None olarak ayarlanırsa, önbellek boşaltılmaz. Bu, zirve VRAM kullanımını azaltarak CUDA bellek dışı (out-of-memory) hatalarını önlemeye yardımcı olabilir; bunun maliyeti yaklaşık %10 daha yavaş performans olabilir.
  • auto_find_batch_size (bool, isteğe bağlı, varsayılan False) — CUDA Out-of-Memory hatalarını önlemek için üstel azalma yoluyla belleğe sığacak bir eğitim batch boyutunu otomatik olarak bulup bulmayacağını belirtir. Değerlendirme batch boyutu ayarlanmaz.

Eğitim Kaydı ve İzleme

  • logging_strategy (str veya IntervalStrategy, isteğe bağlı, varsayılan olarak "steps") — Eğitim sırasında benimsenecek günlük kaydı stratejisi. Olası değerler şunlardır:
    • "no": Eğitim sırasında günlük kaydı yapılmaz.
    • "epoch": Kayıt işlemi her epoch'un sonunda yapılır.
    • "steps": Kayıt işlemi her logging_steps adımında yapılır.
  • logging_steps (int veya float, isteğe bağlı, varsayılan 500) — logging_strategy="steps" ise iki log arasındaki güncelleme adım sayısı. [0,1) aralığında bir tam sayı veya ondalık sayı olmalıdır. 1'den küçükse, toplam eğitim adımının oranı olarak yorumlanır.
  • logging_first_step (bool, isteğe bağlı, varsayılan False) — İlk global_step'in kaydedilip kaydedilmeyeceğini belirtir.
  • log_on_each_node (bool, isteğe bağlı, varsayılan True) — Çoklu düğümlü dağıtık eğitimde, log_level ile loglamaların her düğümde bir kez mi yoksa yalnızca ana düğümde mi yapılacağını belirtir.
  • logging_nan_inf_filter (bool, isteğe bağlı, varsayılan True) — Kayıt sırasında NaN ve Inf kayıplarını filtreler. True ise, NaN/Inf eğitim kayıplarını son zamanlardaki geçerli kayıpların ortalamasıyla değiştirir ve NaN/Inf partilerini (ör. etiket token'ları içermeyen partiler) değerlendirme kaybının dışında bırakır. Gradyan hesaplamasını etkilemez, yalnızca kaydı etkiler.
  • include_num_input_tokens_seen (Optional[Union[str, bool]], isteğe bağlı, varsayılan “no”) — Görülen girdi token sayısının izlenip izlenmeyeceğini belirtir. Değer [“all”, “non_padding”, “no”] değerlerinden biri veya “all” veya “no”ya eşlenen bir boolean değer olmalıdır. Toplama işlemlerinin çağrılması gerektiğinden dağıtık eğitimde daha yavaş olabilir.

Kayıt tutma

  • log_level (str, isteğe bağlı, varsayılan passive) — Ana işlem için kayıt seviyesi. Seçenekler: "debug", "info", "warning", "error", "critical" veya "passive" (mevcut Transformers kayıt seviyesini değiştirmez, varsayılan olarak "warning" değerindedir)
  • log_level_replica (str, isteğe bağlı, varsayılan "warning") — Dağıtık eğitimde replika süreçleri için kayıt seviyesi. log_level ile aynı seçenekler.
  • disable_tqdm (bool, isteğe bağlı) — tqdm ilerleme çubuklarını devre dışı bırakır. log_level uyarı veya daha düşükse varsayılan olarak True, aksi halde False olur.

Deneysel İzleme Entegrasyonu

  • report_to (str or list[str], isteğe bağlı, varsayılan "none") — Sonuçların ve günlüklerin raporlanacağı entegrasyonların listesi. Desteklenen platformlar "azure_ml", "clearml", "codecarbon", "comet_ml", "dagshub", "dvclive", "flyte", "mlflow", "swanlab", "tensorboard", "trackio" and "wandb". Yükümlü tüm entegrasyonlara raporlamak için "all", hiçbir entegrasyon kullanmamak için "none" kullanın.
  • run_name (str, isteğe bağlı) — Çalışma için bir tanımlayıcı. Genellikle trackio, wandb, mlflow, comet ve swanlab günlük kaydı için kullanılır.
  • project (str, isteğe bağlı, varsayılan "huggingface") — Kayıt için kullanılacak projenin adı. Şu anda yalnızca Trackio tarafından kullanılır.
  • trackio_space_id (str veya None, isteğe bağlı, varsayılan None) — Gradio tabanlı bir Space ile canlı Trackio günlükleme için kullanılacak Hugging Face Space kimliği. 'username/reponame' veya 'orgname/reponame' gibi tam bir Space adı veya yalnızca 'reponame' olmalıdır (Space, şu anda oturum açmış kullanıcının ad alanına oluşturulur). None ise, metrikler yalnızca yerel bir dizine kaydedilir (Hub'da Space yok). O Gradio Space, Trackio Bucket'a okuma ve yazma erişimine sahiptir; bu, eğitim sürdürülürken istediğiniz şeydir — örneğin kısmi bir çalıştırmayı devralırken veya birden fazla makineden günlükleri birleştirirken. Space, hub_private_repo=True ayarlamadığınız veya organizasyonunuzun varsayılanı özel Space'ler oluşturmak olmadıkça herkese açık olacaktır.
  • trackio_bucket_id (str veya None, isteğe bağlı, varsayılan None) — Trackio için isteğe bağlı Hugging Face Bucket kimliği. Ayarlanmazsa Trackio bir kimlik türetir. Bir Gradio Space ile birlikte (trackio_space_id) ve statik bir Space dağıtılırken (trackio_static_space_id False değilse) kullanılır.
  • trackio_static_space_id (str, False veya None, isteğe bağlı, varsayılan None) — Eğitim tamamlandıktan sonra oluşturulan statik Space için kullanılacak Hugging Face Space kimliği. 'username/reponame' veya 'orgname/reponame' gibi tam bir Space adı veya yalnızca 'reponame' olmalıdır (Space, şu anda oturum açmış kullanıcının ad alanına oluşturulur). False ise, statik bir Space oluşturulmaz. None ise ve model Hub'a itilirse, varsayılan bir adla statik bir Space oluşturulur ve model kartından buna bağlantı verilir. hub_private_repo=True ayarlamadıkça veya organizasyonunuzun varsayılanı özel Space'ler oluşturmak olmadıkça Space herkese açıktır.

Değerlendirme

  • eval_strategy (str veya IntervalStrategy, isteğe bağlı, varsayılan olarak "no") — Değerlendirmenin ne zaman çalıştırılacağı. Seçenekler:
    • "no": Eğitim sırasında değerlendirme yapılmaz
    • "steps": Her eval_steps adımında değerlendir
    • "epoch": Her epoch sonunda değerlendir
  • eval_steps (int veya float, isteğe bağlı) — eval_strategy="steps" ise iki değerlendirme arasındaki güncelleme adım sayısı. Ayarlanmazsa logging_steps ile aynı değere ayarlanır. Bir tamsayı veya [0,1) aralığında bir ondalık sayı olmalıdır. 1'den küçükse, toplam eğitim adımının oranı olarak yorumlanır.
  • eval_delay (float, isteğe bağlı) — İlk değerlendirmenin yapılabilmesi için, eval_strategy'e bağlı olarak beklenmesi gereken epoch veya adım sayısı.
  • per_device_eval_batch_size (int, isteğe bağlı, varsayılan 8) — Değerlendirme için cihaz başına hızlandırıcı çekirdeği/CPU için parti boyutu.
  • prediction_loss_only (bool, isteğe bağlı, varsayılan False) — Değerlendirme yapılırken ve tahminler üretilirken yalnızca kaybı döndürür.
  • eval_on_start (bool, isteğe bağlı, varsayılan False) — Eğitimden önce doğrulama adımlarının doğru çalıştığından emin olmak için bir değerlendirme adımı (sağlık kontrolü) yapılıp yapılmayacağını belirtir.
  • eval_do_concat_batches (bool, isteğe bağlı, varsayılan True) — Girdilerin/kayıpların/etiketlerin/tahminlerin partiler arasında özyinelemeli olarak birleştirilip birleştirilmeyeceğini belirtir. False ise, bunlar listeler olarak saklanır ve her parti ayrı tutulur.
  • eval_use_gather_object (bool, isteğe bağlı, varsayılan False) — Tüm cihazlardan gelen iç içe geçmiş liste/tuple/sözlük yapısındaki nesnelerde özyinelemeli olarak nesne toplama (gather) işleminin çalıştırılıp çalıştırılmayacağını belirtir. Bu, kullanıcılar yalnızca tensör döndürmüyorsa etkinleştirilmelidir ve PyTorch tarafından aktif olarak önerilmez. Etiket yapısının standart dışı olduğu durumlarda, örneğin bilgisayarla görme görevlerinde, faydalıdır.
  • eval_accumulation_steps (int, isteğe bağlı) — Sonuçların CPU'ya taşınmadan önce çıktı tensörlerinin biriktirileceği tahmin adım sayısı. Ayarlanmazsa, tüm tahminler CPU'ya taşınmadan önce cihaz hızlandırıcısında biriktirilir (daha hızlıdır ancak daha fazla bellek gerektirir).

Metrik Hesaplama

  • include_for_metrics (list[str], isteğe bağlı, varsayılan olarak []) — metrik hesaplama için gerekliyse ek verileri compute_metrics fonksiyonuna dahil edin. include_for_metrics listesine eklenebilecek olası seçenekler:
    • "inputs": Modele iletilen ve girişe bağlı metriklerin hesaplanması için kullanılan giriş verileri.
    • "loss": Değerlendirme sırasında hesaplanan ve kayba bağlı metriklerin hesaplanması için kullanılan kayıp değerleri.
  • batch_eval_metrics (bool, isteğe bağlı, varsayılan False) — True olarak ayarlanırsa, değerlendirme, tüm değerlendirme logitlerini bellekte tutmak yerine her batch'in sonunda compute_metrics'i çağırarak istatistikleri biriktirir. True olarak ayarlandığında, değerlendirme seti üzerinde biriktirdiğiniz batch düzeyindeki özet istatistiklerden son küresel özet istatistikleri tetikleyecek, True iletildiğinde bu işlevi gerçekleştiren compute_result adlı bir boolean argüman alan bir compute_metrics fonksiyonu geçirmeniz gerekir.

Checkpoint Alma ve Kaydetme

  • save_only_model (bool, isteğe bağlı, varsayılan False) — Yalnızca model ağırlıklarını, optimizasyoncu/planlayıcı/RNG durumunu değil kaydeder. Kontrol noktası boyutunu önemli ölçüde azaltır ancak kontrol noktasından eğitim devam ettirilemez. Sadece çıkarım için eğitimli modele ihtiyacınız varsa, devam eden eğitim için değilse kullanın. Bu seçenek True olarak ayarlandığında modeli yalnızca from_pretrained ile yükleyebilirsiniz.
  • save_strategy (str veya SaveStrategy, isteğe bağlı, varsayılan olarak "steps") — Eğitim sırasında benimsenecek checkpoint kaydetme stratejisi. Olası değerler şunlardır:
    • "no": Eğitim sırasında kayıt yapılmaz.
    • "epoch": Kaydetme işlemi her epoch sonunda yapılır.
    • "steps": Kaydetme işlemi her save_steps adımında yapılır.
    • "best": Yeni bir best_metric değerine ulaşıldığında kayıt yapılır.
  • save_steps (int veya float, isteğe bağlı, varsayılan 500) — save_strategy="steps" ise iki checkpoint kaydı arasındaki güncelleme adım sayısı. Bir tamsay veya [0,1) aralığında bir ondalık sayı olmalıdır. 1'den küçükse, toplam eğitim adımının oranı olarak yorumlanır.
  • save_on_each_node (bool, isteğe bağlı, varsayılan False) — Çoklu düğümlü dağıtık eğitim sırasında modellerin ve kontrol noktalarının her düğümde mi yoksa yalnızca ana düğümde mi kaydedileceğini belirtir. Farklı düğümler aynı depolamayı kullandığında bu özellik etkinleştirilmemelidir; çünkü dosyalar her düğüm için aynı adlarla kaydedilir.
  • save_total_limit (int, isteğe bağlı) — Tutulacak en fazla checkpoint sayısı. output_dir içindeki eski checkpoint'leri siler. load_best_model_at_end=True olduğunda, en iyi checkpoint her zaman korunur ve en son olanlar da eklenir. Örneğin, save_total_limit=5 en son 4 checkpoint'i ve en iyisini korur
  • enable_jit_checkpoint (bool, isteğe bağlı, varsayılan False) — Önemsenebilir iş yüklerinde zarif sonlandırma için SIGTERM sinyali üzerinde Just-In-Time checkpointing'i etkinleştirir. Önemli: Yeterli süre tanımlamak için orkestratörünüzün zarif kapatma süresini yapılandırın. Kubernetes için terminationGracePeriodSeconds değerini ayarlayın (varsayılan 30s genellikle yetersizdir). Slurm için --signal=TERM@<seconds> kullanın. Gerekli zarif süre ≥ en uzun iterasyon süresi + checkpoint kaydetme süresi.

Hugging Face Hub Entegrasyonu

  • push_to_hub (bool, isteğe bağlı, varsayılan False) — Model her kaydedildiğinde Hub'a gönderilsin mi. Bu özellik etkinleştirilirse, output_dir, repoyla (daha önce hub_model_id ile belirlenen) senkronize edilen bir git dizini olarak başlar ve içerik, herhangi bir kaydetme işlemi tetiklendiğinde gönderilir (bu, save_strategy değerine bağlıdır). save_model() çağrısı da bir gönderim tetikler.
  • hub_token (str, isteğe bağlı) — Modeli Hub'a göndermek için kullanılacak jeton. Varsayılan olarak, hf auth login ile alınan önbellek klasöründeki jeton kullanılır.
  • hub_private_repo (bool, isteğe bağlı) — Deponun özel yapılıp yapılmayacağını belirtir. None (varsayılan) ise, organizasyonun varsayılanı özel değilse depo herkese açık olur. Depo zaten mevcutsa bu değer yok sayılır. Trackio'ya raporlama, Hugging Face Spaces dağıtımı etkinleştirilmişse, Space'in özel olup olmayacağını belirleyen mantık aynıdır.
  • hub_model_id (str, isteğe bağlı) — Yerel output_dir ile senkronize tutulacak deposunun adı. Basit bir model kimliği olabilir; bu durumda model ad alanınıza (namespace) itilir. Aksi takdirde, bir üyesi olduğunuz bir organizasyona "organization_name/model" ile itmenizi sağlayan tam depo adı olmalıdır, örneğin "user_name/model". Varsayılan olarak output_dir_name, output_dir'ın adı olduğu için user_name/output_dir_name olur.
  • hub_strategy (str veya HubStrategy, isteğe bağlı, varsayılan olarak "every_save") — Hub'a neyin ve ne zaman gönderileceğini tanımlar. Seçenekler:
    • "end": Sadece eğitimin sonunda it
    • "every_save": Her kayıtta it (eğitimi bloklamaması için asenkron)
    • "checkpoint": "every_save" gibi, en son kontrol noktasını kolayca devam edebilmek için "last-checkpoint" alt klasörüne iter
    • "all_checkpoints": Kontrol noktaları ortaya çıktıkça hepsini gönder
  • hub_always_push (bool, isteğe bağlı, varsayılan False) — Bu True olmadıkça, Trainer önceki gönderim tamamlanmadıysa bir kontrol noktası göndermeyi atlar.
  • hub_revision (str, isteğe bağlı) — Hub'a itme işlemi sırasında kullanılacak revizyon. Bir dal adı, etiket veya commit hash'i olabilir.

En İyi Model Takibi

  • load_best_model_at_end (bool, isteğe bağlı, varsayılan False) — Eğitimin sonunda en iyi kontrol noktasını yükler. eval_strategy'nin ayarlanmış olması gerekir. Etkinleştirildiğinde, en iyi kontrol noktası her zaman kaydedilir (bkz. save_total_limit). `True` olduğunda, `save_strategy` `eval_strategy` ile eşleşmelidir (`save_strategy` `"best"` olmadıkça) ve `"steps"` kullanılıyorsa `save_steps`, `eval_steps`'in bir katı olmalıdır.
  • metric_for_best_model (str, isteğe bağlı) — load_best_model_at_end=True olduğunda modelleri karşılaştırmak için kullanılacak metrik. Değerlendirme tarafından döndürülen, "eval_" önekiyle veya öneksiz bir metrik adı olmalıdır. Varsayılan değeri "loss"'tur. Bu değeri ayarlarsanız, ad "loss" ile bitmiyorsa greater_is_better varsayılan olarak True olur. Örnekler: "accuracy", "f1", "eval_bleu".
  • greater_is_better (bool, isteğe bağlı) — Daha yüksek metrik değerlerinin daha iyi olup olmadığı. metric_for_best_model değerine göre varsayılan olarak ayarlanır: Metrik adı "loss" ile bitmiyorsa True, aksi halde False.

Eğitimi Devam Ettirme

  • ignore_data_skip (bool, isteğe bağlı, varsayılan False) — Eğitim devam ettirilirken, önceki duruma ulaşmak için veri setinde hızlı ileri sarma işlemi atlanır. True ise eğitim, veri setinin başından başlar (daha hızlı devam etme ancak sonuçlar yarıda kesilen eğitimle eşleşmez). False ise görülmüş veriler atlanır (daha yavaş devam etme ancak tam devam).
  • restore_callback_states_from_checkpoint (bool, isteğe bağlı, varsayılan False) — Devam ederken checkpoint'ten callback durumlarını geri yükler. True ise, checkpoint'te mevcut olanlar Trainer'a geçirilen callback'leri yazar.

Tekrarlanabilirlik

  • full_determinism (bool, isteğe bağlı, varsayılan False) — True ise, dağıtık eğitimde tekrarlanabilir sonuçları sağlamak için set_seed() yerine enable_full_determinism() çağrılır. Önemli: Bu, performansı olumsuz etkiler, bu nedenle yalnızca hata ayıklama için kullanın.
  • seed (int, isteğe bağlı, varsayılan 42) — Eğitimin başlangıcında ayarlanacak rastgele tohum. Çalışmalar arasında tekrarlanabilirliği sağlamak için, rastgele başlatılmış parametrelere sahipse modeli ~Trainer.model_init işlevini kullanarak örnekleyin.
  • data_seed (int, isteğe bağlı) — Veri örnekleyicilerle kullanılacak rastgele tohum. Ayarlanmazsa, veri örneklemesi için rastgele üreteçler seed ile aynı tohumu kullanır. Bu, model tohumundan bağımsız olarak veri örneklemesinin tekrarlanabilirliğini sağlamak için kullanılabilir.

Donanım Yapılandırması

  • use_cpu (bool, isteğe bağlı, varsayılan False) — cpu kullanılıp kullanılmayacağı. False olarak ayarlanırsa, kullanılabilir torch cihazı/ark planı kullanılır.

Accelerate Yapılandırması

  • accelerator_config (str, dict, veya AcceleratorConfig, isteğe bağlı) — Dahili Accelerate entegrasyonu için yapılandırma. Şunlardan biri olabilir:
    • JSON yapılandırma dosyasının yolu: "accelerator_config.json"
    • Yapılandırma seçenekleri içeren sözlük
    • AcceleratorConfig örneği Anahtar seçenekler:
    • split_batches (bool, varsayılan False): Toplulukların (batch) cihazlar arasında bölünip bölünmeyeceğini belirtir. True ise, tüm cihazlarda gerçek topluluk boyutu aynıdır (toplam, num_processes sayısına tam bölünmelidir). False ise, her cihaza belirtilen topluluk boyutu atanır.
    • dispatch_batches (bool): True ise yalnızca ana süreç dataloader üzerinden iterasyon yapar ve batch'leri cihazlara dağıtır. IterableDataset için varsayılan değeri True, diğer durumlarda False'tır.
    • even_batches (bool, varsayılan True): Tüm işçilerin eşit parti boyutlarına sahip olmasını sağlamak için veri setinin başındaki örnekleri kopyalar.
    • use_seedable_sampler (bool, varsayılan True): Yeniden üretilebilirlik için tamamen tohumlanabilir rastgele örnekleyici kullanın.
    • use_configured_state (bool, varsayılan False): Yeni bir tane oluşturmak yerine önceden başlatılmış AcceleratorState/PartialState kullanılır. Hiperağır ayarlamada sorunlara neden olabilir.
  • parallelism_config (ParallelismConfig, isteğe bağlı) — Eğitim çalışması için paralellik yapılandırması. 1.10.1 sürümünden itibaren Accelerate gerektirir

Dataloader

  • dataloader_drop_last (bool, isteğe bağlı, varsayılan False) — Veri setinin uzunluğu parti boyutuna bölünmüyorsa son eksik partinin atılıp atılmayacağını belirtir.
  • dataloader_num_workers (int, isteğe bağlı, varsayılan 0) — Veri yükleme için kullanılacak alt süreç sayısı (yalnızca PyTorch). 0, verinin ana süreçte yükleneceği anlamına gelir.
  • dataloader_pin_memory (bool, isteğe bağlı, varsayılan True) — Veri yükleyicilerde belleğin sabitlenip sabitlenmeyeceğini belirtir. Varsayılan olarak True olur.
  • dataloader_persistent_workers (bool, isteğe bağlı, varsayılan False) — True ise, veri yükleyici bir veri seti bir kez tüketildikten sonra işçi süreçlerini kapatmaz. Bu, işçi Dataset örneklerinin canlı kalmasını sağlar. Eğitim hızını potansiyel olarak artırabilir, ancak RAM kullanımını artırır. Varsayılan olarak False olur.
  • dataloader_prefetch_factor (int, isteğe bağlı) — Her işçi tarafından önceden yüklenen parti sayısı. 2, tüm işçiler arasında toplam 2 * num_workers partinin önceden yükleneceği anlamına gelir.
  • dataloader_multiprocessing_context (str, isteğe bağlı) — Veri yükleme işçileri için kullanılacak çok işlemcili başlatma yöntemi ("fork", "spawn" veya "forkserver"). Varsayılan olarak PyTorch’ün varsayılan başlatma yöntemi kullanılır; ancak MPS üzerinde dataloader_num_workers > 1 durumunda varsayılan "fork" olur. Nesneleri fork-güvenli olmayan kaynaklardan akış halinde okurken (ör. pyarrow üzerinden HDFS) "spawn" kullanın. "spawn" altında, özel collate_fn veya veri kümesi kodu modül düzeyinde içe aktarılabilir olmalıdır (lambda/kapanış kullanılamaz).
  • dataloader_in_order (bool, isteğe bağlı, varsayılan True) — True ise, veri yükleyici, işçilerin dağıtıldığı sırayla toplamları üretir. False olarak ayarlanırsa, toplamlar hazır olur olmaz üretilir; bu da IterableDataset akış iş yüklerinde kuyruk gecikmesini azaltabilir. PyTorch >= 2.6 gerektirir.
  • remove_unused_columns (bool, isteğe bağlı, varsayılan True) — Modelin forward metodunun kullanmadığı sütunların otomatik olarak kaldırılıp kaldırılmayacağı.
  • label_names (list[str], isteğe bağlı) — Girdi sözlüğünüzde etiketlere karşılık gelen anahtarların listesi. Varsayılan olarak, modelin kabul ettiği ve “label” kelimesini içeren argüman adlarının listesine ayarlanır; ancak kullanılan model XxxForQuestionAnswering sınıflarından biri ise, bu listeye ["start_positions", "end_positions"] anahtarları da eklenir. label_names değerini yalnızca özel etiket adları kullanıyorsanız veya modelinizin forward metodu birden fazla etiket tensörünü tüketiyorsa (ör. çıkarımsal soru-cevap) belirtmelisiniz.
  • train_sampling_strategy (str, isteğe bağlı, varsayılan olarak "random") — Eğitim dataloader'ı için kullanılacak örnekleyici. Olası değerler şunlardır:
    • "random": RandomSampler kullanır (varsayılan).
    • "sequential": SequentialSampler kullanır.
    • "group_by_length": Yaklaşık olarak aynı uzunluktaki örnekleri bir araya getirmek için LengthGroupedSampler kullanır (dolgu işlemini en aza indirmek ve daha verimli olmak için).
    • "batch_rebalance": BatchRebalanceSampler kullanılarak her etkili batch içindeki cihazlar ve gradyan biriktirme adımları arasında dolgulu jeton maliyeti dengelenir; bu sayede "group_by_length" ile karşılaştırıldığında dolgu israfı ve tepe bellek kullanımı azaltılır. Şu anda yalnızca veri paralel eğitim için desteklenmektedir (tensor paralelliği henüz desteklenmemektedir).

    Not: IterableDataset kullanıldığında bu argüman yok sayılır.

  • length_column_name (str, isteğe bağlı, varsayılan "length") — Önceden hesaplanmış uzunluklar için sütun adı. Sütun mevcutsa, uzunluğa göre gruplama bu değerleri kullanır, eğitim başlangıcında hesaplamaz. train_sampling_strategy "group_by_length" veya "batch_rebalance" değilse ve veri seti Dataset örneği değilse yok sayılır.

DDP (DistributedDataParallel)

  • ddp_find_unused_parameters (bool, isteğe bağlı) — Dağıtık eğitim kullanıldığında, DistributedDataParallel'e geçirilen find_unused_parameters bayrağının değeri. Gradyan denetimi (gradient checkpointing) kullanılıyorsa varsayılan olarak False, aksi halde True olur.
  • ddp_bucket_cap_mb (int, isteğe bağlı) — Dağıtık eğitim kullanıldığında, DistributedDataParallel'e geçirilen bucket_cap_mb bayrağının değeri.
  • ddp_broadcast_buffers (bool, isteğe bağlı) — Dağıtık eğitim kullanıldığında, DistributedDataParallel'e geçirilen broadcast_buffers bayrağının değeri. Gradyan denetimi kullanılıyorsa varsayılan olarak False, aksi halde True olur.
  • ddp_static_graph (bool, isteğe bağlı) — Dağıtık eğitim kullanıldığında, DistributedDataParallel'e geçirilen static_graph bayrağının değeri.
  • ddp_backend (str, isteğe bağlı) — Dağıtık eğitim için kullanılacak arka uç. "nccl", "mpi", "xccl", "gloo", "hccl" değerlerinden biri olmalıdır.
  • ddp_timeout (int, isteğe bağlı, varsayılan 1800) — Dağıtık çalıştırmalarda yavaş işlemler gerçekleştirirken GPU soket zaman aşımını önlemek için torch.distributed.init_process_group çağrılarında kullanılan zaman aşımı. Daha fazla bilgi için PyTorch belgelerine bakın.

FSDP (Fully Sharded Data Parallel)

  • fsdp (bool, isteğe bağlı, varsayılan None) — Dağıtık eğitim için PyTorch Fully Sharded Data Parallel (FSDP)'i etkinleştirir. FSDP'yi etkinleştirmek için True geçirin.
  • fsdp_config (str veya dict, isteğe bağlı) — Etkinleştirildiğinde ayar yapılandırması fsdp etkin olduğunda. JSON yapılandırma dosyasına bir yol geçin, örneğin fsdp_config.json, veya zaten yüklenmiş bir dict.

    Desteklenen anahtarlar:

    • version (int, isteğe bağlı, varsayılan 2): Kullanılacak FSDP sürümü (2 FSDP2 için, 1 eski FSDP1 için).
    • reshard_after_forward (bool, isteğe bağlı, varsayılan True): İleri geçişten sonra parametrelerin yeniden bölünmesi (reshard) yapılıp yapılmayacağını belirtir. İleri ve geri geçişler arasında parametrelerin toplanmış (gathered) halde tutulması, yeniden tüm-toplama (re-all-gather) işleminin önlenmesi ve daha yüksek tepe bellek kullanımı için False olarak ayarlayın.
    • cpu_offload (bool, isteğe bağlı, varsayılan False): Kullanılmadığında GPU belleğini tasarruf etmek için parametreleri ve gradyanları CPU'ya aktarır.
    • activation_checkpointing (bool, isteğe bağlı, varsayılan False): Geriye doğru yayılım sırasında aktivasyonları yeniden hesaplayarak belleği azaltmak için True olarak ayarlayın. FSDP kullanırken, geriye doğru yayılım aşamasında gereksiz bir all-gather işlemine neden olan activation_checkpointing eğitim argümanı yerine bunu tercih edin.
    • cpu_ram_efficient_loading (bool, isteğe bağlı, varsayılan False): Önceden eğitilmiş kontrol noktasının yalnızca ilk işlemde yüklenmesi için True olarak ayarlayın. Diğer işlemler boş ağırlıklarla başlar ve ağırlıkları yayın (broadcast) yoluyla alır.
    • state_dict_type (str, isteğe bağlı, varsayılan "FULL_STATE_DICT"): Kontrol noktası biçimi: "FULL_STATE_DICT" (tek HF uyumlu dosya) veya "SHARDED_STATE_DICT" (rank başına bir dosya, büyük modeller için daha hızlı).
    • auto_wrap_policy (str, isteğe bağlı, varsayılan "TRANSFORMER_BASED_WRAP"): Kullanılacak auto-wrap politikası. "TRANSFORMER_BASED_WRAP", "SIZE_BASED_WRAP" veya "NO_WRAP" seçeneklerinden birini seçin.
    • transformer_layer_cls_to_wrap (list[str], isteğe bağlı): Sarmalanacak transformer katman sınıf adları (büyük/küçük harfe duyarlı), örn. LlamaDecoderLayer. Genellikle gerekmez: sarmalama politikası, çoğu transformers modelini kapsayan modelin _no_split_modules değerine geri düşer.
    • min_num_params (int, isteğe bağlı, varsayılan 0): Boyut tabanlı otomatik sarmalama için modül başına minimum parametre sayısı (auto_wrap_policy="SIZE_BASED_WRAP" ile kullanılır).
    • xla (bool, isteğe bağlı, varsayılan False): PyTorch/XLA Fully Sharded Data Parallel Eğitiminin kullanılıp kullanılmayacağı. Deneyseldir.
    • xla_fsdp_settings (dict, isteğe bağlı): XLA FSDP sarmalama parametrelerinin sözlüğü. Tüm seçeneklerin listesi için bkz. XLA FSDP kaynağı.
    • xla_fsdp_grad_ckpt (bool, isteğe bağlı, varsayılan False): Her iç içe geçmiş XLA FSDP sarmalı katman için gradyan denetimi (gradient checkpointing) kullanmak için True olarak ayarlayın. xla=True ve bir otomatik sarma politikası (min_num_params veya transformer_layer_cls_to_wrap) gerektirir.

DeepSpeed

  • deepspeed (str veya dict, isteğe bağlı) — Etkinleştir DeepSpeed entegrasyonu. Değer şunlardan biri olabilir:
    • DeepSpeed JSON yapılandırma dosyasının yolu: "ds_config.json"
    • Yüklenecek yapılandırma sözlük olarak

      ZeRO başlatma kullanılıyorsa, TrainingArguments başlatıldıktan sonra modelinizi örnekleyin; aksi takdirde ZeRO uygulanmaz.

Hata Ayıklama ve Profil Oluşturma (Deneysel)

  • debug (str veya list of DebugOption, opsiyonel, varsayılan olarak "") — Bir veya daha fazla hata ayıklama özelliğini etkinleştirir. Bu deneysel bir özelliktir. Olası seçenekler şunlardır:
    • “underflow_overflow”: modelin girdi/çıktılarında taşmayı algılar ve olaya yol son kareleri raporlar
    • “tpu_metrics_debug”: TPU üzerinde hata ayıklama metriklerini yazdır
  • skip_memory_metrics (bool, isteğe bağlı, varsayılan True) — Metriklere bellek profilleri raporlarının eklenmesinin atlanıp atlanmayacağı. Bu, eğitim ve değerlendirme hızını yavaşlattığı için varsayılan olarak atlanır.

Harici Betik Bayrakları (Trainer tarafından kullanılmaz)

  • do_train (bool, isteğe bağlı, varsayılan False) — Eğitimin çalıştırılıp çalıştırılmayacağını belirtir. Bu argüman Trainer tarafından doğrudan kullanılmaz; bunun yerine eğitim/değerlendirme betikleriniz tarafından kullanılması amaçlanmıştır.
  • do_eval (bool, isteğe bağlı) — Doğrulama kümesinde değerlendirme çalıştırılıp çalıştırılmayacağını belirtir. eval_strategy "no" değerinden farklıysa True olarak ayarlanır. Bu argüman Trainer tarafından doğrudan kullanılmaz; bunun yerine eğitim/değerlendirme betikleriniz tarafından kullanılması amaçlanmıştır.
  • do_predict (bool, isteğe bağlı, varsayılan False) — Test setinde tahminlerin çalıştırılıp çalıştırılmayacağını belirtir. Bu argüman Trainer tarafından doğrudan kullanılmaz; bunun yerine eğitim/değerlendirme betikleriniz tarafından kullanılması amaçlanmıştır.
  • resume_from_checkpoint (str, isteğe bağlı) — Modeliniz için geçerli bir checkpoint içeren klasörün yolu. Bu argüman doğrudan Trainer tarafından kullanılmaz; bunun yerine eğitim/değerlendirme betikleriniz tarafından kullanılması amaçlanmıştır.

Trainer ile model eğitiminin tüm yönlerini kontrol etmek için kullanılan yapılandırma sınıfı. TrainingArguments, eğitim için gereken tüm hiperparametreleri, optimizasyon ayarlarını, günlük tutma tercihlerini ve altyapı seçimlerini merkezi bir şekilde toplar.

HfArgumentParser, bu sınıfı komut satırında belirtilebilecek argparse argümanlarına dönüştürebilir.

get_process_log_level

< >

( )

Bu sürecin 0 numaralı düğümün ana süreci, 0 dışındaki bir düğümün ana süreci veya ana olmayan bir süreç olup olmadığına bağlı olarak kullanılacak günlük seviyesini döndürür.

Ana süreç için, log_level argümanı ile geçersiz kılınmadığı sürece, log seviyesi varsayılan olarak ayarlanan loglama seviyesidir (hiçbir şey yapmadıysanız logging.WARNING).

Replika süreçleri için, log_level_replica argümanı ile değiştirilmedikçe log seviyesi varsayılan olarak logging.WARNING değerine ayarlanır.

Ana ve replika süreç ayarları arasındaki seçim, should_log'in dönüş değerine göre yapılır.

get_warmup_steps

< >

( num_training_steps: int )

Doğrusal ısınma için kullanılan adım sayısını alın.

main_process_first

< >

( local = Truedesc = 'work' )

Parametreler

  • local (bool, isteğe bağlı, varsayılan True) — True ise her düğümün rank 0 süreci, False ise rank 0 düğümünün rank 0 süreci anlamına gelir. Paylaşımlı bir dosya sistemine sahip çoklu düğüm ortamında, işlemin yalnızca ilk düğümün ana süreci tarafından yapılması için büyük olasılıkla local=False kullanmak istersiniz. Ancak dosya sistemi paylaşılmıyorsa, her düğümün ana sürecinin işlemi yapması gerekir; bu da varsayılan davranıştır.
  • desc (str, isteğe bağlı, varsayılan "work") — hata ayıklama günlüklerinde kullanılacak iş açıklaması

Ana süreçte bir işlem yapılması, kopyaların (replica) engellenmesi ve işlem tamamlandığında kopyaların serbest bırakılması gereken torch dağıtık ortamı için bir bağlam yöneticisi (context manager).

Bunun bir kullanım alanı, datasets'in map özelliğidir; bu özellik verimli çalışmak için ana süreçte bir kez çalıştırılmalı, tamamlanınca sonuçların önbelleğe alınmış bir sürümünü kaydetmeli ve ardından bu sürüm replikalar tarafından otomatik olarak yüklenmelidir.

set_dataloader

< >

( train_batch_size: int = 8eval_batch_size: int = 8drop_last: bool = Falsenum_workers: int = 0pin_memory: bool = Truepersistent_workers: bool = Falseprefetch_factor: int | None = Nonemultiprocessing_context: str | None = Nonein_order: bool = Trueauto_find_batch_size: bool = Falseignore_data_skip: bool = Falsesampler_seed: int | None = None )

Parametreler

  • drop_last (bool, isteğe bağlı, varsayılan False) — Veri setinin uzunluğu parti boyutuna tam bölünmüyorsa son eksik partinin atılıp atılmayacağını belirtir.
  • num_workers (int, isteğe bağlı, varsayılan 0) — Veri yükleme için kullanılacak alt süreç sayısı (yalnızca PyTorch). 0, verinin ana süreçte yükleneceği anlamına gelir.
  • pin_memory (bool, isteğe bağlı, varsayılan True) — Veri yükleyicilerde belleğin sabitlenip sabitlenmemesi. Varsayılan olarak True olur.
  • persistent_workers (bool, isteğe bağlı, varsayılan False) — True ise, veri yükleyici bir veri seti bir kez tüketildikten sonra işçi süreçlerini kapatmaz. Bu, işçi Dataset örneklerinin canlı kalmasını sağlar. Eğitim hızını potansiyel olarak artırabilir, ancak RAM kullanımını artıracaktır. Varsayılan olarak False olur.
  • prefetch_factor (int, isteğe bağlı) — Her işçi tarafından önceden yüklenen parti sayısı. 2, tüm işçiler arasında toplam 2 * num_workers partinin önceden yükleneceği anlamına gelir.
  • multiprocessing_context (str, isteğe bağlı) — Veri yükleme işçileri için kullanılacak çoklu işlem başlatma yöntemi ("fork", "spawn" veya "forkserver"). Varsayılan olarak PyTorch’ün varsayılan başlatma yöntemi kullanılır. Nesneleri fork-güvenli olmayan kaynaklardan (ör. pyarrow üzerinden HDFS) akış olarak alırken "spawn" kullanın. "spawn" altında, özel collate_fn veya veri kümesi kodu modül düzeyinde içe aktarılabilir olmalıdır (lambda/kapanış kullanılamaz).
  • in_order (bool, isteğe bağlı, varsayılan True) — True ise, veri yükleyici, işçilerin dağıtıldığı sırayla toplamları (batch) üretir. False olarak ayarlanırsa, toplamlar hazır olur olmaz üretilir; bu da IterableDataset akış iş yüklerinde kuyruk gecikmesini (tail latency) azaltabilir. PyTorch >= 2.6 gerektirir.
  • auto_find_batch_size (bool, isteğe bağlı, varsayılan False) — CUDA Out-of-Memory hatalarını önlemek için belleğe sığacak bir batch boyutunu üstel azalma yoluyla otomatik olarak bulup bulmayacağını belirtir. Bunun için accelerate kurulu olmalıdır (pip install accelerate)
  • ignore_data_skip (bool, isteğe bağlı, varsayılan False) — Eğitim devam ettirilirken, veri yüklemenin önceki eğitimle aynı aşamaya gelmesi için epoch'ları ve batch'leri atlayıp atlamayacağı. True olarak ayarlanırsa, eğitim daha hızlı başlayacaktır (çünkü bu atlama adımı uzun sürebilir) ancak yarıda kesilen eğitimin vereceği sonuçlarla aynı sonuçları üretmeyecektir.
  • sampler_seed (int, isteğe bağlı) — Veri örnekleyicileriyle kullanılacak rastgele tohum. Ayarlanmazsa, veri örneklemesi için rastgele üreteçler self.seed ile aynı tohumu kullanır. Bu, model tohumundan bağımsız olarak veri örneklemesinin tekrarlanabilirliğini sağlamak için kullanılabilir.

Dataloader'ların oluşturulmasıyla ilişkili tüm argümanları bir araya getiren bir yöntem.

Örnek:

>>> from transformers import TrainingArguments

>>> args = TrainingArguments("working_dir")
>>> args = args.set_dataloader(train_batch_size=16, eval_batch_size=64)
>>> args.per_device_train_batch_size
16

set_evaluate

< >

( strategy: str | transformers.trainer_utils.IntervalStrategy = 'no'steps: int = 500batch_size: int = 8accumulation_steps: int | None = Nonedelay: float | None = Noneloss_only: bool = False )

Parametreler

  • strategy (str veya IntervalStrategy, isteğe bağlı, varsayılan "no") — Eğitim sırasında benimsenecek değerlendirme stratejisi. Olası değerler şunlardır:
    • "no": Eğitim sırasında değerlendirme yapılmaz.
    • "steps": Değerlendirme her steps adımında yapılır (ve kaydedilir).
    • "epoch": Değerlendirme, her epoch'un sonunda yapılır.

    "no" dışında bir strategy ayarlamak, self.do_eval değerini True olarak belirler.

  • steps (int, isteğe bağlı, varsayılan 500) — strategy="steps" ise iki değerlendirme arasındaki güncelleme adım sayısı.
  • batch_size (int isteğe bağlı, varsayılan 8) — Değerlendirme için cihaz başına (GPU/TPU çekirdeği/CPU…) kullanılan parti boyutu.
  • accumulation_steps (int, isteğe bağlı) — Sonuçların CPU'ya taşınmadan önce çıktı tensörlerinin biriktirileceği tahmin adım sayısı. Belirlenmezse, tüm tahminler CPU'ya taşınmadan önce GPU/TPU üzerinde biriktirilir (daha hızlıdır ancak daha fazla bellek gerektirir).
  • delay (float, isteğe bağlı) — İlk değerlendirmenin yapılabilmesi için, eval_strategy'ye bağlı olarak beklenmesi gereken epoch veya adım sayısı.
  • loss_only (bool, isteğe bağlı, varsayılan False) — Kayıp (loss) dışında tüm çıktıları yoksayar.

Değerlendirmeye bağlı tüm argümanları bir araya getiren bir yöntem.

Örnek:

>>> from transformers import TrainingArguments

>>> args = TrainingArguments("working_dir")
>>> args = args.set_evaluate(strategy="steps", steps=100)
>>> args.eval_steps
100

set_logging

< >

( strategy: str | transformers.trainer_utils.IntervalStrategy = 'steps'steps: int = 500report_to: str | list[str] = 'none'level: str = 'passive'first_step: bool = Falsenan_inf_filter: bool = Falseon_each_node: bool = Falsereplica_level: str = 'passive' )

Parametreler

  • strategy (str veya IntervalStrategy, isteğe bağlı, varsayılan olarak "steps") — Eğitim sırasında benimsenecek günlük kaydı stratejisi. Olası değerler şunlardır:
    • "no": Eğitim sırasında günlük kaydı yapılmaz.
    • "epoch": Kayıt işlemi her epoch'un sonunda yapılır.
    • "steps": Kayıt işlemi her logging_steps adımında yapılır.
  • steps (int, isteğe bağlı, varsayılan 500) — strategy="steps" ise iki kayıt arasındaki güncelleme adım sayısı.
  • level (str, isteğe bağlı, varsayılan "passive") — Ana süreçte kullanılacak günlük kayıt seviyesi. Olası seçenekler, dizeler olarak günlük seviyeleridir: "debug", "info", "warning", "error" ve "critical", ayrıca hiçbir şey ayarlamayıp seviyeyi uygulamanın belirlemesine izin veren "passive" seviyesi.
  • report_to (str veya list[str], isteğe bağlı, varsayılan "none") — Sonuçların ve günlüklerin raporlanacağı entegrasyonların listesi. Desteklenen platformlar "azure_ml", "clearml", "codecarbon", "comet_ml", "dagshub", "dvclive", "flyte", "mlflow", "swanlab", "tensorboard", "trackio" ve "wandb"'dır. Yüklenmiş tüm entegrasyonlara raporlamak için "all", hiçbir entegrasyon kullanmamak için "none" kullanın.
  • first_step (bool, isteğe bağlı, varsayılan False) — İlk global_step'in kaydedilip değerlendirilip değerlendirilmeyeceğini belirtir.
  • nan_inf_filter (bool, isteğe bağlı, varsayılan olarak True) — kayıt için nan ve inf kayıp değerlerinin filtrelenip filtrelenmeyeceğini belirler. Ayarlanırsa True adımın kaybı nan veya inf ise filtrelenir ve bunun yerine mevcut kayıt penceresinin ortalama kaybı alınır.

    nan_inf_filter yalnızca kayıp değerlerinin günlüğe kaydedilmesini etkiler; gradyanın hesaplanma veya modele uygulanma davranışını değiştirmez.

  • on_each_node (bool, isteğe bağlı, varsayılan True) — Çoklu düğümlü dağıtık eğitimde, log_level ile günlük kaydının her düğümde bir kez mi yoksa yalnızca ana düğümde mi yapılacağını belirtir.
  • replica_level (str, isteğe bağlı, varsayılan "passive") — Kopyalarda kullanılacak günlük kayıt seviyesi. Seçenekler log_level ile aynıdır.

Günlükleme ile ilişkili tüm argümanları bir araya getiren bir yöntem.

Örnek:

>>> from transformers import TrainingArguments

>>> args = TrainingArguments("working_dir")
>>> args = args.set_logging(strategy="steps", steps=100)
>>> args.logging_steps
100

set_lr_scheduler

< >

( name: str | transformers.trainer_utils.SchedulerType = 'linear'num_epochs: float = 3.0max_steps: int = -1warmup_steps: float = 0 )

Parametreler

  • name (str veya SchedulerType, opsiyonel, varsayılan "linear") — Kullanılacak zamanlayıcı türü. Olası tüm değerler için SchedulerType belgesine bakın.
  • num_epochs(float, isteğe bağlı, varsayılan 3.0) — Yürütülecek toplam eğitim epoch sayısı (tam sayı değilse, eğitim durdurulmadan önce son epoch'un ondalık kısmı yüzdesi kadar işlem yapılır).
  • max_steps (int, isteğe bağlı, varsayılan -1) — Pozitif bir sayıya ayarlanırsa, gerçekleştirilecek toplam eğitim adım sayısı. num_train_epochs değerini geçersiz kılar. Sonlu bir veri seti için, eğitim (tüm veriler tüketilirse) veri seti üzerinden tekrarlanarak max_steps değerine ulaşılana kadar devam eder. Eğitim veri seti __len__ yöntemini uygulamıyorsa (ör. bir akış veri seti) pozitif bir değere ayarlanmalıdır, çünkü bu durumda toplam adım sayısı çıkarılamaz ve eğitim döngüsünü sınırlamak ile öğrenme oranı zamanlayıcısını yapılandırmak için gereklidir.
  • warmup_steps (float, isteğe bağlı, varsayılan 0) — 0'dan learning_rate değerine doğru doğrusal bir ısınma için kullanılan adım sayısı. [0,1) aralığında bir tam sayı veya ondalık sayı olmalıdır. 1'den küçükse, 0'dan learning_rate değerine doğru doğrusal bir ısınma için kullanılan adım oranı olarak yorumlanır.

Öğrenme hızı zamanlayıcısı ve hiperparametreleriyle ilişkili tüm argümanları bir araya getiren bir yöntem.

Örnek:

>>> from transformers import TrainingArguments

>>> args = TrainingArguments("working_dir")
>>> args = args.set_lr_scheduler(name="cosine", warmup_steps=0.05)
>>> args.warmup_steps
0.05

set_optimizer

< >

( name: str | transformers.training_args.OptimizerNames = 'adamw_torch'learning_rate: float = 5e-05weight_decay: float = 0beta1: float = 0.9beta2: float = 0.999epsilon: float = 1e-08args: str | None = None )

Parametreler

  • name (str veya training_args.OptimizerNames, isteğe bağlı, varsayılan "adamw_torch") — Kullanılacak optimizör: "adamw_torch", "adamw_torch_fused", "adamw_anyprecision" veya "adafactor".
  • learning_rate (float, isteğe bağlı, varsayılan 5e-5) — Başlangıç öğrenme oranı.
  • weight_decay (float, isteğe bağlı, varsayılan 0) — Tüm bias ve LayerNorm ağırlıkları hariç olmak üzere, tüm katmanlara uygulanacak ağırlık çürümesi (sıfır değilse).
  • beta1 (float, isteğe bağlı, varsayılan 0.9) — adam optimizatörü veya türevleri için beta1 hiperparametresi.
  • beta2 (float, isteğe bağlı, varsayılan 0.999) — adam optimizatörü veya türevleri için beta2 hiperparametresi.
  • epsilon (float, isteğe bağlı, varsayılan 1e-8) — adam optimizatörü veya türevleri için epsilon hiperparametresi.
  • args (str, isteğe bağlı) — AnyPrecisionAdamW'ye sağlanan isteğe bağlı argümanlar (yalnızca optim="adamw_anyprecision" durumunda kullanışlıdır).

Optimizatör ve hiperparametreleriyle ilişkili tüm argümanları bir araya getiren bir yöntem.

Örnek:

>>> from transformers import TrainingArguments

>>> args = TrainingArguments("working_dir")
>>> args = args.set_optimizer(name="adamw_torch", beta1=0.8)
>>> args.optim
'adamw_torch'

set_push_to_hub

< >

( model_id: strstrategy: str | transformers.trainer_utils.HubStrategy = 'every_save'token: str | None = Noneprivate_repo: bool | None = Nonealways_push: bool = Falserevision: str | None = None )

Parametreler

  • model_id (str) — Yerel output_dir ile senkronize tutulacak deposunun adı. Basit bir model kimliği olabilir; bu durumda model, ad alanınıza (namespace) itilir. Aksi takdirde, örneğin "user_name/model" gibi, tam depo adı olmalıdır; bu da "organization_name/model" ile üye olduğunuz bir organizasyona itmenizi sağlar.
  • strategy (str veya HubStrategy, isteğe bağlı, varsayılan olarak "every_save") — Hub'a neyin ve ne zaman gönderileceğinin kapsamını tanımlar. Olası değerler şunlardır:
    • "end": save_model() metodu çağrıldığında modeli, yapılandırmasını, Trainer'a iletilmişse processing_class örneğin tokenizer'ı ve bir model kartı taslağını gönderir.
    • "every_save": modelin, yapılandırmasının, processing_class örneğin tokenizer'ın (Trainer'a iletilmişse) ve bir model kartı taslağının, her model kaydetme olayında gönderilmesini sağlar. Gönderimler, eğitimi bloklamaması için asenkron olarak yapılır ve kaydetmeler çok sık gerçekleşiyorsa, önceki gönderim tamamlanmadıkça yeni bir gönderim denemesi yapılmaz. Eğitimin sonunda, nihai modelle son bir gönderim yapılır.
    • "checkpoint": "every_save" gibi ancak en son checkpoint, last-checkpoint adlı bir alt klasöre de itilir; böylece trainer.train(resume_from_checkpoint="last-checkpoint") ile eğitimi kolayca devam ettirebilirsiniz.
    • "all_checkpoints": "checkpoint" gibi ancak tüm checkpoint'ler çıktı klasöründe göründükleri şekilde itilir (bu nedenle nihai repozitorinizdeki her klasör için bir checkpoint klasörü alırsınız)
  • token (str, isteğe bağlı) — Modeli Hub'a göndermek için kullanılacak jeton. Varsayılan olarak, hf auth login ile alınan önbellek klasöründeki jeton kullanılır.
  • private_repo (bool, isteğe bağlı, varsayılan False) — Deponun özel yapılıp yapılmayacağı. None (varsayılan) ise, organizasyonun varsayılanı özel değilse depo herkese açık olur. Depo zaten mevcutsa bu değer yok sayılır.
  • always_push (bool, isteğe bağlı, varsayılan False) — Bu True olmadıkça, Trainer önceki push işlemi tamamlanmadıysa checkpoint push etmeyi atlar.
  • revision (str, isteğe bağlı) — Hub'a itme işlemi sırasında kullanılacak revizyon. Bir dal adı, etiket veya commit hash'i olabilir.

Hub ile kontrol noktalarını senkronize etmeye bağlı tüm argümanları bir araya getiren bir yöntem.

Bu yöntemin çağrılması, self.push_to_hub değerini True olarak ayarlar; bu da output_dir'in, model_id tarafından belirlenen depoyla senkronize edilen bir git dizinine dönüşeceği ve içeriğin her kayıt tetiklendiğinde (kendi self.save_strategy değerine bağlı olarak) itileceği anlamına gelir. save_model() çağrısı da bir itme işlemi tetikler.

Örnek:

>>> from transformers import TrainingArguments

>>> args = TrainingArguments("working_dir")
>>> args = args.set_push_to_hub("me/awesome-model")
>>> args.hub_model_id
'me/awesome-model'

set_save

< >

( strategy: str | transformers.trainer_utils.IntervalStrategy = 'steps'steps: int = 500total_limit: int | None = Noneon_each_node: bool = False )

Parametreler

  • strategy (str veya IntervalStrategy, isteğe bağlı, varsayılan olarak "steps") — Eğitim sırasında benimsenecek checkpoint kaydetme stratejisi. Olası değerler şunlardır:
    • "no": Eğitim sırasında kayıt yapılmaz.
    • "epoch": Kaydetme işlemi her epoch sonunda yapılır.
    • "steps": Kaydetme işlemi her save_steps adımında yapılır.
  • steps (int, isteğe bağlı, varsayılan 500) — strategy="steps" ise iki kontrol noktası kaydı arasındaki güncelleme adım sayısı.
  • total_limit (int, isteğe bağlı) — Bir değer geçirilirse, toplam checkpoint miktarını sınırlar. output_dir içindeki eski checkpoint'leri siler.
  • on_each_node (bool, isteğe bağlı, varsayılan olarak False) — Çoklu düğümlü dağıtık eğitim sırasında modellerin ve kontrol noktalarının her düğümde mi yoksa yalnızca ana düğümde mi kaydedileceğini belirtir.

    Farklı düğümler aynı depolamayı kullandığında, dosyalar her düğüm için aynı adlarla kaydedileceğinden bu özellik etkinleştirilmemelidir.

Kontrol noktası kaydetmeyle ilişkili tüm argümanları bir araya getiren bir yöntem.

Örnek:

>>> from transformers import TrainingArguments

>>> args = TrainingArguments("working_dir")
>>> args = args.set_save(strategy="steps", steps=100)
>>> args.save_steps
100

set_testing

< >

( batch_size: int = 8loss_only: bool = False )

Parametreler

  • batch_size (int isteğe bağlı, varsayılan 8) — Test için cihaz başına (GPU/TPU çekirdeği/CPU…) kullanılan parti boyutu.
  • loss_only (bool, isteğe bağlı, varsayılan False) — Kayıp (loss) dışında tüm çıktıları yoksayar.

Tutulan bir veri setinde testle ilişkili tüm temel argümanları bir araya getiren bir yöntem.

Bu yöntemin çağrılması, self.do_predict değerini otomatik olarak True olarak ayarlar.

Örnek:

>>> from transformers import TrainingArguments

>>> args = TrainingArguments("working_dir")
>>> args = args.set_testing(batch_size=32)
>>> args.per_device_eval_batch_size
32

set_training

< >

( learning_rate: float = 5e-05batch_size: int = 8weight_decay: float = 0num_epochs: float = 3max_steps: int = -1gradient_accumulation_steps: int = 1seed: int = 42activation_checkpointing: bool = Falsegradient_checkpointing: bool | None = None )

Parametreler

  • learning_rate (float, isteğe bağlı, varsayılan 5e-5) — Optimizatör için başlangıç öğrenme oranı.
  • batch_size (int isteğe bağlı, varsayılan 8) — Eğitimde kullanılan cihaz başına (GPU/TPU çekirdeği/CPU…) parti boyutu.
  • weight_decay (float, isteğe bağlı, varsayılan 0) — Sıfır değilse, optimizördeki tüm katmanlara (tüm bias ve LayerNorm ağırlıkları hariç) uygulanacak ağırlık çürümesi.
  • num_epochs (float, isteğe bağlı, varsayılan 3.0) — Yürütülecek toplam eğitim epoch sayısı (tamsayı değilse, eğitim durdurulmadan önce son epoch'un ondalık kısmı yüzdesi kadar işlem yapılır).
  • max_steps (int, isteğe bağlı, varsayılan -1) — Pozitif bir sayıya ayarlanırsa, gerçekleştirilecek toplam eğitim adım sayısı. num_train_epochs değerini geçersiz kılar. Sonlu bir veri seti için, eğitim (tüm veriler tüketilirse) veri seti üzerinden tekrarlanarak max_steps değerine ulaşılana kadar devam eder. Eğitim veri seti __len__ yöntemini uygulamıyorsa (ör. bir akış veri seti) pozitif bir değere ayarlanmalıdır, çünkü bu durumda toplam adım sayısı çıkarılamaz ve eğitim döngüsünü sınırlamak ile öğrenme oranı zamanlayıcısını yapılandırmak için gereklidir.
  • gradient_accumulation_steps (int, isteğe bağlı, varsayılan olarak 1) — Geriye doğru/ güncelleme geçişi yapılmadan önce gradyanların biriktirileceği güncelleme adım sayısı.

    Gradyan biriktirme kullanıldığında, bir adım, geriye yayılım içeren bir adım olarak sayılır. Bu nedenle, kayıt tutma, değerlendirme ve kaydetme işlemleri her gradient_accumulation_steps * xxx_step eğitim örneğinde gerçekleştirilir.

  • seed (int, isteğe bağlı, varsayılan 42) — Eğitimin başlangıcında ayarlanacak rastgele tohum. Çalışmalar arasında tekrarlanabilirliği sağlamak için, rastgele başlatılmış parametrelere sahipse modeli ~Trainer.model_init işlevini kullanarak örnekleyin.
  • activation_checkpointing (bool, isteğe bağlı, varsayılan False) — True ise, geriye yayılımın yavaşlaması pahasına bellek tasarrufu sağlamak için activation checkpointing kullanılır.
  • gradient_checkpointing (bool, isteğe bağlı) — activation_checkpointing'in kullanımı durdurulan takma adı, v6 sürümünde kaldırılacaktır.

Eğitimle ilişkili tüm temel argümanları bir araya getiren bir yöntem.

Bu yöntemin çağrılması, self.do_train değerini otomatik olarak True olarak ayarlar.

Örnek:

>>> from transformers import TrainingArguments

>>> args = TrainingArguments("working_dir")
>>> args = args.set_training(learning_rate=1e-4, batch_size=32)
>>> args.learning_rate
1e-4

to_dict

< >

( )

Bu örneği, Enum değerlerini JSON serileştirme desteği için ilgili değerleriyle değiştirerek serileştirir. Token değerlerini, değerlerini kaldırarak bulanıklaştırır.

to_json_string

< >

( )

Bu örneği bir JSON dizgesine serialize eder.

to_sanitized_dict

< >

( )

TensorBoard'un hparams ile kullanılacak şekilde temizlenmiş seri hale getirme

Seq2SeqTrainingArguments

sınıf transformers.Seq2SeqTrainingArguments

< >

( output_dir: str | None = Noneper_device_train_batch_size: int = 8num_train_epochs: float = 3.0max_steps: int = -1learning_rate: float = 5e-05lr_scheduler_type: transformers.trainer_utils.SchedulerType | str = 'linear'lr_scheduler_kwargs: dict | str | None = Nonewarmup_steps: float = 0optim: transformers.training_args.OptimizerNames | str = 'adamw_torch_fused'optim_args: str | None = Noneweight_decay: float = 0.0adam_beta1: float = 0.9adam_beta2: float = 0.999adam_epsilon: float = 1e-08optim_target_modules: None | str | list[str] = Nonegradient_accumulation_steps: int = 1average_tokens_across_devices: bool = Truemax_grad_norm: float = 1.0label_smoothing_factor: float = 0.0bf16: bool = Falsefp16: bool = Falsebf16_full_eval: bool = Falsefp16_full_eval: bool = Falsetf32: bool | None = Noneactivation_checkpointing: bool | None = Noneactivation_checkpointing_kwargs: dict[str, typing.Any] | str | None = Nonegradient_checkpointing: bool | None = Nonegradient_checkpointing_kwargs: dict[str, typing.Any] | str | None = Nonetorch_compile: bool = Falsetorch_compile_backend: str | None = Nonetorch_compile_mode: str | None = Noneuse_liger_kernel: bool = Falseliger_kernel_config: dict[str, bool] | None = Noneuse_cache: bool = Falseneftune_noise_alpha: float | None = Nonetorch_empty_cache_steps: int | None = Noneauto_find_batch_size: bool = Falselogging_strategy: transformers.trainer_utils.IntervalStrategy | str = 'steps'logging_steps: float = 500logging_first_step: bool = Falselog_on_each_node: bool = Truelogging_nan_inf_filter: bool = Trueinclude_num_input_tokens_seen: str | bool = 'no'log_level: str = 'passive'log_level_replica: str = 'warning'disable_tqdm: bool | None = Nonereport_to: None | str | list[str] = 'none'run_name: str | None = Noneproject: str = 'huggingface'trackio_space_id: str | None = Nonetrackio_bucket_id: str | None = Nonetrackio_static_space_id: typing.Union[str, NoneType, typing.Literal[False]] = Noneeval_strategy: transformers.trainer_utils.IntervalStrategy | str = 'no'eval_steps: float | None = Noneeval_delay: float = 0per_device_eval_batch_size: int = 8prediction_loss_only: bool = Falseeval_on_start: bool = Falseeval_do_concat_batches: bool = Trueeval_use_gather_object: bool = Falseeval_accumulation_steps: int | None = Noneinclude_for_metrics: list = <factory>batch_eval_metrics: bool = Falsesave_only_model: bool = Falsesave_strategy: transformers.trainer_utils.SaveStrategy | str = 'steps'save_steps: float = 500save_on_each_node: bool = Falsesave_total_limit: int | None = Noneenable_jit_checkpoint: bool = Falsepush_to_hub: bool = Falsehub_token: str | None = Nonehub_private_repo: bool | None = Nonehub_model_id: str | None = Nonehub_strategy: transformers.trainer_utils.HubStrategy | str = 'every_save'hub_always_push: bool = Falsehub_revision: str | None = Noneload_best_model_at_end: bool = Falsemetric_for_best_model: str | None = Nonegreater_is_better: bool | None = Noneignore_data_skip: bool = Falserestore_callback_states_from_checkpoint: bool = Falsefull_determinism: bool = Falseseed: int = 42data_seed: int | None = Noneuse_cpu: bool = Falseaccelerator_config: dict | str | None = Noneparallelism_config: typing.Any | None = Nonedataloader_drop_last: bool = Falsedataloader_num_workers: int = 0dataloader_pin_memory: bool = Truedataloader_persistent_workers: bool = Falsedataloader_prefetch_factor: int | None = Nonedataloader_multiprocessing_context: str | None = Nonedataloader_in_order: bool = Trueremove_unused_columns: bool = Truelabel_names: list[str] | None = Nonetrain_sampling_strategy: str = 'random'length_column_name: str = 'length'ddp_find_unused_parameters: bool | None = Noneddp_bucket_cap_mb: int | None = Noneddp_broadcast_buffers: bool | None = Noneddp_static_graph: bool | None = Noneddp_backend: str | None = Noneddp_timeout: int = 1800fsdp: str | None = Nonefsdp_config: dict[str, typing.Any] | str | None = Nonedeepspeed: dict | str | None = Nonedebug: str | list[transformers.debug_utils.DebugOption] = ''skip_memory_metrics: bool = Truedo_train: bool = Falsedo_eval: bool = Falsedo_predict: bool = Falseresume_from_checkpoint: str | None = Nonelocal_rank: int = -1sortish_sampler: bool = Falsepredict_with_generate: bool = Falsegeneration_max_length: int | None = Nonegeneration_num_beams: int | None = Nonegeneration_config: str | pathlib.Path | transformers.generation.configuration_utils.GenerationConfig | None = None )

Parametreler

  • output_dir (str, isteğe bağlı, varsayılan "trainer_output") — Model tahminlerinin ve denetim noktalarının (checkpoints) yazılacağı çıktı dizini.

Eğitim Süresi ve Toplu İşlem Boyutu

  • per_device_train_batch_size (int, isteğe bağlı, varsayılan 8) — Cihaz başına parti boyutu. Küresel parti boyutu şu şekilde hesaplanır: per_device_train_batch_size * number_of_devices çoklu GPU veya dağıtık kurulumlarda.
  • num_train_epochs(float, isteğe bağlı, varsayılan 3.0) — Yürütülecek toplam eğitim epoch sayısı (tam sayı değilse, eğitim durdurulmadan önce son epoch'un ondalık kısmı yüzdesi kadar işlem yapılır).
  • max_steps (int, isteğe bağlı, varsayılan -1) — num_train_epochs değerini geçersiz kılar. Pozitif bir sayıya ayarlanırsa, gerçekleştirilecek toplam eğitim adım sayısıdır. Sonlu bir veri seti için, eğitim (tüm veriler tüketilirse) veri seti üzerinden tekrarlanarak max_steps değerine ulaşılana kadar devam eder. Eğitim veri seti __len__ yöntemini uygulamıyorsa (ör. bir akış veri seti) pozitif bir değere ayarlanmalıdır, çünkü bu durumda toplam adım sayısı çıkarılamaz ve eğitim döngüsünü sınırlamak ile öğrenme oranı zamanlayıcısını yapılandırmak için gereklidir.

Öğrenme Hızı ve Zamanlayıcı

  • learning_rate (float, isteğe bağlı, varsayılan 5e-5) — Optimizatör için başlangıç öğrenme oranı. Bu, genellikle ısınma (warmup) içeren bir zamanlayıcı (scheduler) kullanıldığında tepe öğrenme oranıdır.
  • lr_scheduler_type (str veya SchedulerType, isteğe bağlı, varsayılanı "linear") — Kullanılacak öğrenme hızı zamanlayıcı türü. Bkz. SchedulerType tüm olası değerler için. Yaygın seçimler:
  • lr_scheduler_kwargs (dict veya str, isteğe bağlı, varsayılan None) — lr_scheduler için ek argümanlar. Olası değerler için her zamanlayıcının (scheduler) belgelendirmesine bakın.
  • warmup_steps (int veya float, isteğe bağlı, varsayılan 0) — 0'dan learning_rate. learning_rate değerine doğrusal bir ısınma için adım sayısı. Isınma, eğitimin başlangıç aşamasında kararlılığı artırır. Şu değerlerden biri olabilir:
    • Bir tamsayı: tam ısınma adım sayısı
    • [0, 1) aralığında bir float: toplam eğitim adımının oranı olarak yorumlanır

Optimizatör

  • optim (str veya training_args.OptimizerNames, isteğe bağlı, varsayılan olarak "adamw_torch" (torch>=2.8 için "adamw_torch_fused")) — Kullanılacak optimizör. Yaygın seçenekler:
    • "adamw_torch": PyTorch’un AdamW’si (önerilen varsayılan)
    • "adamw_torch_fused": Birleşik AdamW çekirdeği
    • "adamw_hf": HuggingFace'in AdamW uygulaması
    • "sgd": Momentum ile Stokastik Gradyan İnişi
    • "adafactor": Büyük modeller için bellek verimli optimizör
    • "adamw_8bit": 8-bit AdamW (bitsandbytes gerektirir) Tam liste için OptimizerNames'e bakın.
  • optim_args (str, isteğe bağlı) — AnyPrecisionAdamW, AdEMAMix ve GaLore gibi optimizörlere sağlanan isteğe bağlı argümanlar.
  • weight_decay (float, isteğe bağlı, varsayılan 0) — Optimizatör tarafından uygulanan ağırlık azaltma katsayısı (kayıp fonksiyonu değil). Büyük ağırlıkları cezalandırarak aşırı öğrenmeyi önlemek için L2 düzenlemesi ekler. Bias ve LayerNorm parametrelerinden otomatik olarak hariç tutulur. Tipik değerler: 0.01 (standart), 0.1 (daha güçlü düzenleme), 0.0 (düzenleme yok).
  • adam_beta1 (float, isteğe bağlı, varsayılan 0.9) — Adam tabanlı optimizörlerde birinci an tahminleri (momentum) için üstel azalma oranı. Gradyan geçmişinin ne kadarının tutulacağını kontrol eder.
  • adam_beta2 (float, isteğe bağlı, varsayılan 0.999) — Adam tabanlı optimizörlerde ikinci an tahminlerinin (varyans) üstel azalma oranı. Uyarlanabilir öğrenme hızı ölçeklemesini kontrol eder.
  • adam_epsilon (float, isteğe bağlı, varsayılan 1e-8) — Adam tabanlı optimizörlerde sayısal kararlılık için epsilon değeri. Güncelleme kuralının paydasında sıfıra bölünmeyi önler.
  • optim_target_modules (Union[str, list[str]], isteğe bağlı) — Optimize edilecek hedef modüller, yani eğitmek istediğiniz modül adları. Şu anda GaLore algoritması ve APOLLO algoritması için kullanılır. Daha fazla ayrıntı için GaLore uygulaması ve APOLLO uygulamasına bakın. Geçerli bir GaLore veya APOLLO optimizatörü geçmenizden emin olmanız gerekir, örneğin şunlardan biri: “apollo_adamw”, “galore_adamw”, “galore_adamw_8bit”, “galore_adafactor” ve hedef modüllerin yalnızca nn.Linear modülleri olduğundan emin olun.

Düzenleme ve Eğitim Kararlılığı

  • gradient_accumulation_steps (int, isteğe bağlı, varsayılan 1) — Geriye doğru/ güncelleme geçişi yapılmadan önce gradyanların birikmesi için gereken güncelleme adım sayısı. Ek bellek kullanmadan daha büyük parti boyutlarını simüle eder. Etkili parti boyutu = per_device_train_batch_size × num_devices × gradient_accumulation_steps.

    Gradyan biriktirme kullanıldığında, bir “adım”, geriye yayılım içeren bir adım olarak sayılır. Bu nedenle, günlük tutma, değerlendirme ve kaydetme işlemleri her gradient_accumulation_steps × xxx_step eğitim örneğinde gerçekleşir.

  • average_tokens_across_devices (bool, isteğe bağlı, varsayılan True) — Cihazlar arasında token ortalaması yapılıp yapılmayacağı. Etkinleştirilirse, hassas kayıp hesabı için num_tokens_in_batch değerini senkronize etmek üzere all_reduce kullanılır. Referans: https://github.com/huggingface/transformers/issues/34242
  • max_grad_norm (float, isteğe bağlı, varsayılan 1.0) — Gradyan kırpma için maksimum gradyan normu. Geri yayılımın ardından, optimizör adımından önce uygulanır. Küresel normları bu eşiğin üzerine çıktığında gradyanları ölçekleyerek gradyan patlamasını önler. Kırpma işlemini devre dışı bırakmak için 0 olarak ayarlayın. Tipik değerler: 1.0 (standart), 0.5 (daha muhafazakâr), 5.0 (daha az agresif).
  • label_smoothing_factor (float, isteğe bağlı, varsayılan 0.0) — Aşırı güveni önlemek için etiket yumuşatma katsayısı. Sert 0/1 hedeflerini yumuşak hedeflerle değiştirir: 0, ε/num_labels olur ve 1, 1 - ε + ε/num_labels olur; burada ε = label_smoothing_factor. Sıfır, yumuşatma yapılmadığı anlamına gelir. Tipik aralık: 0.0 ile 0.1.

Karışık Hassasiyetli Eğitim

  • bf16 (bool, isteğe bağlı, varsayılan False) — bfloat16 (BF16) karma hassasiyetli eğitimi etkinleştirir Daha iyi sayısal kararlılık ve kayıp ölçekleme gerektirmemesi nedeniyle genellikle FP16'ye tercih edilir.
  • fp16 (bool, isteğe bağlı, varsayılan False) — float16 (FP16) karma hassasiyetli eğitimi etkinleştirir. Donanımınız destekliyorsa bunun yerine BF16 kullanmayı düşünün.
  • bf16_full_eval (bool, isteğe bağlı, varsayılan False) — Değerlendirme için tam BF16 hassasiyetini kullanır (yalnızca karma hassasiyet değil). Daha hızlıdır ve bellek tasarrufu sağlar ancak metrik değerlerini hafifçe etkileyebilir. Yalnızca değerlendirme sırasında uygulanır.
  • fp16_full_eval (bool, isteğe bağlı, varsayılan False) — Değerlendirme için tam FP16 hassasiyetini kullanır (yalnızca karma hassasiyet değil). Daha hızlıdır ve bellek tasarrufu sağlar ancak metrik değerlerini hafifçe etkileyebilir. Yalnızca değerlendirme sırasında uygulanır.
  • tf32 (bool, isteğe bağlı) — Ampere ve daha yeni GPU'larda TensorFloat-32 (TF32) modunu etkinleştirir. TF32, matris çarpımları için 19 bit hassasiyet kullanır (FP32'nin 23 bitine kıyasla) ve ihmal edilebilir bir doğruluk kaybıyla 8 kata kadar hızlanma sağlar. Varsayılan değer PyTorch sürümüne bağlıdır. TF32 belgeleri'ne bakın.

Aktivasyon Kontrol Noktalama

  • activation_checkpointing (bool, isteğe bağlı, varsayılan False) — Hesaplama gücünü bellek ile takas etmek için aktivasyon denetlemesini etkinleştirir. İleri geçiş sırasında aktivasyonları temizleyip geri geçiş sırasında yeniden hesaplayarak bellek kullanımını azaltır. Yaklaşık %20 daha yavaş eğitim maliyeti karşılığında daha büyük modellerin veya parti boyutlarının eğitimine olanak tanır.
  • activation_checkpointing_kwargs (dict, isteğe bağlı, varsayılan None) — activation_checkpointing_enable() işlevine aktarılan anahtar kelime argümanları. every_n_layers, tüm katmanlar yerine yalnızca her n'inci decoder katmanını checkpoint'ler; 1 değeri, tümünü ya da hiçbiri davranışını temsil eder, daha büyük değerler ise hız için biraz bellek geri kazandırır. offload, kaydedilen aktivasyonları sabitlenmiş host belleğinde tutar; bu, layers x sequence x hidden baytlık cihaz belleğini boşaltır ve adımı yavaşlatır. Diğer tüm anahtarlar torch.utils.checkpoint.checkpoint işlevine aktarılır.
  • gradient_checkpointing (bool, isteğe bağlı) — activation_checkpointing'in kullanımı durdurulan takma adı, v6 sürümünde kaldırılacaktır.
  • gradient_checkpointing_kwargs (dict, isteğe bağlı) — activation_checkpointing_kwargs'nın kullanımdan kaldırılmış takma adı, v6 sürümünde kaldırılacaktır.

Derleme

  • torch_compile (bool, isteğe bağlı, varsayılan False) — Modeli daha hızlı eğitim için PyTorch 2.0’ın torch.compile() özelliğiyle derler. Kod değişikliği gerektirmeden %20-50 hızlanma sağlayabilir. torch_compile_backend veya torch_compile_mode belirtilmedikçe varsayılan derleme ayarlarını kullanır.
  • torch_compile_backend (str, isteğe bağlı) — torch.compile() için backend. Ayarlanırsa torch_compile otomatik olarak etkinleştirilir. Seçenekler arasında "inductor" (varsayılan), "aot_eager", "cudagraphs" bulunur. Backend'ler PyTorch sürümüne göre değişir - kullanılabilir seçenekler için PyTorch belgelerine bakın.
  • torch_compile_mode (str, isteğe bağlı) — torch.compile() için derleme modu. Ayarlanırsa torch_compile otomatik olarak etkinleştirilir. Seçenekler: "default", "reduce-overhead" (Python yükünü en aza indirir), "max-autotune" (agresif optimizasyon, daha yavaş derleme süresi).

Çekirdekler

  • use_liger_kernel (bool, isteğe bağlı, varsayılan False) — Liger Kernel optimizasyonlarını etkinleştirir. Çoklu GPU geçirgenliğini ~%20 artırır ve bellek kullanımını ~%60 azaltır. Flash Attention, FSDP ve DeepSpeed ile çalışır. Şu anda Llama, Mistral, Mixtral ve Gemma modellerini destekler.
  • liger_kernel_config (Optional[dict], isteğe bağlı) — Liger Kernel yapılandırması. _apply_liger_kernel_to_instance() fonksiyonuna kwargs olarak iletilir. Seçenekler genellikle şunları içerir: "rope", "swiglu", "cross_entropy", "fused_linear_cross_entropy", "rms_norm". None ise varsayılan yapılandırma kullanılır.

Ek Optimizasyonlar

  • use_cache (bool, isteğe bağlı, varsayılan False) — Model için önbelleğin etkinleştirilip etkinleştirilmeyeceği. Eğitim için, past_key_values kullanan bazı PEFT yöntemleri dışında genellikle buna gerek yoktur.
  • neftune_noise_alpha (Optional[float]) — None değilse, NEFTune gürültü gömme işlevini etkinleştirir. Bu, talimatla ince ayar için model performansını önemli ölçüde artırabilir. orijinal makaleyi ve orijinal kodu inceleyin. transformers PreTrainedModel ve peft'ten PeftModel desteklenir. Orijinal makalede [5.0, 15.0] aralığında değerler kullanılmıştır.
  • torch_empty_cache_steps (int, isteğe bağlı) — torch.<device>.empty_cache() çağrılmadan önce beklenmesi gereken adım sayısı. Ayarlanmazsa veya None olarak ayarlanırsa, önbellek boşaltılmaz. Bu, zirve VRAM kullanımını azaltarak CUDA bellek dışı (out-of-memory) hatalarını önlemeye yardımcı olabilir; bunun maliyeti yaklaşık %10 daha yavaş performans olabilir.
  • auto_find_batch_size (bool, isteğe bağlı, varsayılan False) — CUDA Out-of-Memory hatalarını önlemek için üstel azalma yoluyla belleğe sığacak bir eğitim batch boyutunu otomatik olarak bulup bulmayacağını belirtir. Değerlendirme batch boyutu ayarlanmaz.

Eğitim Kaydı ve İzleme

  • logging_strategy (str veya IntervalStrategy, isteğe bağlı, varsayılan olarak "steps") — Eğitim sırasında benimsenecek günlük kaydı stratejisi. Olası değerler şunlardır:
    • "no": Eğitim sırasında günlük kaydı yapılmaz.
    • "epoch": Kayıt işlemi her epoch'un sonunda yapılır.
    • "steps": Kayıt işlemi her logging_steps adımında yapılır.
  • logging_steps (int veya float, isteğe bağlı, varsayılan 500) — logging_strategy="steps" ise iki log arasındaki güncelleme adım sayısı. [0,1) aralığında bir tam sayı veya ondalık sayı olmalıdır. 1'den küçükse, toplam eğitim adımının oranı olarak yorumlanır.
  • logging_first_step (bool, isteğe bağlı, varsayılan False) — İlk global_step'in kaydedilip kaydedilmeyeceğini belirtir.
  • log_on_each_node (bool, isteğe bağlı, varsayılan True) — Çoklu düğümlü dağıtık eğitimde, log_level ile loglamaların her düğümde bir kez mi yoksa yalnızca ana düğümde mi yapılacağını belirtir.
  • logging_nan_inf_filter (bool, isteğe bağlı, varsayılan True) — Kayıt sırasında NaN ve Inf kayıplarını filtreler. True ise, NaN/Inf eğitim kayıplarını son zamanlardaki geçerli kayıpların ortalamasıyla değiştirir ve NaN/Inf partilerini (ör. etiket token'ları içermeyen partiler) değerlendirme kaybının dışında bırakır. Gradyan hesaplamasını etkilemez, yalnızca kaydı etkiler.
  • include_num_input_tokens_seen (Optional[Union[str, bool]], isteğe bağlı, varsayılan “no”) — Görülen girdi token sayısının izlenip izlenmeyeceğini belirtir. Değer [“all”, “non_padding”, “no”] değerlerinden biri veya “all” veya “no”ya eşlenen bir boolean değer olmalıdır. Toplama işlemlerinin çağrılması gerektiğinden dağıtık eğitimde daha yavaş olabilir.

Kayıt tutma

  • log_level (str, isteğe bağlı, varsayılan passive) — Ana işlem için kayıt seviyesi. Seçenekler: "debug", "info", "warning", "error", "critical" veya "passive" (mevcut Transformers kayıt seviyesini değiştirmez, varsayılan olarak "warning" değerindedir)
  • log_level_replica (str, isteğe bağlı, varsayılan "warning") — Dağıtık eğitimde replika süreçleri için kayıt seviyesi. log_level ile aynı seçenekler.
  • disable_tqdm (bool, isteğe bağlı) — tqdm ilerleme çubuklarını devre dışı bırakır. log_level uyarı veya daha düşükse varsayılan olarak True, aksi halde False olur.

Deneysel İzleme Entegrasyonu

  • report_to (str or list[str], isteğe bağlı, varsayılan "none") — Sonuçların ve günlüklerin raporlanacağı entegrasyonların listesi. Desteklenen platformlar "azure_ml", "clearml", "codecarbon", "comet_ml", "dagshub", "dvclive", "flyte", "mlflow", "swanlab", "tensorboard", "trackio" and "wandb". Yükümlü tüm entegrasyonlara raporlamak için "all", hiçbir entegrasyon kullanmamak için "none" kullanın.
  • run_name (str, isteğe bağlı) — Çalışma için bir tanımlayıcı. Genellikle trackio, wandb, mlflow, comet ve swanlab günlük kaydı için kullanılır.
  • project (str, isteğe bağlı, varsayılan "huggingface") — Kayıt için kullanılacak projenin adı. Şu anda yalnızca Trackio tarafından kullanılır.
  • trackio_space_id (str veya None, isteğe bağlı, varsayılan None) — Gradio tabanlı bir Space ile canlı Trackio günlükleme için kullanılacak Hugging Face Space kimliği. 'username/reponame' veya 'orgname/reponame' gibi tam bir Space adı veya yalnızca 'reponame' olmalıdır (Space, şu anda oturum açmış kullanıcının ad alanına oluşturulur). None ise, metrikler yalnızca yerel bir dizine kaydedilir (Hub'da Space yok). O Gradio Space, Trackio Bucket'a okuma ve yazma erişimine sahiptir; bu, eğitim sürdürülürken istediğiniz şeydir — örneğin kısmi bir çalıştırmayı devralırken veya birden fazla makineden günlükleri birleştirirken. Space, hub_private_repo=True ayarlamadığınız veya organizasyonunuzun varsayılanı özel Space'ler oluşturmak olmadıkça herkese açık olacaktır.
  • trackio_bucket_id (str veya None, isteğe bağlı, varsayılan None) — Trackio için isteğe bağlı Hugging Face Bucket kimliği. Ayarlanmazsa Trackio bir kimlik türetir. Bir Gradio Space ile birlikte (trackio_space_id) ve statik bir Space dağıtılırken (trackio_static_space_id False değilse) kullanılır.
  • trackio_static_space_id (str, False veya None, isteğe bağlı, varsayılan None) — Eğitim tamamlandıktan sonra oluşturulan statik Space için kullanılacak Hugging Face Space kimliği. 'username/reponame' veya 'orgname/reponame' gibi tam bir Space adı veya yalnızca 'reponame' olmalıdır (Space, şu anda oturum açmış kullanıcının ad alanına oluşturulur). False ise, statik bir Space oluşturulmaz. None ise ve model Hub'a itilirse, varsayılan bir adla statik bir Space oluşturulur ve model kartından buna bağlantı verilir. hub_private_repo=True ayarlamadıkça veya organizasyonunuzun varsayılanı özel Space'ler oluşturmak olmadıkça Space herkese açıktır.

Değerlendirme

  • eval_strategy (str veya IntervalStrategy, isteğe bağlı, varsayılan olarak "no") — Değerlendirmenin ne zaman çalıştırılacağı. Seçenekler:
    • "no": Eğitim sırasında değerlendirme yapılmaz
    • "steps": Her eval_steps adımında değerlendir
    • "epoch": Her epoch sonunda değerlendir
  • eval_steps (int veya float, isteğe bağlı) — eval_strategy="steps" ise iki değerlendirme arasındaki güncelleme adım sayısı. Ayarlanmazsa logging_steps ile aynı değere ayarlanır. Bir tamsayı veya [0,1) aralığında bir ondalık sayı olmalıdır. 1'den küçükse, toplam eğitim adımının oranı olarak yorumlanır.
  • eval_delay (float, isteğe bağlı) — İlk değerlendirmenin yapılabilmesi için, eval_strategy'e bağlı olarak beklenmesi gereken epoch veya adım sayısı.
  • per_device_eval_batch_size (int, isteğe bağlı, varsayılan 8) — Değerlendirme için cihaz başına hızlandırıcı çekirdeği/CPU için parti boyutu.
  • prediction_loss_only (bool, isteğe bağlı, varsayılan False) — Değerlendirme yapılırken ve tahminler üretilirken yalnızca kaybı döndürür.
  • eval_on_start (bool, isteğe bağlı, varsayılan False) — Eğitimden önce doğrulama adımlarının doğru çalıştığından emin olmak için bir değerlendirme adımı (sağlık kontrolü) yapılıp yapılmayacağını belirtir.
  • eval_do_concat_batches (bool, isteğe bağlı, varsayılan True) — Girdilerin/kayıpların/etiketlerin/tahminlerin partiler arasında özyinelemeli olarak birleştirilip birleştirilmeyeceğini belirtir. False ise, bunlar listeler olarak saklanır ve her parti ayrı tutulur.
  • eval_use_gather_object (bool, isteğe bağlı, varsayılan False) — Tüm cihazlardan gelen iç içe geçmiş liste/tuple/sözlük yapısındaki nesnelerde özyinelemeli olarak nesne toplama (gather) işleminin çalıştırılıp çalıştırılmayacağını belirtir. Bu, kullanıcılar yalnızca tensör döndürmüyorsa etkinleştirilmelidir ve PyTorch tarafından aktif olarak önerilmez. Etiket yapısının standart dışı olduğu durumlarda, örneğin bilgisayarla görme görevlerinde, faydalıdır.
  • eval_accumulation_steps (int, isteğe bağlı) — Sonuçların CPU'ya taşınmadan önce çıktı tensörlerinin biriktirileceği tahmin adım sayısı. Ayarlanmazsa, tüm tahminler CPU'ya taşınmadan önce cihaz hızlandırıcısında biriktirilir (daha hızlıdır ancak daha fazla bellek gerektirir).

Metrik Hesaplama

  • include_for_metrics (list[str], isteğe bağlı, varsayılan olarak []) — metrik hesaplama için gerekliyse ek verileri compute_metrics fonksiyonuna dahil edin. include_for_metrics listesine eklenebilecek olası seçenekler:
    • "inputs": Modele iletilen ve girişe bağlı metriklerin hesaplanması için kullanılan giriş verileri.
    • "loss": Değerlendirme sırasında hesaplanan ve kayba bağlı metriklerin hesaplanması için kullanılan kayıp değerleri.
  • batch_eval_metrics (bool, isteğe bağlı, varsayılan False) — True olarak ayarlanırsa, değerlendirme, tüm değerlendirme logitlerini bellekte tutmak yerine her batch'in sonunda compute_metrics'i çağırarak istatistikleri biriktirir. True olarak ayarlandığında, değerlendirme seti üzerinde biriktirdiğiniz batch düzeyindeki özet istatistiklerden son küresel özet istatistikleri tetikleyecek, True iletildiğinde bu işlevi gerçekleştiren compute_result adlı bir boolean argüman alan bir compute_metrics fonksiyonu geçirmeniz gerekir.

Checkpoint Alma ve Kaydetme

  • save_only_model (bool, isteğe bağlı, varsayılan False) — Yalnızca model ağırlıklarını, optimizasyoncu/planlayıcı/RNG durumunu değil kaydeder. Kontrol noktası boyutunu önemli ölçüde azaltır ancak kontrol noktasından eğitim devam ettirilemez. Sadece çıkarım için eğitimli modele ihtiyacınız varsa, devam eden eğitim için değilse kullanın. Bu seçenek True olarak ayarlandığında modeli yalnızca from_pretrained ile yükleyebilirsiniz.
  • save_strategy (str veya SaveStrategy, isteğe bağlı, varsayılan olarak "steps") — Eğitim sırasında benimsenecek checkpoint kaydetme stratejisi. Olası değerler şunlardır:
    • "no": Eğitim sırasında kayıt yapılmaz.
    • "epoch": Kaydetme işlemi her epoch sonunda yapılır.
    • "steps": Kaydetme işlemi her save_steps adımında yapılır.
    • "best": Yeni bir best_metric değerine ulaşıldığında kayıt yapılır.
  • save_steps (int veya float, isteğe bağlı, varsayılan 500) — save_strategy="steps" ise iki checkpoint kaydı arasındaki güncelleme adım sayısı. Bir tamsay veya [0,1) aralığında bir ondalık sayı olmalıdır. 1'den küçükse, toplam eğitim adımının oranı olarak yorumlanır.
  • save_on_each_node (bool, isteğe bağlı, varsayılan False) — Çoklu düğümlü dağıtık eğitim sırasında modellerin ve kontrol noktalarının her düğümde mi yoksa yalnızca ana düğümde mi kaydedileceğini belirtir. Farklı düğümler aynı depolamayı kullandığında bu özellik etkinleştirilmemelidir; çünkü dosyalar her düğüm için aynı adlarla kaydedilir.
  • save_total_limit (int, isteğe bağlı) — Tutulacak en fazla checkpoint sayısı. output_dir içindeki eski checkpoint'leri siler. load_best_model_at_end=True olduğunda, en iyi checkpoint her zaman korunur ve en son olanlar da eklenir. Örneğin, save_total_limit=5 en son 4 checkpoint'i ve en iyisini korur
  • enable_jit_checkpoint (bool, isteğe bağlı, varsayılan False) — Önemsenebilir iş yüklerinde zarif sonlandırma için SIGTERM sinyali üzerinde Just-In-Time checkpointing'i etkinleştirir. Önemli: Yeterli süre tanımlamak için orkestratörünüzün zarif kapatma süresini yapılandırın. Kubernetes için terminationGracePeriodSeconds değerini ayarlayın (varsayılan 30s genellikle yetersizdir). Slurm için --signal=TERM@<seconds> kullanın. Gerekli zarif süre ≥ en uzun iterasyon süresi + checkpoint kaydetme süresi.

Hugging Face Hub Entegrasyonu

  • push_to_hub (bool, isteğe bağlı, varsayılan False) — Model her kaydedildiğinde Hub'a gönderilsin mi. Bu özellik etkinleştirilirse, output_dir, repoyla (daha önce hub_model_id ile belirlenen) senkronize edilen bir git dizini olarak başlar ve içerik, herhangi bir kaydetme işlemi tetiklendiğinde gönderilir (bu, save_strategy değerine bağlıdır). save_model() çağrısı da bir gönderim tetikler.
  • hub_token (str, isteğe bağlı) — Modeli Hub'a göndermek için kullanılacak jeton. Varsayılan olarak, hf auth login ile alınan önbellek klasöründeki jeton kullanılır.
  • hub_private_repo (bool, isteğe bağlı) — Deponun özel yapılıp yapılmayacağını belirtir. None (varsayılan) ise, organizasyonun varsayılanı özel değilse depo herkese açık olur. Depo zaten mevcutsa bu değer yok sayılır. Trackio'ya raporlama, Hugging Face Spaces dağıtımı etkinleştirilmişse, Space'in özel olup olmayacağını belirleyen mantık aynıdır.
  • hub_model_id (str, isteğe bağlı) — Yerel output_dir ile senkronize tutulacak deposunun adı. Basit bir model kimliği olabilir; bu durumda model ad alanınıza (namespace) itilir. Aksi takdirde, bir üyesi olduğunuz bir organizasyona "organization_name/model" ile itmenizi sağlayan tam depo adı olmalıdır, örneğin "user_name/model". Varsayılan olarak output_dir_name, output_dir'ın adı olduğu için user_name/output_dir_name olur.
  • hub_strategy (str veya HubStrategy, isteğe bağlı, varsayılan olarak "every_save") — Hub'a neyin ve ne zaman gönderileceğini tanımlar. Seçenekler:
    • "end": Sadece eğitimin sonunda it
    • "every_save": Her kayıtta it (eğitimi bloklamaması için asenkron)
    • "checkpoint": "every_save" gibi, en son kontrol noktasını kolayca devam edebilmek için "last-checkpoint" alt klasörüne iter
    • "all_checkpoints": Kontrol noktaları ortaya çıktıkça hepsini gönder
  • hub_always_push (bool, isteğe bağlı, varsayılan False) — Bu True olmadıkça, Trainer önceki gönderim tamamlanmadıysa bir kontrol noktası göndermeyi atlar.
  • hub_revision (str, isteğe bağlı) — Hub'a itme işlemi sırasında kullanılacak revizyon. Bir dal adı, etiket veya commit hash'i olabilir.

En İyi Model Takibi

  • load_best_model_at_end (bool, isteğe bağlı, varsayılan False) — Eğitimin sonunda en iyi kontrol noktasını yükler. eval_strategy'nin ayarlanmış olması gerekir. Etkinleştirildiğinde, en iyi kontrol noktası her zaman kaydedilir (bkz. save_total_limit). `True` olduğunda, `save_strategy` `eval_strategy` ile eşleşmelidir (`save_strategy` `"best"` olmadıkça) ve `"steps"` kullanılıyorsa `save_steps`, `eval_steps`'in bir katı olmalıdır.
  • metric_for_best_model (str, isteğe bağlı) — load_best_model_at_end=True olduğunda modelleri karşılaştırmak için kullanılacak metrik. Değerlendirme tarafından döndürülen, "eval_" önekiyle veya öneksiz bir metrik adı olmalıdır. Varsayılan değeri "loss"'tur. Bu değeri ayarlarsanız, ad "loss" ile bitmiyorsa greater_is_better varsayılan olarak True olur. Örnekler: "accuracy", "f1", "eval_bleu".
  • greater_is_better (bool, isteğe bağlı) — Daha yüksek metrik değerlerinin daha iyi olup olmadığı. metric_for_best_model değerine göre varsayılan olarak ayarlanır: Metrik adı "loss" ile bitmiyorsa True, aksi halde False.

Eğitimi Devam Ettirme

  • ignore_data_skip (bool, isteğe bağlı, varsayılan False) — Eğitim devam ettirilirken, önceki duruma ulaşmak için veri setinde hızlı ileri sarma işlemi atlanır. True ise eğitim, veri setinin başından başlar (daha hızlı devam etme ancak sonuçlar yarıda kesilen eğitimle eşleşmez). False ise görülmüş veriler atlanır (daha yavaş devam etme ancak tam devam).
  • restore_callback_states_from_checkpoint (bool, isteğe bağlı, varsayılan False) — Devam ederken checkpoint'ten callback durumlarını geri yükler. True ise, checkpoint'te mevcut olanlar Trainer'a geçirilen callback'leri yazar.

Tekrarlanabilirlik

  • full_determinism (bool, isteğe bağlı, varsayılan False) — True ise, dağıtık eğitimde tekrarlanabilir sonuçları sağlamak için set_seed() yerine enable_full_determinism() çağrılır. Önemli: Bu, performansı olumsuz etkiler, bu nedenle yalnızca hata ayıklama için kullanın.
  • seed (int, isteğe bağlı, varsayılan 42) — Eğitimin başlangıcında ayarlanacak rastgele tohum. Çalışmalar arasında tekrarlanabilirliği sağlamak için, rastgele başlatılmış parametrelere sahipse modeli ~Trainer.model_init işlevini kullanarak örnekleyin.
  • data_seed (int, isteğe bağlı) — Veri örnekleyicilerle kullanılacak rastgele tohum. Ayarlanmazsa, veri örneklemesi için rastgele üreteçler seed ile aynı tohumu kullanır. Bu, model tohumundan bağımsız olarak veri örneklemesinin tekrarlanabilirliğini sağlamak için kullanılabilir.

Donanım Yapılandırması

  • use_cpu (bool, isteğe bağlı, varsayılan False) — cpu kullanılıp kullanılmayacağı. False olarak ayarlanırsa, kullanılabilir torch cihazı/ark planı kullanılır.

Accelerate Yapılandırması

  • accelerator_config (str, dict, veya AcceleratorConfig, isteğe bağlı) — Dahili Accelerate entegrasyonu için yapılandırma. Şunlardan biri olabilir:
    • JSON yapılandırma dosyasının yolu: "accelerator_config.json"
    • Yapılandırma seçenekleri içeren sözlük
    • AcceleratorConfig örneği Anahtar seçenekler:
    • split_batches (bool, varsayılan False): Toplulukların (batch) cihazlar arasında bölünip bölünmeyeceğini belirtir. True ise, tüm cihazlarda gerçek topluluk boyutu aynıdır (toplam, num_processes sayısına tam bölünmelidir). False ise, her cihaza belirtilen topluluk boyutu atanır.
    • dispatch_batches (bool): True ise yalnızca ana süreç dataloader üzerinden iterasyon yapar ve batch'leri cihazlara dağıtır. IterableDataset için varsayılan değeri True, diğer durumlarda False'tır.
    • even_batches (bool, varsayılan True): Tüm işçilerin eşit parti boyutlarına sahip olmasını sağlamak için veri setinin başındaki örnekleri kopyalar.
    • use_seedable_sampler (bool, varsayılan True): Yeniden üretilebilirlik için tamamen tohumlanabilir rastgele örnekleyici kullanın.
    • use_configured_state (bool, varsayılan False): Yeni bir tane oluşturmak yerine önceden başlatılmış AcceleratorState/PartialState kullanılır. Hiperağır ayarlamada sorunlara neden olabilir.
  • parallelism_config (ParallelismConfig, isteğe bağlı) — Eğitim çalışması için paralellik yapılandırması. 1.10.1 sürümünden itibaren Accelerate gerektirir

Dataloader

  • dataloader_drop_last (bool, isteğe bağlı, varsayılan False) — Veri setinin uzunluğu parti boyutuna bölünmüyorsa son eksik partinin atılıp atılmayacağını belirtir.
  • dataloader_num_workers (int, isteğe bağlı, varsayılan 0) — Veri yükleme için kullanılacak alt süreç sayısı (yalnızca PyTorch). 0, verinin ana süreçte yükleneceği anlamına gelir.
  • dataloader_pin_memory (bool, isteğe bağlı, varsayılan True) — Veri yükleyicilerde belleğin sabitlenip sabitlenmeyeceğini belirtir. Varsayılan olarak True olur.
  • dataloader_persistent_workers (bool, isteğe bağlı, varsayılan False) — True ise, veri yükleyici bir veri seti bir kez tüketildikten sonra işçi süreçlerini kapatmaz. Bu, işçi Dataset örneklerinin canlı kalmasını sağlar. Eğitim hızını potansiyel olarak artırabilir, ancak RAM kullanımını artırır. Varsayılan olarak False olur.
  • dataloader_prefetch_factor (int, isteğe bağlı) — Her işçi tarafından önceden yüklenen parti sayısı. 2, tüm işçiler arasında toplam 2 * num_workers partinin önceden yükleneceği anlamına gelir.
  • dataloader_multiprocessing_context (str, isteğe bağlı) — Veri yükleme işçileri için kullanılacak çok işlemcili başlatma yöntemi ("fork", "spawn" veya "forkserver"). Varsayılan olarak PyTorch’ün varsayılan başlatma yöntemi kullanılır; ancak MPS üzerinde dataloader_num_workers > 1 durumunda varsayılan "fork" olur. Nesneleri fork-güvenli olmayan kaynaklardan akış halinde okurken (ör. pyarrow üzerinden HDFS) "spawn" kullanın. "spawn" altında, özel collate_fn veya veri kümesi kodu modül düzeyinde içe aktarılabilir olmalıdır (lambda/kapanış kullanılamaz).
  • dataloader_in_order (bool, isteğe bağlı, varsayılan True) — True ise, veri yükleyici, işçilerin dağıtıldığı sırayla toplamları üretir. False olarak ayarlanırsa, toplamlar hazır olur olmaz üretilir; bu da IterableDataset akış iş yüklerinde kuyruk gecikmesini azaltabilir. PyTorch >= 2.6 gerektirir.
  • remove_unused_columns (bool, isteğe bağlı, varsayılan True) — Modelin forward metodunun kullanmadığı sütunların otomatik olarak kaldırılıp kaldırılmayacağı.
  • label_names (list[str], isteğe bağlı) — Girdi sözlüğünüzde etiketlere karşılık gelen anahtarların listesi. Varsayılan olarak, modelin kabul ettiği ve “label” kelimesini içeren argüman adlarının listesine ayarlanır; ancak kullanılan model XxxForQuestionAnswering sınıflarından biri ise, bu listeye ["start_positions", "end_positions"] anahtarları da eklenir. label_names değerini yalnızca özel etiket adları kullanıyorsanız veya modelinizin forward metodu birden fazla etiket tensörünü tüketiyorsa (ör. çıkarımsal soru-cevap) belirtmelisiniz.
  • train_sampling_strategy (str, isteğe bağlı, varsayılan olarak "random") — Eğitim dataloader'ı için kullanılacak örnekleyici. Olası değerler şunlardır:
    • "random": RandomSampler kullanır (varsayılan).
    • "sequential": SequentialSampler kullanır.
    • "group_by_length": Yaklaşık olarak aynı uzunluktaki örnekleri bir araya getirmek için LengthGroupedSampler kullanır (dolgu işlemini en aza indirmek ve daha verimli olmak için).
    • "batch_rebalance": BatchRebalanceSampler kullanılarak her etkili batch içindeki cihazlar ve gradyan biriktirme adımları arasında dolgulu jeton maliyeti dengelenir; bu sayede "group_by_length" ile karşılaştırıldığında dolgu israfı ve tepe bellek kullanımı azaltılır. Şu anda yalnızca veri paralel eğitim için desteklenmektedir (tensor paralelliği henüz desteklenmemektedir).

    Not: IterableDataset kullanıldığında bu argüman yok sayılır.

  • length_column_name (str, isteğe bağlı, varsayılan "length") — Önceden hesaplanmış uzunluklar için sütun adı. Sütun mevcutsa, uzunluğa göre gruplama bu değerleri kullanır, eğitim başlangıcında hesaplamaz. train_sampling_strategy "group_by_length" veya "batch_rebalance" değilse ve veri seti Dataset örneği değilse yok sayılır.

DDP (DistributedDataParallel)

  • ddp_find_unused_parameters (bool, isteğe bağlı) — Dağıtık eğitim kullanıldığında, DistributedDataParallel'e geçirilen find_unused_parameters bayrağının değeri. Gradyan denetimi (gradient checkpointing) kullanılıyorsa varsayılan olarak False, aksi halde True olur.
  • ddp_bucket_cap_mb (int, isteğe bağlı) — Dağıtık eğitim kullanıldığında, DistributedDataParallel'e geçirilen bucket_cap_mb bayrağının değeri.
  • ddp_broadcast_buffers (bool, isteğe bağlı) — Dağıtık eğitim kullanıldığında, DistributedDataParallel'e geçirilen broadcast_buffers bayrağının değeri. Gradyan denetimi kullanılıyorsa varsayılan olarak False, aksi halde True olur.
  • ddp_static_graph (bool, isteğe bağlı) — Dağıtık eğitim kullanıldığında, DistributedDataParallel'e geçirilen static_graph bayrağının değeri.
  • ddp_backend (str, isteğe bağlı) — Dağıtık eğitim için kullanılacak arka uç. "nccl", "mpi", "xccl", "gloo", "hccl" değerlerinden biri olmalıdır.
  • ddp_timeout (int, isteğe bağlı, varsayılan 1800) — Dağıtık çalıştırmalarda yavaş işlemler gerçekleştirirken GPU soket zaman aşımını önlemek için torch.distributed.init_process_group çağrılarında kullanılan zaman aşımı. Daha fazla bilgi için PyTorch belgelerine bakın.

FSDP (Fully Sharded Data Parallel)

  • fsdp (bool, isteğe bağlı, varsayılan None) — Dağıtık eğitim için PyTorch Fully Sharded Data Parallel (FSDP)'i etkinleştirir. FSDP'yi etkinleştirmek için True geçirin.
  • fsdp_config (str veya dict, isteğe bağlı) — Etkinleştirildiğinde ayar yapılandırması fsdp etkin olduğunda. JSON yapılandırma dosyasına bir yol geçin, örneğin fsdp_config.json, veya zaten yüklenmiş bir dict.

    Desteklenen anahtarlar:

    • version (int, isteğe bağlı, varsayılan 2): Kullanılacak FSDP sürümü (2 FSDP2 için, 1 eski FSDP1 için).
    • reshard_after_forward (bool, isteğe bağlı, varsayılan True): İleri geçişten sonra parametrelerin yeniden bölünmesi (reshard) yapılıp yapılmayacağını belirtir. İleri ve geri geçişler arasında parametrelerin toplanmış (gathered) halde tutulması, yeniden tüm-toplama (re-all-gather) işleminin önlenmesi ve daha yüksek tepe bellek kullanımı için False olarak ayarlayın.
    • cpu_offload (bool, isteğe bağlı, varsayılan False): Kullanılmadığında GPU belleğini tasarruf etmek için parametreleri ve gradyanları CPU'ya aktarır.
    • activation_checkpointing (bool, isteğe bağlı, varsayılan False): Geriye doğru yayılım sırasında aktivasyonları yeniden hesaplayarak belleği azaltmak için True olarak ayarlayın. FSDP kullanırken, geriye doğru yayılım aşamasında gereksiz bir all-gather işlemine neden olan activation_checkpointing eğitim argümanı yerine bunu tercih edin.
    • cpu_ram_efficient_loading (bool, isteğe bağlı, varsayılan False): Önceden eğitilmiş kontrol noktasının yalnızca ilk işlemde yüklenmesi için True olarak ayarlayın. Diğer işlemler boş ağırlıklarla başlar ve ağırlıkları yayın (broadcast) yoluyla alır.
    • state_dict_type (str, isteğe bağlı, varsayılan "FULL_STATE_DICT"): Kontrol noktası biçimi: "FULL_STATE_DICT" (tek HF uyumlu dosya) veya "SHARDED_STATE_DICT" (rank başına bir dosya, büyük modeller için daha hızlı).
    • auto_wrap_policy (str, isteğe bağlı, varsayılan "TRANSFORMER_BASED_WRAP"): Kullanılacak auto-wrap politikası. "TRANSFORMER_BASED_WRAP", "SIZE_BASED_WRAP" veya "NO_WRAP" seçeneklerinden birini seçin.
    • transformer_layer_cls_to_wrap (list[str], isteğe bağlı): Sarmalanacak transformer katman sınıf adları (büyük/küçük harfe duyarlı), örn. LlamaDecoderLayer. Genellikle gerekmez: sarmalama politikası, çoğu transformers modelini kapsayan modelin _no_split_modules değerine geri düşer.
    • min_num_params (int, isteğe bağlı, varsayılan 0): Boyut tabanlı otomatik sarmalama için modül başına minimum parametre sayısı (auto_wrap_policy="SIZE_BASED_WRAP" ile kullanılır).
    • xla (bool, isteğe bağlı, varsayılan False): PyTorch/XLA Fully Sharded Data Parallel Eğitiminin kullanılıp kullanılmayacağı. Deneyseldir.
    • xla_fsdp_settings (dict, isteğe bağlı): XLA FSDP sarmalama parametrelerinin sözlüğü. Tüm seçeneklerin listesi için bkz. XLA FSDP kaynağı.
    • xla_fsdp_grad_ckpt (bool, isteğe bağlı, varsayılan False): Her iç içe geçmiş XLA FSDP sarmalı katman için gradyan denetimi (gradient checkpointing) kullanmak için True olarak ayarlayın. xla=True ve bir otomatik sarma politikası (min_num_params veya transformer_layer_cls_to_wrap) gerektirir.

DeepSpeed

  • deepspeed (str veya dict, isteğe bağlı) — Etkinleştir DeepSpeed entegrasyonu. Değer şunlardan biri olabilir:
    • DeepSpeed JSON yapılandırma dosyasının yolu: "ds_config.json"
    • Yüklenecek yapılandırma sözlük olarak

      ZeRO başlatma kullanılıyorsa, TrainingArguments başlatıldıktan sonra modelinizi örnekleyin; aksi takdirde ZeRO uygulanmaz.

Hata Ayıklama ve Profil Oluşturma (Deneysel)

  • debug (str veya list of DebugOption, opsiyonel, varsayılan olarak "") — Bir veya daha fazla hata ayıklama özelliğini etkinleştirir. Bu deneysel bir özelliktir. Olası seçenekler şunlardır:
    • “underflow_overflow”: modelin girdi/çıktılarında taşmayı algılar ve olaya yol son kareleri raporlar
    • “tpu_metrics_debug”: TPU üzerinde hata ayıklama metriklerini yazdır
  • skip_memory_metrics (bool, isteğe bağlı, varsayılan True) — Metriklere bellek profilleri raporlarının eklenmesinin atlanıp atlanmayacağı. Bu, eğitim ve değerlendirme hızını yavaşlattığı için varsayılan olarak atlanır.

Harici Betik Bayrakları (Trainer tarafından kullanılmaz)

  • do_train (bool, isteğe bağlı, varsayılan False) — Eğitimin çalıştırılıp çalıştırılmayacağını belirtir. Bu argüman Trainer tarafından doğrudan kullanılmaz; bunun yerine eğitim/değerlendirme betikleriniz tarafından kullanılması amaçlanmıştır.
  • do_eval (bool, isteğe bağlı) — Doğrulama kümesinde değerlendirme çalıştırılıp çalıştırılmayacağını belirtir. eval_strategy "no" değerinden farklıysa True olarak ayarlanır. Bu argüman Trainer tarafından doğrudan kullanılmaz; bunun yerine eğitim/değerlendirme betikleriniz tarafından kullanılması amaçlanmıştır.
  • do_predict (bool, isteğe bağlı, varsayılan False) — Test setinde tahminlerin çalıştırılıp çalıştırılmayacağını belirtir. Bu argüman Trainer tarafından doğrudan kullanılmaz; bunun yerine eğitim/değerlendirme betikleriniz tarafından kullanılması amaçlanmıştır.
  • resume_from_checkpoint (str, isteğe bağlı) — Modeliniz için geçerli bir checkpoint içeren klasörün yolu. Bu argüman doğrudan Trainer tarafından kullanılmaz; bunun yerine eğitim/değerlendirme betikleriniz tarafından kullanılması amaçlanmıştır.
  • sortish_sampler (bool, isteğe bağlı, varsayılan olarak False) — bir sortish sampler kullanılacak mı? Şu an için yalnızca altta yatan veri kümeleri Seq2SeqDataset ise mümkün, ancak yakın gelecekte genel olarak kullanılabilir hale gelecek.

    Eşit boyutlandırma (padding) boyutunu en aza indirmek için girdileri uzunluklarına göre sıralar; eğitim seti için biraz rastgelelik eklenir.

  • predict_with_generate (bool, isteğe bağlı, varsayılan False) — Üretken metrikleri (ROUGE, BLEU) hesaplamak için generate kullanılacak mı?
  • generation_max_length (int, isteğe bağlı) — predict_with_generate=True olduğunda her değerlendirme döngüsünde kullanılacak max_length. Varsayılan olarak model yapılandırmasının max_length değeri kullanılır.
  • generation_num_beams (int, isteğe bağlı) — predict_with_generate=True olduğunda her değerlendirme döngüsünde kullanılacak num_beams değeri. Varsayılan olarak model yapılandırmasının num_beams değeri kullanılır.
  • generation_config (str veya Path veya GenerationConfig, isteğe bağlı) — Bir GenerationConfig nesnesini from_pretrained metodundan yüklemeye olanak tanır. Bu şunlardan biri olabilir: huggingface.co üzerindeki bir model deposunda barındırılan önceden eğitilmiş bir model yapılandırmasının model kimliği olan bir dize, save_pretrained() metodu kullanılarak kaydedilmiş bir yapılandırma dosyası içeren bir dizinin yolu (ör. ./my_model_directory/) veya bir GenerationConfig nesnesi.
    • bir dize, huggingface.co'daki bir model deposunda barındırılan önceden eğitilmiş bir model yapılandırmasının model kimliği.
    • save_pretrained() yöntemi kullanılarak bir yapılandırma dosyası kaydedilen bir dizinin yolunu, örneğin ./my_model_directory/.
    • a GenerationConfig nesnesi.

Trainer ile model eğitiminin tüm yönlerini kontrol etmek için kullanılan yapılandırma sınıfı. TrainingArguments, eğitim için gereken tüm hiperparametreleri, optimizasyon ayarlarını, günlük tutma tercihlerini ve altyapı seçimlerini merkezi bir şekilde toplar.

HfArgumentParser, bu sınıfı komut satırında belirtilebilecek argparse argümanlarına dönüştürebilir.

to_dict

< >

( )

Bu örneği, Enum değerlerini ve GenerationConfig nesnelerini sözlüklerle değiştirerek (JSON seri hale getirme desteği için) seri hale getirir. Token değerlerini gizlemek için bu değerleri kaldırır.

Update on GitHub