Transformers documentation
콜백
콜백
Callbacks는 PyTorch Trainer의 학습 루프 동작을 사용자 정의할 수 있는 객체로, 학습 루프 상태를 검사하여 진행 상황을 보고하거나 TensorBoard 또는 다른 ML 플랫폼에 로깅하는 등의 작업을 수행하고, 조기 종료와 같은 결정을 내릴 수 있습니다.
Callbacks는 반환하는 TrainerControl 객체를 제외하고는 “읽기 전용” 코드 조각이며, 학습 루프의 어떤 것도 변경할 수 없습니다. 학습 루프의 변경이 필요한 커스터마이징을 하려면 Trainer를 서브클래스로 상속받아 필요한 메서드를 오버라이드해야 합니다(예는 trainer를 참고하세요).
기본적으로 TrainingArguments.report_to는 "none"으로 설정됩니다.
콜백을 구현하는 주요 클래스는 TrainerCallback입니다. Trainer를 인스턴스화할 때 사용된 TrainingArguments를 가져오고, TrainerState를 통해 해당 Trainer의 내부 상태에 접근할 수 있으며, TrainerControl를 통해 학습 루프에서 일부 작업을 수행할 수 있습니다.
사용 가능한 콜백
라이브러리에서 사용할 수 있는 TrainerCallback 목록은 다음과 같습니다:
Comet ML로 로그를 전송하는 TrainerCallback입니다.
선택 사항인 Comet 통합을 설정합니다.
환경:
- COMET_MODE (
str, 선택 사항, 기본값은get_or_create): 새로운 Comet 실험을 생성하고 로깅할지, 아니면 기존 실험에 추가할지 제어합니다. 다음 값을 허용합니다:get_or_create:COMET_EXPERIMENT_KEY가 설정되어 있는지와 해당 키를 가진 Experiment가 이미 존재하는지에 따라 자동으로 결정합니다.create: 항상 새로운 Comet Experiment을 생성합니다.get: 기존 Comet Experiment에 추가하는 것을 항상 시도합니다.COMET_EXPERIMENT_KEY가 설정되어 있어야 합니다.
- COMET_START_ONLINE (
bool, 선택 사항): 온라인 또는 오프라인 Experiment를 생성할지 여부입니다. - COMET_PROJECT_NAME (
str, 선택 사항): 실험에 사용할 Comet 프로젝트 이름입니다. - COMET_LOG_ASSETS (
str, 선택 사항, 기본값TRUE): Comet에 학습 자산(체크포인트 등)을 기록할지 여부입니다.TRUE또는FALSE를 사용할 수 있습니다.
환경에서 설정할 수 있는 항목에 대해서는 여기를 참조하세요.
로그, 평가 및 체크포인트를 위한 학습 루프의 기본 흐름을 처리하는 TrainerCallback입니다.
로그만 출력하는 단순한 TrainerCallback입니다.
학습 또는 평가의 진행 상황을 표시하는 TrainerCallback입니다.
max_str_len을 수정하여 로깅 시 문자열이 잘리는 길이를 제어할 수 있습니다.
클래스 transformers.EarlyStoppingCallback
< source >( early_stopping_patience: int = 1early_stopping_threshold: float | None = 0.0 )
조기 정지를 처리하는 TrainerCallback입니다.
이 콜백은 TrainerState의 best_metric를 설정하기 위해 TrainingArguments 인수의 load_best_model_at_end 기능을 사용합니다. TrainingArguments 인수의 save_steps가 eval_steps와 다르면, 다음 저장 단계가 될 때까지 조기 정지가 발생하지 않는다는 점에 유의하세요.
class transformers.integrations.TensorBoardCallback
< source >( tb_writer = None )
TrainerCallback은 TensorBoard에 로그를 전송합니다.
환경:
- TENSORBOARD_LOGGING_DIR (
str, 선택 사항, 기본값None): 결과를 기록할 로깅 디렉터리입니다. 기본값은 os.path.join(args.output_dir, default_logdir())입니다.
Trackio에 메트릭을 기록하는 TrainerCallback입니다.
선택 사항인 Trackio 통합을 설정합니다.
설정을 사용자 지정하려면 TrainingArguments에서 project, trackio_space_id, trackio_bucket_id, trackio_static_space_id, hub_private_repo도 설정할 수 있습니다.
Weight and Biases에 지표, 미디어, 모델 체크포인트를 기록하는 TrainerCallback입니다.
선택 사항인 Weights & Biases(wandb) 통합을 설정합니다.
필요한 경우 이 메서드를 서브클래스화하여 오버라이드함으로써 설정을 커스터마이징할 수 있습니다. 자세한 내용은 여기에서 확인하세요. 또한 다음 환경 변수를 오버라이드할 수 있습니다:
환경:
- WANDB_LOG_MODEL (
str, 선택 사항, 기본값"false"): 학습 중에 모델과 체크포인트를 기록할지 여부입니다."end","checkpoint"또는"false"중 하나를 지정할 수 있습니다."end"로 설정하면 학습이 끝난 시점에 모델이 업로드됩니다."checkpoint"로 설정하면args.save_steps간격마다 체크포인트가 업로드됩니다."false"로 설정하면 모델이 업로드되지 않습니다.load_best_model_at_end()와 함께 사용하여 최적의 모델을 업로드할 수 있습니다. - WANDB_WATCH (
str, 선택 사항, 기본값"false"):"gradients","all","parameters", 또는"false"중 하나를 지정할 수 있습니다."all"로 설정하면 기울기와 매개변수를 기록합니다. - WANDB_PROJECT (
str, 선택 사항, 기본값"huggingface"): 결과를 다른 프로젝트에 저장하려면 이 값을 사용자 지정 문자열로 설정합니다.
로그를 MLflow로 전송하는 TrainerCallback입니다. 환경 변수 DISABLE_MLFLOW_INTEGRATION = TRUE를 설정하여 비활성화할 수 있습니다.
선택 사항인 MLflow 통합을 설정합니다.
환경:
- HF_MLFLOW_LOG_ARTIFACTS (
str, 선택 사항): MLflow의.log_artifact()기능을 사용하여 아티팩트를 기록할지 여부입니다. 이는 s3 또는 GCS와 같은 원격 서버에 기록하는 경우에만 의미가 있습니다.True또는 1으로 설정하면, TrainingArguments의output_dir에 저장되는 각 체크포인트를 로컬 또는 원격 아티팩트 저장소로 복사합니다. 원격 저장소 없이 사용하면 파일이 아티팩트 위치로만 복사됩니다. - MLFLOW_TRACKING_URI (
str, 선택 사항): 실행을 특정 경로 또는 원격 서버에 저장할지 여부입니다. 기본적으로 설정되지 않으며, 이 경우 tracking URI 설정을 완전히 건너뜁니다. - MLFLOW_EXPERIMENT_NAME (
str, 선택 사항, 기본값None): 실행을 시작할 MLflow experiment_name을 사용할지 여부입니다. 기본값은None이며, 이는 MLflow의Default실험을 가리킵니다. 그렇지 않으면 활성화할 실험의 대소문자를 구분하는 이름입니다. 이 이름의 실험이 존재하지 않으면 이 이름의 새 실험이 생성됩니다. - MLFLOW_TAGS (
str, 선택): MLflow 실행에 태그로 추가할 키/값 쌍의 사전 문자열 덤프입니다. 예:os.environ['MLFLOW_TAGS']='{"release.candidate": "RC1", "release.version": "2.2.0"}'. - MLFLOW_NESTED_RUN (
str, 선택 사항): MLflow의 중첩 실행을 사용할지 여부입니다.True또는 1으로 설정하면 현재 실행 내부에 중첩 실행을 생성합니다. - MLFLOW_RUN_ID (
str, 선택 사항): 체크포인트에서 학습을 재개할 때 유용할 수 있는 기존 실행에 다시 연결할 수 있습니다.MLFLOW_RUN_ID환경 변수가 설정되면start_run은 지정된 실행 ID로 실행을 재개하려고 시도하며, 다른 매개 변수는 무시됩니다. - MLFLOW_FLATTEN_PARAMS (
str, 선택 사항, 기본값False): 로그 기록 전에 매개변수 사전(flatten)을 평탄화할지 여부입니다. - MLFLOW_MAX_LOG_PARAMS (
int, 선택 사항): 실행에서 기록할 매개변수의 최대 수를 설정합니다.
A TrainerCallback that sends the logs to AzureML.
학습의 CO2 배출량을 추적하는 TrainerCallback입니다.
TrainerCallback은 ClearML로 로그를 전송합니다.
환경:
- CLEARML_PROJECT (
str, 선택 사항, 기본값HuggingFace Transformers): ClearML 프로젝트 이름입니다. - CLEARML_TASK (
str, 선택 사항, 기본값Trainer): ClearML 작업 이름입니다. - CLEARML_LOG_MODEL (
bool, 선택 사항, 기본값False): 학습 중에 모델을 아티팩트로 기록할지 여부입니다.
DagsHub에 로깅하는 TrainerCallback입니다. MLflowCallback을 확장합니다.
DagsHub의 로깅 통합을 설정합니다.
환경:
- HF_DAGSHUB_LOG_ARTIFACTS (
str, 선택 사항): 실험의 데이터 및 모델 산출물을 저장할지 여부입니다. 기본값은False입니다.
class transformers.integrations.FlyteCallback
< source >( save_log_history: bool = Truesync_checkpoints: bool = True )
TrainerCallback의 한 종류로, 로그를 Flyte로 전송합니다. 참고: 이 콜백은 Flyte 태스크 내에서만 작동합니다.
Kubeflow Trainer에 학습 진행 상황을 보고하는 TrainerCallback입니다.
TrainJobRuntimeStatus 기능 게이트가 활성화된 상태에서 Kubeflow TrainJob 내에서 학습을 수행하면 이 콜백이 자동으로 등록됩니다. Kubeflow 컨트롤러가 학습 pod에 필요한 환경 변수를 주입합니다.
환경 변수(컨트롤러가 주입):
KUBEFLOW_TRAINER_SERVER_URL: 상태 업데이트를 위한 HTTPS 엔드포인트KUBEFLOW_TRAINER_SERVER_CA_CERT: TLS 검증을 위한 CA 인증서 경로KUBEFLOW_TRAINER_SERVER_TOKEN: 인증을 위한 서비스 계정 토큰 경로
보고된 정보:
- 진행률 (0-100%)
- 남은 예상 시간(초)
- 학습 지표(loss, learning_rate 등)
기능:
- 컨트롤러에 과부하가 걸리는 것을 방지하기 위한 자동 스로틀링(5초당 최대 1회 업데이트)
- Token caching (5분)을 통해 파일 I/O 최소화
- 분산 학습에서는 rank 0만 진행 상황을 보고합니다
- Silent failures - 네트워크 문제가 학습을 중단하지 않습니다
환경 변수 DISABLE_KUBEFLOW_INTEGRATION=TRUE를 설정하여 비활성화할 수 있습니다.
class transformers.integrations.DVCLiveCallback
< source >( live: typing.Any | None = Nonelog_model: typing.Union[typing.Literal['all'], bool, NoneType] = None**kwargs )
매개변수
- live (
dvclive.Live, 선택 사항, 기본값None) — 선택적인 Live 인스턴스입니다. None인 경우 **kwargs를 사용하여 새로운 인스턴스가 생성됩니다. - log_model (Union[Literal[“all”], bool], 선택 사항, 기본값
None) —dvclive.Live.log_artifact()를 사용하여 Trainer가 생성한 체크포인트를 기록할지 여부입니다.True로 설정하면 학습이 끝난 시점에 최종 체크포인트가 기록됩니다."all"로 설정하면 각 체크포인트마다 TrainingArguments의output_dir전체가 기록됩니다.
로그를 DVCLive로 전송하는 TrainerCallback입니다.
setup에서 아래 환경 변수를 사용하여 통합을 구성합니다. 해당 환경 변수를 넘어 이 콜백을 커스터마이징하려면 여기를 참조하세요.
선택 사항인 DVCLive 통합을 설정합니다. 아래 환경 변수를 넘어 이 콜백을 사용자 지정하려면 여기를 참조하세요.
환경:
- HF_DVCLIVE_LOG_MODEL (
str, 선택 사항): Trainer가 생성한 체크포인트를dvclive.Live.log_artifact()로 기록할지 여부입니다.True또는 1으로 설정하면 학습이 끝난 시점에 최종 체크포인트가 기록됩니다.all로 설정하면 각 체크포인트마다 TrainingArguments의output_dir전체가 기록됩니다.
SwanLab에 지표, 미디어, 모델 체크포인트를 기록하는 TrainerCallback입니다.
선택 사항인 SwanLab(swanlab) 통합을 설정합니다.
필요한 경우 이 메서드를 서브클래스화하여 오버라이드함으로써 설정을 커스터마이징할 수 있습니다. 자세한 내용은 여기에서 확인하세요.
다음 환경 변수도 재정의할 수 있습니다. 환경 변수에 대한 자세한 내용은 여기에서 확인하세요.
환경:
SWANLAB_API_KEY (
str, 선택 사항, 기본값None): Cloud API Key입니다. 로그인 시 이 환경 변수가 먼저 확인됩니다. 해당 변수가 없으면 시스템이 사용자가 이미 로그인되어 있는지 확인합니다. 로그인되어 있지 않으면 로그인 프로세스가 시작됩니다.- 로그인 인터페이스에 문자열이 전달되면 이 환경 변수는 무시됩니다.
- 사용자가 이미 로그인된 경우, 이 환경 변수는 로컬에 저장된 로그인 정보보다 우선합니다.
SWANLAB_PROJECT (
str, 선택 사항, 기본값None): 결과를 다른 프로젝트에 저장하려면 이 값을 사용자 지정 문자열로 설정합니다. 지정하지 않으면 현재 실행 중인 디렉터리의 이름이 사용됩니다.SWANLAB_LOG_DIR (
str, 선택 사항, 기본값swanlog): 이 환경 변수는 로컬 모드에서 실행할 때 로그 파일의 저장 경로를 지정합니다. 기본적으로 작업 디렉터리 아래에 swanlog라는 이름의 폴더에 로그가 저장됩니다.SWANLAB_MODE (
Literal["local", "cloud", "disabled"], 선택 사항, 기본값cloud): SwanLab의 파싱 모드입니다. 이는 운영자가 등록한 콜백을 포함합니다. 현재 local, cloud, disabled의 세 가지 모드가 있습니다. 참고: 대소문자를 구분합니다. 자세한 내용은 여기에서 확인하세요.SWANLAB_LOG_MODEL (
str, 선택 사항, 기본값None): SwanLab는 현재 저장 모드 기능을 지원하지 않습니다. 이 기능은 향후 릴리스에서 사용할 수 있게 됩니다.SWANLAB_WEB_HOST (
str, 선택 사항, 기본값None): 개인용 버전의 SwanLab 클라우드 환경을 위한 웹 주소입니다(무료입니다).SWANLAB_API_HOST (
str, 선택 사항, 기본값None): 개인용 버전(무료)의 SwanLab 클라우드 환경을 위한 API 주소SWANLAB_RUN_ID (
str, 선택 사항, 기본값None): 이전 실행을 재개할 실험 ID입니다. 기존 실험을 계속하려면SWANLAB_RESUME와 함께 사용하세요.SWANLAB_RESUME (
str, 선택 사항, 기본값None): 재개 모드("must","allow","never").resume_from_checkpoint를 사용할 경우 기본값은"allow"입니다.
TrainerCallback
클래스 transformers.TrainerCallback
< source >( )
매개변수
- args (TrainingArguments) — Trainer를 초기화하는 데 사용되는 학습 인자입니다.
- state (TrainerState) — 현재 Trainer의 상태입니다.
- control (TrainerControl) — Trainer에 반환되며 일부 의사결정에 사용할 수 있는 객체입니다.
- model (PreTrainedModel 또는
torch.nn.Module) — 학습 중인 모델입니다. - processing_class ([
PreTrainedTokenizer또는BaseImageProcessor또는ProcessorMixin또는FeatureExtractionMixin]) — 데이터 인코딩에 사용되는 처리 클래스입니다. 토크나이저, 프로세서, 이미지 프로세서 또는 피처 추출기일 수 있습니다. - optimizer (
torch.optim.Optimizer) — 학습 단계에 사용되는 옵티마이저입니다. - lr_scheduler (
torch.optim.lr_scheduler.LambdaLR) — 학습률을 설정하는 데 사용되는 스케줄러입니다. - train_dataloader (
torch.utils.data.DataLoader, 선택 사항) — 학습에 사용되는 현재 dataloader입니다. - eval_dataloader (
torch.utils.data.DataLoader, 선택 사항) — 평가에 사용되는 현재 dataloader입니다. - metrics (
dict[str, float]) — 마지막 평가 단계에서 계산된 지표입니다.이것들은
on_evaluate이벤트에서만 접근할 수 있습니다. - logs (
dict[str, float]) — 기록할 값입니다.이것들은
on_log이벤트에서만 접근할 수 있습니다.
일정 이벤트에서 학습 루프의 상태를 검사하고 일부 결정을 내리는 객체를 위한 클래스. 각 이벤트에서 다음 인수를 사용할 수 있습니다:
control 객체는 콜백에 의해 변경될 수 있는 유일한 객체이며, 이 경우 해당 객체를 변경하는 이벤트는 수정된 버전을 반환해야 합니다.
인수 args, state, control는 모든 이벤트에서 위치 인수로 사용되며, 나머지는 kwargs에 묶여 있습니다. 이벤트의 시그니처에서 필요한 인수를 언팩하여 사용할 수 있습니다. 예시로 간단한 PrinterCallback의 코드를 참고하세요.
예:
class PrinterCallback(TrainerCallback):
def on_log(self, args, state, control, logs=None, **kwargs):
_ = logs.pop("total_flos", None)
if state.is_local_process_zero:
print(logs)on_epoch_begin
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
에포크 시작 시 호출되는 이벤트입니다.
on_epoch_end
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
에포크가 끝날 때 호출되는 이벤트입니다.
on_evaluate
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
평가 단계 이후에 호출되는 이벤트.
on_init_end
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
Trainer의 초기화가 끝날 때 호출되는 이벤트입니다.
마지막 로그를 기록한 후 호출되는 이벤트입니다.
on_optimizer_step
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
옵티마이저 단계 이후, 그라디언트가 제로로 초기화되기 전에 호출되는 이벤트입니다. 그라디언트를 모니터링하는 데 유용합니다.
on_pre_optimizer_step
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
optimizer 단계 전에 호출되지만, 그라디언트 클리핑 이후에 호출되는 이벤트입니다. 그라디언트를 모니터링하는 데 유용합니다.
on_predict
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControlmetrics**kwargs )
성공적인 예측 후에 호출되는 이벤트.
on_prediction_step
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
예측 단계 이후에 호출되는 이벤트.
on_push_begin
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
Event called before pushing the model to the hub, at the beginning of Trainer.push_to_hub and Trainer._push_from_checkpoint.
checkpoint 저장 후 호출되는 이벤트입니다.
on_step_begin
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
학습 단계의 시작 시점에 호출되는 이벤트. 그라디언트 축적을 사용하는 경우, 하나의 학습 단계에 여러 입력이 포함될 수 있습니다.
on_step_end
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
학습 단계의 끝에서 호출되는 이벤트. 그라디언트 축적을 사용하는 경우, 하나의 학습 단계에 여러 입력이 포함될 수 있습니다.
on_substep_end
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
Gradient accumulation 중 substep의 끝에서 호출되는 이벤트입니다.
on_train_begin
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
학습 시작 시점에 호출되는 이벤트입니다.
on_train_end
< source >( args: TrainingArgumentsstate: TrainerStatecontrol: TrainerControl**kwargs )
학습이 끝날 때 호출되는 이벤트입니다.
PyTorch Trainer에 사용자 정의 콜백을 등록하는 예시입니다:
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())
)콜백을 등록하는 또 다른 방법은 다음과 같이 trainer.add_callback()을 호출하는 것입니다:
trainer = Trainer(...)
trainer.add_callback(MyCallback)
# Alternatively, we can pass an instance of the callback class
trainer.add_callback(MyCallback())TrainerState
클래스 transformers.TrainerState
< source >( epoch: float = 0global_step: int = 0max_steps: int = 0logging_steps: int = 500eval_steps: int = 500save_steps: int = 500train_batch_size: int | None = Nonenum_train_epochs: int = 0num_input_tokens_seen: int = 0total_flos: float = 0log_history: list = Nonebest_metric: float | None = Nonebest_global_step: int | None = Nonebest_model_checkpoint: str | None = Noneis_local_process_zero: bool = Trueis_world_process_zero: bool = Trueis_hyper_param_search: bool = Falsetrial_name: str | None = Nonetrial_params: dict[str, str | float | int | bool] | None = Nonestateful_callbacks: list['TrainerCallback'] | None = None )
매개변수
- epoch (
float, 선택 사항) — 학습 중에만 설정되며, 현재 학습이 진행 중인 epoch를 나타냅니다(소수 부분은 현재 epoch의 완료 비율을 나타냅니다). - global_step (
int, 선택 사항, 기본값 0) — 학습 중에 완료된 업데이트 단계 수를 나타냅니다. - max_steps (
int, 선택 사항, 기본값 0) — 현재 학습 중에 수행할 업데이트 단계 수입니다. - logging_steps (
int, 선택 사항, 기본값 500) — X 업데이트 스텝마다 로그를 기록합니다 - eval_steps (
int, 선택 사항) — X단계마다 평가를 실행합니다. - save_steps (
int, 선택 사항, 기본값 500) — X개의 업데이트 스프에프마다 체크포인트를 저장합니다. - train_batch_size (
int, 선택 사항) — 학습 dataloader의 배치 크기입니다.auto_find_batch_size를 사용한 경우에만 필요합니다. - num_input_tokens_seen (
int, 선택 사항, 기본값 0) — 입력 토큰을 추적할 때, 학습 중에 확인된 토큰의 수(예측 토큰의 수가 아닌 입력 토큰의 수)입니다. - total_flos (
float, 선택 사항, 기본값 0) — 학습 시작 이후 모델이 수행한 전체 부동 소수 연산 횟수(오버플로를 방지하기 위해 float로 저장됨). - log_history (
list[dict[str, float]], 선택 사항) — 학습 시작 이후 수행된 로그의 목록입니다. - best_metric (
float, 선택 사항) — 최적의 모델을 추적할 때, 지금까지 발견된 최적 지표의 값입니다. - best_global_step (
int, 선택 사항) — 최적의 모델을 추적할 때, 최적의 지표가 관찰된 단계입니다.best_model_checkpoint를 설정하는 데 사용됩니다. - best_model_checkpoint (
str, 선택 사항) — 최적의 모델을 추적할 때, 지금까지 발견된 최적 모델의 체크포인트 이름 값입니다. - is_local_process_zero (
bool, 선택 사항, 기본값True) — 이 프로세스가 로컬(예: 여러 기계에서 분산 방식으로 학습하는 경우 한 기계에서) 메인 프로세스인지 여부. - is_world_process_zero (
bool, 선택 사항, 기본값True) — 이 프로세스가 전역 메인 프로세스인지 여부입니다(여러 기계에서 분산 방식으로 학습하는 경우, 이 값은 하나의 프로세스에서만True가 됩니다). - is_hyper_param_search (
bool, 선택 사항, 기본값False) — Trainer.hyperparameter_search를 사용하여 하이퍼파라미터 탐색을 수행 중인지 여부입니다. 이 값은 TensorBoard에 데이터가 기록되는 방식에 영향을 미칩니다. - stateful_callbacks (
list[StatefulTrainerCallback], 선택 사항) —Trainer에 연결되어 상태가 저장되거나 복원되어야 하는 Callbacks입니다. 해당 Callbacks은state와from_state함수를 구현해야 합니다.
체크포인트 생성 시 모델과 옵티마이저와 함께 저장되고 TrainerCallback에 전달되는 Trainer 내부 상태를 포함하는 클래스
이 클래스에서 한 단계는 한 번의 업데이트 단계를 의미합니다. 그라디언트 축적을 사용할 경우, 한 번의 업데이트 단계에 여러 번의 포워드 및 백워드 패스가 필요할 수 있습니다.
gradient_accumulation_steps=n을 사용하면 한 번의 업데이트 단계에 n개의 배치로 진행해야 합니다.
비율인지 여부에 따라 로깅, eval, 저장 스텝에 대한 절대 값을 계산하고 저장합니다.
self에 필요한 초기 학습 참조를 저장합니다
json_path의 내용으로 인스턴스를 생성합니다.
이 인스턴스의 내용을 json_path 안에 JSON 형식으로 저장합니다.
TrainerControl
클래스 transformers.TrainerControl
< source >( should_training_stop: bool = Falseshould_epoch_stop: bool = Falseshould_save: bool = Falseshould_evaluate: bool = Falseshould_log: bool = False )
매개변수
- should_training_stop (
bool, 선택 사항, 기본값은False) — 학습을 중단할지 여부입니다.True인 경우, 이 변수는False로 다시 설정되지 않습니다. 학습은 단순히 중단됩니다. - should_epoch_stop (
bool, 선택 사항, 기본값은False) — 현재 epoch을 중단할지 여부입니다.True인 경우, 이 변수는 다음 epoch의 시작 시점에False로 재설정됩니다. - should_save (
bool, 선택 사항, 기본값은False) — 이 단계에서 모델을 저장할지 여부입니다.True인 경우, 이 변수는 다음 단계의 시작 시False로 재설정됩니다. - should_evaluate (
bool, 선택 사항, 기본값은False) — 이 단계에서 모델을 평가할지 여부입니다.True인 경우, 이 변수는 다음 단계의 시작 시False로 재설정됩니다. - should_log (
bool, 선택 사항, 기본값은False) — 이 단계에서 로그를 보고할지 여부입니다.True인 경우, 이 변수는 다음 단계의 시작 시False로 재설정됩니다.
Trainer의 제어 흐름을 처리하는 클래스입니다. 이 클래스는 TrainerCallback에 의해 학습 루프에서 일부 스위치를 활성화하는 데 사용됩니다.