Transformers documentation

Callback

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Callback

Callback adalah objek yang dapat menyesuaikan perilaku loop pelatihan di Trainer PyTorch, yang dapat memeriksa status loop pelatihan (untuk pelaporan kemajuan, pencatatan di TensorBoard atau platform ML lainnya…) dan mengambil keputusan (seperti penghentian dini).

Callback adalah potongan kode “hanya baca”; selain objek TrainerControl yang dikembalikan, callback tidak dapat mengubah apa pun dalam loop pelatihan. Untuk kustomisasi yang memerlukan perubahan dalam loop pelatihan, Anda harus membuat subclass dari Trainer dan menimpa metode yang Anda butuhkan (lihat trainer untuk contoh).

Secara default, TrainingArguments.report_to diatur ke "none".

Kelas utama yang mengimplementasikan callback adalah TrainerCallback. Kelas ini menerima TrainingArguments yang digunakan untuk menginstansiasi Trainer, dapat mengakses status internal Trainer tersebut melalui TrainerState, dan dapat melakukan beberapa tindakan pada loop pelatihan melalui TrainerControl.

Callback yang Tersedia

Berikut adalah daftar TrainerCallback yang tersedia di pustaka:

kelas transformers.integrations.CometCallback

< >

( )

TrainerCallback yang mengirim log ke Comet ML.

setup

< >

( argsstatemodel )

Atur integrasi Comet opsional.

Lingkungan:

  • COMET_MODE (str, opsional, default ke get_or_create): Mengontrol apakah akan membuat dan mencatat ke eksperimen Comet baru atau menambahkan ke eksperimen yang sudah ada. Menerima nilai-nilai berikut:
    • get_or_create: Menentukan secara otomatis berdasarkan apakah COMET_EXPERIMENT_KEY telah diset dan apakah Experiment dengan kunci tersebut sudah ada atau belum.
    • create: Selalu buat Eksperimen Comet baru.
    • get: Selalu coba untuk menambahkan ke Eksperimen Comet yang Sudah Ada. Memerlukan COMET_EXPERIMENT_KEY untuk disetel.
  • COMET_START_ONLINE (bool, opsional): Apakah akan membuat Experiment secara online atau offline.
  • COMET_PROJECT_NAME (str, opsional): Nama proyek Comet untuk eksperimen.
  • COMET_LOG_ASSETS (str, opsional, default TRUE): Apakah aset pelatihan (checkpoint, dll.) akan dicatat ke Comet. Bisa berupa TRUE atau FALSE.

Untuk sejumlah item yang dapat dikonfigurasi di lingkungan, lihat di sini.

kelas transformers.DefaultFlowCallback

< >

( )

TrainerCallback yang menangani alur default dari loop pelatihan untuk log, evaluasi, dan checkpoint.

kelas transformers.PrinterCallback

< >

( )

TrainerCallback polos yang hanya mencetak log.

kelas transformers.ProgressCallback

< >

( max_str_len: int = 100 )

TrainerCallback yang menampilkan progres pelatihan atau evaluasi. Anda dapat memodifikasi max_str_len untuk mengontrol seberapa panjang string dipotong saat pencatatan log.

kelas transformers.EarlyStoppingCallback

< >

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

Parameter

  • early_stopping_patience (int) — Gunakan bersama metric_for_best_model untuk menghentikan pelatihan ketika metrik yang ditentukan memburuk selama early_stopping_patience panggilan evaluasi.
  • early_stopping_threshold(float, opsional) — Gunakan bersama TrainingArguments metric_for_best_model dan early_stopping_patience untuk menunjukkan seberapa besar metrik yang ditentukan harus membaik agar kondisi early stopping terpenuhi. `

TrainerCallback yang menangani penghentian dini.

Callback ini bergantung pada argumen TrainingArguments load_best_model_at_end untuk mengatur best_metric di TrainerState. Perhatikan bahwa jika argumen TrainingArguments save_steps berbeda dari eval_steps, early stopping tidak akan terjadi hingga langkah penyimpanan berikutnya.

kelas transformers.integrations.TensorBoardCallback

< >

( tb_writer = None )

Parameter

  • tb_writer (SummaryWriter, opsional) — Writer yang akan digunakan. Akan menginstansiasi satu jika tidak disetel.

TrainerCallback yang mengirim log ke TensorBoard.

Lingkungan:

  • TENSORBOARD_LOGGING_DIR (str, opsional, defaultnya None): Direktori logging untuk mencatat hasil. Nilai defaultnya adalah os.path.join(args.output_dir, default_logdir())

kelas transformers.integrations.TrackioCallback

< >

( )

TrainerCallback yang mencatat metrik ke Trackio.

setup

< >

( argsstatemodel**kwargs )

Setel integrasi Trackio opsional.

Untuk menyesuaikan setup, Anda juga dapat mengatur project, trackio_space_id, trackio_bucket_id, trackio_static_space_id, dan hub_private_repo di TrainingArguments.

kelas transformers.integrations.WandbCallback

< >

( )

TrainerCallback yang mencatat metrik, media, dan checkpoint model ke Weight and Biases.

setup

< >

( argsstatemodel**kwargs )

Atur integrasi Weights & Biases (wandb) opsional.

Anda dapat membuat subclass dan menimpa metode ini untuk menyesuaikan setup jika diperlukan. Temukan informasi lebih lanjut di sini. Anda juga dapat menimpa variabel lingkungan berikut:

Lingkungan:

  • WANDB_LOG_MODEL (str, opsional, default "false"): Apakah akan mencatat model dan checkpoint selama pelatihan. Bisa berupa "end", "checkpoint" atau "false". Jika diatur ke "end", model akan diunggah di akhir pelatihan. Jika diatur ke "checkpoint", checkpoint akan diunggah setiap args.save_steps . Jika diatur ke "false", model tidak akan diunggah. Gunakan bersama load_best_model_at_end() untuk mengunggah model terbaik.
  • WANDB_WATCH (str, opsional defaultnya "false"): Bisa berupa "gradients", "all", "parameters", atau "false". Atur ke "all" untuk mencatat gradien dan parameter.
  • WANDB_PROJECT (str, opsional, defaultnya "huggingface"): Atur ini ke string kustom untuk menyimpan hasil di proyek yang berbeda.

kelas transformers.integrations.MLflowCallback

< >

( )

TrainerCallback yang mengirim log ke MLflow. Dapat dinonaktifkan dengan mengatur variabel lingkungan DISABLE_MLFLOW_INTEGRATION = TRUE.

setup

< >

( argsstatemodel )

Setel integrasi MLflow opsional.

Lingkungan:

  • HF_MLFLOW_LOG_ARTIFACTS (str, opsional): Apakah akan menggunakan fasilitas .log_artifact() MLflow untuk mencatat artefak. Hal ini hanya masuk akal jika pencatatan dilakukan ke server jarak jauh, misalnya s3 atau GCS. Jika diatur ke True atau 1, setiap checkpoint yang disimpan pada setiap penyimpanan di output_dir dari TrainingArguments akan disalin ke penyimpanan artefak lokal atau jarak jauh. Penggunaannya tanpa penyimpanan jarak jauh hanya akan menyalin file ke lokasi artefak Anda.
  • MLFLOW_TRACKING_URI (str, opsional): Apakah menyimpan run di path tertentu atau server jarak jauh. Tidak diatur secara default, yang berarti pengaturannya untuk URI tracking sepenuhnya dilewati.
  • MLFLOW_EXPERIMENT_NAME (str, opsional, defaultnya None): Apakah akan menggunakan experiment_name MLflow di mana run akan diluncurkan. Defaultnya None yang akan menunjuk ke eksperimen Default di MLflow. Jika tidak, ini adalah nama eksperimen yang sensitif terhadap huruf besar/kecil untuk diaktifkan. Jika eksperimen dengan nama ini tidak ada, eksperimen baru dengan nama ini akan dibuat.
  • MLFLOW_TAGS (str, opsional): String dump dari kamus pasangan kunci/nilai yang akan ditambahkan ke run MLflow sebagai tag. Contoh: os.environ['MLFLOW_TAGS']='{"release.candidate": "RC1", "release.version": "2.2.0"}'.
  • MLFLOW_NESTED_RUN (str, opsional): Apakah akan menggunakan nested runs MLflow. Jika diatur ke True atau 1, akan membuat nested run di dalam run saat ini.
  • MLFLOW_RUN_ID (str, opsional): Memungkinkan untuk menempel kembali ke run yang sudah ada, yang dapat berguna saat melanjutkan pelatihan dari checkpoint. Ketika variabel lingkungan MLFLOW_RUN_ID diset, start_run akan mencoba melanjutkan run dengan ID run yang ditentukan dan parameter lainnya diabaikan.
  • MLFLOW_FLATTEN_PARAMS (str, opsional, default False): Apakah akan meratakan kamus parameter sebelum pencatatan.
  • MLFLOW_MAX_LOG_PARAMS (int, opsional): Atur jumlah maksimum parameter yang dicatat dalam run.

kelas transformers.integrations.AzureMLCallback

< >

( azureml_run = None )

TrainerCallback yang mengirim log ke AzureML.

kelas transformers.integrations.CodeCarbonCallback

< >

( )

TrainerCallback yang melacak emisi CO2 dari pelatihan.

kelas transformers.integrations.ClearMLCallback

< >

( )

TrainerCallback yang mengirim log ke ClearML.

Lingkungan:

  • CLEARML_PROJECT (str, opsional, defaultnya HuggingFace Transformers): Nama proyek ClearML.
  • CLEARML_TASK (str, opsional, defaultnya Trainer): Nama tugas ClearML.
  • CLEARML_LOG_MODEL (bool, opsional, default False): Apakah model akan dicatat sebagai artefak selama pelatihan.

kelas transformers.integrations.DagsHubCallback

< >

( )

TrainerCallback yang mencatat ke DagsHub. Mengembangkan MLflowCallback

setup

< >

( *args**kwargs )

Setel integrasi Logging DagsHub.

Lingkungan:

  • HF_DAGSHUB_LOG_ARTIFAKS (str, opsional): Apakah akan menyimpan artefak data dan model untuk eksperimen. Bawaan adalah False.

kelas transformers.integrations.FlyteCallback

< >

( save_log_history: bool = Truesync_checkpoints: bool = True )

Parameter

  • save_log_history (bool, opsional, default True) — Jika diset ke True, log pelatihan disimpan sebagai Flyte Deck.
  • sync_checkpoints (bool, opsional, default True) — Jika diset ke True, checkpoint akan disinkronkan dengan Flyte dan dapat digunakan untuk melanjutkan pelatihan dalam kasus gangguan.

TrainerCallback yang mengirim log ke Flyte. CATATAN: Callback ini hanya berfungsi di dalam tugas Flyte.

Contoh:

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


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

kelas transformers.integrations.KubeflowCallback

< >

( )

TrainerCallback yang melaporkan kemajuan pelatihan ke Kubeflow Trainer.

Callback ini didaftarkan secara otomatis saat pelatihan dilakukan di dalam Kubeflow TrainJob dengan feature gate TrainJobRuntimeStatus yang diaktifkan. Controller Kubeflow menyuntikkan variabel lingkungan yang diperlukan ke dalam pod pelatihan.

Variabel Lingkungan (disuntikkan oleh controller):

  • KUBEFLOW_TRAINER_SERVER_URL: endpoint HTTPS untuk pembaruan status
  • KUBEFLOW_TRAINER_SERVER_CA_CERT: Path ke sertifikat CA untuk verifikasi TLS
  • KUBEFLOW_TRAINER_SERVER_TOKEN: Path ke token service account untuk autentikasi

Informasi yang Dilaporkan:

  • Persentase kemajuan (0-100%)
  • Perkiraan waktu tersisa (detik)
  • Metrik pelatihan (loss, learning_rate, dll.)

Fitur:

  • Pembatasan otomatis (maksimal 1 pembaruan per 5 detik) untuk menghindari beban berlebih pada pengontrol
  • Penyimpanan sementara token (5 menit) untuk meminimalkan I/O file
  • Hanya rank 0 yang melaporkan kemajuan dalam pelatihan terdistribusi
  • Gagal secara diam-diam - masalah jaringan tidak akan mengganggu pelatihan

Dapat dinonaktifkan dengan mengatur variabel lingkungan DISABLE_KUBEFLOW_INTEGRATION=TRUE.

kelas transformers.integrations.DVCLiveCallback

< >

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

Parameter

  • live (dvclive.Live, opsional, default None) — Instans Live opsional. Jika None, instans baru akan dibuat menggunakan **kwargs.
  • log_model (Union[Literal[“all”], bool], opsional, defaultnya None) — Apakah akan menggunakan dvclive.Live.log_artifact() untuk mencatat checkpoint yang dibuat oleh Trainer. Jika diatur ke True, checkpoint akhir dicatat di akhir pelatihan. Jika diatur ke "all", seluruh output_dir dari TrainingArguments dicatat pada setiap checkpoint.

TrainerCallback yang mengirim log ke DVCLive.

Gunakan variabel lingkungan di bawah ini di setup untuk mengonfigurasi integrasi. Untuk menyesuaikan callback ini di luar variabel lingkungan tersebut, lihat di sini.

setup

< >

( argsstatemodel )

Atur integrasi DVCLive opsional. Untuk menyesuaikan callback ini di luar variabel lingkungan di bawah, lihat di sini.

Lingkungan:

  • HF_DVCLIVE_LOG_MODEL (str, opsional): Apakah akan menggunakan dvclive.Live.log_artifact() untuk mencatat checkpoint yang dibuat oleh Trainer. Jika diatur ke True atau 1, checkpoint akhir dicatat di akhir pelatihan. Jika diatur ke all, seluruh output_dir dari TrainingArguments dicatat pada setiap checkpoint.

kelas transformers.integrations.SwanLabCallback

< >

( )

TrainerCallback yang mencatat metrik, media, dan checkpoint model ke SwanLab.

setup

< >

( argsstatemodel**kwargs )

Siapkan integrasi SwanLab (swanlab) opsional.

Anda dapat membuat subclass dan menimpa metode ini untuk menyesuaikan setup jika diperlukan. Temukan informasi lebih lanjut di sini.

Anda juga dapat menimpa variabel lingkungan berikut. Temukan informasi lebih lanjut tentang variabel lingkungan di sini

Lingkungan:

  • SWANLAB_API_KEY (str, opsional, default None): Cloud API Key. Saat login, variabel lingkungan ini diperiksa terlebih dahulu. Jika tidak ada, sistem memeriksa apakah pengguna sudah login. Jika belum, proses login dimulai.

    • Jika string diteruskan ke antarmuka login, variabel lingkungan ini diabaikan.
    • Jika pengguna sudah masuk, variabel lingkungan ini memiliki prioritas lebih tinggi daripada informasi login yang disimpan secara lokal.
  • SWANLAB_PROJECT (str, opsional, default None): Atur ini ke string kustom untuk menyimpan hasil di proyek yang berbeda. Jika tidak ditentukan, nama direktori berjalan saat ini akan digunakan.

  • SWANLAB_LOG_DIR (str, opsional, defaultnya swanlog): Variabel lingkungan ini menentukan jalur penyimpanan untuk file log saat berjalan dalam mode lokal. Secara default, log disimpan dalam folder bernama swanlog di bawah direktori kerja.

  • SWANLAB_MODE (Literal["local", "cloud", "disabled"], opsional, default cloud): Mode parsing SwanLab, yang melibatkan callback yang didaftarkan oleh operator. Saat ini, ada tiga mode: local, cloud, dan disabled. Catatan: Case-sensitive. Temukan informasi lebih lanjut di sini

  • SWANLAB_LOG_MODEL (str, opsional, default None): SwanLab saat ini tidak mendukung fungsi mode simpan. Fitur ini akan tersedia pada rilis mendatang

  • SWANLAB_WEB_HOST (str, opsional, default None): Alamat web untuk lingkungan cloud SwanLab untuk versi privat (gratis)

  • SWANLAB_API_HOST (str, opsional, default None): Alamat API untuk lingkungan cloud SwanLab untuk versi privat (gratis)

  • SWANLAB_RUN_ID (str, opsional, default None): ID eksperimen untuk melanjutkan run sebelumnya. Gunakan bersama SWANLAB_RESUME untuk melanjutkan eksperimen yang sudah ada.

  • SWANLAB_RESUME (str, opsional, default None): Mode resume ("must", "allow", "never"). Defaultnya "allow" ketika resume_from_checkpoint digunakan.

TrainerCallback

kelas transformers.TrainerCallback

< >

( )

Parameter

  • args (TrainingArguments) — Argumen pelatihan yang digunakan untuk menginstansiasi Trainer.
  • state (TrainerState) — Status terkini dari Trainer.
  • control (TrainerControl) — Objek yang dikembalikan ke Trainer dan dapat digunakan untuk membuat beberapa keputusan.
  • model (PreTrainedModel atau torch.nn.Module) — Model yang sedang dilatih.
  • processing_class ([PreTrainedTokenizer atau BaseImageProcessor atau ProcessorMixin atau FeatureExtractionMixin]) — Kelas pemrosesan yang digunakan untuk mengkodekan data. Bisa berupa tokenizer, processor, image processor, atau feature extractor.
  • optimizer (torch.optim.Optimizer) — Optimizer yang digunakan untuk langkah-langkah pelatihan.
  • lr_scheduler (torch.optim.lr_scheduler.LambdaLR) — Scheduler yang digunakan untuk mengatur learning rate.
  • train_dataloader (torch.utils.data.DataLoader, opsional) — Dataloader saat ini yang digunakan untuk pelatihan.
  • eval_dataloader (torch.utils.data.DataLoader, opsional) — Dataloader saat ini yang digunakan untuk evaluasi.
  • metrics (dict[str, float]) — Metrik yang dihitung oleh fase evaluasi terakhir.

    Mereka hanya dapat diakses dalam event on_evaluate.

  • logs (dict[str, float]) — Nilai yang akan dicatat.

    Mereka hanya dapat diakses dalam event on_log.

Kelas untuk objek yang akan memeriksa status loop pelatihan pada beberapa event dan mengambil beberapa keputusan. Pada masing-masing event tersebut, argumen berikut tersedia:

Objek control adalah satu-satunya yang dapat diubah oleh callback, di mana peristiwa yang mengubahnya harus mengembalikan versi yang telah dimodifikasi.

Argumen args, state dan control adalah argumen posisional untuk semua event, sedangkan yang lainnya dikelompokkan dalam kwargs. Anda dapat mengurai yang Anda butuhkan dalam tanda tangan event dengan menggunakannya. Sebagai contoh, lihat kode dari PrinterCallback sederhana.

Contoh:

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

on_epoch_begin

< >

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

Event yang dipanggil di awal epoch.

on_epoch_end

< >

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

Event yang dipanggil di akhir epoch.

on_evaluate

< >

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

Event yang dipanggil setelah fase evaluasi.

on_init_end

< >

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

Event yang dipanggil di akhir inisialisasi Trainer.

on_log

< >

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

Event yang dipanggil setelah pencatatan log terakhir.

on_optimizer_step

< >

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

Event yang dipanggil setelah langkah optimizer tetapi sebelum gradien di-nol-kan. Berguna untuk memantau gradien.

on_pre_optimizer_step

< >

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

Event yang dipanggil sebelum langkah optimizer tetapi setelah pemangkasan gradien. Berguna untuk memantau gradien.

on_predict

< >

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

Event yang dipanggil setelah prediksi berhasil.

on_prediction_step

< >

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

Event yang dipanggil setelah langkah prediksi.

on_push_begin

< >

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

Event yang dipanggil sebelum mendorong model ke hub, di awal Trainer.push_to_hub dan Trainer._push_from_checkpoint.

on_save

< >

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

Event yang dipanggil setelah penyimpanan checkpoint.

on_step_begin

< >

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

Event yang dipanggil di awal langkah pelatihan. Jika menggunakan akumulasi gradien, satu langkah pelatihan mungkin memerlukan beberapa input.

on_step_end

< >

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

Event yang dipanggil di akhir langkah pelatihan. Jika menggunakan akumulasi gradien, satu langkah pelatihan mungkin memerlukan beberapa input.

on_substep_end

< >

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

Event yang dipanggil di akhir substep selama akumulasi gradien.

on_train_begin

< >

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

Event yang dipanggil di awal pelatihan.

on_train_end

< >

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

Event yang dipanggil di akhir pelatihan.

Berikut adalah contoh cara mendaftarkan callback kustom dengan Trainer PyTorch:

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

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


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

Cara lain untuk mendaftarkan callback adalah dengan memanggil trainer.add_callback() sebagai berikut:

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

TrainerState

kelas transformers.TrainerState

< >

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

Parameter

  • epoch (float, opsional) — Hanya disetel selama pelatihan, akan merepresentasikan epoch yang sedang dilalui dalam pelatihan (bagian desimalnya adalah persentase epoch saat ini yang telah selesai).
  • global_step (int, opsional, default 0) — Selama pelatihan, mewakili jumlah langkah pembaruan yang telah diselesaikan.
  • max_steps (int, opsional, default 0) — Jumlah langkah pembaruan yang akan dilakukan selama pelatihan saat ini.
  • logging_steps (int, opsional, default 500) — Catat setiap X langkah pembaruan
  • eval_steps (int, opsional) — Jalankan evaluasi setiap X langkah.
  • save_steps (int, opsional, default 500) — Simpan checkpoint setiap X langkah pembaruan.
  • train_batch_size (int, opsional) — Ukuran batch untuk dataloader pelatihan. Hanya diperlukan ketika auto_find_batch_size telah digunakan.
  • num_input_tokens_seen (int, opsional, default 0) — Saat melacak token input, jumlah token yang dilihat selama pelatihan (jumlah token input, bukan jumlah token prediksi).
  • total_flos (float, opsional, default 0) — Jumlah total operasi floating point yang dilakukan oleh model sejak awal pelatihan (disimpan sebagai float untuk menghindari overflow).
  • log_history (list[dict[str, float]], opsional) — Daftar log yang dilakukan sejak awal pelatihan.
  • best_metric (float, opsional) — Saat melacak model terbaik, nilai metrik terbaik yang ditemukan sejauh ini.
  • best_global_step (int, opsional) — Saat melacak model terbaik, langkah di mana metrik terbaik ditemukan. Digunakan untuk mengatur best_model_checkpoint.
  • best_model_checkpoint (str, opsional) — Saat melacak model terbaik, nilai dari nama checkpoint untuk model terbaik yang ditemukan sejauh ini.
  • is_local_process_zero (bool, opsional, default True) — Apakah proses ini merupakan proses utama lokal (misalnya, pada satu mesin jika pelatihan dilakukan secara terdistribusi di beberapa mesin).
  • is_world_process_zero (bool, opsional, default True) — Apakah proses ini merupakan proses utama global (saat pelatihan dilakukan secara terdistribusi di beberapa mesin, ini hanya akan bernilai True untuk satu proses).
  • is_hyper_param_search (bool, opsional, default False) — Apakah kita sedang dalam proses pencarian hiperparameter menggunakan Trainer.hyperparameter_search. Hal ini akan memengaruhi cara data dicatat di TensorBoard.
  • stateful_callbacks (list[StatefulTrainerCallback], opsional) — Callbacks yang terpasang pada Trainer dan statusnya harus disimpan atau dipulihkan. Callbacks yang relevan harus mengimplementasikan fungsi state dan from_state.

Kelas yang berisi status internal Trainer yang akan disimpan bersama model dan optimizer saat checkpointing dan diteruskan ke TrainerCallback.

Dalam seluruh kelas ini, satu langkah harus dipahami sebagai satu langkah pembaruan. Saat menggunakan akumulasi gradien, satu langkah pembaruan mungkin memerlukan beberapa jalur maju dan mundur: jika Anda menggunakan gradient_accumulation_steps=n, maka satu langkah pembaruan memerlukan pemrosesan n batch.

compute_steps

< >

( argsmax_steps )

Menghitung dan menyimpan nilai absolut untuk langkah logging, eval, dan save berdasarkan apakah itu proporsi atau tidak.

init_training_references

< >

( trainermax_stepsnum_train_epochstrial )

Menyimpan referensi pelatihan awal yang diperlukan di self

load_from_json

< >

( json_path: str )

Buat sebuah instance dari konten json_path.

save_to_json

< >

( json_path: str )

Simpan konten instance ini dalam format JSON di dalam json_path.

TrainerControl

kelas transformers.TrainerControl

< >

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

Parameter

  • should_training_stop (bool, opsional, defaultnya False) — Apakah pelatihan harus dihentikan atau tidak.

    Jika True, variabel ini tidak akan direset menjadi False. Pelatihan akan langsung berhenti.

  • should_epoch_stop (bool, opsional, defaultnya False) — Apakah epoch saat ini harus dihentikan. Jika True, variabel ini akan direset menjadi False di awal epoch berikutnya.

    Jika True, variabel ini akan diatur kembali menjadi False di awal epoch berikutnya.

  • should_save (bool, opsional, defaultnya False) — Apakah model harus disimpan pada langkah ini.

    Jika True, variabel ini akan diatur kembali menjadi False di awal langkah berikutnya.

  • should_evaluate (bool, opsional, defaultnya False) — Apakah model harus dievaluasi pada langkah ini.

    Jika True, variabel ini akan diatur kembali menjadi False di awal langkah berikutnya.

  • should_log (bool, opsional, defaultnya False) — Apakah log harus dilaporkan pada langkah ini.

    Jika True, variabel ini akan diatur kembali menjadi False di awal langkah berikutnya.

Kelas yang menangani alur kendali Trainer. Kelas ini digunakan oleh TrainerCallback untuk mengaktifkan beberapa saklar dalam loop pelatihan.

Update on GitHub