NVIDIA는 최근 NVIDIA TensorRT-LLM이 인코더-디코더 모델 아키텍처를 가속화한다고 발표했습니다. TensorRT-LLM은 다음과 같은 다양한 모델 아키텍처에 대한 추론을 최적화하는 오픈 소스 라이브러리입니다.
- Llama 3.1과 같은 디코더 전용 모델
- Mixtral과 같은 혼합 전문가 모델(MoE)
- Mamba와 같은 선택적 상태 공간 모델(SSM)
- 시각-언어 및 영상-언어 응용 분야를 위한 다중 모드 모델
인코더-디코더 모델 지원의 추가는 TensorRT-LLM의 기능을 더욱 확장시켜, NVIDIA GPU에서 더욱 광범위한 생성형 AI 응용 분야에 대해 고도로 최적화된 추론을 제공합니다.
TensorRT-LLM은 NVIDIA TensorRT 딥러닝 컴파일러를 사용합니다. 여기에는 LLM 모델 실행을 위한 다양한 어텐션 메커니즘의 최첨단 구현을 위한 최신 최적화 커널이 포함되어 있습니다. 또한, GPU에서 획기적인 LLM 추론 성능을 위한 간단한 오픈 소스 API로 구성된 전처리 및 후처리 단계와 멀티 GPU/멀티 노드 통신 프리미티브로 구성되어 있습니다.
T5, mT5, Flan-T5, BART, mBART, FairSeq NMT, UL2, Flan-UL2 등 인코더-디코더 모델 계열의 미묘한 차이점을 해결하기 위해 TensorRT-LLM은 공통 및 파생 구성 요소를 추상화하고 인코더-디코더 모델에 대한 일반적인 지원을 제공합니다. 또한, 이 모델들을 위한 완전한 텐서 병렬처리(TP), 파이프라인 병렬처리(PP), 그리고 이 두 가지의 하이브리드 방식을 통해 멀티 GPU/멀티 노드 추론을 지원합니다.
다양한 모델, 다양한 최적화, 멀티 GPU 실행을 포함한 더 많은 정보를 원하시면, 인코더-디코더 모델 지원을 참조하세요.
인코더-디코더 아키텍처를 위한 인플라이트 배치
멀티모달 모델과 유사한 인코더-디코더 모델은 디코더 전용 모델과 비교하여 다른 런타임 패턴을 가지고 있습니다. 이 모델은 하나 이상의 엔진(일반적으로 두 개의 엔진)을 가지고 있으며, 첫 번째 엔진은 요청당 한 번만 실행되고, 더 간단한 입출력 버퍼를 사용합니다. 두 번째 엔진은 자동 역행적으로 실행되며, 키-값(KV) 캐시 관리 및 배치 관리를 위한 더 복잡한 처리 로직을 통해 낮은 지연 시간으로 높은 처리량을 제공합니다.
인플라이트 배치(IFB, 연속 배치라고도 함)와 인코더-디코더 아키텍처를 위한 KV 캐시 관리를 가능하게 하는 몇 가지 핵심 확장 기능이 있습니다:
- 입력/출력 버퍼 설정과 모델 실행을 포함하는 인코더 모델(텍스트, 오디오 또는 기타 양식)에 대한 런타임 지원.
- 디코더의 셀프 어텐션 캐시와 인코더의 출력을 통해 계산된 디코더의 크로스 어텐션 캐시에 대한 이중 페이지 KV 캐시 관리.
- LLM 요청 수준에서 인코더에서 디코더로 데이터 전달. 디코더 요청이 인플라이트 방식으로 배치될 때, 각 요청의 인코더 단계 출력을 수집하여 인플라이트 방식으로 배치해야 합니다.
- 인코더와 디코더를 위한 분리된 배치 전략. 인코더와 디코더는 크기와 계산 속성이 다를 수 있기 때문에 각 단계의 요청은 독립적이고 비동기적으로 배치되어야 합니다.
TensorRT-LLM 인코더-디코더 모델은 생산 준비가 완료된 배포를 위해 NVIDIA Triton TensorRT-LLM 백엔드에서도 지원됩니다. NVIDIA Triton Inference Server는 AI 추론을 간소화하는 오픈 소스 추론 서비스 소프트웨어입니다.
Triton TensorRT-LLM 백엔드를 사용하면 인코더-디코더 모델의 성능과 기능을 향상시킬 수 있는 다양한 기능을 활용할 수 있습니다.
- 프로메테우스 메트릭스(Prometheus metrics)
- 시맨틱 캐싱(Semantic caching)
- 동시 모델 실행(Concurrent model execution)
로우 랭크 적응 지원
로우 랭크 적응(LoRA)은 강력한 파라미터 효율적인 파인 튜닝(PEFT) 기법으로, 인상적인 성능과 최소한의 리소스 사용량을 유지하면서 LLM을 사용자 정의할 수 있도록 해줍니다. 파인 튜닝 과정에서 모든 모델 매개변수를 업데이트하는 대신, LoRA는 작은 훈련 가능한 랭크 분해 행렬을 모델에 추가하여 메모리 요구 사항과 계산 비용을 크게 줄입니다.
이러한 LoRA 어댑터는 특정 다운스트림 애플리케이션에 맞게 조정되며, 특정 작업에서 모델 정확도를 향상시키는 데 사용할 수 있습니다.
TensorRT-LLM BART LoRA 지원은 최적화 기능을 사용하여 LoRA 적응을 특징짓는 로우 랭크 행렬을 효율적으로 처리합니다. 이를 통해 다음과 같은 이점을 얻을 수 있습니다.
- 단일 배치 내에서 여러 개의 LoRA 어댑터를 효율적으로 제공
- LoRA 어댑터의 동적 로딩을 통한 메모리 사용량 감소
- 기존 BART 모델 배포와의 원활한 통합
요약
NVIDIA TensorRT-LLM은 다양한 아키텍처에서 LLM을 최적화하고 효율적으로 실행하기 위한 기능을 계속 확장하고 있습니다. 인코더-디코더 모델의 향후 개선 사항에는 FP8 양자화가 포함되어, 지연 시간과 처리량을 더욱 향상시킬 수 있습니다. 생산 배포의 경우, NVIDIA Triton Inference Server는 이러한 모델을 제공하는 데 이상적인 플랫폼을 제공합니다.
가장 빠른 가치 실현 시간을 원하는 기업은 NVIDIA AI Enterprise 소프트웨어 플랫폼의 일부인 NVIDIA NIM을 사용할 수 있습니다. 이 플랫폼은 NVIDIA와 파트너 생태계의 인기 모델에 최적화된 추론을 제공합니다.
관련 자료
- GTC 세션: TensorRT-LLM을 통한 LLM 추론 속도 향상
- GTC 세션: NeMo, TensorRT-LLM, Triton Inference Server를 통한 LLM 모델 정렬 및 배포 가속화
- GTC 세션: 텍스트 생성을 위한 TensorRT-LLM을 통한 LLM 최적화 및 확장
- SDK: TensorFlow-TensorRT
- SDK: TensorRT
- SDK: Torch-TensorRT