# Trainer

[Trainer](/docs/transformers/main/tr/main_classes/trainer#transformers.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](https://nvidia.github.io/apex/)’lar için karma hassasiyeti, [AMD GPU](https://rocm.docs.amd.com/en/latest/rocm.html)’lar ve PyTorch için [`torch.amp`](https://pytorch.org/docs/stable/amp.html)’yi destekler. [Trainer](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer), bir modelin nasıl eğitileceğini özelleştirmek için geniş bir seçenek yelpazesi sunan [TrainingArguments](/docs/transformers/main/tr/main_classes/trainer#transformers.TrainingArguments) sınıfıyla birlikte çalışır. Bu iki sınıf birlikte tam bir eğitim API’si sağlar.

[Seq2SeqTrainer](/docs/transformers/main/tr/main_classes/trainer#transformers.Seq2SeqTrainer) ve [Seq2SeqTrainingArguments](/docs/transformers/main/tr/main_classes/trainer#transformers.Seq2SeqTrainingArguments), [Trainer](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer) ve [TrainingArguments](/docs/transformers/main/tr/main_classes/trainer#transformers.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](/docs/transformers/main/tr/main_classes/trainer#transformers.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](/docs/transformers/main/tr/main_classes/output#transformers.utils.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](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer)'a adlarını belirtmek için [TrainingArguments](/docs/transformers/main/tr/main_classes/trainer#transformers.TrainingArguments) içinde `label_names` kullanın) ancak bunların hiçbiri `"label"` olarak adlandırılmamalıdır

## Eğitmen[[api-reference]][[transformers.Trainer]]

#### transformers.Trainer[[transformers.Trainer]]

```python
transformers.Trainer(model: typing.Union[transformers.modeling_utils.PreTrainedModel, torch.nn.Module, NoneType] = None, args: transformers.training_args.TrainingArguments | None = None, data_collator: collections.abc.Callable[[list[typing.Any]], dict[str, typing.Any]] | None = None, train_dataset: Dataset | IterableDataset | datasets.Dataset | None = None, eval_dataset: Dataset | dict[str, Dataset] | datasets.Dataset | None = None, processing_class: transformers.tokenization_utils_base.PreTrainedTokenizerBase | transformers.image_processing_utils.BaseImageProcessor | transformers.feature_extraction_utils.FeatureExtractionMixin | transformers.processing_utils.ProcessorMixin | None = None, model_init: collections.abc.Callable[..., transformers.modeling_utils.PreTrainedModel] | None = None, compute_loss_func: collections.abc.Callable | None = None, compute_metrics: collections.abc.Callable[[transformers.trainer_utils.EvalPrediction], dict] | None = None, callbacks: list[transformers.trainer_callback.TrainerCallback] | None = None, optimizers: tuple = (None, None), optimizer_cls_and_kwargs: tuple[type[torch.optim.Optimizer], dict[str, typing.Any]] | None = None, preprocess_logits_for_metrics: collections.abc.Callable[[torch.Tensor, torch.Tensor], torch.Tensor] | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L260)

**Parametreler:**

model ([PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.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` geçirilmelidir.    [Trainer](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer), kütüphane tarafından sağlanan [PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.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](/docs/transformers/main/tr/main_classes/trainer#transformers.TrainingArguments), *isteğe bağlı*) : Eğitim için ayarlanacak argümanlar. Verilmezse, `output_dir` parametresi mevcut dizinde *tmp_trainer* adlı bir dizine ayarlanmış temel bir [TrainingArguments](/docs/transformers/main/tr/main_classes/trainer#transformers.TrainingArguments) örneğine varsayılan olarak ayarlanır.

data_collator (`DataCollator`, *isteğe bağlı*) : `train_dataset` veya `eval_dataset` öğelerinin listesinden bir batch oluşturmak için kullanılacak işlev. `processing_class` sağlanmazsa varsayılan olarak [default_data_collator()](/docs/transformers/main/tr/main_classes/data_collator#transformers.default_data_collator) kullanılır; processing_class bir feature extractor veya tokenizer ise [DataCollatorWithPadding](/docs/transformers/main/tr/main_classes/data_collator#transformers.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. [Dataset](https://huggingface.co/docs/datasets/main/en/package_reference/main_classes#datasets.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 ya tüm süreçlerde aynı olması gereken rastgelelik için `torch.Generator` olan `generator` iç özniteliğini kullanmalı (ve Trainer bu `generator`'ın tohumunu her çağda manuel olarak ayarlayacaktır) ya da kullanılan RNG'lerin tohumunu içsel olarak ayarlayan bir `set_epoch()` metoduna sahip olmalıdır. Veri kümesi `__len__` uygulamıyorsa (ör. bir akış `IterableDataset`), toplam eğitim adımı sayısı çıkarılamadığı için `max_steps` ayarlanmalıdır.

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 kümesi. Bir [Dataset](https://huggingface.co/docs/datasets/main/en/package_reference/main_classes#datasets.Dataset) ise, `model.forward()` yöntemi tarafından kabul edilmeyen sütunlar otomatik olarak kaldırılır. Bir sözlükse, her veri kümesi ü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 başlatmayı 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şlevdir. Sağlanırsa, [train()](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer.train) çağrısının her biri, bu işlev tarafından verilen modelin yeni bir örneğinden başlayacaktır. İşlevin 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 toplamdaki öğe sayısını (batch_size * gradient_accumulation_steps) kabul eden ve kaybı döndüren bir fonksiyon. Örneğin, [Trainer](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer) tarafından kullanılan varsayılan [loss function](https://github.com/huggingface/transformers/blob/052e652d6d53c2b26ffde87e039b723949a53493/src/transformers/trainer.py#L3618)'a 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](/docs/transformers/main/tr/internal/trainer_utils#transformers.EvalPrediction) almalı ve metrik değerlerine giden bir sözlük döndürmelidir. *Not* `batch_eval_metrics` değeri `True` olarak ayarlanmış 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 ([TrainerCallback](/docs/transformers/main/tr/main_classes/callback#transformers.TrainerCallback) listesi, *isteğe bağlı*) : Eğitim döngüsünü özelleştirmek için kullanılacak geri çağrılar listesi. Bunlar, [burada](callback) ayrıntıları verilen varsayılan geri çağrılar listesine eklenecektir. Kullanılan varsayılan geri çağrılardan birini kaldırmak istiyorsanız, [Trainer.remove_callback()](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer.remove_callback) yöntemini kullanın.

optimizers (`tuple[torch.optim.Optimizer, torch.optim.lr_scheduler.LambdaLR]`, *opsiyonel*, varsayılan `(None, None)`) : Kullanılacak optimizörün ve zamanlayıcının yer aldığı bir tuple. Modeliniz üzerinde bir `AdamW` örneği ve `args` tarafından kontrol edilen [get_linear_schedule_with_warmup()](/docs/transformers/main/tr/main_classes/optimizer_schedules#transformers.get_linear_schedule_with_warmup) tarafından verilen bir zamanlayıcı olarak varsayılan değerlere sahip olacaktır.

optimizer_cls_and_kwargs (`tuple[Type[torch.optim.Optimizer], dict[str, Any]]`, *isteğe bağlı*) : Kullanılacak optimizer sınıfını ve anahtar kelime argümanlarını içeren bir tuple. `args` içindeki `optim` ve `optim_args` değerlerini geçersiz kılar. `optimizers` argümanıyla uyumsuzdur. `optimizers`'in 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'ler önbelleğe alınmadan hemen önce onları ön işleyen bir işlev. İki tensör almalı, logit'ler ve etiketler, ve istenildiği gibi işlendikten sonra logit'leri döndürmelidir. Bu işlev tarafından yapılan değişiklikler, `compute_metrics` tarafından alınan tahminlerde yansıtılacaktır. Veri setinin etiketleri yoksa, etiketlerin (ikinci parametre) `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](/docs/transformers/main/tr/main_classes/model#transformers.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 olmadıkça 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[[transformers.Trainer.add_callback]]

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

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L4688)

**Parametreler:**

callback (`type` veya [`~transformers.TrainerCallback]`) : Bir [TrainerCallback](/docs/transformers/main/tr/main_classes/callback#transformers.TrainerCallback) sınıfı veya bir [TrainerCallback](/docs/transformers/main/tr/main_classes/callback#transformers.TrainerCallback) örneği. İlk durumda, bu sınıfın bir üyesi örneklenir.

Mevcut [TrainerCallback](/docs/transformers/main/tr/main_classes/callback#transformers.TrainerCallback) listesine bir geri çağırma ekleyin.

#### autocast_smart_context_manager[[transformers.Trainer.autocast_smart_context_manager]]

```python
autocast_smart_context_manager(cache_enabled: bool | None = True)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L2223)

Duruma göre `autocast` için uygun bir bağlam yöneticisi oluştururken ona istenen argümanları ileten 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[[transformers.Trainer.call_model_init]]

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

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L4579)

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

#### compute_loss[[transformers.Trainer.compute_loss]]

```python
compute_loss(model: Module, inputs: dict, return_outputs: bool = False, num_items_in_batch: typing.Union[int, torch.Tensor, NoneType] = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L2122)

**Parametreler:**

model (`nn.Module`) : Kaybın hesaplanacağı model.

inputs (`dict[str, torch.Tensor | Any]`) : Modelin 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ğini belirtir.

num_items_in_batch (Optional[torch.Tensor], *opsiyonel*) : Batch'teki öğelerin sayısı. Geçirilmezse, kayıp varsayılan batch boyutu azaltma mantığı kullanılarak hesaplanır.

**Dönüş:**

return_outputs True olarak ayarlandıysa modelin kaybı ve çıktısı

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` parametresini, kaybın gradyan birikimi için zaten ölçeklenip ölçeklenmediğini belirtmek üzere ayarlayın: parti başına ortalama ise `False` (Trainer bunu gradyan birikim adım sayısına böler), biriken tüm parti üzerinde zaten normalize ettiyseniz `True`.

#### compute_loss_context_manager[[transformers.Trainer.compute_loss_context_manager]]

```python
compute_loss_context_manager()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L2211)

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

#### create_accelerator_and_postprocess[[transformers.Trainer.create_accelerator_and_postprocess]]

```python
create_accelerator_and_postprocess()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L806)

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

#### create_model_card[[transformers.Trainer.create_model_card]]

```python
create_model_card(language: str | None = None, license: str | None = None, tags: str | list[str] | None = None, model_name: str | None = None, finetuned_from: str | None = None, tasks: str | list[str] | None = None, dataset_tags: str | list[str] | None = None, dataset: str | list[str] | None = None, dataset_args: str | list[str] | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L4259)

**Parametreler:**

language (`str`, *isteğe bağlı*) : Modelin dili (uygulanabilirse)

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ı (uygulanabilirse). `Trainer`'a verilen orijinal modelin adının deposu (Hub'dan geliyorsa) varsayılan olarak kullanılır.

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[[transformers.Trainer.create_optimizer]]

```python
create_optimizer(model = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L1259)

**Dönüş:** `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, `optimizers` üzerinden Trainer'ın init'ine bir tuple geçirebilir veya bir alt sınıfta bu yöntemi geçersiz kılabilirsiniz.

#### create_optimizer_and_scheduler[[transformers.Trainer.create_optimizer_and_scheduler]]

```python
create_optimizer_and_scheduler(num_training_steps: int)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L1248)

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

İyi çalışan makul 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[[transformers.Trainer.create_scheduler]]

```python
create_scheduler(num_training_steps: int, optimizer: typing.Optional[torch.optim.Optimizer] = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L1347)

**Parametreler:**

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

**Dönüş:** `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.

#### son[[transformers.Trainer.end]]

```python
end()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L3105)

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()](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer.train), [evaluate()](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer.evaluate), [predict()](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer.predict), [save_model()](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer.save_model) ve [push_to_hub()](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer.push_to_hub) süreçler arasında iletişim kurar ve grup kaldırıldığında başarısız olur.

Örnek:

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

#### evaluate[[transformers.Trainer.evaluate]]

```python
evaluate(eval_dataset: typing.Union[torch.utils.data.Dataset, dict[str, torch.utils.data.Dataset], NoneType] = None, ignore_keys: list[str] | None = None, metric_key_prefix: str = 'eval')
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L2797)

**Parametreler:**

eval_dataset (`Dataset` | dict[str, `Dataset`], *opsiyonel*) : `self.eval_dataset` değerini geçersiz kılmak istiyorsanız bir veri seti iletin. Bir [Dataset](https://huggingface.co/docs/datasets/main/en/package_reference/main_classes#datasets.Dataset) ise, `model.forward()` metodu tarafından kabul edilmeyen sütunlar otomatik olarak kaldırılır. Bir sözlük ise, her veri setinde değerlendirme yapılır ve sözlük anahtarı metrik adının başına eklenir.    Anahtarları veri seti adları, değerleri veri setleri olan bir sözlük iletirseniz, evaluate her veri seti için ayrı ayrı değerlendirmeler çalıştırır. Bu, eğitimin diğer veri setleri üzerindeki etkisini 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 tam olarak veri setlerinden birine atıfta bulunduğundan emin olun. Örneğin, `data1` ve `data2` adlı iki veri seti için `{"data1": data1, "data2": data2}` iletirseniz, `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ında (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.

**Dönüş:**

Değerlendirme kaybını ve tahminlerden hesaplanan olası metrikleri içeren bir sözlük. Sözlük, eğitim durumundan gelen epoch numarasını da içerir.

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

Çağıran betik, metriklerin hesaplanması için bir yöntem sağlamaktan sorumlu olacaktır; bunlar görevlere bağlıdı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[[transformers.Trainer.evaluation_loop]]

```python
evaluation_loop(dataloader: DataLoader, description: str, prediction_loss_only: bool | None = None, ignore_keys: list[str] | None = None, metric_key_prefix: str = 'eval')
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L2896)

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

Etiketlerle veya etiketsiz olarak çalışır.

#### floating_point_ops[[transformers.Trainer.floating_point_ops]]

```python
floating_point_ops(inputs: dict)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L4212)

**Parametreler:**

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

**Dönüş:** `int`

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

[PreTrainedModel](/docs/transformers/main/tr/main_classes/model#transformers.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 alt sınıf oluşturup bu yöntemi geçersiz kılmanız gerekir.

#### get_batch_samples[[transformers.Trainer.get_batch_samples]]

```python
get_batch_samples(epoch_iterator: Iterator, num_batches: int, device: device)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L2281)

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[[transformers.Trainer.get_cp_size]]

```python
get_cp_size()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L2583)

Bağlam paralel boyutunu alın

#### get_decay_parameter_names[[transformers.Trainer.get_decay_parameter_names]]

```python
get_decay_parameter_names(model: Module)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L1408)

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ı ('bias' içeren veya 'norm' varyasyonları)

#### get_eval_dataloader[[transformers.Trainer.get_eval_dataloader]]

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

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L936)

**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 yazılır. [Dataset](https://huggingface.co/docs/datasets/main/en/package_reference/main_classes#datasets.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[[transformers.Trainer.get_learning_rates]]

```python
get_learning_rates()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_pt_utils.py#L1304)

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

#### get_num_trainable_parameters[[transformers.Trainer.get_num_trainable_parameters]]

```python
get_num_trainable_parameters()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_pt_utils.py#L1296)

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

#### get_optimizer_cls_and_kwargs[[transformers.Trainer.get_optimizer_cls_and_kwargs]]

```python
get_optimizer_cls_and_kwargs(args: TrainingArguments, model: transformers.modeling_utils.PreTrainedModel | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L1377)

**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 (GaLore, Apollo, LOMO) için gereklidir.

**Dönüş:**

Optimizatör sınıfını ve optimizatör anahtar kelime argümanlarının sözlüğünü içeren bir demet.

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

#### get_optimizer_group[[transformers.Trainer.get_optimizer_group]]

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

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_pt_utils.py#L1314)

**Parametreler:**

param (`str` veya `torch.nn.parameter.Parameter`, *isteğe bağlı*) : Optimizer grubunun döndürülmesi gereken 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[[transformers.Trainer.get_sp_size]]

```python
get_sp_size()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L2575)

Dizi paralel boyutunu alın

#### get_test_dataloader[[transformers.Trainer.get_test_dataloader]]

```python
get_test_dataloader(test_dataset: Dataset)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L975)

**Parametreler:**

test_dataset (`torch.utils.data.Dataset`, *isteğe bağlı*) : Kullanılacak test veri seti. Bir [Dataset](https://huggingface.co/docs/datasets/main/en/package_reference/main_classes#datasets.Dataset) ise, `model.forward()` yöntemi 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[[transformers.Trainer.get_total_train_batch_size]]

```python
get_total_train_batch_size(args: TrainingArguments)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L2557)

Toplu işlem 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[[transformers.Trainer.get_tp_size]]

```python
get_tp_size()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L2591)

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

#### get_train_dataloader[[transformers.Trainer.get_train_dataloader]]

```python
get_train_dataloader()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L916)

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

`train_dataset`, `__len__` uyguluyorsa rastgele bir örnekleyici (gerekirse dağıtık eğitime uyarlanmış), uygulamıyorsa örnekleyici kullanılmaz.

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

#### hyperparameter_search[[transformers.Trainer.hyperparameter_search]]

```python
hyperparameter_search(hp_space: collections.abc.Callable[['optuna.Trial'], dict[str, float]] | None = None, compute_objective: collections.abc.Callable[[dict[str, float]], float] | None = None, n_trials: int = 20, direction: str | list[str] = 'minimize', backend: str | transformers.trainer_utils.HPSearchBackend | None = None, hp_name: collections.abc.Callable[['optuna.Trial'], str] | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L4498)

**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()` kullanılır.

compute_objective (`Callable[[dict[str, float]], float]`, *isteğe bağlı*) : `evaluate` yöntemi tarafından döndürülen metriklerden minimize veya maksimize edilecek hedefi hesaplayan bir işlev. 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 direction `str` türündedir ve `"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 direction `list[str]` türündedir ve `"minimize"` ile `"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ı*) : Hiperparametre araması için kullanılacak arka uç. Hangisinin yüklü olduğuna bağlı olarak varsayılan olarak optuna veya Ray Tune olur. İkisi 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 argümanlar:  - `optuna`: [optuna.study.create_study](https://optuna.readthedocs.io/en/stable/reference/generated/optuna.study.create_study.html) parametreleri ve ayrıca [optuna.study.Study.optimize](https://optuna.readthedocs.io/en/stable/reference/generated/optuna.study.Study.html#optuna.study.Study.optimize) içindeki `timeout`, `n_jobs` ve `gc_after_trial` parametreleri - `ray`: [tune.run](https://docs.ray.io/en/latest/tune/api_docs/execution.html#tune-run) parametreleri. `resources_per_trial` `kwargs` içinde ayarlanmadıysa, varsayılan olarak 1 CPU çekirdeği ve 1 GPU (mevcutsa) kullanılır. `progress_reporter` `kwargs` içinde ayarlanmadıysa, [ray.tune.CLIReporter](https://docs.ray.io/en/latest/tune/api/doc/ray.tune.CLIReporter.html) kullanılır.

**Dönüş:** [`trainer_utils.BestRun` veya `list[trainer_utils.BestRun]`]

Çok amaçlı optimizasyon için en iyi çalıştırma veya çalıştırmalarla ilgili 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](/docs/transformers/main/tr/main_classes/trainer#transformers.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](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer) sınıfını alt sınıflandırmalı ve [create_optimizer_and_scheduler()](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer.create_optimizer_and_scheduler) yöntemini geçersiz kılmalısınız.

#### init_hf_repo[[transformers.Trainer.init_hf_repo]]

```python
init_hf_repo(token: str | None = None, private: bool | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L4233)

**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ı*) : Oluşturulduğunda depoyu özel yapılıp yapılmayacağını belirtir. Varsayılan olarak `self.args.hub_private_repo` değerini kullanır. Depo zaten mevcutsa etkisi yoktur.

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

#### is_local_process_zero[[transformers.Trainer.is_local_process_zero]]

```python
is_local_process_zero()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L4728)

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[[transformers.Trainer.is_world_process_zero]]

```python
is_world_process_zero()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L4735)

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

#### log[[transformers.Trainer.log]]

```python
log(logs: dict, start_time: float | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L4177)

**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[[transformers.Trainer.log_metrics]]

```python
log_metrics(split, metrics)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_pt_utils.py#L1152)

**Parametreler:**

split (`str`) : Mod/bölme 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 bellek metriği mi olduğunu belirtir.
- `*_alloc_delta` - 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). Ana işlem işin büyük kısmını yaptığı için bu genellikle yeterlidir, ancak model parallel 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 optimizer 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. Takas dışına çıkarılan belleğin dahil edilmediği ve bu nedenle raporların imzasız olabileceği önemli bir not olarak belirtilmelidir.

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 "deltaları" 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](/docs/transformers/main/tr/main_classes/trainer#transformers.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; bu sayaç iç içe bir eval çağrısıyla sıfırlanırsa, `train` izleyicisi yanlış bilgi raporlar. Bu [pytorch sorunu](https://github.com/pytorch/pytorch/issues/16266) çö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 en 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](/docs/transformers/main/tr/main_classes/trainer#transformers.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](/docs/transformers/main/tr/main_classes/trainer#transformers.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[[transformers.Trainer.metrics_format]]

```python
metrics_format(metrics: dict)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_pt_utils.py#L1125)

**Parametreler:**

metrics (`dict[str, float]`) : train/evaluate/predict işlemlerinden döndürülen metrikler

**Dönüş:** metrikler (`dict[str, float]`)

Biçimlendirilmiş metrikler

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

#### num_examples[[transformers.Trainer.num_examples]]

```python
num_examples(dataloader: DataLoader)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L993)

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[[transformers.Trainer.pop_callback]]

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

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L4699)

**Parametreler:**

callback (`type` veya [`~transformers.TrainerCallback]`) : Bir [TrainerCallback](/docs/transformers/main/tr/main_classes/callback#transformers.TrainerCallback) sınıfı veya bir [TrainerCallback](/docs/transformers/main/tr/main_classes/callback#transformers.TrainerCallback) örneği. İlk durumda, callback listesinde bulunan o sınıfın ilk üyesi kaldırılır.

**Dönüş:** [TrainerCallback](/docs/transformers/main/tr/main_classes/callback#transformers.TrainerCallback)

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

Mevcut [TrainerCallback](/docs/transformers/main/tr/main_classes/callback#transformers.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[[transformers.Trainer.predict]]

```python
predict(test_dataset: Dataset, ignore_keys: list[str] | None = None, metric_key_prefix: str = 'test')
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L3124)

**Parametreler:**

test_dataset (`Dataset`) : Tahminlerin çalıştırılacağı veri seti. `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ında (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ı*): Olası metrikler sözlüğü (veri seti etiketler içeriyorsa).

#### prediction_step[[transformers.Trainer.prediction_step]]

```python
prediction_step(model: Module, inputs: dict, prediction_loss_only: bool, ignore_keys: list[str] | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L3185)

**Parametreler:**

model (`nn.Module`) : Değerlendirilecek model.

inputs (`dict[str, torch.Tensor | Any]`) : Modelin girdileri ve hedefleri. Sözlük, modele iletilmeden önce açılı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`) : Sadece 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ında (bir sözlükse) tahminleri toplarken yok sayılması gereken anahtarların listesi.

**Dönüş:** tuple[Optional[torch.Tensor], Optional[torch.Tensor], Optional[torch.Tensor]]

Kayıp, logitler ve etiketler (her biri isteğe bağlı) içeren bir demet.

`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[[transformers.Trainer.push_to_hub]]

```python
push_to_hub(commit_message: str | None = 'End of training', blocking: bool = True, token: str | None = None, revision: str | None = None, private: bool | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L4333)

**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ı dönmeli.

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ı*) : Taahhüt edilecek git revizyonu. Varsayılan olarak "main" dalının başıdır.

private (`bool`, *isteğe bağlı*) : Oluşturulduğunda depoyu özel yapılıp yapılmayacağını belirtir. Varsayılan olarak `args.hub_private_repo` değerini kullanır. Depo zaten mevcutsa etkisi yoktur.

kwargs (`dict[str, Any]`, *isteğe bağlı*) : [create_model_card()](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer.create_model_card) fonksiyonuna iletilen ek anahtar kelime argümanları.

**Dönüş:**

`blocking=False` ise modelin itildiği depoyun URL'si, `blocking=True` ise commit'in ilerlemesini izleyen bir `Future` nesnesi.

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

#### remove_callback[[transformers.Trainer.remove_callback]]

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

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L4715)

**Parametreler:**

callback (`type` veya [`~transformers.TrainerCallback]`) : Bir [TrainerCallback](/docs/transformers/main/tr/main_classes/callback#transformers.TrainerCallback) sınıfı veya bir [TrainerCallback](/docs/transformers/main/tr/main_classes/callback#transformers.TrainerCallback) örneği. İlk durumda, callback listesinde bulunan bu sınıfın ilk üyesi kaldırılır.

Mevcut [TrainerCallback](/docs/transformers/main/tr/main_classes/callback#transformers.TrainerCallback) listesinden bir geri çağrıyı kaldırır.

#### save_metrics[[transformers.Trainer.save_metrics]]

```python
save_metrics(split, metrics, combined = True)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_pt_utils.py#L1243)

**Parametreler:**

split (`str`) : Mod/bölme adı: `train`, `eval`, `test`, `all` değerlerinden biri

metrics (`dict[str, float]`) : train/evaluate/predict işlemlerinden 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()](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer.log_metrics) dokümantasyon dizesini okuyun. Tek fark, mevcut yöntemde ham biçimsiz sayıların kaydedilmesidir.

#### save_model[[transformers.Trainer.save_model]]

```python
save_model(output_dir: str | None = None, _internal_call: bool = False)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L4073)

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

Yalnızca ana süreçten kaydedecektir.

#### save_state[[transformers.Trainer.save_state]]

```python
save_state()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_pt_utils.py#L1282)

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[[transformers.Trainer.set_initial_training_values]]

```python
set_initial_training_values(args: TrainingArguments, dataloader: DataLoader)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L2487)

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[[transformers.Trainer.store_flos]]

```python
store_flos()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L4201)

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

#### train[[transformers.Trainer.train]]

```python
train(resume_from_checkpoint: str | bool | None = None, trial: optuna.Trial | dict[str, Any] | None = None, ignore_keys_for_eval: list[str] | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L1450)

**Parametreler:**

resume_from_checkpoint (`str` veya `bool`, *isteğe bağlı*) : `str` ise, önceki bir [Trainer](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer) örneği tarafından kaydedilen, kaydedilmiş bir kontrol noktasının yerel yolu. `bool` ise ve `True` değerine eşitse, önceki bir [Trainer](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer) örneği tarafından *args.output_dir* içinde kaydedilen son kontrol noktasını yükler. Mevcut ise, 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ı*) : Modelinizin çıktısında (bir sözlükse) eğitim sırasında değerlendirme için tahminleri toplarken yok sayılması gereken anahtarların listesi.

**Dönüş:** `TrainOutput`

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

Ana eğitim giriş noktası.

#### training_step[[transformers.Trainer.training_step]]

```python
training_step(model: Module, inputs: dict, num_items_in_batch: typing.Union[int, torch.Tensor, NoneType] = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer.py#L2043)

**Parametreler:**

model (`nn.Module`) : Eğitilecek model.

inputs (`dict[str, torch.Tensor | Any]`) : Modelin girdileri ve hedefleri. Sözlük, modele iletilmeden önce açılı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üş:** `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[[transformers.Seq2SeqTrainer]]

#### transformers.Seq2SeqTrainer[[transformers.Seq2SeqTrainer]]

```python
transformers.Seq2SeqTrainer(model: typing.Union[ForwardRef('PreTrainedModel'), torch.nn.Module, NoneType] = None, args: typing.Optional[ForwardRef('TrainingArguments')] = None, data_collator: typing.Optional[ForwardRef('DataCollator')] = None, train_dataset: typing.Union[torch.utils.data.Dataset, ForwardRef('IterableDataset'), ForwardRef('datasets.Dataset'), NoneType] = None, eval_dataset: typing.Union[torch.utils.data.Dataset, dict[str, torch.utils.data.Dataset], NoneType] = None, processing_class: typing.Union[ForwardRef('PreTrainedTokenizerBase'), ForwardRef('BaseImageProcessor'), ForwardRef('FeatureExtractionMixin'), ForwardRef('ProcessorMixin'), NoneType] = None, model_init: collections.abc.Callable[[], 'PreTrainedModel'] | None = None, compute_loss_func: collections.abc.Callable | None = None, compute_metrics: collections.abc.Callable[['EvalPrediction'], dict] | None = None, callbacks: list['TrainerCallback'] | None = None, optimizers: tuple = (None, None), preprocess_logits_for_metrics: collections.abc.Callable[[torch.Tensor, torch.Tensor], torch.Tensor] | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_seq2seq.py#L55)

#### evaluate[[transformers.Seq2SeqTrainer.evaluate]]

```python
evaluate(eval_dataset: typing.Optional[torch.utils.data.Dataset] = None, ignore_keys: list[str] | None = None, metric_key_prefix: str = 'eval', **gen_kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_seq2seq.py#L139)

**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](https://huggingface.co/docs/datasets/main/en/package_reference/main_classes#datasets.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ında (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 en büyük 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.

**Dönüş:**

Değerlendirme kaybını ve tahminlerden hesaplanan olası metrikleri içeren bir sözlük. Sözlük, eğitim durumundan gelen epoch numarasını da içerir.

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

Çağıran betik, metriklerin hesaplanması için bir yöntem sağlamaktan sorumlu olacaktır; bunlar görevlere bağlıdı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[[transformers.Seq2SeqTrainer.predict]]

```python
predict(test_dataset: Dataset, ignore_keys: list[str] | None = None, metric_key_prefix: str = 'test', **gen_kwargs)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/trainer_seq2seq.py#L195)

**Parametreler:**

test_dataset (`Dataset`) : Tahminlerin çalıştırılacağı veri seti. Bir [Dataset](https://huggingface.co/docs/datasets/main/en/package_reference/main_classes#datasets.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ında (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 en büyük 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.

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ı*): Olası metrikler sözlüğü (veri seti etiketler içeriyorsa).

## TrainingArguments[[transformers.TrainingArguments]]

#### transformers.TrainingArguments[[transformers.TrainingArguments]]

```python
transformers.TrainingArguments(output_dir: str | None = None, per_device_train_batch_size: int = 8, num_train_epochs: float = 3.0, max_steps: int = -1, learning_rate: float = 5e-05, lr_scheduler_type: transformers.trainer_utils.SchedulerType | str = 'linear', lr_scheduler_kwargs: dict | str | None = None, warmup_steps: float = 0, optim: transformers.training_args.OptimizerNames | str = 'adamw_torch_fused', optim_args: str | None = None, weight_decay: float = 0.0, adam_beta1: float = 0.9, adam_beta2: float = 0.999, adam_epsilon: float = 1e-08, optim_target_modules: None | str | list[str] = None, gradient_accumulation_steps: int = 1, average_tokens_across_devices: bool = True, max_grad_norm: float = 1.0, label_smoothing_factor: float = 0.0, bf16: bool = False, fp16: bool = False, bf16_full_eval: bool = False, fp16_full_eval: bool = False, tf32: bool | None = None, activation_checkpointing: bool | None = None, activation_checkpointing_kwargs: dict[str, typing.Any] | str | None = None, gradient_checkpointing: bool | None = None, gradient_checkpointing_kwargs: dict[str, typing.Any] | str | None = None, torch_compile: bool = False, torch_compile_backend: str | None = None, torch_compile_mode: str | None = None, use_liger_kernel: bool = False, liger_kernel_config: dict[str, bool] | None = None, use_cache: bool = False, neftune_noise_alpha: float | None = None, torch_empty_cache_steps: int | None = None, auto_find_batch_size: bool = False, logging_strategy: transformers.trainer_utils.IntervalStrategy | str = 'steps', logging_steps: float = 500, logging_first_step: bool = False, log_on_each_node: bool = True, logging_nan_inf_filter: bool = True, include_num_input_tokens_seen: str | bool = 'no', log_level: str = 'passive', log_level_replica: str = 'warning', disable_tqdm: bool | None = None, report_to: None | str | list[str] = 'none', run_name: str | None = None, project: str = 'huggingface', trackio_space_id: str | None = None, trackio_bucket_id: str | None = None, trackio_static_space_id: typing.Union[str, NoneType, typing.Literal[False]] = None, eval_strategy: transformers.trainer_utils.IntervalStrategy | str = 'no', eval_steps: float | None = None, eval_delay: float = 0, per_device_eval_batch_size: int = 8, prediction_loss_only: bool = False, eval_on_start: bool = False, eval_do_concat_batches: bool = True, eval_use_gather_object: bool = False, eval_accumulation_steps: int | None = None, include_for_metrics: list = <factory>, batch_eval_metrics: bool = False, save_only_model: bool = False, save_strategy: transformers.trainer_utils.SaveStrategy | str = 'steps', save_steps: float = 500, save_on_each_node: bool = False, save_total_limit: int | None = None, enable_jit_checkpoint: bool = False, push_to_hub: bool = False, hub_token: str | None = None, hub_private_repo: bool | None = None, hub_model_id: str | None = None, hub_strategy: transformers.trainer_utils.HubStrategy | str = 'every_save', hub_always_push: bool = False, hub_revision: str | None = None, load_best_model_at_end: bool = False, metric_for_best_model: str | None = None, greater_is_better: bool | None = None, ignore_data_skip: bool = False, restore_callback_states_from_checkpoint: bool = False, full_determinism: bool = False, seed: int = 42, data_seed: int | None = None, use_cpu: bool = False, accelerator_config: dict | str | None = None, parallelism_config: typing.Any | None = None, dataloader_drop_last: bool = False, dataloader_num_workers: int = 0, dataloader_pin_memory: bool = True, dataloader_persistent_workers: bool = False, dataloader_prefetch_factor: int | None = None, dataloader_multiprocessing_context: str | None = None, dataloader_in_order: bool = True, remove_unused_columns: bool = True, label_names: list[str] | None = None, train_sampling_strategy: str = 'random', length_column_name: str = 'length', ddp_find_unused_parameters: bool | None = None, ddp_bucket_cap_mb: int | None = None, ddp_broadcast_buffers: bool | None = None, ddp_static_graph: bool | None = None, ddp_backend: str | None = None, ddp_timeout: int = 1800, fsdp: str | None = None, fsdp_config: dict[str, typing.Any] | str | None = None, deepspeed: dict | str | None = None, debug: str | list[transformers.debug_utils.DebugOption] = '', skip_memory_metrics: bool = True, do_train: bool = False, do_eval: bool = False, do_predict: bool = False, resume_from_checkpoint: str | None = None, local_rank: int = -1)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args.py#L180)

**Parametreler:**

output_dir (`str`, *isteğe bağlı*, varsayılan `"trainer_output"`) : Model tahminlerinin ve checkpoint'lerin 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. **global parti boyutu** şu şekilde hesaplanır: çoklu GPU veya dağıtık kurulumlarda `per_device_train_batch_size * number_of_devices`.

num_train_epochs(`float`, *isteğe bağlı*, varsayılan 3.0) : Uygulanacak toplam eğitim epoch sayısı (tam sayı değilse, eğitim durdurulmadan önce son epoch'un ondalık kısmı yüzdesi uygulanır).

max_steps (`int`, *isteğe bağlı*, varsayılan -1) : `num_train_epochs` değerini geçersiz kılar. Pozitif bir sayı olarak ayarlanırsa, gerçekleştirilecek toplam eğitim adım sayısıdır. Sonlu bir veri seti için, `max_steps` değerine ulaşılana kadar eğitim, veri seti üzerinden (tüm veriler tüketildiyse) tekrarlanır. Eğitim veri seti `__len__` yöntemini uygulamıyorsa (ör. bir akış veri seti), toplam adım sayısı çıkarılamayacağından ve eğitim döngüsünü sınırlamak ile öğrenme oranı zamanlayıcısını yapılandırmak için gerekli olduğundan, bu değer pozitif bir sayı olarak ayarlanmalıdır.

**Öğrenme Hızı & Zamanlayıcı:**

learning_rate (`float`, *isteğe bağlı*, varsayılan 5e-5) : Optimizör için başlangıç öğrenme oranı. Bu, genellikle ısınma (warmup) içeren bir zamanlayıcı kullanıldığında tepe öğrenme oranıdır.

lr_scheduler_type (`str` veya [SchedulerType](/docs/transformers/main/tr/main_classes/optimizer_schedules#transformers.SchedulerType), *opsiyonel*, varsayılan `"linear"`) : Kullanılacak öğrenme oranı zamanlayıcı türü. Tüm olası değerler için [SchedulerType](/docs/transformers/main/tr/main_classes/optimizer_schedules#transformers.SchedulerType) bölümüne bakın. Yaygın seçimler: - "linear" = [get_linear_schedule_with_warmup()](/docs/transformers/main/tr/main_classes/optimizer_schedules#transformers.get_linear_schedule_with_warmup) - "cosine" = [get_cosine_schedule_with_warmup()](/docs/transformers/main/tr/main_classes/optimizer_schedules#transformers.get_cosine_schedule_with_warmup) - "constant" =  [get_constant_schedule()](/docs/transformers/main/tr/main_classes/optimizer_schedules#transformers.get_constant_schedule) - "constant_with_warmup" = [get_constant_schedule_with_warmup()](/docs/transformers/main/tr/main_classes/optimizer_schedules#transformers.get_constant_schedule_with_warmup)

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 belgelendirmesine bakın.

warmup_steps (`int` veya `float`, *isteğe bağlı*, varsayılan 0) : `learning_rate`'e doğru 0'dan 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. Şunlardan biri olabilir: - Bir tamsayı: tam ısınma adım sayısı - [0, 1) aralığında bir ondalık: 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 `"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"`: Momentumlu 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) : Optimizörün (kayıp fonksiyonunun değil) uyguladığı ağırlık çürüme katsayısı. 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`, *opsiyonel*, 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`, *opsiyonel*, varsayılan 0.999) : Adam tabanlı optimizörlerde ikinci an tahminleri (varyans) için üstel azalma oranı. Uyarlanabilir öğrenme oranı ölçeklemesini kontrol eder.

adam_epsilon (`float`, *opsiyonel*, 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ı](https://huggingface.co/papers/2403.03507) ve [APOLLO algoritması](https://huggingface.co/papers/2412.05270) için kullanılır. Daha fazla ayrıntı için [GaLore uygulaması](https://github.com/jiaweizzhao/GaLore) ve [APOLLO uygulaması](https://github.com/zhuhanqing/APOLLO)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 biriktirileceği 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`. > [!TIP] > Gradyan biriktirme kullanıldığında, bir "adım", geriye doğru geçiş 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şir.

average_tokens_across_devices (`bool`, *isteğe bağlı*, varsayılan `True`) : Jetonların cihazlar arasında ortalama alınıp alınmayacağını belirtir. 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`, *opsiyonel*, 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`, *opsiyonel*, 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`'dır. Sıfır, yumuşatma yapılmadığı anlamına gelir. Tipik aralık: 0.0 ile 0.1.

**Karma 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'ya 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 hassasiyeti kullanılı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 hassasiyeti kullanın (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](https://huggingface.co/docs/transformers/perf_train_gpu_one#tf32)'ne bakın.

**Etkinleştirme Kontrol Noktası:**

activation_checkpointing (`bool`, *isteğe bağlı*, varsayılan `False`) : Hesaplama ile bellek arasında denge kurmak için aktivasyon kontrol noktasını etkinleştirir. İleri geçiş sırasında aktivasyonları temizleyip geri geçiş sırasında yeniden hesaplayarak bellek kullanımını azaltır. ~%20 daha yavaş eğitim maliyeti karşılığında daha büyük modellerin veya parti boyutlarının eğitimini mümkün kılar.

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` tipik tümü veya hiç davranışıdır, 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 da `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 iletilir.

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ımı durdurulan takma adıdır, 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 arka uç. Ayarlanırsa `torch_compile` otomatik olarak etkinleştirilir. Seçenekler arasında `"inductor"` (varsayılan), `"aot_eager"` ve `"cudagraphs"` bulunur. Arka uçlar 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](https://github.com/linkedin/Liger-Kernel) optimizasyonlarını etkinleştirir. Çoklu GPU verimliliğ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](https://huggingface.co/papers/2310.05914) ve [orijinal kodu](https://github.com/neelsjain/NEFTune) 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](https://github.com/huggingface/transformers/issues/31372) olabilir.

auto_find_batch_size (`bool`, *isteğe bağlı*, varsayılan `False`) : CUDA Bellek Dışı (Out-of-Memory) hatalarını önlemek için, üstel azalma yoluyla belleğe sığacak bir eğitim partisi boyutunu otomatik olarak bulup bulmayacağını belirtir. Değerlendirme partisi boyutu ayarlanmaz.

**Eğitimi Kaydetme ve İzleme:**

logging_strategy (`str` veya [IntervalStrategy](/docs/transformers/main/tr/internal/trainer_utils#transformers.IntervalStrategy), *opsiyonel*, varsayılan `"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"`: Günlük kaydı, her epoch'un sonunda yapılır. - `"steps"`: Günlük kaydı, 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 kayıt 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` kullanılarak günlük kaydını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. ["all", "non_padding", "no"] değerlerinden biri veya "all" ya da "no"ya eşlenen bir boole değeri olmalıdır. Dağıtık eğitimde, toplama işlemlerinin çağrılması gerektiğinden daha yavaş olabilir.

**Kayıt tutma:**

log_level (`str`, *isteğe bağlı*, varsayılan `passive`) : Ana süreç 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` 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"`'dir. 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](https://github.com/gradio-app/trackio), [wandb](https://www.wandb.com/), [mlflow](https://www.mlflow.org/), [comet](https://www.comet.com/site) ve [swanlab](https://swanlab.cn) günlük kaydı için kullanılır.

project (`str`, *isteğe bağlı*, varsayılan `"huggingface"`) : Kayıt tutulacak 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 **devam ederken** istediğiniz şeydir—örneğin kısmi bir çalıştırmayı **devam ettirirken** 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 (`trackio_space_id`) ile birlikte ve statik bir Space dağıtılırken (`trackio_static_space_id` `False` değilken) 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` olarak ayarlamadığınız veya organizasyonunuzun varsayılanı özel Space'ler oluşturmak olmadıkça Space herkese açıktır.

**Değerlendirme:**

eval_strategy (`str` veya [IntervalStrategy](/docs/transformers/main/tr/internal/trainer_utils#transformers.IntervalStrategy), *opsiyonel*, varsayılan `"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ğerlendirme yapılır - `"epoch"`: Her epoch'un sonunda değerlendirme yapılır

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. `[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.

eval_delay (`float`, *isteğe bağlı*) : İlk değerlendirmenin yapılabilmesi için, eval_strategy'ye bağlı olarak kaç epoch veya adım beklenmesi gerektiğini belirtir.

per_device_eval_batch_size (`int`, *isteğe bağlı*, varsayılan 8) : Değerlendirme için her cihaz 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`) : Doğrulama adımlarının doğru çalıştığından emin olmak için eğitimden önce 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, iç içe geçmiş bir liste/tuple/sözlük yapısındaki nesneler içindeki nesnelerin özyinelemeli olarak toplanıp toplanmayacağını belirtir. Bu, kullanıcılar yalnızca tensörler döndürmüyorsa etkinleştirilmelidir ve PyTorch tarafından aktif olarak önerilmez. Bilgisayar görüsü görevlerinde olduğu gibi etiket yapısı standart dışı olduğunda 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).

**Metriklere Hesaplama:**

include_for_metrics (`list[str]`, *isteğe bağlı*, varsayılan `[]`) : Metrik hesaplaması için gerekliyse `compute_metrics` fonksiyonuna ek veri dahil edin. `include_for_metrics` listesine eklenebilecek olası seçenekler: - `"inputs"`: Modele iletilen ve girdiye bağımlı metriklerin hesaplanması için tasarlanmış girdi verileri. - `"loss"`: Değerlendirme sırasında hesaplanan ve kayba bağımlı metriklerin hesaplanması için tasarlanmış 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 saklamak yerine her batch'in sonunda istatistikleri biriktirmek için compute_metrics'i çağırır. `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 ve `compute_result` adında bir boolean argüman alan bir compute_metrics fonksiyonu geçirmeniz gerekir.

**Kontrol Noktası Alma ve Kaydetme:**

save_only_model (`bool`, *isteğe bağlı*, varsayılan `False`) : Sadece 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 ettirilmesini engeller. Bu seçeneği, eğitimi devam ettirmek için değil, yalnızca çıkarım için eğitilmiş modele ihtiyacınız olduğunda 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 `"steps"`) : Eğitim sırasında benimsenecek kontrol noktası kaydetme stratejisi. Olası değerler şunlardır: - `"no"`: Eğitim sırasında kayıt yapılmaz. - `"epoch"`: Kayıt, her epoch'un sonunda yapılır. - `"steps"`: Kayıt, her `save_steps` adımında yapılır. - `"best"`: Yeni bir `best_metric` elde edildiğinde 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ı. `[0,1)` aralığında bir tamsayı veya 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 kaydedilecektir.

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`) : Önlenir 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 yineleme 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önderilip gönderilmeyeceğini belirtir. Bu özellik etkinleştirilirse, `output_dir` bir git dizini oluşturur ve bu dizin, `hub_model_id` ile belirlenen depoyla senkronize edilir; içerik, bir kaydetme işlemi tetiklendiğinde (kullandığınız `save_strategy`'ye bağlı olarak) her seferinde gönderilir. [save_model()](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer.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ı*) : Depoyu ö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 dağıtım Hugging Face Spaces etkinleştirilmiş olarak raporlama yapılıyorsa, Space'in özel olup olmayacağını da aynı mantık belirler.

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, ö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. Varsayılan olarak, *output_dir_name* `output_dir` adıyla eşleşecek şekilde `user_name/output_dir_name` olur.

hub_strategy (`str` veya `HubStrategy`, *isteğe bağlı*, varsayılan `"every_save"`) : Hub'a neyin ve ne zaman gönderileceğini tanımlar. Seçenekler: - `"end"`: Yalnızca eğitimin sonunda gönder - `"every_save"`: Her kayıtta gönder (eğitimi bloklamaması için asenkron) - `"checkpoint"`: `"every_save"` gibi, ancak kolay devam etme için en son kontrol noktasını `"last-checkpoint"` alt klasörüne gönder - `"all_checkpoints"`: Kontrol noktaları oluştuğu anda hepsini gönder

hub_always_push (`bool`, *isteğe bağlı*, varsayılan `False`) : Bu `True` değilse, `Trainer` önceki gönderim tamamlanmadığında bir kontrol noktası göndermeyi atlar.

hub_revision (`str`, *isteğe bağlı*) : Hub'a itme 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ğer `"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`'e göre varsayılan değer: Metrik adı `"loss"` ile bitmiyorsa `True`, aksi takdirde `False`.

**Eğitimi Devam Ettirme:**

ignore_data_skip (`bool`, *isteğe bağlı*, varsayılan `False`) : Eğitim yeniden başlatılırken, ö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ı yeniden başlatma, ancak sonuçlar yarıda kesilen eğitimle eşleşmez). `False` ise görülmüş veriler atlanır (daha yavaş yeniden başlatma, ancak tam devam).

restore_callback_states_from_checkpoint (`bool`, *isteğe bağlı*, varsayılan `False`) : Devam ederken checkpoint'ten geri çağırma durumlarını geri yükler. `True` ise, checkpoint'te mevcutlarsa Trainer'a geçirilen geri çağırma işlevlerinin üzerine 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()](/docs/transformers/main/tr/internal/trainer_utils#transformers.set_seed) yerine [enable_full_determinism()](/docs/transformers/main/tr/internal/trainer_utils#transformers.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`, *opsiyonel*, 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`, *opsiyonel*) : 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ı/arkası kullanılacaktı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çeneklerini 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'e bölünebilmelidir). `False` ise, her cihaza belirtilen topluluk boyutu atanır. - `dispatch_batches` (`bool`): `True` ise, yalnızca ana süreç dataloader üzerinden iterasyon yapar ve toplulukları cihazlara dağıtır. `IterableDataset` için varsayılan `True`, diğer durumlarda `False`'dır. - `even_batches` (`bool`, varsayılan `True`): Tüm işçilerin (worker) eşit topluluk 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 (seedable) rastgele örnekleyici kullanır. - `use_configured_state` (`bool`, varsayılan `False`): Yeni bir durum oluşturmak yerine önceden başlatılmış `AcceleratorState`/`PartialState` kullanır. Bu, hiperparametre ayarlamasında sorunlara yol açabilir.

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

**Veri Yükleyici:**

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ği sabitlemek isteyip istemediğinizi 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şçilerin 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` olacaktır.

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'un varsayılan başlatma yöntemi kullanılır; ancak `dataloader_num_workers > 1` durumunda MPS üzerinde `"fork"` varsayılanıdır. Nesneleri fork-güvenli olmayan kaynaklardan (ör. `pyarrow` üzerinden HDFS) akış olarak okurken `"spawn"` kullanın. `"spawn"` altında, özel `collate_fn` veya veri seti 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 partileri işçilerin dağıtıldığı sırada üretir. `IterableDataset` akış iş yüklerinde kuyruk gecikmesini azaltmak için partilerin hazır olur olmaz üretilmesini istiyorsanız `False` olarak ayarlayın. 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. Kullanılan model `XxxForQuestionAnswering` sınıflarından biri olmadıkça, "label" kelimesini içeren ve modelin kabul ettiği argüman adlarının listesine varsayılan olarak ayarlanır; bu durumda `["start_positions", "end_positions"]` anahtarları da dahil edilir. `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 `"random"`) : Eğitim dataloader'ı için kullanılacak örnekleyici. Olası değerler:  - `"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"`: Her etkili batch içinde, dolgu token maliyetini cihazlar ve gradyan biriktirme adımları arasında dengelemek için `BatchRebalanceSampler` kullanır; bu sayede `"group_by_length"` ile karşılaştırıldığında dolgu israfını ve tepe bellek kullanımını azaltı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"`) : Ön hesaplanmış uzunluklar için sütun adı. Sütun mevcutsa, uzunluğa göre gruplama bu değerleri kullanır ve 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) : `torch.distributed.init_process_group` çağrıları için zaman aşımı, dağıtık çalıştırmalarda yavaş işlemler sırasında GPU soket zaman aşımlarını önlemek için kullanılır. Daha fazla bilgi için [PyTorch belgelerine](https://pytorch.org/docs/stable/distributed.html#torch.distributed.init_process_group) bakın.

**FSDP (Tamamen Parçalı Veri Paralelliği):**

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ı*) : `fsdp` etkinleştirildiğinde kullanılacak yapılandırma ayarları. `fsdp_config.json` gibi bir JSON yapılandırma dosyasının yolunu veya zaten yüklenmiş bir sözlüğü iletin. 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 parçalanıp parçalanmayacağı. İleri ve geri geçişler arasında parametrelerin toplanmış halde kalmasını sağlamak, yeniden tüm-toplamayı (re-all-gather) önlemek ve daha yüksek tepe bellek kullanmak için `False` olarak ayarlayın. - cpu_offload (`bool`, *isteğe bağlı*, varsayılan `False`): GPU belleği tasarruf etmek için parametreleri ve gradyanları kullanılmadığında CPU'ya aktarın. - activation_checkpointing (`bool`, *isteğe bağlı*, varsayılan `False`): Belleği azaltmak için geri geçiş sırasında aktivasyonları yeniden hesaplamak üzere `True` olarak ayarlayın. FSDP kullanırken, geri geçişte gereksiz bir tüm-toplama (all-gather) getiren `activation_checkpointing` eğitim argümanı yerine bunu tercih edin. - cpu_ram_efficient_loading (`bool`, *isteğe bağlı*, varsayılan `False`): Ön eğitilmiş kontrol noktasını yalnızca ilk işlemde yüklemek 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 otomatik sarma politikası. `"TRANSFORMER_BASED_WRAP"`, `"SIZE_BASED_WRAP"` veya `"NO_WRAP"` seçin. - transformer_layer_cls_to_wrap (`list[str]`, *isteğe bağlı*): Sarılacak Transformer katman sınıf adları (büyük/küçük harfe duyarlı), örn. `LlamaDecoderLayer`. Genellikle gereksizdir: sarma politikası, çoğu transformers modelini kapsayan modelin `_no_split_modules` değerine geri döner. - min_num_params (`int`, *isteğe bağlı*, varsayılan `0`): Boyuta dayalı otomatik sarma 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 Tamamen Parçalı Veri Paralel Eğitiminin (Fully Sharded Data Parallel Training) kullanılıp kullanılmayacağı. Deneyseldir. - xla_fsdp_settings (`dict`, *isteğe bağlı*): XLA FSDP sarma parametrelerinin sözlüğü. Tüm seçenekler listesi için [XLA FSDP kaynağına](https://github.com/pytorch/xla/blob/master/torch_xla/distributed/fsdp/xla_fully_sharded_data_parallel.py) bakın. - xla_fsdp_grad_ckpt (`bool`, *isteğe bağlı*, varsayılan `False`): Her iç içe geçmiş XLA FSDP sarılmış katman üzerinde gradyan denetlemesi (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ı*) : [DeepSpeed](https://github.com/deepspeedai/DeepSpeed) entegrasyonunu etkinleştirir. Değer şunlardan biridir: - DeepSpeed JSON yapılandırma dosyasının yolu: `"ds_config.json"` - Sözlük olarak yüklenmiş yapılandırma > [!TIP] > 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 `DebugOption` listesi, *isteğe bağlı*, varsayılan `""`) : Bir veya birden 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ır

skip_memory_metrics (`bool`, *isteğe bağlı*, varsayılan `True`) : Metriklere bellek profilleri raporlarının eklenmesinin atlanıp atlanmayacağını belirtir. Bu, varsayılan olarak atlanır çünkü eğitim ve değerlendirme hızını yavaşlatır.

**Dış 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](/docs/transformers/main/tr/main_classes/trainer#transformers.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](/docs/transformers/main/tr/main_classes/trainer#transformers.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`) : Tahminlerin test setinde çalıştırılıp çalıştırılmayacağını belirtir. Bu argüman [Trainer](/docs/transformers/main/tr/main_classes/trainer#transformers.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 kontrol noktası içeren klasörün yolu. Bu argüman [Trainer](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer) tarafından doğrudan 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](/docs/transformers/main/tr/internal/trainer_utils#transformers.HfArgumentParser), bu sınıfı komut satırında belirtilebilecek [argparse](https://docs.python.org/3/library/argparse#module-argparse) argümanlarına dönüştürebilir.

#### get_process_log_level[[transformers.TrainingArguments.get_process_log_level]]

```python
get_process_log_level()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args.py#L2065)

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 değiştirilmedikçe, 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[[transformers.TrainingArguments.get_warmup_steps]]

```python
get_warmup_steps(num_training_steps: int)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args.py#L2154)

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

#### main_process_first[[transformers.TrainingArguments.main_process_first]]

```python
main_process_first(local = True, desc = 'work')
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args.py#L2103)

**Parametreler:**

local (`bool`, *isteğe bağlı*, varsayılan `True`) : `True` ise, first her düğümün rank 0 sürecini; `False` ise, rank 0 düğümünün rank 0 sürecini ifade eder. 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, 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[[transformers.TrainingArguments.set_dataloader]]

```python
set_dataloader(train_batch_size: int = 8, eval_batch_size: int = 8, drop_last: bool = False, num_workers: int = 0, pin_memory: bool = True, persistent_workers: bool = False, prefetch_factor: int | None = None, multiprocessing_context: str | None = None, in_order: bool = True, auto_find_batch_size: bool = False, ignore_data_skip: bool = False, sampler_seed: int | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args.py#L2694)

**Parametreler:**

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.

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ği sabitlemek isteyip istemediğinizi belirtir. 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şçilerin 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` olacaktır.

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 çok işlemcili başlatma yöntemi (`"fork"`, `"spawn"` veya `"forkserver"`). Varsayılan olarak PyTorch'un 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 seti 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 partileri işçilerin dağıtıldığı sırada üretir. `IterableDataset` akış iş yüklerinde kuyruk gecikmesini azaltmak için partilerin hazır olur olmaz üretilmesini istiyorsanız `False` olarak ayarlayın. 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, üstel azalma yoluyla belleğe sığacak bir batch boyutunu otomatik olarak bulup bulmayacağını belirtir. Bunun için accelerate'in kurulu olması gerekir (`pip install accelerate`)

ignore_data_skip (`bool`, *isteğe bağlı*, varsayılan `False`) : Eğitim yeniden başlatıldığında, veri yüklemenin önceki eğitimle aynı aşamaya gelmesi için geçilecek epoch ve batch'lerin atlanıp atlanmayacağını belirler. `True` olarak ayarlanırsa eğitim daha hızlı başlar (çünkü bu atlama adımı uzun sürebilir) ancak yarıda kalan eğitimin vereceği sonuçlarla aynı sonuçları üretmez.

sampler_seed (`int`, *opsiyonel*) : Veri örnekleyicilerle 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:

```py
>>> 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[[transformers.TrainingArguments.set_evaluate]]

```python
set_evaluate(strategy: str | transformers.trainer_utils.IntervalStrategy = 'no', steps: int = 500, batch_size: int = 8, accumulation_steps: int | None = None, delay: float | None = None, loss_only: bool = False)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args.py#L2311)

**Parametreler:**

strategy (`str` veya [IntervalStrategy](/docs/transformers/main/tr/internal/trainer_utils#transformers.IntervalStrategy), *opsiyonel*, 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 (ve kayıt) her `steps` adımında yapılır. - `"epoch"`: Değerlendirme, her epoch'un sonunda yapılır.  `strategy` değerini `"no"` dışında bir değere ayarlamak, `self.do_eval` değerini `True` olarak ayarlar.

steps (`int`, *opsiyonel*, varsayılan 500) : `strategy="steps"` ise iki değerlendirme arasındaki güncelleme adım sayısı.

batch_size (`int` *optional*, varsayılan 8) : Değerlendirme için kullanılan cihaz başına (GPU/TPU çekirdeği/CPU...) 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ı. Ayarlanmazsa, 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 kaç epoch veya adım beklenmesi gerektiğini belirtir.

loss_only (`bool`, *isteğe bağlı*, varsayılan `False`) : Kayıptan (loss) başka tüm çıktıları yoksayar.

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

Örnek:

```py
>>> from transformers import TrainingArguments

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

#### set_logging[[transformers.TrainingArguments.set_logging]]

```python
set_logging(strategy: str | transformers.trainer_utils.IntervalStrategy = 'steps', steps: int = 500, report_to: str | list[str] = 'none', level: str = 'passive', first_step: bool = False, nan_inf_filter: bool = False, on_each_node: bool = False, replica_level: str = 'passive')
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args.py#L2453)

**Parametreler:**

strategy (`str` veya [IntervalStrategy](/docs/transformers/main/tr/internal/trainer_utils#transformers.IntervalStrategy), *opsiyonel*, varsayılan `"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"`: Günlük kaydı, her epoch'un sonunda yapılır. - `"steps"`: Günlük kaydı, her `logging_steps` adımında yapılır.

steps (`int`, *opsiyonel*, 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"`'dir. Yükümlü 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 `True`) : Kayıt için `nan` ve `inf` kayıplarının filtrelenip filtrelenmeyeceğini belirtir. `True` olarak ayarlanırsa, `nan` veya `inf` olan her adımın kaybı filtrelenir ve bunun yerine mevcut kayıt penceresinin ortalama kaybı alınır.    `nan_inf_filter` yalnızca kayıp değerlerinin kaydını 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` kullanılarak 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:

```py
>>> from transformers import TrainingArguments

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

#### set_lr_scheduler[[transformers.TrainingArguments.set_lr_scheduler]]

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

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args.py#L2651)

**Parametreler:**

name (`str` veya [SchedulerType](/docs/transformers/main/tr/main_classes/optimizer_schedules#transformers.SchedulerType), *opsiyonel*, varsayılan `"linear"`) : Kullanılacak zamanlayıcı türü. Tüm olası değerler için [SchedulerType](/docs/transformers/main/tr/main_classes/optimizer_schedules#transformers.SchedulerType) belgelendirmesine bakın.

num_epochs(`float`, *isteğe bağlı*, varsayılan 3.0) : Uygulanacak toplam eğitim epoch sayısı (tam sayı değilse, eğitim durdurulmadan önce son epoch'un ondalık kısmı yüzdesi uygulanır).

max_steps (`int`, *isteğe bağlı*, varsayılan -1) : Pozitif bir sayıya ayarlanırsa, uygulanacak toplam eğitim adım sayısı. `num_train_epochs` değerini geçersiz kılar. Sonlu bir veri seti için, `max_steps` değerine ulaşılana kadar veri seti üzerinden eğitim tekrarlanır (tüm veri tüketilirse). Eğitim veri seti `__len__` yöntemini uygulamıyorsa (ör. bir akış veri seti) pozitif bir değere ayarlanması zorunludur, çü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`, *opsiyonel*, varsayılan 0) : 0'dan `learning_rate`'e 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`'e 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:

```py
>>> 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[[transformers.TrainingArguments.set_optimizer]]

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

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args.py#L2600)

**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`, *opsiyonel*, varsayılan 0) : Tüm bias ve LayerNorm ağırlıkları hariç tüm katmanlara uygulanacak ağırlık çürümesi (sıfır değilse).

beta1 (`float`, *opsiyonel*, varsayılan 0.9) : adam optimizatörü veya türevleri için beta1 hiperparametresi.

beta2 (`float`, *opsiyonel*, 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:

```py
>>> 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[[transformers.TrainingArguments.set_push_to_hub]]

```python
set_push_to_hub(model_id: str, strategy: str | transformers.trainer_utils.HubStrategy = 'every_save', token: str | None = None, private_repo: bool | None = None, always_push: bool = False, revision: str | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args.py#L2528)

**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 itilir. Aksi takdirde, örneğin `"user_name/model"` gibi tüm depo adını içermelidir; bu da `"organization_name/model"` ile üye olduğunuz bir organizasyona itmenizi sağlar.

strategy (`str` veya `HubStrategy`, *isteğe bağlı*, varsayılan `"every_save"`) : Hub'a neyin ve ne zaman gönderileceğinin kapsamını tanımlar. Olası değerler şunlardır:  - `"end"`: [save_model()](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer.save_model) metodu çağrıldığında model, yapılandırması, processing_class örneğin tokenizer ([Trainer](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer)'a iletilmişse) ve bir model kartı taslağı gönderilir. - `"every_save"`: her model kaydetme işlemi sırasında model, yapılandırması, processing_class örneğin tokenizer ([Trainer](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer)'a iletilmişse) ve bir model kartı taslağı gönderilir. Gönderimler, eğitimi engellememek için asenkron olarak yapılır ve kaydetme işlemleri ç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"` gibidir ancak en son checkpoint, last-checkpoint adlı bir alt klasöre de gönderilir; bu sayede `trainer.train(resume_from_checkpoint="last-checkpoint")` ile eğitimi kolayca devam ettirebilirsiniz. - `"all_checkpoints"`: `"checkpoint"` gibidir ancak tüm checkpoint'ler, çıktı klasöründe göründükleri gibi gönderilir (bu nedenle nihai repozituarınızda klasör başına bir checkpoint klasörü elde edersiniz)

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 olacaktır. Depo zaten mevcutsa bu değer yok sayılır.

always_push (`bool`, *isteğe bağlı*, varsayılan `False`) : Bu `True` değilse, `Trainer` önceki gönderim tamamlanmadığında bir kontrol noktası göndermeyi atlar.

revision (`str`, *isteğe bağlı*) : Hub'a itme 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()](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer.save_model) çağrısı da bir itme işlemi tetikler.

Örnek:

```py
>>> 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[[transformers.TrainingArguments.set_save]]

```python
set_save(strategy: str | transformers.trainer_utils.IntervalStrategy = 'steps', steps: int = 500, total_limit: int | None = None, on_each_node: bool = False)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args.py#L2404)

**Parametreler:**

strategy (`str` veya [IntervalStrategy](/docs/transformers/main/tr/internal/trainer_utils#transformers.IntervalStrategy), *opsiyonel*, varsayılan `"steps"`) : Eğitim sırasında benimsenecek kontrol noktası kaydetme stratejisi. Olası değerler şunlardır:  - `"no"`: Eğitim sırasında kayıt yapılmaz. - `"epoch"`: Kayıt, her epoch'un sonunda yapılır. - `"steps"`: Kayıt, her `save_steps` adımında yapılır.

steps (`int`, *isteğe bağlı*, varsayılan 500) : `strategy="steps"` ise iki checkpoint kaydı arasındaki güncelleme adım sayısı.

total_limit (`int`, *isteğe bağlı*) : Bir değer geçirilirse, toplam checkpoint sayısını sınırlar. `output_dir` içindeki eski checkpoint'leri siler.

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

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

Örnek:

```py
>>> from transformers import TrainingArguments

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

#### set_testing[[transformers.TrainingArguments.set_testing]]

```python
set_testing(batch_size: int = 8, loss_only: bool = False)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args.py#L2368)

**Parametreler:**

batch_size (`int` *optional*, varsayılan 8) : Test için kullanılan cihaz başına (GPU/TPU çekirdeği/CPU...) parti boyutu.

loss_only (`bool`, *isteğe bağlı*, varsayılan `False`) : Kayıptan (loss) başka 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:

```py
>>> from transformers import TrainingArguments

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

#### set_training[[transformers.TrainingArguments.set_training]]

```python
set_training(learning_rate: float = 5e-05, batch_size: int = 8, weight_decay: float = 0, num_epochs: float = 3, max_steps: int = -1, gradient_accumulation_steps: int = 1, seed: int = 42, activation_checkpointing: bool = False, gradient_checkpointing: bool | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args.py#L2225)

**Parametreler:**

learning_rate (`float`, *isteğe bağlı*, varsayılan 5e-5) : Optimizör için başlangıç öğrenme oranı.

batch_size (`int` *opsiyonel*, varsayılan 8) : Eğitimde kullanılan cihaz başına (GPU/TPU çekirdeği/CPU...) parti boyutu.

weight_decay (`float`, *opsiyonel*, varsayılan 0) : Optimizörde, 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).

num_epochs (`float`, *isteğe bağlı*, varsayılan 3.0) : Uygulanacak toplam eğitim epoch sayısı (tamsayı değilse, eğitim durdurulmadan önce son epoch'un ondalık kısmı yüzdesi uygulanır).

max_steps (`int`, *isteğe bağlı*, varsayılan -1) : Pozitif bir sayıya ayarlanırsa, uygulanacak toplam eğitim adım sayısı. `num_train_epochs` değerini geçersiz kılar. Sonlu bir veri seti için, `max_steps` değerine ulaşılana kadar veri seti üzerinden eğitim tekrarlanır (tüm veri tüketilirse). Eğitim veri seti `__len__` yöntemini uygulamıyorsa (ör. bir akış veri seti) pozitif bir değere ayarlanması zorunludur, çü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`, *opsiyonel*, varsayılan 1) : Geriye doğru/güncelleme geçişini gerçekleştirmeden önce gradyanları biriktirmek için uygulanacak güncelleme adım sayısı. Gradyan biriktirme kullanıldığında, bir adım, geriye doğru geçiş içeren bir adım olarak sayılır. Bu nedenle, kayıt, değerlendirme ve kaydetme işlemleri her `gradient_accumulation_steps * xxx_step` eğitim örneğinde gerçekleştirilir.

seed (`int`, *opsiyonel*, 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 aktivasyon denetleme noktası (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:

```py
>>> 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[[transformers.TrainingArguments.to_dict]]

```python
to_dict()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args.py#L2175)

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

#### to_json_string[[transformers.TrainingArguments.to_json_string]]

```python
to_json_string()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args.py#L2205)

Bu örneği bir JSON dizgesine serialize eder.

#### to_sanitized_dict[[transformers.TrainingArguments.to_sanitized_dict]]

```python
to_sanitized_dict()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args.py#L2211)

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

## Seq2SeqTrainingArguments[[transformers.Seq2SeqTrainingArguments]]

#### transformers.Seq2SeqTrainingArguments[[transformers.Seq2SeqTrainingArguments]]

```python
transformers.Seq2SeqTrainingArguments(output_dir: str | None = None, per_device_train_batch_size: int = 8, num_train_epochs: float = 3.0, max_steps: int = -1, learning_rate: float = 5e-05, lr_scheduler_type: transformers.trainer_utils.SchedulerType | str = 'linear', lr_scheduler_kwargs: dict | str | None = None, warmup_steps: float = 0, optim: transformers.training_args.OptimizerNames | str = 'adamw_torch_fused', optim_args: str | None = None, weight_decay: float = 0.0, adam_beta1: float = 0.9, adam_beta2: float = 0.999, adam_epsilon: float = 1e-08, optim_target_modules: None | str | list[str] = None, gradient_accumulation_steps: int = 1, average_tokens_across_devices: bool = True, max_grad_norm: float = 1.0, label_smoothing_factor: float = 0.0, bf16: bool = False, fp16: bool = False, bf16_full_eval: bool = False, fp16_full_eval: bool = False, tf32: bool | None = None, activation_checkpointing: bool | None = None, activation_checkpointing_kwargs: dict[str, typing.Any] | str | None = None, gradient_checkpointing: bool | None = None, gradient_checkpointing_kwargs: dict[str, typing.Any] | str | None = None, torch_compile: bool = False, torch_compile_backend: str | None = None, torch_compile_mode: str | None = None, use_liger_kernel: bool = False, liger_kernel_config: dict[str, bool] | None = None, use_cache: bool = False, neftune_noise_alpha: float | None = None, torch_empty_cache_steps: int | None = None, auto_find_batch_size: bool = False, logging_strategy: transformers.trainer_utils.IntervalStrategy | str = 'steps', logging_steps: float = 500, logging_first_step: bool = False, log_on_each_node: bool = True, logging_nan_inf_filter: bool = True, include_num_input_tokens_seen: str | bool = 'no', log_level: str = 'passive', log_level_replica: str = 'warning', disable_tqdm: bool | None = None, report_to: None | str | list[str] = 'none', run_name: str | None = None, project: str = 'huggingface', trackio_space_id: str | None = None, trackio_bucket_id: str | None = None, trackio_static_space_id: typing.Union[str, NoneType, typing.Literal[False]] = None, eval_strategy: transformers.trainer_utils.IntervalStrategy | str = 'no', eval_steps: float | None = None, eval_delay: float = 0, per_device_eval_batch_size: int = 8, prediction_loss_only: bool = False, eval_on_start: bool = False, eval_do_concat_batches: bool = True, eval_use_gather_object: bool = False, eval_accumulation_steps: int | None = None, include_for_metrics: list = <factory>, batch_eval_metrics: bool = False, save_only_model: bool = False, save_strategy: transformers.trainer_utils.SaveStrategy | str = 'steps', save_steps: float = 500, save_on_each_node: bool = False, save_total_limit: int | None = None, enable_jit_checkpoint: bool = False, push_to_hub: bool = False, hub_token: str | None = None, hub_private_repo: bool | None = None, hub_model_id: str | None = None, hub_strategy: transformers.trainer_utils.HubStrategy | str = 'every_save', hub_always_push: bool = False, hub_revision: str | None = None, load_best_model_at_end: bool = False, metric_for_best_model: str | None = None, greater_is_better: bool | None = None, ignore_data_skip: bool = False, restore_callback_states_from_checkpoint: bool = False, full_determinism: bool = False, seed: int = 42, data_seed: int | None = None, use_cpu: bool = False, accelerator_config: dict | str | None = None, parallelism_config: typing.Any | None = None, dataloader_drop_last: bool = False, dataloader_num_workers: int = 0, dataloader_pin_memory: bool = True, dataloader_persistent_workers: bool = False, dataloader_prefetch_factor: int | None = None, dataloader_multiprocessing_context: str | None = None, dataloader_in_order: bool = True, remove_unused_columns: bool = True, label_names: list[str] | None = None, train_sampling_strategy: str = 'random', length_column_name: str = 'length', ddp_find_unused_parameters: bool | None = None, ddp_bucket_cap_mb: int | None = None, ddp_broadcast_buffers: bool | None = None, ddp_static_graph: bool | None = None, ddp_backend: str | None = None, ddp_timeout: int = 1800, fsdp: str | None = None, fsdp_config: dict[str, typing.Any] | str | None = None, deepspeed: dict | str | None = None, debug: str | list[transformers.debug_utils.DebugOption] = '', skip_memory_metrics: bool = True, do_train: bool = False, do_eval: bool = False, do_predict: bool = False, resume_from_checkpoint: str | None = None, local_rank: int = -1, sortish_sampler: bool = False, predict_with_generate: bool = False, generation_max_length: int | None = None, generation_num_beams: int | None = None, generation_config: str | pathlib.Path | transformers.generation.configuration_utils.GenerationConfig | None = None)
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args_seq2seq.py#L29)

**Parametreler:**

output_dir (`str`, *isteğe bağlı*, varsayılan `"trainer_output"`) : Model tahminlerinin ve checkpoint'lerin 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. **global parti boyutu** şu şekilde hesaplanır: çoklu GPU veya dağıtık kurulumlarda `per_device_train_batch_size * number_of_devices`.

num_train_epochs(`float`, *isteğe bağlı*, varsayılan 3.0) : Uygulanacak toplam eğitim epoch sayısı (tam sayı değilse, eğitim durdurulmadan önce son epoch'un ondalık kısmı yüzdesi uygulanır).

max_steps (`int`, *isteğe bağlı*, varsayılan -1) : `num_train_epochs` değerini geçersiz kılar. Pozitif bir sayı olarak ayarlanırsa, gerçekleştirilecek toplam eğitim adım sayısıdır. Sonlu bir veri seti için, `max_steps` değerine ulaşılana kadar eğitim, veri seti üzerinden (tüm veriler tüketildiyse) tekrarlanır. Eğitim veri seti `__len__` yöntemini uygulamıyorsa (ör. bir akış veri seti), toplam adım sayısı çıkarılamayacağından ve eğitim döngüsünü sınırlamak ile öğrenme oranı zamanlayıcısını yapılandırmak için gerekli olduğundan, bu değer pozitif bir sayı olarak ayarlanmalıdır.

**Öğrenme Hızı & Zamanlayıcı:**

learning_rate (`float`, *isteğe bağlı*, varsayılan 5e-5) : Optimizör için başlangıç öğrenme oranı. Bu, genellikle ısınma (warmup) içeren bir zamanlayıcı kullanıldığında tepe öğrenme oranıdır.

lr_scheduler_type (`str` veya [SchedulerType](/docs/transformers/main/tr/main_classes/optimizer_schedules#transformers.SchedulerType), *opsiyonel*, varsayılan `"linear"`) : Kullanılacak öğrenme oranı zamanlayıcı türü. Tüm olası değerler için [SchedulerType](/docs/transformers/main/tr/main_classes/optimizer_schedules#transformers.SchedulerType) bölümüne bakın. Yaygın seçimler: - "linear" = [get_linear_schedule_with_warmup()](/docs/transformers/main/tr/main_classes/optimizer_schedules#transformers.get_linear_schedule_with_warmup) - "cosine" = [get_cosine_schedule_with_warmup()](/docs/transformers/main/tr/main_classes/optimizer_schedules#transformers.get_cosine_schedule_with_warmup) - "constant" =  [get_constant_schedule()](/docs/transformers/main/tr/main_classes/optimizer_schedules#transformers.get_constant_schedule) - "constant_with_warmup" = [get_constant_schedule_with_warmup()](/docs/transformers/main/tr/main_classes/optimizer_schedules#transformers.get_constant_schedule_with_warmup)

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 belgelendirmesine bakın.

warmup_steps (`int` veya `float`, *isteğe bağlı*, varsayılan 0) : `learning_rate`'e doğru 0'dan 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. Şunlardan biri olabilir: - Bir tamsayı: tam ısınma adım sayısı - [0, 1) aralığında bir ondalık: 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 `"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"`: Momentumlu 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) : Optimizörün (kayıp fonksiyonunun değil) uyguladığı ağırlık çürüme katsayısı. 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`, *opsiyonel*, 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`, *opsiyonel*, varsayılan 0.999) : Adam tabanlı optimizörlerde ikinci an tahminleri (varyans) için üstel azalma oranı. Uyarlanabilir öğrenme oranı ölçeklemesini kontrol eder.

adam_epsilon (`float`, *opsiyonel*, 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ı](https://huggingface.co/papers/2403.03507) ve [APOLLO algoritması](https://huggingface.co/papers/2412.05270) için kullanılır. Daha fazla ayrıntı için [GaLore uygulaması](https://github.com/jiaweizzhao/GaLore) ve [APOLLO uygulaması](https://github.com/zhuhanqing/APOLLO)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 biriktirileceği 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`. > [!TIP] > Gradyan biriktirme kullanıldığında, bir "adım", geriye doğru geçiş 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şir.

average_tokens_across_devices (`bool`, *isteğe bağlı*, varsayılan `True`) : Jetonların cihazlar arasında ortalama alınıp alınmayacağını belirtir. 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`, *opsiyonel*, 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`, *opsiyonel*, 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`'dır. Sıfır, yumuşatma yapılmadığı anlamına gelir. Tipik aralık: 0.0 ile 0.1.

**Karma 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'ya 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 hassasiyeti kullanılı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 hassasiyeti kullanın (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](https://huggingface.co/docs/transformers/perf_train_gpu_one#tf32)'ne bakın.

**Etkinleştirme Kontrol Noktası:**

activation_checkpointing (`bool`, *isteğe bağlı*, varsayılan `False`) : Hesaplama ile bellek arasında denge kurmak için aktivasyon kontrol noktasını etkinleştirir. İleri geçiş sırasında aktivasyonları temizleyip geri geçiş sırasında yeniden hesaplayarak bellek kullanımını azaltır. ~%20 daha yavaş eğitim maliyeti karşılığında daha büyük modellerin veya parti boyutlarının eğitimini mümkün kılar.

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` tipik tümü veya hiç davranışıdır, 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 da `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 iletilir.

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ımı durdurulan takma adıdır, 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 arka uç. Ayarlanırsa `torch_compile` otomatik olarak etkinleştirilir. Seçenekler arasında `"inductor"` (varsayılan), `"aot_eager"` ve `"cudagraphs"` bulunur. Arka uçlar 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](https://github.com/linkedin/Liger-Kernel) optimizasyonlarını etkinleştirir. Çoklu GPU verimliliğ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](https://huggingface.co/papers/2310.05914) ve [orijinal kodu](https://github.com/neelsjain/NEFTune) 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](https://github.com/huggingface/transformers/issues/31372) olabilir.

auto_find_batch_size (`bool`, *isteğe bağlı*, varsayılan `False`) : CUDA Bellek Dışı (Out-of-Memory) hatalarını önlemek için, üstel azalma yoluyla belleğe sığacak bir eğitim partisi boyutunu otomatik olarak bulup bulmayacağını belirtir. Değerlendirme partisi boyutu ayarlanmaz.

**Eğitimi Kaydetme ve İzleme:**

logging_strategy (`str` veya [IntervalStrategy](/docs/transformers/main/tr/internal/trainer_utils#transformers.IntervalStrategy), *opsiyonel*, varsayılan `"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"`: Günlük kaydı, her epoch'un sonunda yapılır. - `"steps"`: Günlük kaydı, 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 kayıt 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` kullanılarak günlük kaydını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. ["all", "non_padding", "no"] değerlerinden biri veya "all" ya da "no"ya eşlenen bir boole değeri olmalıdır. Dağıtık eğitimde, toplama işlemlerinin çağrılması gerektiğinden daha yavaş olabilir.

**Kayıt tutma:**

log_level (`str`, *isteğe bağlı*, varsayılan `passive`) : Ana süreç 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` 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"`'dir. 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](https://github.com/gradio-app/trackio), [wandb](https://www.wandb.com/), [mlflow](https://www.mlflow.org/), [comet](https://www.comet.com/site) ve [swanlab](https://swanlab.cn) günlük kaydı için kullanılır.

project (`str`, *isteğe bağlı*, varsayılan `"huggingface"`) : Kayıt tutulacak 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 **devam ederken** istediğiniz şeydir—örneğin kısmi bir çalıştırmayı **devam ettirirken** 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 (`trackio_space_id`) ile birlikte ve statik bir Space dağıtılırken (`trackio_static_space_id` `False` değilken) 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` olarak ayarlamadığınız veya organizasyonunuzun varsayılanı özel Space'ler oluşturmak olmadıkça Space herkese açıktır.

**Değerlendirme:**

eval_strategy (`str` veya [IntervalStrategy](/docs/transformers/main/tr/internal/trainer_utils#transformers.IntervalStrategy), *opsiyonel*, varsayılan `"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ğerlendirme yapılır - `"epoch"`: Her epoch'un sonunda değerlendirme yapılır

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. `[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.

eval_delay (`float`, *isteğe bağlı*) : İlk değerlendirmenin yapılabilmesi için, eval_strategy'ye bağlı olarak kaç epoch veya adım beklenmesi gerektiğini belirtir.

per_device_eval_batch_size (`int`, *isteğe bağlı*, varsayılan 8) : Değerlendirme için her cihaz 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`) : Doğrulama adımlarının doğru çalıştığından emin olmak için eğitimden önce 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, iç içe geçmiş bir liste/tuple/sözlük yapısındaki nesneler içindeki nesnelerin özyinelemeli olarak toplanıp toplanmayacağını belirtir. Bu, kullanıcılar yalnızca tensörler döndürmüyorsa etkinleştirilmelidir ve PyTorch tarafından aktif olarak önerilmez. Bilgisayar görüsü görevlerinde olduğu gibi etiket yapısı standart dışı olduğunda 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).

**Metriklere Hesaplama:**

include_for_metrics (`list[str]`, *isteğe bağlı*, varsayılan `[]`) : Metrik hesaplaması için gerekliyse `compute_metrics` fonksiyonuna ek veri dahil edin. `include_for_metrics` listesine eklenebilecek olası seçenekler: - `"inputs"`: Modele iletilen ve girdiye bağımlı metriklerin hesaplanması için tasarlanmış girdi verileri. - `"loss"`: Değerlendirme sırasında hesaplanan ve kayba bağımlı metriklerin hesaplanması için tasarlanmış 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 saklamak yerine her batch'in sonunda istatistikleri biriktirmek için compute_metrics'i çağırır. `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 ve `compute_result` adında bir boolean argüman alan bir compute_metrics fonksiyonu geçirmeniz gerekir.

**Kontrol Noktası Alma ve Kaydetme:**

save_only_model (`bool`, *isteğe bağlı*, varsayılan `False`) : Sadece 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 ettirilmesini engeller. Bu seçeneği, eğitimi devam ettirmek için değil, yalnızca çıkarım için eğitilmiş modele ihtiyacınız olduğunda 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 `"steps"`) : Eğitim sırasında benimsenecek kontrol noktası kaydetme stratejisi. Olası değerler şunlardır: - `"no"`: Eğitim sırasında kayıt yapılmaz. - `"epoch"`: Kayıt, her epoch'un sonunda yapılır. - `"steps"`: Kayıt, her `save_steps` adımında yapılır. - `"best"`: Yeni bir `best_metric` elde edildiğinde 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ı. `[0,1)` aralığında bir tamsayı veya 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 kaydedilecektir.

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`) : Önlenir 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 yineleme 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önderilip gönderilmeyeceğini belirtir. Bu özellik etkinleştirilirse, `output_dir` bir git dizini oluşturur ve bu dizin, `hub_model_id` ile belirlenen depoyla senkronize edilir; içerik, bir kaydetme işlemi tetiklendiğinde (kullandığınız `save_strategy`'ye bağlı olarak) her seferinde gönderilir. [save_model()](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer.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ı*) : Depoyu ö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 dağıtım Hugging Face Spaces etkinleştirilmiş olarak raporlama yapılıyorsa, Space'in özel olup olmayacağını da aynı mantık belirler.

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, ö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. Varsayılan olarak, *output_dir_name* `output_dir` adıyla eşleşecek şekilde `user_name/output_dir_name` olur.

hub_strategy (`str` veya `HubStrategy`, *isteğe bağlı*, varsayılan `"every_save"`) : Hub'a neyin ve ne zaman gönderileceğini tanımlar. Seçenekler: - `"end"`: Yalnızca eğitimin sonunda gönder - `"every_save"`: Her kayıtta gönder (eğitimi bloklamaması için asenkron) - `"checkpoint"`: `"every_save"` gibi, ancak kolay devam etme için en son kontrol noktasını `"last-checkpoint"` alt klasörüne gönder - `"all_checkpoints"`: Kontrol noktaları oluştuğu anda hepsini gönder

hub_always_push (`bool`, *isteğe bağlı*, varsayılan `False`) : Bu `True` değilse, `Trainer` önceki gönderim tamamlanmadığında bir kontrol noktası göndermeyi atlar.

hub_revision (`str`, *isteğe bağlı*) : Hub'a itme 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ğer `"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`'e göre varsayılan değer: Metrik adı `"loss"` ile bitmiyorsa `True`, aksi takdirde `False`.

**Eğitimi Devam Ettirme:**

ignore_data_skip (`bool`, *isteğe bağlı*, varsayılan `False`) : Eğitim yeniden başlatılırken, ö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ı yeniden başlatma, ancak sonuçlar yarıda kesilen eğitimle eşleşmez). `False` ise görülmüş veriler atlanır (daha yavaş yeniden başlatma, ancak tam devam).

restore_callback_states_from_checkpoint (`bool`, *isteğe bağlı*, varsayılan `False`) : Devam ederken checkpoint'ten geri çağırma durumlarını geri yükler. `True` ise, checkpoint'te mevcutlarsa Trainer'a geçirilen geri çağırma işlevlerinin üzerine 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()](/docs/transformers/main/tr/internal/trainer_utils#transformers.set_seed) yerine [enable_full_determinism()](/docs/transformers/main/tr/internal/trainer_utils#transformers.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`, *opsiyonel*, 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`, *opsiyonel*) : 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ı/arkası kullanılacaktı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çeneklerini 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'e bölünebilmelidir). `False` ise, her cihaza belirtilen topluluk boyutu atanır. - `dispatch_batches` (`bool`): `True` ise, yalnızca ana süreç dataloader üzerinden iterasyon yapar ve toplulukları cihazlara dağıtır. `IterableDataset` için varsayılan `True`, diğer durumlarda `False`'dır. - `even_batches` (`bool`, varsayılan `True`): Tüm işçilerin (worker) eşit topluluk 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 (seedable) rastgele örnekleyici kullanır. - `use_configured_state` (`bool`, varsayılan `False`): Yeni bir durum oluşturmak yerine önceden başlatılmış `AcceleratorState`/`PartialState` kullanır. Bu, hiperparametre ayarlamasında sorunlara yol açabilir.

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

**Veri Yükleyici:**

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ği sabitlemek isteyip istemediğinizi 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şçilerin 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` olacaktır.

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'un varsayılan başlatma yöntemi kullanılır; ancak `dataloader_num_workers > 1` durumunda MPS üzerinde `"fork"` varsayılanıdır. Nesneleri fork-güvenli olmayan kaynaklardan (ör. `pyarrow` üzerinden HDFS) akış olarak okurken `"spawn"` kullanın. `"spawn"` altında, özel `collate_fn` veya veri seti 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 partileri işçilerin dağıtıldığı sırada üretir. `IterableDataset` akış iş yüklerinde kuyruk gecikmesini azaltmak için partilerin hazır olur olmaz üretilmesini istiyorsanız `False` olarak ayarlayın. 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. Kullanılan model `XxxForQuestionAnswering` sınıflarından biri olmadıkça, "label" kelimesini içeren ve modelin kabul ettiği argüman adlarının listesine varsayılan olarak ayarlanır; bu durumda `["start_positions", "end_positions"]` anahtarları da dahil edilir. `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 `"random"`) : Eğitim dataloader'ı için kullanılacak örnekleyici. Olası değerler:  - `"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"`: Her etkili batch içinde, dolgu token maliyetini cihazlar ve gradyan biriktirme adımları arasında dengelemek için `BatchRebalanceSampler` kullanır; bu sayede `"group_by_length"` ile karşılaştırıldığında dolgu israfını ve tepe bellek kullanımını azaltı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"`) : Ön hesaplanmış uzunluklar için sütun adı. Sütun mevcutsa, uzunluğa göre gruplama bu değerleri kullanır ve 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) : `torch.distributed.init_process_group` çağrıları için zaman aşımı, dağıtık çalıştırmalarda yavaş işlemler sırasında GPU soket zaman aşımlarını önlemek için kullanılır. Daha fazla bilgi için [PyTorch belgelerine](https://pytorch.org/docs/stable/distributed.html#torch.distributed.init_process_group) bakın.

**FSDP (Tamamen Parçalı Veri Paralelliği):**

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ı*) : `fsdp` etkinleştirildiğinde kullanılacak yapılandırma ayarları. `fsdp_config.json` gibi bir JSON yapılandırma dosyasının yolunu veya zaten yüklenmiş bir sözlüğü iletin. 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 parçalanıp parçalanmayacağı. İleri ve geri geçişler arasında parametrelerin toplanmış halde kalmasını sağlamak, yeniden tüm-toplamayı (re-all-gather) önlemek ve daha yüksek tepe bellek kullanmak için `False` olarak ayarlayın. - cpu_offload (`bool`, *isteğe bağlı*, varsayılan `False`): GPU belleği tasarruf etmek için parametreleri ve gradyanları kullanılmadığında CPU'ya aktarın. - activation_checkpointing (`bool`, *isteğe bağlı*, varsayılan `False`): Belleği azaltmak için geri geçiş sırasında aktivasyonları yeniden hesaplamak üzere `True` olarak ayarlayın. FSDP kullanırken, geri geçişte gereksiz bir tüm-toplama (all-gather) getiren `activation_checkpointing` eğitim argümanı yerine bunu tercih edin. - cpu_ram_efficient_loading (`bool`, *isteğe bağlı*, varsayılan `False`): Ön eğitilmiş kontrol noktasını yalnızca ilk işlemde yüklemek 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 otomatik sarma politikası. `"TRANSFORMER_BASED_WRAP"`, `"SIZE_BASED_WRAP"` veya `"NO_WRAP"` seçin. - transformer_layer_cls_to_wrap (`list[str]`, *isteğe bağlı*): Sarılacak Transformer katman sınıf adları (büyük/küçük harfe duyarlı), örn. `LlamaDecoderLayer`. Genellikle gereksizdir: sarma politikası, çoğu transformers modelini kapsayan modelin `_no_split_modules` değerine geri döner. - min_num_params (`int`, *isteğe bağlı*, varsayılan `0`): Boyuta dayalı otomatik sarma 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 Tamamen Parçalı Veri Paralel Eğitiminin (Fully Sharded Data Parallel Training) kullanılıp kullanılmayacağı. Deneyseldir. - xla_fsdp_settings (`dict`, *isteğe bağlı*): XLA FSDP sarma parametrelerinin sözlüğü. Tüm seçenekler listesi için [XLA FSDP kaynağına](https://github.com/pytorch/xla/blob/master/torch_xla/distributed/fsdp/xla_fully_sharded_data_parallel.py) bakın. - xla_fsdp_grad_ckpt (`bool`, *isteğe bağlı*, varsayılan `False`): Her iç içe geçmiş XLA FSDP sarılmış katman üzerinde gradyan denetlemesi (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ı*) : [DeepSpeed](https://github.com/deepspeedai/DeepSpeed) entegrasyonunu etkinleştirir. Değer şunlardan biridir: - DeepSpeed JSON yapılandırma dosyasının yolu: `"ds_config.json"` - Sözlük olarak yüklenmiş yapılandırma > [!TIP] > 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 `DebugOption` listesi, *isteğe bağlı*, varsayılan `""`) : Bir veya birden 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ır

skip_memory_metrics (`bool`, *isteğe bağlı*, varsayılan `True`) : Metriklere bellek profilleri raporlarının eklenmesinin atlanıp atlanmayacağını belirtir. Bu, varsayılan olarak atlanır çünkü eğitim ve değerlendirme hızını yavaşlatır.

**Dış 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](/docs/transformers/main/tr/main_classes/trainer#transformers.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](/docs/transformers/main/tr/main_classes/trainer#transformers.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`) : Tahminlerin test setinde çalıştırılıp çalıştırılmayacağını belirtir. Bu argüman [Trainer](/docs/transformers/main/tr/main_classes/trainer#transformers.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 kontrol noktası içeren klasörün yolu. Bu argüman [Trainer](/docs/transformers/main/tr/main_classes/trainer#transformers.Trainer) tarafından doğrudan 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 `False`) : *sortish sampler* kullanılacak mı değil mi. Şimdilik yalnızca altta yatan veri kümeleri *Seq2SeqDataset* ise mümkün, ancak yakın gelecekte genel olarak kullanılabilir hale gelecek. Eğitim seti için biraz rastgelelik ekleyerek, dolguyu (padding) en aza indirmek amacıyla girdileri uzunluklarına göre sıralar.

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`. Varsayılan olarak model yapılandırmasının `num_beams` değerini kullanır.

generation_config (`str` veya `Path` veya [GenerationConfig](/docs/transformers/main/tr/main_classes/text_generation#transformers.GenerationConfig), *isteğe bağlı*) : `from_pretrained` yöntemiyle bir [GenerationConfig](/docs/transformers/main/tr/main_classes/text_generation#transformers.GenerationConfig) 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()](/docs/transformers/main/tr/main_classes/text_generation#transformers.GenerationConfig.save_pretrained) yöntemiyle kaydedilmiş bir yapılandırma dosyası içeren bir *dizin* yolu, örn. `./my_model_directory/`. - bir [GenerationConfig](/docs/transformers/main/tr/main_classes/text_generation#transformers.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](/docs/transformers/main/tr/internal/trainer_utils#transformers.HfArgumentParser), bu sınıfı komut satırında belirtilebilecek [argparse](https://docs.python.org/3/library/argparse#module-argparse) argümanlarına dönüştürebilir.

#### to_dict[[transformers.Seq2SeqTrainingArguments.to_dict]]

```python
to_dict()
```

[Kaynak](https://github.com/huggingface/transformers/blob/main/src/transformers/training_args_seq2seq.py#L84)

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.

