microsoft/MInference
[NeurIPS'24 Spotlight, ICLR'25, ICML'25] To speed up Long-context LLMs' inference, approximate and dynamic sparse calculate the attention, which reduces inference latency by up to 10x for pre-filling on an A100 while maintaining accuracy.
What it solves
MInference는 긴 문맥 대규모 언어 모델(LLMs)의 프리필링 단계에서 발생하는 높은 계산 비용과 느린 속도를 해결합니다. 백만 토큰 규모의 프롬프트를 처리하는 데는 일반적으로 상당한 시간과 메모리가 필요하지만, MInference는 모델의 정확도를 유지하면서 이를 가속화하는 것을 목표로 합니다.
How it works
이 프로젝트는 LLM 어텐션이 동적으로 희소하며 종종 정적 패턴을 따른다는 관찰 결과에 기반합니다. 작동 방식은 다음과 같습니다:
- Offline Analysis: 실행 전, 각 어텐션 헤드가 어떤 희소 패턴에 속하는지 결정합니다.
- Online Approximation: 추론 중에 희소 인덱스를 근사합니다.
- Custom Kernels: 이러한 패턴을 기반으로 어텐션을 동적으로 계산하기 위해 최적화된 커스텀 커널을 사용합니다.
또한, 이 프로젝트는 시각 언어 모델(VLMs)을 위한 MMInference를 포함하고 있으며, 이는 모달리티 인식 순열 희소 어텐션(modality-aware permutation sparse attention)을 사용하여 시각적 입력의 그리드 패턴과 모달리티 경계를 처리합니다.
Who it’s for
LLaMA-3, Qwen2.5, GLM-4와 같은 긴 문맥 LLM을 다루는 개발자 및 연구자로서, A100 GPU와 같은 하드웨어에서 프리필링 지연 시간과 메모리 사용량을 줄여야 하는 분들을 대상으로 합니다.
Highlights
- Significant Speedup: 단일 A100에서 1M 컨텍스트에 대해 최대 10배 빠른 프리필링을 달성합니다.
- Broad Integration: Qwen2.5-1M에 통합되었으며, vLLM 및 SGLang과 같은 추론 엔진에서 지원됩니다.
- Wide Model Support: 다양한 LLaMA-style, Phi 및 기타 오픈 소스 긴 문맥 LLM과 호환됩니다.
- Comprehensive Tooling: 생성, 압축, 검색 및 로딩에 걸쳐 긴 문맥 방법을 평가하기 위한 KV cache 중심의 벤치마크인 SCBench를 포함합니다.