모델 지원 범위 및 VRAM 요구 사양

4GB VRAM을 가진 단일 GPU에서 70B 파라미터 규모의 모델을 추론할 수 있는 환경이 마련됐다. AirLLM은 양자화(Quantization), 증류(Distillation), 가지치기(Pruning) 없이도 메모리 사용량을 극단적으로 낮춰 거대 모델을 구동한다. 지원 대상 모델은 Llama(2/3/3.1/3.3/4), Qwen(1/2/2.5/3), DeepSeek(V2/V3/R1), Mistral, Mistral, Phi, Gemma, ChatGLM, Baichuan, InternLM, Yi 등 주요 오픈 LLM 제품군을 포괄한다.

모델 규모별 요구 VRAM은 Llama 3 70B의 경우 4GB, Llama 3.1 405B는 8GB, DeepSeek-V3(671B)는 약 12GB 수준이다. 특히 역대 최대 규모의 오픈 소스 모델인 Kimi K3(2.8T)는 RTX 6000 Ada 단일 카드에서 3.72GB VRAM만으로 엔드투엔드 추론이 가능하다. 사용자는 `AutoModel.from_pretrained(...)` API를 통해 Hugging Face ID를 전달함으로써 별도의 설정 없이 모델을 로드할 수 있다.

레이어 스트리밍 및 가속 메커니즘

핵심 원리는 모델의 전체 가중치를 GPU에 올리는 대신, 한 번에 하나의 레이어만 GPU 메모리에 유지하는 '레이어 단위 스트리밍' 방식이다. 이 구조에서는 전체 모델 크기가 아니라 개별 레이어의 크기가 VRAM 요구량을 결정한다. MoE(Mixture of Experts) 구조의 모델은 여기서 더 나아가 전체 레이어가 아닌, 토큰이 실제로 라우팅되는 전문가(Expert) 모델만 하나씩 스트리밍하여 메모리 점유율을 더 낮춘다.

추론 속도의 병목은 GPU 연산보다 디스크에서 모델을 로드하는 과정에서 발생한다. 이를 해결하기 위해 AirLLM은 모델 로딩과 연산을 겹쳐 처리하는 프리페칭(Prefetching) 기술을 도입해 속도를 약 10% 개선했다. 또한 블록 단위 양자화(Block-wise quantization) 기반의 모델 압축을 지원하며, 이를 적용할 경우 추론 속도를 최대 3배까지 높일 수 있다. 일반적인 양자화가 가중치와 활성화 함수 모두를 처리해 정확도 손실 위험이 큰 것과 달리, AirLLM은 디스크 로딩 크기를 줄이기 위해 가중치 부분만 양자화하여 정확도 저하를 최소화한다.

인프라 제약 및 구현 시 주의사항

실제 배포 시 가장 먼저 고려해야 할 점은 디스크 공간이다. AirLLM은 추론 시작 전 원본 모델을 레이어별로 분해하여 저장하는 과정을 거치며, 이 과정에서 Hugging Face 캐시 디렉토리에 상당한 양의 디스크 공간이 필요하다. 만약 디스크 공간이 부족할 경우 `safetensors_rust.SafetensorError: Error while deserializing header: MetadataIncompleteBuffer` 오류가 발생하므로, 캐시 정리나 디스크 확장 작업이 선행되어야 한다.

Kimi K3 모델을 구동하려는 개발자는 특정 소프트웨어 스택을 준수해야 한다. 모델 코드 자체에서 플래시 어텐션(Flash Attention)을 강제하므로 아래 명령어를 통한 라이브러리 설치가 필수적이다.

bash
pip install compressed-tensors flash-attn

또한 현재 CUDA 13용 플래시 어텐션 휠(wheel)이 제공되지 않으므로 CUDA 12 빌드의 PyTorch를 사용해야 하며, 원격 코드 로드 호환성을 위해 `transformers` 라이브러리 버전은 4.56.x를 유지해야 한다. 5.x 버전에서는 로드가 되지 않는 제약이 확인됐다.

실무자는 추론 속도보다 VRAM 비용 절감이 우선순위인 연구 환경이나, 고가의 H100/A100 인프라 없이 초거대 모델의 출력을 검증해야 하는 상황에서 이 도구를 선택해야 한다. 다만 레이어 단위로 디스크 I/O가 반복되므로, 실시간 응답성이 중요한 서비스 환경보다는 배치 처리나 오프라인 분석 작업에 적합하다.