피드로 돌아가기
Hugging Face BlogAI/ML
원문 읽기
AMD GPU와 ROCm을 활용해 Vicuna-13B 모델을 단일 GPU에서 28GB에서 GPTQ 4비트 양자화로 메모리 요구량을 대폭 감소시켜 실행
Run a Chatgpt-like Chatbot on a Single GPU with ROCm
AI 요약
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)로 충당 가능하다.