피드로 돌아가기
Using LoRA for Efficient Stable Diffusion Fine-Tuning
Hugging Face BlogHugging Face Blog
AI/ML

Hugging Face가 LoRA 기법을 Stable Diffusion에 적용해 GPU 메모리 11GB로 전체 모델 파인튜닝 가능하게 했으며, 학습 가중치를 1000배 축소(3MB)한 배포 방식 도입

Using LoRA for Efficient Stable Diffusion Fine-Tuning

2023년 1월 26일10intermediate

Context

Stable Diffusion 모델의 전체 파인튜닝은 GPU 메모리 요구량이 높아 진입 장벽이 높았으며, 파인튜닝된 모델 배포 시 전체 모델(수GB)을 다시 공유해야 해 저장소와 다운로드 비용이 가파르게 증가했다.

Technical Solution

  • Microsoft의 LoRA(Low-Rank Adaptation) 기법을 Stable Diffusion의 cross-attention 레이어에 적용: 사전학습 가중치는 동결하고 rank-decomposition 행렬만 학습 대상으로 지정
  • Diffusers 라이브러리에 cross-attention 레이어 접근 인터페이스 추가: 기존 소스 코드 해킹 방식 대신 표준화된 방식으로 LoRA 주입 계층 구현
  • Dreambooth 및 전체 파인튜닝 방식 모두에 대응하는 LoRA 학습 스크립트 제공: train_text_to_image_lora.py 스크립트로 11GB VRAM 환경에서 실행 가능하도록 최적화
  • 학습률을 기존 1e-6 수준에서 1e-4로 조정: LoRA 학습 특성에 맞춘 하이퍼파라미터 변경
  • 파인튜닝된 가중치만 별도 저장: 원본 모델 대신 새로운 레이어 가중치만 3.29MB 크기로 저장 및 배포 가능

Impact

  • GPU 메모리 요구량 감소: 2080 Ti(11GB VRAM)에서 전체 파인튜닝 가능
  • 모델 가중치 크기 감소: 학습된 가중치를 1000배 축소(3MB로 저장)
  • 학습 시간 단축: Pokémon 데이터셋 기준 2080 Ti에서 약 5시간(15,000 스텝)
  • 배포 비용 감소: 1000개 Dreambooth 모델 기준으로 전체 모델 배포 대신 3MB 파일 공유로 저장소 및 다운로드 비용 대폭 절감

Key Takeaway

파라미터 수를 극적으로 감소시키지 않으면서도 학습 효율을 확보하는 저랭크 분해 전략은 대규모 생성 모델의 커뮤니티 배포 생태를 근본적으로 변화시킬 수 있으며, 배포 아티팩트의 크기 최소화는 분산 학습 생태계 참여 진입장벽을 낮추는 핵심 설계 원칙이다.


Stable Diffusion 파인튜닝이 필요한 엔지니어링 팀이라면 LoRA를 Diffusers 라이브러리와 함께 도입할 때, 학습률을 1e-4로 설정하고 cross-attention 레이어만 대상으로 제한하면 11GB GPU 메모리에서도 전체 모델 파인튜닝을 완료할 수 있으며, 생성된 3MB 가중치 파일만 배포하면 기존 배포 방식 대비 저장소 및 대역폭 비용을 1000배 절감할 수 있다.

원문 읽기