DaoyuanLi2816/can-i-finetune-this
Estimate whether a Hugging Face model fits and fine-tunes on your local GPU.
해결하는 문제
소비자급 GPU에서 대규모 언어 모델(LLM)을 미세 조정할 때 발생하는 "Out of Memory" (OOM) 오류 문제를 해결합니다. 거대한 모델 가중치를 다운로드한 후 하드웨어가 학습 프로세스를 처리할 수 없다는 것을 알게 되는 대신, 이 도구를 사용하면 시작 전에 VRAM 사용량을 추정하고 실행 가능 여부를 결정할 수 있습니다.
작동 방식
이 도구는 기본적인 추정기에서 놓치기 쉬운 다음 요인들을 고려한 메모리 모델을 사용합니다:
- Weight Memory: 다양한 정밀도(fp32, fp16, bf16, int8, NF4)를 처리하며, QLoRA의 embeddings 및 norms의 fp32 업캐스트를 고려합니다.
- Training Buffers: 대규모 어휘집을 가진 모델에서 상당한 메모리를 소비하는 logits/cross-entropy 체인을 모델링합니다.
- Parameter Tracking: LoRA/QLoRA 학습 가능 파라미터, 그래디언트 및 옵티마이저 상태(예: AdamW vs 8-bit AdamW)에 대한 메모리를 계산합니다.
- Activations: 시퀀스 길이, 배치 크기 및 모델 아키텍처를 기반으로 메모리를 추정하며, gradient checkpointing 옵션을 제공합니다.
- Validation: 사용자는 로컬 벤치마크(
bench)를 실행하고 추정치를 교정(calibrate)하여 특정 하드웨어에서의 실제 측정값을 바탕으로 정적 예측을 검증할 수 있습니다.
대상 사용자
실패하는 설정에 시간과 디스크 공간을 낭비하지 않고 LoRA 또는 QLoRA를 사용하여 오픈 웨이트 LLM을 미세 조정하고자 하는 소비자용 NVIDIA GPU(일반적으로 12–24 GB VRAM) 사용자 개발자 및 AI 연구자.
주요 특징
- VRAM 추정: 상세한 메모리 내역(정적 모델, 활성화, logits 등) 및 실행 가능 여부를 제공합니다.
- 구성 권장 사항: 사용 가능한 VRAM 내에 모델을 맞추기 위한 최적의 배치 크기, 시퀀스 길이 및 LoRA 랭크를 제안합니다.
- 레시피 생성: Hugging Face, PEFT 및 TRL 에코시스템을 사용하여 즉시 실행 가능한 학습 스크립트를 생성합니다.
- 하드웨어 검증: 사용자의 장치에서 실제 피크 메모리 사용량에 대해 추정치를 검증하기 위한 벤치마킹 스위트를 포함합니다.
관련
- Dispatch
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트