Hugging Face의 Transformers 라이브러리를 사용하여 모델을 학습할 때, 체크포인트(Checkpoint)를 저장하는 주기를 변경하는 방법은 Trainer 클래스의 인자 중 하나인 save_strategy를 조정하는 것입니다. save_strategy를 사용하여 체크포인트 저장 주기를 조정할 수 있습니다.
Trainer 클래스에서 save_strategy 인자를 사용하여 체크포인트 저장 주기를 설정하는 방법은 다음과 같습니다
from transformers import Trainer, TrainingArguments
# Trainer와 TrainingArguments를 설정합니다.
training_args = TrainingArguments(
output_dir="./results", # 결과 저장 디렉토리
save_strategy="epoch", # 체크포인트 저장 주기 설정 (기본값은 'steps')
save_total_limit=3, # 저장되는 총 체크포인트의 개수 (생략 가능)
num_train_epochs=5, # 학습할 에폭 수
per_device_train_batch_size=16,
logging_dir="./logs",
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
data_collator=data_collator,
tokenizer=tokenizer,
)
# 모델을 학습합니다.
trainer.train()
위 코드에서 save_strategy 인자를 "epoch"로 설정하면 에폭 단위로 체크포인트를 저장하게 됩니다. 따라서 학습 중간 중간에 체크포인트가 저장되지 않고, 각 에폭이 끝난 후에 저장됩니다.
또한, save_total_limit 인자를 사용하여 저장되는 총 체크포인트의 개수를 제한할 수 있습니다. 이를 사용하여 저장된 체크포인트의 개수를 제어할 수 있습니다. save_total_limit을 설정하지 않으면 모든 체크포인트가 저장됩니다.
save_strategy 인자의 다른 옵션으로는 "steps"가 있습니다. 이 경우에는 학습 단계(step) 단위로 체크포인트가 저장됩니다. save_strategy="steps"를 사용할 때는 save_steps 인자를 함께 사용하여 저장할 학습 단계의 주기를 설정할 수도 있습니다. 예를 들어, save_steps=500으로 설정하면 매 500번의 학습 단계가 끝날 때마다 체크포인트가 저장됩니다.
자세한 설정은 Hugging Face Transformers 라이브러리의 문서를 참고하시면 도움이 됩니다.
'데이터 분석 > 머신러닝' 카테고리의 다른 글
[2023/09/11 ~ 09/17] 이번 주의 주요 ML 논문 (Top ML Papers of the Week) (2) | 2023.09.19 |
---|---|
Hugging Face, Training Cluster As a Service 공개 (2) | 2023.09.08 |
Vision Encoder Decoder Model 샘플 코드 (0) | 2023.07.27 |
디코더(Decoder)의 특수 토큰(Special Token) (0) | 2023.07.27 |
Transformer Beam Search 란? (0) | 2023.07.27 |