ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Unsloth: Cheeper LLM Training
    machine learning 2024. 9. 21. 21:34

    * Unsloth이 왜 좋은지, 어떻게 좋은지를 설명합니다.

    Unsloth 소개

    개요

    • Danial / Micheal Han  명의 개발자가 공개한 Open Source LLM Fine-Tuning Framework입니다.
    • “가난한 자의 finetune 솔루션”이라고 불리우며, 이름에 걸맞게 적은 자원(심지어 GTX와 같은 소비자용 그래픽카드)에서도 LLM을 finetune   있는 방법을 제공합니다.

    강점

    • 학습 속도의 향상
      • Unsloth는 전통적인 학습 기법에 비해 현저한 학습 속도 향상을 제공합니다.
      • 사용하는 LLM 모델과 GPU 종류에 따라 성능 차이가 있을 수 있지만, 대부분의 조합에서 기존 학습 기법을 능가하는 성능을 발휘합니다.
    • 메모리 사용량 감소
      • Unsloth는 메모리 효율화 기술을 적극 활용하여 학습에 필요한 메모리 사용량을 최소화합니다.
      • 이를 통해 멀티 GPU를 요구하는 대형 모델도 단일 GPU에서 파인튜닝할 수 있도록 지원합니다.
    • 다양한 하드웨어  허깅페이스 생태계와의 호환성
      • Unsloth는 GTX 1070부터 최신 H100까지 대부분의 NVIDIA GPU를 지원하며, Datasets, SFTTrainer, DPOTrainer, PPOTrainer 등 허깅페이 스 라이브러리와의 호환성을 갖습니다. 
      • 이를 통해 사용자는 기존에 익숙한 개발 환경을 그대로 활용할 수 있습니다.

     

    How to work

    • Intelligent Weight Upcasting (지능형 가중치 업케스팅)
      • 일반적으로 QLoRA를 사용할 때 학습 안정화를 위해 모델의 일부 계층을 FP32로 업캐스팅합니다.
      • 허깅페이스의 Transformers는 범용적인 모델 아키텍처에 맞춰 업캐스팅을 수행하지만, Unsloth는 Mistral, LLaMA 등 개별 모델에 최적 화하여 메모리 및 연산 효율성을 극대화합니다.
    • Manual Autograd (수동 그래디언트 계산)
      • Pytorch의 Autograd는 그래디언트를 자동으로 계산하는 핵심 구성 요소이지만, LoRA와 같은 파인튜닝 학습에서는 최적화가 덜 되어 있습니다.
      • Unsloth는 이러한 자동 미분 계산을 더 작은 연산으로 최적화하여 수동으로 계산함으로써 연산 비용을 줄입니다.
    • Triton 커널
      • Unsloth는 OpenAI가 개발한 고성능 컴퓨팅 언어인 Triton을 사용하여 학습 코드의 핵심 부분을 재작성해 성능을 향상시켰습니다.
      • Triton은 고성능 GPU 코드를 간단하게 작성할 수 있게 해주며, 이를 통해 Unsloth는 파인튜닝의 효율성을 높였습니다.
    • xFormers 프레임워크 사용
      • Unsloth는 커스텀 Triton 커널로 트랜스포머 모델의 여러 구성 요소를 최적화합니다.
      • 특히 Flash-Attention을 기본적으로 사용하여 가속화를 도모합니다. 이를 통해 메모리 사용량을 줄이고 연산 속도를 높입니다.

     

Designed by Tistory.