Trainer.pause() / Trainer.resume() API 추가. 완료된 step 경계에서 학습 상태를 저장하고 같은 Trainer 또는 새 프로세스에서 다음 batch부터 학습 재개.
Model, optimizer, scheduler, AMP scaler, step/epoch, RNG, dataloader 위치와 crop patch buffer 복원. 일반 save_checkpoint()의 저장 형식은 유지.
[의존성]
SaigeToolkit>=2.8.3,<2.9.0 적용. Worker의 Tensor serialization·종료 안정성 수정 및 공통 resume 오류 처리 반영.
[기능 수정]
Pause/resume 지원 범위를 API에서 사용하는 Adam/AdamW optimizer와 MultiStepLR scheduler로 제한. 미지원 optimizer는 -413339, scheduler는 -413340 반환. Custom 설정의 일반 학습과 save_checkpoint()는 유지.
학습 재개 시 모듈 버전 검사를 checkpoint의 상세 형식 검사보다 먼저 수행하도록 수정했습니다.
학습 중단 오류(TrainingPausedError) 메시지에 Trainer 재생성 안내를 추가했습니다.
일반 checkpoint의 epoch_step에 epoch가 저장되던 오류 수정. Resume 시 저장된 step으로 epoch/epoch_step을 다시 계산.
Model·optimizer·scheduler·scaler·counter·RNG와 loader/sampler state의 형식·수치, crop buffer의 학습 필수 항목·값을 복원 전에 검사하여 잘못된 checkpoint를 -413321로 거절.
Config/data/device 불일치와 미지원 loader/sampler를 DET 오류 code로 처리.
범용 state 검사·학습 실패 처리·pause 후 worker 정리를 Toolkit 공통 구현으로 연결. DET checkpoint v2와 crop payload 검사 및 기존 오류 code는 유지.
NaN loss 오류 code를 -400300에서 -413310으로 변경.
데이터 fetch 오류 시 실패한 base batch를 건너뛰고 원래 오류를 반환하여 다음 호출에서 학습 재시도 가능. Crop buffer는 보존하며, loader 복구 자체가 실패하면 -413338로 추가 학습을 차단.
Micro-batch의 데이터 전송·forward·NaN 검사·backward 실패 시 부분 누적 gradient를 비워 다음 학습에 섞이지 않도록 수정.
Gradient clipping·optimizer/scaler/scheduler 처리 실패 시 추가 학습을 차단하도록 수정.
[호환성]
Resume checkpoint는 DET 모듈의 major/minor version과 각 state의 format_version이 같으면 patch version이 달라도 재개 가능. Major/minor가 다르면 -413329, 지원하지 않는 state 형식은 -413321로 거절.
Pause를 쓰지 않는 기본 학습도 resumable loader로 동작하므로, 같은 seed를 사용해도 2.4.x와 shuffle·augmentation 결과가 달라집니다.
[문서]
학습 실패 후 재시도 조건과 pause 파일이 없을 때의 복구 방법 명시.
Train API의 pause/resume 사용 조건과 metadata 설명 및 demo/train.py 예시 추가.
README의 clone 주소와 이동 경로를 현재 GitHub 저장소 기준으로 수정.
API와 README의 모델 설명에 v2_fast 등 공식 network_type 명칭 사용.
2.4.4
Released on 2026-06-17
[기능 추가]
Train에 사용된 dataset의 class별 라벨 갯수를 리턴하는 get_class_label_counts() API 추가
2.4.3
Released on 2025-09-16
[의존성]
SaigeToolkit 2.7.x 대응
2.4.2
Released on 2025-05-19
[기능 추가]
crop 데이터 활성화 이후 클래스 당 최소 1장의 존재하지 않을 수 있는 경우 에러를 발생하는 비즈니스 로직 추가.
Standard 모델에서 최대 300개의 output이 나올 수 있도록 조정. (기존 100개.)
2.0.39
[기능 추가]
내부 사용 API 추가 (UDDD에서 사용)
2.0.38
[기능 추가]
NanLossError 추가.
[기타]
최신 SaigeToolkit (09cefc5003683933087b79ac2ace0bc733d61174) 반영.
2.0.37
[Bug fix]
lr_backbone 사용 시, lr 및 lr_backbone 외 파라미터가 optimizer에 전달되지 않는 문제 수정.
AMP 적용시, GradScaler init_scale 조정 및 growth_interval 조정. (DINO with SwinT, DINO with SwinL의 학습 불안정 문제 해소.)
[기타]
transformers==4.38.2 로 requirements.txt 수정.
최신 SaigeToolkit (e11ace812f64fe8bf0bda87906e9fbe0bf213722) 반영.
2.0.36
[기능 변경]
DET Accurate 모델에 대해서 AMP(Automatic Mixed Precision) 해제 및 이와 관련하여 micro batch 수정. 이미지 사이즈 512*512부터 내부적으로 micro batch를 사용함. (기존 800 * 800 초과일 때 사용.) detection accurate 학습 중 에러 발생