
NVIDIA, H100/A100 GPU에서 LLM 추론을 가속화하기 위한 TensorRT-LLM 도입
요약
NVIDIA가 Ampere, Lovelace, Hopper GPU 아키텍처에서 LLM 추론 성능을 최적화하기 위한 오픈 소스 소프트웨어인 TensorRT-LLM을 도입했습니다. 이 도구는 최적화된 커널과 멀티 GPU 통신 기능을 제공하며, 인플라이트 배칭 및 양자화 등의 기술을 통해 H100 GPU 사용 시 A100 대비 최대 8배의 성능 향상을 구현합니다.
핵심 포인트
- TensorRT-LLM은 NVIDIA GPU 환경에서 LLM 추론을 가속화하기 위한 오픈 소스 딥러닝 컴파일러입니다.
- 인플라이트 배칭(in-flight batching), 페이지드 어텐션(paged-attention), 양자화(quantization) 등 핵심 최적화 기능을 포함합니다.
- C++이나 CUDA에 대한 깊은 지식 없이도 Python API를 통해 쉽게 커스터마이징하고 실험할 수 있습니다.
- H100 GPU와 TensorRT-LLM을 결합할 경우 A100 대비 비약적인 처리량(throughput) 향상을 제공합니다.
대규모 언어 모델 (LLMs)은 AI로 가능한 영역의 경계를 확장하며 놀라운 새로운 역량을 제공합니다. 하지만 모델의 거대한 크기와 독특한 실행 특성으로 인해 비용 효율적인 방식으로 사용하는 데 어려움이 있을 수 있습니다.
NVIDIA는 Meta, Anyscale, Cohere, Deci, Grammarly, Mistral AI, MosaicML (현재 Databricks의 일부), OctoML, Perplexity, Tabnine, 그리고 Together AI를 포함한 선도 기업들과 긴밀히 협력하여 LLM 추론 (inference)을 가속화하고 최적화하기 위해 노력해 왔습니다.
이러한 혁신 기술들은 NVIDIA Ampere, NVIDIA Lovelace, 그리고 NVIDIA Hopper GPU에서 사용할 수 있는 오픈 소스 NVIDIA TensorRT-LLM 소프트웨어에 통합되었습니다. TensorRT-LLM은 TensorRT 딥러닝 컴파일러 (deep learning compiler)로 구성되며, NVIDIA GPU에서 획기적인 성능을 구현하기 위한 최적화된 커널 (kernels), 전처리 및 후처리 단계 (pre- and post-processing steps), 그리고 멀티 GPU/멀티 노드 통신 프리미티브 (multi-GPU/multi-node communication primitives)를 포함합니다. 이를 통해 사용자는 C++ 또는 NVIDIA CUDA에 대한 깊은 지식 없이도 새로운 LLM을 실험할 수 있으며, 최고의 성능과 빠른 커스터마이징 (customization) 기능을 제공받을 수 있습니다.
TensorRT-LLM은 LLM이 진화함에 따라 새로운 아키텍처와 개선 사항을 정의, 최적화 및 실행할 수 있는 오픈 소스 모듈형 Python API를 통해 사용 편의성과 확장성을 개선하며, 쉽게 커스터마이징할 수 있습니다.
예를 들어, MosaicML은 TensorRT-LLM 상단에 필요한 특정 기능들을 원활하게 추가하여 추론 서빙 (inference serving)에 통합했습니다. Databricks의 엔지니어링 부사장인 Naveen Rao는 “정말 식은 죽 먹기였습니다 (It has been an absolute breeze)”라고 말했습니다.
Rao는 “TensorRT-LLM은 사용하기 쉬우며, 토큰 스트리밍 (streaming of tokens), 인플라이트 배칭 (in-flight batching), 페이지드 어텐션 (paged-attention), 양자화 (quantization) 등 기능이 가득 차 있고 효율적입니다”라고 말했습니다. 또한 “NVIDIA GPU를 사용하는 LLM 서빙에 대해 최첨단 성능을 제공하며, 이를 통해 절감된 비용을 고객에게 전달할 수 있게 해줍니다”라고 덧붙였습니다.
기사 요약은 LLM의 수많은 응용 분야 중 하나일 뿐입니다. 다음 벤치마크는 최신 NVIDIA Hopper 아키텍처에서 TensorRT-LLM이 가져온 성능 향상을 보여줍니다.
다음 그림들은 요약 성능 평가를 위한 잘 알려진 데이터셋인 CNN/Daily Mail을 사용하여 NVIDIA A100 및 NVIDIA H100 GPU로 수행한 기사 요약(article summarization) 결과를 반영합니다.
그림 1에서 NVIDIA H100 GPU 단독 사용 시 A100 GPU보다 4배 더 빠릅니다. 여기에 TensorRT-LLM과 인플라이트 배칭 (in-flight batching)을 포함한 이점들을 추가하면 총 8배의 성능 향상이 이루어져 가장 높은 처리량 (throughput)을 제공합니다.
텍스트 요약, 가변 I/O 길이, CNN / DailyMail 데이터셋 | A100 FP16 PyTorch eager mode | H100 FP8 | H100 FP8, 인플라이트 배칭 (in-flight batching), TensorRT-LLM
최근 Meta에서 출시되어 생성형 AI (generative AI)를 도입하려는 기업들이 널리 사용하는 인기 언어 모델인 Llama 2의 경우, TensorRT-LLM은 A100 GPU 대비 추론 성능을 4.6배 가속화할 수 있습니다.
텍스트 요약, 가변 I/O 길이, CNN / DailyMail 데이터셋 | A100 FP16 PyTorch eager mode | H100 FP8 | H100 FP8, 인플라이트 배칭 (in-flight batching), TensorRT-LLM
연산 요구 사항의 폭발적인 증가를 고려할 때, 데이터 센터의 총 소유 비용 (TCO, Total Cost of Ownership) 및 에너지 소비를 최소화하는 것은 특히 AI와 LLM을 도입하는 고객들에게 핵심적인 목표입니다. 고객들은 AI 플랫폼 지출을 고려할 때 단일 서버의 비용만을 보지 않습니다. 그보다는 다음과 같은 총 자본 및 운영 비용을 살펴봐야 합니다.
- GPU 서버 비용
- 관리 헤드 노드 (모든 GPU 서버를 조정하는 CPU 서버)
- 네트워킹 장비 (패브릭 (fabric), 이더넷 (Ethernet), 케이블링)
- 스토리지 (Storage)
- 데이터 센터 IT 인력 및 소프트웨어
- 장비 유지보수
- 데이터 센터 임대료 및 전기 요금
데이터 센터에서 발생하는 실제 비용을 총체적인 수준에서 고려할 때, 상당한 성능 가속화는 장비 및 유지보수 요구 사항을 줄여주며, 이는 상당한 자본 및 운영 비용 절감으로 이어집니다.
그림 3은 GPT-J 6B와 같은 소형 언어 모델 (small language models)에서 8배의 성능 가속화가 이루어질 경우, A100 GPU 기준점 대비 TCO는 5.3배 감소하고 에너지 (전기 요금 절감)는 5.6배 감소함을 보여줍니다.
마찬가지로, 70B (700억 개) 파라미터를 가진 Llama2와 같은 최첨단 LLM (대규모 언어 모델)에서도 4.6배의 성능 가속을 실현할 수 있으며, 이는 A100 기준점 대비 TCO (총 소유 비용) 3배 감소 및 에너지 소비 3.2배 감소라는 결과로 이어집니다.
TCO 외에도 소프트웨어 개발과 관련된 상당한 인건비가 발생할 수 있으며, 이는 인프라 비용 자체를 쉽게 초과할 수 있습니다. NVIDIA가 TensorRT, TensorRT-LLM, Triton Inference Server, 그리고 NVIDIA NeMo 프레임워크에 투자한 결과는 여러분의 시간을 크게 절약해 줄 뿐만 아니라 시장 출시 기간 (Time to Market)도 단축해 줍니다. 전체적인 AI 지출의 진정한 모습을 파악하기 위해서는 자본 비용 (CapEx) 및 운영 비용 (OpEx)을 쉽게 상회할 수 있는 이러한 인건비를 반드시 고려해야 합니다.
생태계는 새롭고 다양한 모델 아키텍처를 개발하며 빠르게 혁신하고 있습니다. 더 큰 모델은 새로운 능력과 사용 사례를 촉발합니다. Meta의 70B 파라미터 Llama 2와 같이 가장 크고 진보된 일부 언어 모델들은 실시간으로 응답을 제공하기 위해 여러 개의 GPU가 협력하여 작동해야 합니다. 이전에는 LLM 추론에서 최상의 성능을 달성하려는 개발자들이 AI 모델을 직접 다시 작성하고 수동으로 조각내어 여러 GPU 간의 실행을 조정해야 했습니다.
TensorRT-LLM은 개별 가중치 행렬 (Weight Matrices)이 여러 장치에 걸쳐 분할되는 모델 병렬화 (Model Parallelism)의 한 종류인 텐서 병렬화 (Tensor Parallelism)를 사용합니다. 이를 통해 개발자의 개입이나 모델 변경 없이도, NVLink로 연결된 여러 GPU 및 여러 서버에 걸쳐 각 모델이 병렬로 실행되는 대규모 환경에서 효율적인 추론이 가능해집니다.
새로운 모델과 모델 아키텍처가 도입됨에 따라, TensorRT-LLM에서 오픈 소스로 제공되는 최신 NVIDIA AI 커널 (Kernel)을 사용하여 모델을 최적화할 수 있습니다. 지원되는 커널 퓨전 (Kernel Fusion)에는 GPT 모델 실행의 컨텍스트 (Context) 및 생성 (Generation) 단계에 대한 FlashAttention과 마스크드 멀티 헤드 어텐션 (Masked Multi-head Attention)의 최첨단 구현을 비롯한 다양한 기술이 포함됩니다.
TensorRT-LLM은 또한 오늘날 프로덕션(Production) 환경에서 널리 사용되는 많은 LLM의 완전히 최적화된 즉시 실행 가능한 버전을 포함하고 있으며, 이 모든 모델은 사용하기 쉬운 TensorRT-LLM Python API를 통해 구현할 수 있습니다:
- Meta Llama 2
- OpenAI GPT-2 및 GPT-3
- Falcon
- Mosaic MPT
- BLOOM
- …및 기타 수십 가지 모델
이러한 기능은 거의 모든 산업의 요구 사항을 충족할 수 있도록 맞춤형 LLM을 더 빠르고 정확하게 생성할 수 있도록 도와줍니다.
오늘날의 LLM은 매우 다재다능합니다. 단일 모델이 다양한 서로 다른 작업에 동시에 사용될 수 있습니다. 챗봇의 간단한 질의응답 응답부터 문서 요약 또는 긴 코드 조각 생성에 이르기까지, 워크로드(Workload)는 매우 동적이며 출력 크기는 여러 자릿수(Orders of magnitude)만큼 차이가 납니다.
이러한 다재다능함은 요청을 배치(Batch)로 묶어 효과적으로 병렬 실행하는 것을 어렵게 만들 수 있습니다. 이는 신경망(Neural Network) 서빙을 위한 일반적인 최적화 방식이지만, 일부 요청이 다른 요청보다 훨씬 일찍 완료되는 결과를 초래할 수 있습니다.
이러한 동적 부하를 관리하기 위해 TensorRT-LLM은 *인플라이트 배칭 (In-flight batching)*이라고 불리는 최적화된 스케줄링 기술을 포함합니다. 이는 LLM의 전체 텍스트 생성 프로세스가 모델에 대한 여러 번의 실행 반복(Iteration)으로 분해될 수 있다는 사실을 활용합니다.
인플라이트 배칭을 사용하면 다음 요청 세트로 넘어가기 전에 전체 배치가 완료될 때까지 기다리는 대신, TensorRT-LLM 런타임(Runtime)이 배치에서 완료된 시퀀스(Sequence)를 즉시 제거합니다. 그런 다음 다른 요청들이 여전히 진행 중인(In-flight) 동안 새로운 요청의 실행을 시작합니다.
인플라이트 배칭과 추가적인 커널 수준(Kernel-level) 최적화를 통해 GPU 사용량을 개선할 수 있으며, NVIDIA H100 Tensor Core GPU에서 실제 LLM 요청 벤치마크를 수행했을 때 처리량(Throughput)을 최소 두 배로 높일 수 있어 에너지 비용을 절감하고 총 소유 비용(TCO)을 최소화하는 데 도움이 됩니다.
LLM (Large Language Models)은 수십억 개의 모델 가중치(Weights)와 활성화 값(Activations)을 포함하고 있으며, 일반적으로 각 값이 16비트의 메모리를 차지하는 16비트 부동 소수점 (FP16 또는 BF16) 값으로 학습되고 표현됩니다. 그러나 추론(Inference) 시에는 현대적인 양자화 (Quantization) 기술을 사용하여 대부분의 모델을 8비트 또는 심지어 4비트 정수 (INT8 또는 INT4)와 같은 더 낮은 정밀도로 효과적으로 표현할 수 있습니다.
*양자화 (Quantization)*는 정확도를 희생하지 않으면서 모델의 가중치와 활성화 값의 정밀도를 낮추는 과정입니다. 더 낮은 정밀도를 사용하면 각 파라미터의 크기가 작아져 GPU 메모리에서 모델이 차지하는 공간이 줄어듭니다. 이를 통해 동일한 하드웨어에서 더 큰 모델로 추론을 수행할 수 있으며, 실행 중 메모리 작업에 소요되는 시간을 단축할 수 있습니다.
TensorRT-LLM을 탑재한 NVIDIA H100 GPU를 사용하면 모델 가중치를 새로운 FP8 형식으로 쉽게 변환하고, 최적화된 FP8 커널 (Kernels)을 자동으로 활용하도록 모델을 컴파일할 수 있습니다. 이는 NVIDIA Hopper Transformer Engine 기술을 통해 가능하며, 모델 코드를 전혀 변경할 필요 없이 수행됩니다.
H100에서 도입된 FP8 데이터 형식은 모델의 정확도를 저하시키지 않으면서 모델을 양자화하고 메모리 소비를 획기적으로 줄일 수 있게 해줍니다. FP8 양자화는 INT8 또는 INT4와 같은 다른 데이터 형식에 비해 더 높은 정확도를 유지하면서도 가장 빠른 성능을 달성하고 가장 간단한 구현을 제공합니다.
LLM은 빠르게 발전하고 있습니다. 다양한 모델 아키텍처가 매일 개발되어 성장하는 생태계에 기여하고 있습니다. 결과적으로 더 큰 모델은 새로운 능력과 사용 사례를 해방시켜 모든 산업 분야에서의 도입을 가속화하고 있습니다.
LLM 추론은 데이터 센터의 모습도 재편하고 있습니다. 정확도가 향상된 높은 성능은 기업에 더 나은 총 소유 비용 (TCO)을 제공합니다. 모델 혁신은 더 나은 고객 경험을 가능하게 하며, 이는 더 높은 매출과 수익으로 이어집니다.
추론 배포 프로젝트를 계획할 때, 최첨단 LLM (Large Language Models)을 사용하여 정점의 성능을 달성하기 위해서는 여전히 고려해야 할 많은 사항이 있습니다. 최적화는 좀처럼 자동으로 이루어지지 않습니다. 병렬성 (Parallelism), 엔드 투 엔드 파이프라인 (End-to-end pipelines), 그리고 고급 스케줄링 기술 (Advanced scheduling techniques)과 같은 미세 조정 (Fine-tuning) 요소들을 반드시 고려해야 합니다. 이러한 요소들은 정확도를 저하시키지 않으면서 혼합 정밀도 (Mixed precision)를 처리할 수 있는 컴퓨팅 플랫폼을 필요로 합니다.
NVIDIA TensorRT-LLM은 현재 GitHub의 오픈 소스 라이브러리 /NVIDIA/TensorRT-LLM 및 NVIDIA NeMo 프레임워크를 통해 사용할 수 있습니다. NVIDIA NeMo는 보안, 안정성, 관리 용이성 및 지원을 갖춘 기업급 AI 소프트웨어 플랫폼인 NVIDIA AI Enterprise의 일부입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN GPU Inference의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기