Feature Article
AirLLM — 4GB GPU에서 70B LLM 돌리는 초경량 추론 라이브러리
배경 및 맥락
LLM의 크기가 커질수록 성능은 올라가지만, 실행에 필요한 GPU 메모리도 급격히 증가한다. Llama 3.1 70B는 FP16 기준으로 약 140GB의 VRAM이 필요하고, 405B는 800GB에 달한다. 이는 A100 80GB GPU 여러 장이 필요한 수준으로, 개인 개발자나 소규모 팀에게는 접근이 어려운 영역이다.
이 문제를 해결하는 접근은 크게 두 가지다. 하나는 모델 자체를 줄이는 방법으로 양자화(quantization), 증류(distillation), 가지치기(pruning) 등이 있다. 다른 하나는 추론 파이프라인을 최적화하는 방법으로, AirLLM이 취하는 접근이다. 모델의 가중치를 건드리지 않고도 극소량의 메모리에서 돌릴 수 있게 해준다.
GitHub 스타 15,000+, 포크 1,500+, Apache 2.0 라이선스.
핵심 내용
계층별 모델 분해 (Layer-wise Decomposition)
AirLLM의 핵심 아이디어는 단순하다. Transformer 모델은 동일한 구조의 레이어가 반복되는 구조이므로, 전체 모델을 한번에 GPU에 올리는 대신 한 레이어씩 순차적으로 로드하고 계산한 뒤 해제하는 방식이다.
70B 모델의 개별 레이어는 약 1~2GB 수준이므로, 4GB GPU에서도 충분히 처리 가능하다. 이 방식의 트레이드오프는 디스크 I/O가 병목이 된다는 점이지만, SSD 기반 시스템에서는 실용적인 속도를 달성한다.
압축 및 속도 최적화 (v2.0)
v2.0에서 블록 단위 양자화 기반 압축을 도입해 3배 속도 향상을 달성했다. 이는 디스크에서 읽어야 할 데이터를 줄여서 I/O 병목을 완화하는 방식이다. 또한 프리페칭(prefetching)을 통해 다음 레이어를 미리 로드하면서 GPU 계산과 디스크 I/O를 병렬화한다.
지원 모델 및 플랫폼
지원 모델:
- Llama 시리즈: Llama 2, Llama 3, Llama 3.1 (405B 포함)
- QWen 시리즈: QWen, Qwen2.5 (v2.11.0)
- Mistral, ChatGLM, Baichuan, InternLM
플랫폼:
- Linux/Windows (NVIDIA GPU)
- macOS (Apple Silicon, v2.8.2+)
- CPU 추론 (v2.10.1+)
사용법
pip install airllm
from airllm import AutoModel
model = AutoModel.from_pretrained("모델명")
# 표준 Transformers 인터페이스로 추론
HuggingFace Transformers의 AutoModel 인터페이스를 그대로 따르므로, 기존 코드를 거의 수정하지 않고 적용할 수 있다.
경쟁 구도 / 비교
llama.cpp / GGUF: C++ 기반 양자화 추론. 모델을 GGUF 포맷으로 변환해야 하며, 양자화로 인한 정확도 손실이 있다. AirLLM은 원본 가중치를 그대로 사용하므로 정확도 손실이 없다는 게 차별점.
vLLM / TensorRT-LLM: 높은 처리량(throughput) 최적화. 대량의 동시 요청을 처리하는 데 특화되어 있지만, 대용량 GPU가 전제된다. AirLLM은 반대로 최소 리소스 환경을 타겟한다.
Ollama: 로컬 LLM 실행의 사용성에 초점. llama.cpp 기반이라 양자화된 모델을 사용한다. AirLLM은 원본 모델을 그대로 쓰는 대신 속도가 느린 트레이드오프.
정리하면: AirLLM은 "속도를 희생하더라도 정확도를 유지하면서 최소 리소스로 돌리고 싶다"는 니즈에 특화된 도구다.
의미
AirLLM이 보여주는 가장 중요한 점은, 대형 LLM의 접근성이 반드시 대용량 GPU에 의존하지 않아도 된다는 것이다. 4GB GPU로 70B 모델을 돌릴 수 있다는 것은 다음을 의미한다:
- 개인 개발자: 게이밍 노트북 수준의 GPU로도 대형 모델 테스트 가능
- 엣지 디바이스: 로컬 추론이 필요한 엣지 환경에서 활용 가능
- 모델 평가: 양자화 없이 원본 모델의 정확한 성능을 측정 가능
다만 레이턴시가 높다는 한계는 명확하다. 레이어 단위로 디스크에서 로드하는 특성상, 실시간 대화에는 적합하지 않고, 배치 추론이나 모델 평가, 엣지 환경 같은 용도에 적합하다. Qwen2.5까지 지원하며 계속 업데이트 중이라는 점에서 프로젝트의 활동성도 양호하다.