대규모 언어 모델 추론에서 100배 속도 향상을 위한 희소 기술. 희소 컴파일러가 LLM 추론을 혁신하여 전례 없는 효율성과 속도를 제공하는 방법을 알아보세요. 이전 글 "LLM이 희소성을 통해 추론을 가속화하는 방법"에서 두 번째 부분인 "활성화 희소성으로 추론 가속화"를 살펴보았습니다. 첫 번째 부분인 "LLM이 가지치기를 수행하는 방법"을 여기를 클릭하여 복습하세요. 이번 글에서는 세 번째 부분인 “희소 컴파일러가 LLM 추론에 미치는 영향” 에 대해 자세히 알아보겠습니다.
컴파일러의 필요성
최근 개발 동향에 따르면, 딥러닝 연산이 점점 더 희소해지고 있습니다. 즉, 여러 개의 0을 포함하는 텐서에 대해 연산이 수행됩니다. 정적이고 사전에 알려진 희소 모델 가중치 외에도, 입력에 의존하며 런타임에만 알 수 있는 희소 패턴, 즉 동적 희소성이 추가로 발견되었습니다. 예를 들어 GPT 및 OPT와 같은 대규모 언어 모델(LLM)은 다양한 유형의 동적 희소성을 나타냅니다. 첫째, 트랜스포머 모델(및 다른 유형의 모델)은 입력, 활성화 및 그래디언트에서 본질적인 동적 희소성을 보여줍니다. 활성화 그래프에서는 극히 적은 요소만이 0이 아닙니다(예: T5-Base의 경우 3.0%, ViT-B/16의 경우 6.3%). 둘째, 동적 희소성을 활용하여 DNN 모델을 더욱 확장합니다. 현재 1조 개 이상의 매개변수를 가진 대부분의 모델은 전문가 혼합(MoE) 아키텍처를 채택하여 희소 입력에 따라 전문가를 동적으로 활성화합니다. 또한 동적 희소성 훈련은 훈련 중에 덜 중요한 연결을 동적으로 가지치기하여 우수한 계산 효율성으로 점점 더 주목받고 있습니다. 희소 패턴이 런타임 전에 알려지지 않는 동적 희소성은 딥러닝에 심각한 도전 과제를 제기합니다. 고급 희소 인식 딥러닝 솔루션은 전처리와 관련된 상당한 오버헤드로 인해 미리 정의된 정적 희소 패턴으로 제한됩니다. 동적으로 희소한 계산을 효율적으로 실행하려면 GPU 친화적인 텐서 블록 구성과 희소 인식 블록 모양에서 낭비되는 적용 범위(텐서의 0이 아닌 값) 최소화 사이에서 종종 불일치가 발생합니다. LLM 희소성은 희소 연산자의 사용을 필요로 하며, cuSPARSE 또는 Sputnik과 같은 기존 라이브러리는 일반적인 설계로 인해 최적이 아니므로, 정적으로 컴파일된 희소 인식 커널만 지원하거나 희소 행렬을 밀집 형식으로 동적 변환해야 하므로 동적 희소성 시나리오에서 상당한 성능 오버헤드가 발생합니다.
주류 컴파일러 비교
현재 주류 희소 계산 컴파일러로는 [11]에서 참조된 cuSPARSE, Sputnik, OpenAI Block Sparse, SparTA 및 PIT가 있습니다. 다음은 가속화 데이터 비교표입니다. 시나리오: 크기 4096 × 4096 × 4096의 행렬 곱셈 메트릭: 지연 시간(ms)
주목할 점은 PIT가 최첨단 희소 최적화를 능가하여 cuSPARSE, Sputnik, OpenAI Block Sparse 및 SparTA에 비해 각각 최대 88.7배, 5.8배, 17.5배 및 5.7배의 속도 향상을 달성한다는 것입니다.
LLM 추론에 대한 컴파일러의 영향
OPT
실험 [11]에서는 Alpaca 데이터 세트를 사용하여 OPT13B 및 30B의 두 가지 OPT 모델 버전에서 8개의 V100–32GB GPU를 통해 PIT를 평가합니다. PIT는 OPT에 두 가지 동적 희소성 최적화를 적용합니다: (1) 동일한 배치 내에서 서로 다른 길이의 문장에 대한 패딩 오버헤드 제거; (2) FFN 계층에서 ReLU 활성화에 의해 생성된 미세 입자 희소성(최대 99%) 활용. 배치 크기는 32로 설정되어 있으며, PyTorch-S는 Triton을 백엔드로 사용합니다.
OPT의 배치당 종단 간 지연 시간 및 메모리 사용량 PIT의 성능은 PyTorch, PyTorchS 및 DeepSpeed보다 각각 2.1배 ~ 2.3배, 2.5배 ~ 3.0배, 2.0배 ~ 2.2배 더 뛰어납니다. 동적 시퀀스에서 패딩을 방지함으로써 PIT는 기준선 대비 1.6배 ~ 1.7배의 속도 향상에 기여합니다. FFN 계층의 ReLU 활성화에서 동적 희소성을 추가로 활용함으로써 PIT는 성능을 1.3배 ~ 1.4배 더 향상시킵니다. 블록 크기가 32x32인 Triton 블록 희소 커널을 사용하는 PyTorch-S와 비교하여 PIT는 더 작은 마이크로 블록(예: 1x32)과 SRead 및 SWrite를 사용한 효율적인 계산을 사용하여 계산 낭비를 방지합니다. 또한 PyTorch-S는 희소 형식 변환의 오버헤드에도 영향을 받으므로 가장 높은 지연 시간을 보입니다. 메모리 소비 측면에서 DeepSpeed는 전체 인코더 계층을 하나의 연산자로 융합하여 활성화 메모리를 절약하므로 메모리 사용량이 가장 적습니다.
MOE
인코더와 MoE 구조를 가진 대규모 비전 모델인 SwinMoE에 대한 실험 [11]에서 PIT의 성능은 A100에서 float16 정밀도로 평가되었습니다. 비주얼 트랜스포머의 경우, 동일한 배치 내의 입력 이미지는 동일한 해상도로 재조정되어 시퀀스 길이를 일관되게 유지합니다. 실험에서는 다양한 배치 크기와 전문가 수를 사용하여 Swin-MoE의 종단 간 추론 지연 시간과 메모리 사용량을 비교했습니다. MegaBlocks는 모든 전문가를 동시에 실행하여 희소 커널을 효과적으로 활용하여 계산 낭비를 방지함으로써 다른 기준선보다 우수합니다. PIT는 MegaBlocks에 비해 메모리 계층 간 데이터 이동에서 데이터 재셔플링을 지원하여 성능을 더욱 향상시킵니다.
A100에서의 SwinMoE 종단 간 지연 시간 및 메모리 사용량 PyTorch, PyTorchS, Tutel, DeepSpeed 및 MegaBlocks와 비교하여 PIT는 각각 1.5배 ~ 6.3배, 1.5배 ~ 2.9배, 1.1배 ~ 1.8배, 1.2배 ~ 1.6배, 1.1배 ~ 1.4배의 속도 향상을 달성했습니다. Swin-MoE에 대한 PIT의 성능 향상은 Switch Transformer보다 적은데, 이는 Swin-MoE가 Switch Transformer보다 전문가 수가 상당히 적기 때문입니다. 따라서 전문가 수가 8에서 32로 증가하면 MoE 계층은 종단 간 지연 시간의 23.6%에서 61.2%만을 차지합니다. MoE 계층만의 지연 시간을 비교할 때, PIT는 MegaBlocks보다 약 1.2배 ~ 1.7배 빠릅니다. 다음은 PIT의 컴파일된 비교 데이터입니다:
마지막으로, 가속화에 필요한 하드웨어 지원에 대해 논의해 보겠습니다.
GPU
NVIDIA A100
A100은 새로운 Ampere 아키텍처를 사용하며, 최대 6912개의 CUDA 코어와 40GB의 고속 HBM2 메모리를 갖추고 있습니다. 또한 2세대 NVLink 기술을 지원하여 GPU 간 빠른 통신을 가능하게 하고 대규모 모델의 훈련 속도를 높입니다. A100은 강력한 새로운 3세대 Tensor Core와 함께 DL 및 HPC 데이터 유형에 대한 포괄적인 지원, 그리고 처리량을 두 배로 높이는 새로운 희소 기능을 도입했습니다. A100의 TF32 Tensor Core 연산은 DL 프레임워크 및 HPC에서 FP32 입력/출력 데이터를 가속화하는 간단한 경로를 제공하며, V100 FP32 FMA 연산보다 10배 빠르게 실행되며, 희소성의 경우 20배 빠릅니다. FP16/FP32 혼합 정밀도 DL의 경우 A100의 성능은 V100의 2.5배이며, 희소성을 적용하면 5배로 증가합니다. PyTorch 프레임워크로 AI 모델을 실행할 때, A100은 이전 세대 V100 칩에 비해 BERT 모델 훈련에서 6배, BERT 추론에서 7배의 성능 향상을 보여줍니다.
Intel Max 시리즈 GPU
참고 문헌 [18]에 따르면, 최근 NVIDIA V100 GPU에서 두 가지 희소 행렬 연산을 구현한 결과 V100의 참조 구현에 비해 최대 10배의 성능 향상을 보였습니다.
결론
요약하자면, 희소성을 통한 LLM 추론 가속화에 관한 세 가지 결론은 다음과 같습니다:
- 가중치 희소성(50%), 활성화 희소성(90%) 및 MoE 희소성(예: Mistral 8x7B의 75% 동적 희소성)은 직교 요소입니다(효과는 누적될 수 있지만 모델 성능에 영향을 줄 수 있음). PIT 컴파일러의 희소 모델에 대한 2~3배 가속 효과와 결합하면, 현재 주류 추론 프레임워크(TGI/vLLM 등)에 비해 이론적 가속 한계는 5~30배입니다.
- 지연 시간은 현재 희소성 기술의 주요 초점입니다(희소성은 일정한 효과가 있지만 배치 크기가 클수록 희소성 효과는 떨어짐). 처리량 방향은 새로운 최적화 방향이 될 것입니다. 활성화 희소성은 일종의 거듭제곱 분포를 보이므로 상당한 엔지니어링 최적화 잠재력이 있습니다.
- LLM에서 비-ReLU 활성화를 ReLU 활성화로 변환하는 비용은 비교적 낮습니다(약 3%의 미세 조정 비용, 데이터 품질이 상대적으로 중요함). 또한 DejaVu에서 예측 변수를 훈련하는 비용은 더 낮습니다(훈련이 빠르고 데이터에 독립적임). 추론 속도 증가로 인한 비용 절감과 결합하면, 이는 ROI가 높은 이니셔티브이며 상업적으로 실행 가능합니다.
참고 논문
[11] Pit: Optimization of dynamic sparse deep learning models via permutation invariant transformation [18] Performance Optimization of Deep Learning Sparse Matrix Kernels on Intel Max Series GPU
novita.ai 는 Stable Diffusion API와 10,000개 모델에 대한 수백 가지의 빠르고 저렴한 AI 이미지 생성 API를 제공합니다. 🎯 최소 2초 만에 가장 빠른 생성, 종량제 요금제, 표준 이미지당 최소 $0.0015, 자체 모델을 추가하고 GPU 유지 관리 불필요. 오픈 소스 확장 기능을 무료로 공유하세요.
