"GPU 가난한 사람들"이 이제 막 그들의 곤경에 작별을 고할 것입니다! 방금 NVIDIA는 H100에서 대규모 언어 모델의 추론을 가속화할 수 있는 오픈 소스 소프트웨어 TensorRT-LLM을 출시했습니다. 그렇다면 몇 번이나 개선될 수 있을까요? TensorRT-LLM 및 일련의 최적화 기능(In-Flight 일괄 처리 포함)을 추가한 후 총 모델 처리량이 8배 증가했습니다.
구매 페이지를 방문하세요:
JD.com NVIDIA 시리즈 제품 요약
TensorRT-LLM 유무에 따른 GPT-J-6BA100 및 H100 비교
또한 Llama2를 예로 들면 TensorRT-LLM은 A100만 사용할 때보다 추론 성능을 4.6배 향상시킬 수 있습니다.
TensorRT-LLM이 있거나 없는 Llama270B, A100 및 H100 비교
네티즌들은 TensorRT-LLM과 결합된 초강력 H100이 의심할 여지 없이 대규모 언어 모델 추론의 현재 상황을 완전히 바꿀 것이라고 말했습니다!
TensorRT-LLM: 대규모 모델 추론 가속 아티팩트
현재 대형 모델의 거대한 매개변수 규모로 인해 '배포 및 추론'의 어려움과 비용이 여전히 높습니다.
NVIDIA가 개발한 TensorRT-LLM은 GPU를 통해 LLM 처리량을 크게 향상하고 비용을 절감하는 것을 목표로 합니다.
특히 TensorRT-LLM은 TensorRT의 딥 러닝 컴파일러, FasterTransformer의 최적화된 커널, 사전 및 사후 처리, 다중 GPU/다중 노드 통신을 간단한 오픈 소스 Python API로 캡슐화합니다.
NVIDIA는 FasterTransformer를 더욱 강화하여 제품화된 솔루션으로 만들었습니다.
TensorRT-LLM은 사용하기 쉬운 오픈 소스 및 모듈식 Python 애플리케이션 프로그래밍 인터페이스를 제공하는 것을 볼 수 있습니다.
코더는 다양한 대규모 언어 모델을 배포, 실행 및 디버그하기 위해 심층적인 C++ 또는 CUDA 전문 지식이 필요하지 않으며 최고의 성능과 신속한 사용자 정의도 얻을 수 있습니다.
NVIDIA의 공식 블로그에 따르면 TensorRT-LLM은 네 가지 방법으로 NVIDIA GPU에서 LLM 추론 성능을 최적화합니다.
첫째, 현재 10개 이상의 대형 모델에 TensorRT-LLM이 도입되어 개발자가 즉시 실행할 수 있습니다.
둘째, 오픈 소스 소프트웨어 라이브러리인 TensorRT-LLM을 사용하면 LLM이 여러 GPU와 여러 GPU 서버에서 동시에 추론을 수행할 수 있습니다.
이러한 서버는 NVIDIA의 NVLink 및 InfiniBand 상호 연결을 통해 연결됩니다.
세 번째는 "In-flight 일괄 처리"입니다. 이는 다양한 모델 작업이 다른 작업과 독립적으로 GPU에 들어가고 나갈 수 있도록 하는 새로운 스케줄링 기술입니다.
마지막으로 TensorRT-LLM은 모델 추론 중 메모리 사용량과 대기 시간을 줄이기 위해 H100TransformerEngine을 사용하도록 최적화되었습니다.
다음으로 TensorRT-LLM이 모델 성능을 어떻게 향상시키는지 자세히 살펴보겠습니다.
풍부한 LLM 생태계 지원
TensorRT-LLM은 오픈 소스 모델 생태계를 매우 훌륭하게 지원합니다.
Meta의 Llama2-70B와 같은 가장 크고 가장 발전된 언어 모델은 실시간 응답을 제공하기 위해 함께 작동하는 여러 GPU가 필요합니다.
이전에는 LLM 추론을 위한 최적의 성능을 얻으려면 개발자가 AI 모델을 다시 작성하고 수동으로 여러 조각으로 분할하고 GPU 전반에서 실행을 조정해야 했습니다.
TensorRT-LLM은 텐서 병렬성을 사용하여 가중치 행렬을 각 장치에 분산함으로써 이 프로세스를 단순화하고 대규모의 효율적인 추론을 가능하게 합니다.
각 모델은 개발자 개입이나 모델 변경 없이 NVLink를 통해 연결된 여러 GPU 및 여러 서버에서 병렬로 실행될 수 있습니다.
새로운 모델 및 모델 아키텍처의 도입으로 개발자는 TensorRT-LLM의 오픈 소스인 최신 NVIDIA AI 커널(Kernal)을 사용하여 모델을 최적화할 수 있습니다.
최첨단 FlashAttention 구현 및 GPT 모델 실행의 컨텍스트 및 생성 단계 등을 위한 마스크된 다중 헤드 주의를 포함하여 커널 융합(KernalFusion)을 지원합니다.
또한 TensorRT-LLM에는 오늘날 인기 있는 많은 대규모 언어 모델의 완벽하게 최적화되어 즉시 실행 가능한 버전이 포함되어 있습니다.
여기에는 MetaLlama2, OpenAIGPT-2 및 GPT-3, Falcon, mosaicMPT, BLOOM 및 10개 이상의 모델이 포함되며, 모두 간단하고 사용하기 쉬운 TensorRT-LLMPython API를 사용하여 호출할 수 있습니다.
이러한 기능은 개발자가 다양한 산업의 다양한 요구 사항을 충족하기 위해 더 빠르고 정확하게 사용자 정의된 대규모 언어 모델을 구축하는 데 도움이 될 수 있습니다.
기내 일괄 처리
오늘날 대규모 언어 모델은 다양한 응용 프로그램에서 사용됩니다.
단일 모델은 챗봇의 간단한 Q&A 응답부터 문서 요약 또는 긴 코드 블록 생성에 이르기까지 서로 다른 것처럼 보이는 여러 작업에 동시에 사용될 수 있습니다. 워크로드는 매우 동적이며 작업 요구 사항을 충족하려면 출력 크기가 다양한 크기로 커져야 합니다.
작업의 다양성으로 인해 요청을 효과적으로 일괄 처리하고 효율적인 병렬 실행을 수행하기가 어려워질 수 있으며, 이로 인해 일부 요청이 다른 요청보다 일찍 완료될 수도 있습니다.
이러한 동적 로드를 관리하기 위해 TensorRT-LLM에는 "in-flight 일괄 처리"라는 최적화된 스케줄링 기술이 포함되어 있습니다.
핵심 원칙은 대규모 언어 모델의 전체 텍스트 생성 프로세스를 모델의 여러 실행 반복으로 나눌 수 있다는 것입니다.
인플라이트 일괄 처리를 사용하면 TensorRT-LLM 런타임은 다음 요청 세트로 이동하기 전에 전체 일괄 처리가 완료될 때까지 기다리지 않고 일괄 처리에서 완료된 시퀀스를 즉시 해제합니다.
새 요청이 실행되는 동안 완료되지 않은 이전 일괄 처리의 다른 요청이 계속 처리되고 있습니다.
진행 중인 일괄 처리 및 추가적인 커널 수준 최적화를 통해 GPU 활용도가 향상되고 H100의 실제 LLM 요청 벤치마크 처리량을 두 배 이상 늘릴 수 있습니다.
FP8을 사용한 H100Transformer 엔진
TensorRT-LLM은 H100TransformerEngine이라는 기능도 제공하여 대규모 모델 추론 중에 메모리 소비와 대기 시간을 효과적으로 줄일 수 있습니다.
LLM에는 수십억 개의 모델 가중치와 활성화 함수가 포함되어 있으므로 일반적으로 각각 16비트의 메모리를 차지하는 FP16 또는 BF16 값으로 훈련되고 표현됩니다.
그러나 추론 시 대부분의 모델은 8비트 또는 4비트 정수(INT8 또는 INT4)와 같은 양자화 기술을 사용하여 낮은 정밀도로 효율적으로 표현될 수 있습니다.
양자화는 정확도를 희생하지 않고 모델 가중치와 활성화 정확도를 줄이는 프로세스입니다. 정밀도가 낮다는 것은 각 매개변수가 더 작고 모델이 GPU 메모리에서 더 적은 공간을 차지한다는 것을 의미합니다.
이를 통해 실행 중 메모리 작업에 소요되는 시간을 줄이면서 동일한 하드웨어를 사용하는 대규모 모델에 대한 추론이 가능해집니다.
H100TransformerEngine 기술을 통해 TensorRT-LLM과 결합된 H100GPU를 사용하면 사용자가 모델 가중치를 새로운 FP8 형식으로 쉽게 변환하고 모델을 자동으로 컴파일하여 최적화된 FP8 커널을 활용할 수 있습니다.
그리고 이 과정에는 코딩이 필요하지 않습니다! H100에 도입된 FP8 데이터 형식을 통해 개발자는 모델 정확도를 저하시키지 않고 모델을 정량화하고 메모리 소비를 획기적으로 줄일 수 있습니다.
INT8 또는 INT4와 같은 다른 데이터 형식과 비교할 때 FP8 양자화는 가장 빠른 성능을 달성하면서 더 높은 정밀도를 유지하고 구현하기 가장 편리합니다.
TensorRT-LLM을 얻는 방법
TensorRT-LLM은 아직 공식적으로 출시되지 않았지만 이제 사용자는 조기 액세스를 할 수 있습니다.
신청 링크는 다음과 같습니다.
https://developer.nvidia.com/tensorrt-llm-early-access/join
NVIDIA는 또한 TensorRT-LLM이 곧 NVIDIA NeMo 프레임워크에 통합될 것이라고 밝혔습니다.
이 프레임워크는 NVIDIA가 최근 출시한 AIEnterprise의 일부로, 기업 고객에게 안전하고 안정적이며 관리성이 뛰어난 엔터프라이즈급 AI 소프트웨어 플랫폼을 제공합니다.
개발자와 연구원은 NVIDIA NGC의 NeMo 프레임워크를 통해 또는 GitHub의 프로젝트로 TensorRT-LLM에 액세스할 수 있습니다.
그러나 조기 액세스 버전을 신청하려면 사용자가 NVIDIA 개발자 프로그램에 등록해야 한다는 점에 유의해야 합니다.
네티즌들 사이에서 뜨거운 논의
Reddit의 네티즌들은 TensorRT-LLM 출시에 대해 열띤 토론을 시작했습니다.
LLM 전용 하드웨어를 최적화한 후 효과가 얼마나 향상될지 상상하기 어렵습니다.
그러나 일부 네티즌들은 이 일의 목적이 Lao Huang이 H100을 더 많이 판매하도록 돕는 것이라고 믿습니다.
그러나 일부 네티즌들은 크게 동의하지 않고 있다. 그는 TensorRT가 SD를 로컬로 배포하는 사용자에게도 도움이 된다고 생각합니다. 따라서 RTX GPU가 있는 한 향후 유사한 제품의 혜택을 누릴 수 있을 것입니다.
보다 거시적인 관점에서 보면 LLM의 경우에도 일련의 하드웨어 수준 최적화가 있을 것이며 LLM을 위해 특별히 설계된 하드웨어도 LLM의 성능을 향상시키기 위해 향후 나타날 것입니다. 이는 실제로 많은 인기 있는 응용 프로그램에서 발생했으며 LLM도 예외는 아닙니다.