Transformers documentation

콜백

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

콜백

Callbacks는 PyTorch Trainer의 학습 루프 동작을 사용자 정의할 수 있는 객체로, 학습 루프 상태를 검사하여 진행 상황을 보고하거나 TensorBoard 또는 다른 ML 플랫폼에 로깅하는 등의 작업을 수행하고, 조기 종료와 같은 결정을 내릴 수 있습니다.

Callbacks는 반환하는 TrainerControl 객체를 제외하고는 “읽기 전용” 코드 조각이며, 학습 루프의 어떤 것도 변경할 수 없습니다. 학습 루프의 변경이 필요한 커스터마이징을 하려면 Trainer를 서브클래스로 상속받아 필요한 메서드를 오버라이드해야 합니다(예는 trainer를 참고하세요).

기본적으로 TrainingArguments.report_to는 "none"으로 설정됩니다.

콜백을 구현하는 주요 클래스는 TrainerCallback입니다. Trainer를 인스턴스화할 때 사용된 TrainingArguments를 가져오고, TrainerState를 통해 해당 Trainer의 내부 상태에 접근할 수 있으며, TrainerControl를 통해 학습 루프에서 일부 작업을 수행할 수 있습니다.

사용 가능한 콜백

라이브러리에서 사용할 수 있는 TrainerCallback 목록은 다음과 같습니다:

클래스 transformers.integrations.CometCallback

< >

( )

Comet ML로 로그를 전송하는 TrainerCallback입니다.

설정

< >

( argsstatemodel )

선택 사항인 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를 사용할 수 있습니다.

환경에서 설정할 수 있는 항목에 대해서는 여기를 참조하세요.

클래스 transformers.DefaultFlowCallback

< >

( )

로그, 평가 및 체크포인트를 위한 학습 루프의 기본 흐름을 처리하는 TrainerCallback입니다.

class transformers.PrinterCallback

< >

( )

로그만 출력하는 단순한 TrainerCallback입니다.

클래스 transformers.ProgressCallback

< >

( max_str_len: int = 100 )

학습 또는 평가의 진행 상황을 표시하는 TrainerCallback입니다. max_str_len을 수정하여 로깅 시 문자열이 잘리는 길이를 제어할 수 있습니다.

클래스 transformers.EarlyStoppingCallback

< >

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

매개변수

  • early_stopping_patience (int) — metric_for_best_model과 함께 사용하여, 지정된 지표가 early_stopping_patience번 평가 호출 동안 악화되면 학습을 중단합니다.
  • early_stopping_threshold(float, 선택 사항) — TrainingArguments의 metric_for_best_model 및 early_stopping_patience와 함께 사용하여, 조기 종료 조건을 충족하기 위해 지정된 지표가 얼마나 개선되어야 하는지를 나타냅니다.

조기 정지를 처리하는 TrainerCallback입니다.

이 콜백은 TrainerState의 best_metric를 설정하기 위해 TrainingArguments 인수의 load_best_model_at_end 기능을 사용합니다. TrainingArguments 인수의 save_steps가 eval_steps와 다르면, 다음 저장 단계가 될 때까지 조기 정지가 발생하지 않는다는 점에 유의하세요.

class transformers.integrations.TensorBoardCallback

< >

( tb_writer = None )

매개변수

  • tb_writer (SummaryWriter, 선택 사항) — 사용할 writer입니다. 설정되지 않은 경우 하나를 인스턴스화합니다.

TrainerCallback은 TensorBoard에 로그를 전송합니다.

환경:

  • TENSORBOARD_LOGGING_DIR (str, 선택 사항, 기본값 None): 결과를 기록할 로깅 디렉터리입니다. 기본값은 os.path.join(args.output_dir, default_logdir())입니다.

class transformers.integrations.TrackioCallback

< >

( )

Trackio에 메트릭을 기록하는 TrainerCallback입니다.

설정

< >

( argsstatemodel**kwargs )

선택 사항인 Trackio 통합을 설정합니다.

설정을 사용자 지정하려면 TrainingArguments에서 project, trackio_space_id, trackio_bucket_id, trackio_static_space_id, hub_private_repo도 설정할 수 있습니다.

class transformers.integrations.WandbCallback

< >

( )

Weight and Biases에 지표, 미디어, 모델 체크포인트를 기록하는 TrainerCallback입니다.

설정

< >

( argsstatemodel**kwargs )

선택 사항인 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"): 결과를 다른 프로젝트에 저장하려면 이 값을 사용자 지정 문자열로 설정합니다.

class transformers.integrations.MLflowCallback

< >

( )

로그를 MLflow로 전송하는 TrainerCallback입니다. 환경 변수 DISABLE_MLFLOW_INTEGRATION = TRUE를 설정하여 비활성화할 수 있습니다.

설정

< >

( argsstatemodel )

선택 사항인 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, 선택 사항): 실행에서 기록할 매개변수의 최대 수를 설정합니다.

class transformers.integrations.AzureMLCallback

< >

( azureml_run = None )

A TrainerCallback that sends the logs to AzureML.

class transformers.integrations.CodeCarbonCallback

< >

( )

학습의 CO2 배출량을 추적하는 TrainerCallback입니다.

class transformers.integrations.ClearMLCallback

< >

( )

TrainerCallback은 ClearML로 로그를 전송합니다.

환경:

  • CLEARML_PROJECT (str, 선택 사항, 기본값 HuggingFace Transformers): ClearML 프로젝트 이름입니다.
  • CLEARML_TASK (str, 선택 사항, 기본값 Trainer): ClearML 작업 이름입니다.
  • CLEARML_LOG_MODEL (bool, 선택 사항, 기본값 False): 학습 중에 모델을 아티팩트로 기록할지 여부입니다.

class transformers.integrations.DagsHubCallback

< >

( )

DagsHub에 로깅하는 TrainerCallback입니다. MLflowCallback을 확장합니다.

설정

< >

( *args**kwargs )

DagsHub의 로깅 통합을 설정합니다.

환경:

  • HF_DAGSHUB_LOG_ARTIFACTS (str, 선택 사항): 실험의 데이터 및 모델 산출물을 저장할지 여부입니다. 기본값은 False입니다.

class transformers.integrations.FlyteCallback

< >

( save_log_history: bool = Truesync_checkpoints: bool = True )

매개변수

  • save_log_history (bool, 선택 사항, 기본값 True) — True로 설정하면 학습 로그가 Flyte Deck으로 저장됩니다.
  • sync_checkpoints (bool, 선택 사항, 기본값 True) — True로 설정하면 체크포인트가 Flyte와 동기화되어 중단된 경우 학습을 재개하는 데 사용할 수 있습니다.

TrainerCallback의 한 종류로, 로그를 Flyte로 전송합니다. 참고: 이 콜백은 Flyte 태스크 내에서만 작동합니다.

예:

# 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())

class transformers.integrations.KubeflowCallback

< >

( )

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

< >

( 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에서 아래 환경 변수를 사용하여 통합을 구성합니다. 해당 환경 변수를 넘어 이 콜백을 커스터마이징하려면 여기를 참조하세요.

설정

< >

( argsstatemodel )

선택 사항인 DVCLive 통합을 설정합니다. 아래 환경 변수를 넘어 이 콜백을 사용자 지정하려면 여기를 참조하세요.

환경:

  • HF_DVCLIVE_LOG_MODEL (str, 선택 사항): Trainer가 생성한 체크포인트를 dvclive.Live.log_artifact()로 기록할지 여부입니다. True 또는 1으로 설정하면 학습이 끝난 시점에 최종 체크포인트가 기록됩니다. all로 설정하면 각 체크포인트마다 TrainingArguments의 output_dir 전체가 기록됩니다.

class transformers.integrations.SwanLabCallback

< >

( )

SwanLab에 지표, 미디어, 모델 체크포인트를 기록하는 TrainerCallback입니다.

설정

< >

( argsstatemodel**kwargs )

선택 사항인 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

< >

( )

매개변수

  • 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

< >

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

에포크 시작 시 호출되는 이벤트입니다.

on_epoch_end

< >

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

에포크가 끝날 때 호출되는 이벤트입니다.

on_evaluate

< >

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

평가 단계 이후에 호출되는 이벤트.

on_init_end

< >

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

Trainer의 초기화가 끝날 때 호출되는 이벤트입니다.

on_log

< >

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

마지막 로그를 기록한 후 호출되는 이벤트입니다.

on_optimizer_step

< >

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

옵티마이저 단계 이후, 그라디언트가 제로로 초기화되기 전에 호출되는 이벤트입니다. 그라디언트를 모니터링하는 데 유용합니다.

on_pre_optimizer_step

< >

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

optimizer 단계 전에 호출되지만, 그라디언트 클리핑 이후에 호출되는 이벤트입니다. 그라디언트를 모니터링하는 데 유용합니다.

on_predict

< >

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

성공적인 예측 후에 호출되는 이벤트.

on_prediction_step

< >

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

예측 단계 이후에 호출되는 이벤트.

on_push_begin

< >

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

on_save

< >

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

checkpoint 저장 후 호출되는 이벤트입니다.

on_step_begin

< >

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

학습 단계의 시작 시점에 호출되는 이벤트. 그라디언트 축적을 사용하는 경우, 하나의 학습 단계에 여러 입력이 포함될 수 있습니다.

on_step_end

< >

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

학습 단계의 끝에서 호출되는 이벤트. 그라디언트 축적을 사용하는 경우, 하나의 학습 단계에 여러 입력이 포함될 수 있습니다.

on_substep_end

< >

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

Gradient accumulation 중 substep의 끝에서 호출되는 이벤트입니다.

on_train_begin

< >

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

학습 시작 시점에 호출되는 이벤트입니다.

on_train_end

< >

( 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

< >

( 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개의 배치로 진행해야 합니다.

compute_steps

< >

( argsmax_steps )

비율인지 여부에 따라 로깅, eval, 저장 스텝에 대한 절대 값을 계산하고 저장합니다.

init_training_references

< >

( trainermax_stepsnum_train_epochstrial )

self에 필요한 초기 학습 참조를 저장합니다

load_from_json

< >

( json_path: str )

json_path의 내용으로 인스턴스를 생성합니다.

save_to_json

< >

( json_path: str )

이 인스턴스의 내용을 json_path 안에 JSON 형식으로 저장합니다.

TrainerControl

클래스 transformers.TrainerControl

< >

( 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에 의해 학습 루프에서 일부 스위치를 활성화하는 데 사용됩니다.

Update on GitHub