피드로 돌아가기
Run a Chatgpt-like Chatbot on a Single GPU with ROCm
Hugging Face BlogHugging Face Blog
AI/ML

AMD GPU와 ROCm을 활용해 Vicuna-13B 모델을 단일 GPU에서 28GB에서 GPTQ 4비트 양자화로 메모리 요구량을 대폭 감소시켜 실행

Run a Chatgpt-like Chatbot on a Single GPU with ROCm

2023년 5월 15일12intermediate

Context

Vicuna-13B 모델을 fp16으로 실행하려면 약 28GB의 GPU RAM이 필요하다. 대규모 언어 모델의 토큰 생성은 계산량(TFLOPs)보다 메모리 대역폭(GB/s)에 의해 제한되므로, 메모리 최적화가 지연 시간 개선에도 직결된다.

Technical Solution

  • GPTQ(Generalized Post-Training Quantization) 기법 적용: 10B 이상 파라미터를 가진 모델에서 4비트 또는 3비트 양자화로 fp16 수준의 정확도 유지
  • 양자화된 Vicuna-13B 모델 다운로드: oobabooga/text-generation-webui의 download-model.py 스크립트 사용
  • ROCm 환경 구성: Ubuntu 22.04에서 ROCm 5.4.3 설치 및 PyTorch 2.0 기반 Docker 컨테이너 실행(메모리 8GB 할당)
  • CUDA 커널을 HIP(Heterogeneous-Compute Interface for Portability)로 변환: GPTQ-for-LLaMa의 quant_cuda_kernel.cu를 ROCm 5.4.3의 HIPIFY 도구와 호환되도록 수정
  • 양자화 파라미터 조정: c4 데이터셋 기반으로 wbits 4, group size, --true-sequential, --act-order 플래그를 조합하여 모델 정확도 최적화

Impact

Vicuna-13B 모델의 총 학습 비용은 약 300달러이며, GPT-4를 기준으로 Vicuna-13B는 OpenAI ChatGPT 대비 90% 이상의 품질 달성.

Key Takeaway

AMD GPU 기반 LLM 추론 환경에서는 GPTQ 양자화와 CUDA-to-HIP 커널 포팅을 결합하면, 메모리 제약 없이 단일 GPU에서 대규모 모델을 실행할 수 있으며, 양자화가 메모리 대역폭 제약 상황에서 토큰 생성 지연을 저하시키지 않는 특성을 활용해야 한다.


AMD Instinct 또는 Radeon GPU 기반 추론 서비스를 구축하는 엔지니어는 GPTQ 4비트 양자화 모델과 ROCm 환경에서 quant_cuda_kernel.cu의 VecQuant4MatMulKernelFaster 커널을 A100 대신 ROCM

5.

4.3 호환 형태로 수정 적용하면, 28GB 메모리 요구를 단일 고급 GPU 메모리(16GB~24GB)로 충당 가능하다.

원문 읽기