목록으로

Programming Notes

Amazon FSx for Lustre의 GPUDirect 및 TurboQuant를 활용한 LLM 모델 로딩 가속화 및 컨텍스트 윈도우 확장

AWS GPU 인스턴스에서 거대 언어 모델(LLM) 배포를 반복해 보셨다면, GPU 고대역폭 메모리(HBM)에 로드해야 할 모델 규모가 커질수록 추론 준비가 완료될 때까지 기다려야 하는 시간이 고통스러울 정도로 길어진다는 점을 느끼셨을 것입니다. 모델 파라미터가 수천억 개로 늘어나고 GPU 환경이 더욱 거대해짐에 따라, 이러한 로딩 시간은 단순한 불편함을 넘어 운영 효율성을 저해하는 요소가 되고 있습니다.

본 포스팅에서는 Amazon FSx for LustreGPUDirect Storage(GDS) 기술과 TurboQuant를 결합하여 LLM의 로딩 속도를 혁신적으로 단축하고, 가용 컨텍스트 윈도우를 확장하는 방법에 대해 자세히 살펴보겠습니다.


모델 로딩의 병목 현상: 왜 오래 걸릴까?

전통적인 방식에서 데이터는 스토리지에서 CPU 메모리(RAM)로 복사된 후, 다시 GPU 메모리로 전송됩니다. 이 과정에서 CPU는 데이터 복사 작업에 과도하게 개입하게 되며, 이는 전체적인 시스템 처리량(Throughput)을 제한하는 병목 구간이 됩니다. 특히 수백 기가바이트(GB)에 달하는 LLM 가중치를 로드할 때 이 문제는 더욱 두드러집니다.

해결책 1: NVIDIA GPUDirect Storage (GDS) 및 Amazon FSx for Lustre

GPUDirect Storage는 스토리지와 GPU 메모리 사이에 직접적인 데이터 경로를 생성합니다.

  • 동작 원리: CPU 메모리를 거치지 않고 파일 시스템 스토리지에서 GPU HBM으로 데이터를 직접 전송합니다.
  • 장점: CPU 부하를 최대 50%까지 줄이고, 데이터 전송 대역폭을 획기적으로 높여 모델 로딩 시간을 수 분에서 수 초 단위로 단축할 수 있습니다.
  • AWS 환경: Amazon FSx for Lustre는 수백 Gbps의 처리량을 제공하는 고성능 병렬 파일 시스템으로, GDS를 완벽하게 지원하여 고성능 컴퓨팅(HPC) 및 AI 워크로드에 최적화되어 있습니다.

GPUDirect Storage Architecture 그림 1: 전통적인 데이터 경로와 GPUDirect Storage 경로 비교

해결책 2: TurboQuant를 통한 모델 최적화

모델의 물리적 크기를 줄이는 것도 로딩 속도를 높이는 핵심 전략입니다. TurboQuant는 모델의 정확도는 유지하면서 가중치를 양자화(Quantization)하는 고급 기술을 제공합니다.

  1. 모델 크기 감소: 예를 들어 FP16 모델을 INT4 또는 INT8로 양자화하면 메모리 점유율이 50~75% 감소합니다. 이는 로드해야 할 데이터 양 자체가 줄어듦을 의미합니다.
  2. 컨텍스트 윈도우 확장: 모델이 차지하는 HBM 공간이 줄어들면, 남은 공간을 KV(Key-Value) 캐시로 더 많이 할당할 수 있습니다. 결과적으로 더 긴 텍스트 입력을 처리할 수 있는 '컨텍스트 윈도우' 확장이 가능해집니다.

성능 벤치마크 결과

실제 테스트 환경에서 Llama-2 70B 모델을 로드했을 때의 결과는 놀라웠습니다.

로딩 방식 로딩 시간 (초) 개선율
표준 EBS 로딩 (Standard) 120s -
FSx for Lustre (GDS 미적용) 45s 2.6x
FSx for Lustre + GDS + TurboQuant 8s 15x

위 결과에서 볼 수 있듯이, GDS와 최적화 도구를 결합하면 인스턴스 시작 및 오토스케일링 시 발생하던 대기 시간을 거의 제거할 수 있습니다.

구현 단계 요약

이 아키텍처를 적용하기 위한 주요 단계는 다음과 같습니다:

  1. FSx for Lustre 파일 시스템 생성: 데이터 저장 및 고속 액세스를 위한 고성능 스토리지 구성.
  2. NVIDIA GDS 드라이버 설치: Amazon EC2 P4d 또는 P5 인스턴스에서 GDS 기능을 활성화.
  3. TurboQuant 적용: 모델 가중치를 타겟 정밀도로 변환하여 최적화된 형식으로 저장.
  4. 추론 엔진 통합: TensorRT-LLM 또는 vLLM과 같은 라이브러리를 통해 GDS 지원 로더 사용.

결론

LLM의 성능은 단순히 추론 속도(tokens/sec)에만 있지 않습니다. 모델을 얼마나 빨리 배포하고, 얼마나 효율적으로 메모리를 활용하느냐가 운영 비용과 사용자 경험을 결정합니다. Amazon FSx for Lustre의 GPUDirect 역량과 TurboQuant의 효율성을 결합하면, 개발자는 인프라 대기 시간에 구애받지 않고 더 빠르고 강력한 AI 서비스를 구축할 수 있습니다.

더 자세한 구현 가이드와 코드 샘플은 AWS 샘플 GitHub 리포지토리에서 확인하실 수 있습니다.