GN⁺: Show HN: 속도 80% 향상, 메모리 사용량 50% 감소, 정확도 손실 0%인 Llama 파인튜닝
(github.com/unslothai)QLoRA 모델 튜닝의 효율성 향상
- QLoRA/LoRA 모델은 수동으로 유도된 역전파 단계를 통해 80% 빠른 속도와 50% 적은 메모리 사용을 달성함.
- OpenAI의 Triton 언어로 작성된 모든 커널은 정확성 손실 없이 최적화됨.
- 하드웨어 변경 없이 NVIDIA GPU(2018년 이후 모델, CUDA 7.5+ 지원)에서 사용 가능함.
- Flash Attention 지원과 4비트 및 16비트 LoRA 파인튜닝 지원을 통해 효율적인 모델 트레이닝 가능함.
- Slim Orca 모델을 로컬 환경에서 1301시간에서 260시간으로 대폭 줄인 시간 안에 트레이닝할 수 있음.
- 오픈 소스 버전은 5배 빠른 트레이닝을 제공하며, Unsloth Pro와 Max 코드 경로는 최대 30배 빠른 트레이닝을 제공함.
설치 지침
- Unsloth는 리눅스 배포판과 Pytorch 2.1 이상 버전에서만 지원함.
- Conda와 Pip을 통해 설치할 수 있으며, CUDA 버전에 따라 적절한 패키지를 선택하여 설치함.
Alpaca 모델 예시
- FastLlamaModel을 사용하여 Llama 모델을 로드하고, 4비트 양자화를 통해 메모리 사용을 줄임.
- 모델 패치와 빠른 LoRA 가중치를 추가하여 성능을 향상시킴.
- Huggingface의 Trainer와 데이터셋 로딩을 사용하여 모델 트레이닝 가능함.
미래의 목표와 한계
- 메모리 사용을 25% 추가로 줄일 수 있는 sqrt 그래디언트 체크포인팅 지원 예정.
- 현재는 Llama 모델만 지원하지만, 향후 다른 모델들도 지원할 계획임.
성능 비교
- Tesla T4 GPU를 사용한 경우, Unsloth는 Huggingface에 비해 훨씬 빠른 에포크 시간과 낮은 메모리 사용을 보임.
- 단일 GPU와 다중 GPU 시스템 모두에서 Unsloth의 Pro와 Max 버전이 더 높은 성능을 제공함.
문제 해결
-
bitsandbytes
또는xformers
가 제대로 연결되지 않을 때 해결 방법 제공. - 현재 Windows는 지원되지 않으며, Xformers와 Triton이 Windows를 공식 지원하게 되면 Unsloth도 지원할 예정임.
- 설치에 문제가 있을 경우,
pip
을 업데이트하는 것이 해결책이 될 수 있음.
GN⁺의 의견
이 기사에서 가장 중요한 점은 QLoRA/LoRA 모델의 튜닝이 기존 방법보다 훨씬 빠르고 메모리 효율성이 높다는 것이다. 이러한 최적화는 인공지능 모델의 트레이닝 시간과 비용을 대폭 줄여주므로, 초급 소프트웨어 엔지니어들에게도 매력적인 솔루션이 될 수 있다. 또한, 이 기사는 오픈 소스 기술의 발전과 그것이 어떻게 기술의 접근성을 높이는지에 대한 흥미로운 사례를 제공한다.