AI Toolkit LoRA Training Guides

AI Toolkit의 CUDA Out of Memory 오류 해결하기

AI Toolkit OOM 장애 빠른 문제 해결 가이드: 모델 로드, 학습, 샘플링 중 어느 단계에서 크래시가 발생하는지 파악한 후 Batch Size, Gradient Checkpointing, 해상도, 프레임 수, 프리뷰 설정을 조정하세요.

Train Diffusion Models with Ostris AI Toolkit

AI Toolkit CUDA Out of Memory: 모델 로드, 학습, 샘플링 중 OOM 해결하기

AI Toolkit 작업이 CUDA out of memory, OOM during training step 3 times in a row, 또는 0 bytes is free로 실패한다면, 같은 작업을 수정 없이 재실행하지 마세요.

실제로 AI Toolkit의 OOM 오류 대부분은 다음 네 곳 중 하나에서 발생합니다:

  1. 모델 로드 (실제 학습 시작 전)
  2. 처음 몇 학습 스텝
  3. 프리뷰 샘플링 / 베이스라인 샘플 생성
  4. 비디오 특화 스파이크 (프레임이 너무 많거나, 버킷이 너무 크거나, 또는 둘 다)

이 가이드는 빠른 복구 경로입니다. 어떤 OOM인지 파악하고, RunComfy AI Toolkit에서 올바른 설정을 변경하여, 더 빠르게 성공적인 재시도에 도달하세요.


빠른 수정 체크리스트 (여기서 시작)

  • Training에서 Batch Size 줄이기
  • Datasets에서 가장 높은 Resolution 버킷을 먼저 비활성화
  • Sample에서 Width / Height / Sample Steps 줄이거나, 일시적으로 Disable Sampling 켜기
  • Show Advanced 클릭하여 gradient_checkpointing: true 확인
  • ✅ 비디오 모델은 learning rate보다 Num Frames를 먼저 줄이기
  • ✅ 매우 보수적인 설정에서도 에러가 나면, 설정 문제만이 아닌 Worker / GPU 상태 문제로 취급

1) 같은 문제인지 확인

로그에 다음과 같은 메시지가 있다면 이 가이드의 대상입니다:

CUDA out of memory
torch.OutOfMemoryError
OOM during training step 3 times in a row
Tried to allocate ...
0 bytes is free
CUBLAS_STATUS_ALLOC_FAILED

일반적인 상황:

  • 작업이 스텝 1 전에 실패
  • 스텝 2–10에 도달한 후 반복적으로 OOM
  • 학습은 괜찮아 보이지만 샘플 생성 시 크래시
  • 같은 설정이 때로는 성공, 때로는 실패

2) 먼저: 어떤 종류의 OOM인가?

A. 모델 로드 시 또는 학습 시작 전 OOM

보통 다음 중 하나를 의미합니다:

  • 현재 메모리 절약 설정으로는 모델이 너무 무거움
  • 프리뷰 / 베이스라인 샘플 생성이 이미 너무 비쌈
  • Worker / GPU 상태가 나쁘고 클린 메모리에서 시작하지 않음

전형적인 징후:

  • 의미 있는 학습 스텝 시작 전에 실패
  • 모델 로드 직후 또는 첫 샘플 중 에러
  • 로그에 거의 VRAM 여유 없음 또는 CUBLAS 할당 에러

B. 처음 몇 학습 스텝에서의 OOM

설정에 의한 가장 일반적인 케이스입니다.

전형적 원인:

  • gradient_checkpointing이 꺼져 있음
  • Batch Size가 너무 높음
  • 가장 큰 데이터셋 버킷이 너무 야심적
  • 비디오의 경우, Num Frames가 실제 메모리 스파이크

C. 샘플링 / 프리뷰 생성 시 OOM

매우 흔한 함정입니다.

학습 설정은 거의 괜찮지만 프리뷰가 너무 비쌈:

  • Sample Width / Height가 너무 큼
  • Sample Steps가 너무 높음
  • Sample Every가 너무 빈번함
  • 프리뷰 비디오 프레임이 너무 많음

D. 가끔만 OOM

보통 한계선 설정이며, 미스터리가 아닙니다.

예시:

  • 작은 버킷에서는 생존하지만 가장 큰 버킷에서 크래시
  • 비디오 학습에서 가장 무거운 클립에서만 실패
  • 학습 코어는 맞지만 샘플 생성이 한계를 넘김

3) RunComfy AI Toolkit에서 가장 빠른 수정

Fix A — Gradient checkpointing 다시 켜기

이미지 모델 OOM에서 가장 먼저 확인할 것.

변경 위치

  1. 실패한 작업 열기
  2. Show Advanced 클릭
  3. train: 아래에서 확인:
gradient_checkpointing: true

확실하지 않으면 켜둔 채로 두세요.


Fix B — Batch Size 줄이고, 안정성을 위해 Gradient Accumulation 사용

변경 위치

  • 작업 에디터 열기
  • Training 패널에서:
    • Batch Size 줄이기
    • VRAM 피크 없이 약간 더 큰 유효 배치를 원하면 Gradient Accumulation 유지 또는 증가

안전한 재시도 규칙

  • 이미지 모델: OOM이면 먼저 Batch Size = 1
  • 비디오 모델: 설정이 안정적으로 증명되지 않는 한 Batch Size = 1을 기본으로

learning rate를 첫 번째 메모리 레버로 취급하지 마세요. 보통 그렇지 않습니다.


Fix C — 가장 높은 데이터셋 버킷 먼저 제거

변경 위치

  • Datasets 패널으로 이동
  • Resolutions에서 가장 높은 버킷을 먼저 비활성화

안전한 롤백 순서

  • 1024 / 1536 → 먼저 제거
  • 안정성 확인 동안 512 / 768 유지
  • 안정되면 큰 버킷을 하나씩 다시 추가

한계선 학습을 재현 가능한 학습으로 바꾸는 가장 빠른 방법 중 하나입니다.


Fix D — 프리뷰 샘플링 비용 줄이거나 일시적 비활성화

학습이 본격적으로 시작되기 전에 크래시하거나, 샘플링이 실행될 때마다 크래시하면, 먼저 프리뷰를 수정.

변경 위치

  • Sample 패널 열기

다음 중 하나 이상 실행:

  • Width 줄이기
  • Height 줄이기
  • Sample Steps 줄이기
  • Sample Every 늘리기
  • 검증 실행을 위해 Disable Sampling 켜기

좋은 첫 재시도

"작업이 학습할 수 있는지 증명"이 목표라면, 임시로 샘플링 없는 실행도 괜찮습니다.

안정되면 더 작은 설정으로 프리뷰를 다시 활성화.


Fix E — 비디오 모델: 무엇보다 Num Frames 먼저 줄이기

비디오 모델에서 프레임이 보통 가장 큰 메모리 레버입니다.

변경 위치

  • Datasets 패널 → Num Frames
  • Sample 패널 → Num Frames

비디오 학습 중 OOM이 보이면, 프레임을 먼저 줄이고, 그 다음 배치 사이즈, 그 다음 해상도.

optimizer나 LR 변경부터 시작하지 마세요.


Fix F — 모델의 저메모리 경로 사용

일부 아키텍처는 VRAM이 빠듯할 때 메모리 절약 설정으로 학습하도록 설계되었습니다.

변경 위치

  • Show Advanced 클릭
  • model: 아래에서 찾기:
low_vram: true

일부 모델에서는 올바른 저메모리 경로에 모델 특화 양자화나 텍스트 인코더 처리도 포함됩니다. 추측 대신 해당 모델 가이드를 따르세요.


4) 실패 타이밍별 빠른 진단

크래시 시점 가장 가능성 높은 원인 첫 변경
스텝 1 전 / 초기 샘플 중 프리뷰가 무겁거나, 모델 로드 부담, 또는 더러운 워커 샘플링 비활성화 또는 프리뷰 축소
스텝 1–10 GC 꺼짐, 배치 너무 높음, 버킷 너무 큼 GC 켜기, 배치 1로, 가장 큰 버킷 제거
샘플링 시에만 프리뷰 설정 비용이 너무 높음 Width/Height/Sample Steps 줄이기 또는 샘플링 비활성화
때때로 발생 한계선 설정 가장 큰 버킷 / 프레임 줄이고 안정화
보수적 설정도 즉시 실패 GPU / 워커 상태 문제 가능성 새 워커에서 재생성 또는 지원팀 연락

5) 설정 OOM과 환경 / GPU 상태 문제 구분

다음이 모두 해당되면 설정만의 문제가 아닌 것으로 취급하세요:

  • Batch Size = 1
  • gradient_checkpointing: true
  • 보수적인 해상도 / 프레임
  • 그래도 학습이 의미 있게 시작되기 전에 실패
  • 로그에 0 bytes is free 또는 CUBLAS 할당 실패

이 경우:

  1. 같은 재시도 반복 중단
  2. 가능하면 새 워커에서 새 작업 생성
  3. 이전에 작동하던 같은 보수적 설정이 이제 즉시 실패하면, 지원팀에 에스컬레이션

반복적인 재시도는 시간과 GPU 예산 모두를 낭비할 수 있어 중요합니다.


6) 가장 안전한 롤백 순서

이미지 모델용

  1. gradient_checkpointing: true
  2. Batch Size → 1
  3. 가장 큰 Resolution 버킷 제거
  4. Sample 축소 또는 비활성화
  5. low_vram 또는 모델의 저메모리 경로 활성화

비디오 모델용

  1. Num Frames 줄이기
  2. Batch Size → 1
  3. 가장 큰 Resolution 버킷 제거
  4. Sample 축소 또는 비활성화
  5. low_vram 또는 모델 특화 오프로딩 / 양자화 활성화

7) 첫 번째 성공적인 재시도 이후

안정적인 학습을 얻은 후:

  • 한 번에 하나의 더 무거운 설정만 다시 추가
  • 무엇을 변경했는지 기록
  • 여러 고위험 설정을 동시에 재도입하지 않기

좋은 스케일업 순서:

  1. 동일한 안정적 메모리 설정 유지
  2. Steps 증가
  3. 더 큰 버킷 재활성화
  4. 더 풍부한 샘플링 재활성화
  5. 그때서야 더 큰 배치 또는 더 긴 비디오 테스트

한 줄 요약

AI Toolkit이 OOM을 던지면, 무작위 시행착오를 멈추세요.

gradient_checkpointing을 켜고, Batch Size를 줄이고, 가장 큰 Resolution 버킷을 제거하고, 프리뷰 샘플링을 가볍게 한 다음 재시도하세요.


관련 가이드

Ready to start training?