콘텐츠로 이동

2026년 LLM 추론 엔진의 현황: vLLM, llama.cpp, Aphrodite, LMDeploy

· 13 min read · default
aillminferencequantizationservinglocal-llm

몇 년 전, 큰 언어 모델을 스스로 실행하는 것은 연구 스크립트, 많은 GPU 메모리, 기도를 의미했습니다. 오늘 그것은 작은 성숙 전문 추론 엔진 세트에서 선택하는 것을 의미합니다 — 그리고 선택이 중요합니다. 왜냐하면 그것들은 다른 상황을 위해 최적화된 진정으로 다른 도구이기 때문입니다. 수천의 동시 사용자를 최대 처리량에서 서빙해야 하나요, 또는 GPU 없이 랩톱에서 모델을 실행합니다? 커뮤니티 양자화 이국적 형식으로 모델을 로드해야 하나요, 또는 단일 소비자 그래픽 카드에 7십억 매개변수 모델을 맞춰야 하나요? 2026년에서 "최고의 LLM 추론 엔진은 무엇입니까"에 대한 정직한 답은 하나가 없다는 것입니다; 포트폴리오가 있고, 각 엔진이 무엇을 위해 최적화되었는지 이해하는 것이 집합을 선택하는 방법입니다.

이 가이드는 2026년 추론 환경을 각 엔진이 최고의 일을 수행하는 작업으로 매핑합니다. 주요 오픈소스 프로젝트 — vLLM, llama.cpp, Aphrodite Engine, LMDeploy, SGLang, ExLlamaV3 — 각각 명확한 성격을 가지고 있고, 그 성격을 알고 있으면 워크로드에 틀린 도구를 강제하지 않습니다. 실행 과정에서 그 차이점을 실제로 운전하는 개념을 포함합니다: 처리량 대 지연시간, 양자화, 하드웨어 맞춤.

선택을 운전하는 개념

엔진 앞에, 세 가지 아이디어는 그들 사이의 대부분의 차이를 설명합니다. 첫 번째는 처리량 대 지연시간입니다. 많은 사용자를 동시에 서빙하는 것은 처리량 문제입니다: 요청을 함께 배치하여 GPU를 포화시키고 모두의 초당 토큰을 최대화하려고 합니다. 하나의 모델을 하나의 사용자를 위해 실행하는 것은 지연시간 문제입니다: 그 단일 스트림을 위해 가능한 한 빠른 응답을 원합니다. 엔진은 하나 또는 다른를 최적화하고, 기법은 다릅니다 — 처리량을 위한 연속 배치와 paged attention, 지연시간을 위한 마른 단일 스트림 실행.

두 번째는 양자화입니다. 전체 정밀도 모델 가중치는 크고; 양자화는 메모리를 축소하고 추론을 가속화하기 위해 더 낮은 정밀도 (8비트, 4비트, 또는 더 적게)에 저장하고, 품질에 약간 비용을 합니다. 하지만 양자화는 하나의 것이 아닙니다 — 그것은 형식의 동물원입니다 (GGUF, GPTQ, AWQ, EXL3, 등), 각각 다른 도구, 품질/크기 절충, 엔진 지원을 사용합니다. 엔진이 로드할 수 있는 어떤 형식이 종종 결정하는 요소입니다. 왜냐하면 모델이 특정 형식에만 존재할 수 있기 때문입니다.

세 번째는 하드웨어 맞춤입니다. H100이 있는 데이터센터는 MacBook에 있는 개발자 또는 하나의 소비자 GPU를 가진 취미인보다 다른 필요를 가집니다. 어떤 엔진은 NVIDIA 서버 하드웨어를 목표로 하고 많은 GPU에 걸쳐 확장합니다; 다른 것은 CPU와 Apple Silicon을 포함한 어디서든 실행됩니다; 다른 것은 큰 모델을 단일 소비자 카드에 누릅니다. 엔진을 하드웨어로 맞추기는 결정의 절반입니다.

vLLM: 처리량 표준

vLLM은 고처리량 서빙을 위한 참고 엔진이고, 그것은 PagedAttention으로 그 위치를 얻었습니다 — 이전에 배치할 수 있는 요청 수를 제한했던 낭비를 제거하고, 페이지 같은 가상 메모리처럼 KV 캐시를 관리하는 기법. 연속 배치와 결합하면, 이것은 vLLM이 GPU를 많은 동시 요청으로 포화시키고, 프로덕션 서빙 요청 집계 초당 토큰을 제공할 수 있게 합니다. 그것은 OpenAI 호환 API를 노출하고, 많은 GPU 전체에서 확장할 텐서 및 파이프라인 병렬화를 지원하고, 가장 널리 채택된 엔진이 되었으므로, 다른 도구는 그것을 기반으로 구축합니다.

vLLM은 당신의 문제가 서빙일 때 옳은 선택입니다 — 많은 사용자, 프로덕션 트래픽, 표준 모델 형식, NVIDIA 하드웨어 — 그리고 당신은 가장 널리 채택된 엔진이 제공하는 처리량과 생태계 성숙을 원합니다. 그것은 랩톱에서 모델을 실행하는 도구가 아니고, 역사적으로 그 양자화 형식 커버리지는 커뮤니티의 더 이국적 형식을 뒤떨어졌습니다 (비록 그것은 계속 확장합니다). 표준 모델 서빙의 핵심 작업을 위해, 그것은 안전하고 강력한 기본값입니다.

llama.cpp: 로컬 및 어디서든

만약 vLLM이 데이터센터를 소유한다면, llama.cpp는 어디서든 소유합니다. C/C++로 쓰여지고 무거운 런타임 의존성이 없으면, 그것은 거의 모든 것에서 LLM을 실행합니다 — CPU, 소비자 GPU, Apple Silicon, 심지어 휴대폰과 Raspberry Pi — 그리고 GitHub의 이유 있는 가장 별 AI 프로젝트 중 하나입니다. 그 GGUF 형식과 k-quant 시스템 (Q4_K_M, Q5_K_S, Q6_K, 등)은 8비트 아래 2비트 미만으로 블록 현명한 양자화를 제공하고, 당신은 정확히 얼마만큼 품질을 거래하기 위해 메모리가 얼마나 필요한지 다이얼할 수 있습니다. 그리고 그렇지 않으면 맞지 않을 모델을 실행하세요.

llama.cpp는 로컬, 오프라인, 또는 엣지 추론을 위한 선택입니다: 자신의 기계에서 모델을 실행하기, 오프라인, GPU 없음이 필요하거나, modest 하드웨어에서 실행해야 하는 애플리케이션에 LLM 추론을 임베딩합니다. 그것은 Ollama와 같은 도구를 포함한 로컬 LLM 생태계의 큰 몫을 힘줍니다. 이식성과 어디서든 실행이 원본 다중 사용자 처리량보다 중요할 때, llama.cpp는 매치되지 않습니다 — 그리고 그것의 GGUF 형식은 커뮤니티 공유 양자화 모델의 lingua franca가 되었습니다.

Aphrodite: 양자화 omnivore

Aphrodite Engine은 vLLM의 포크로, vLLM의 처리량 아키텍처를 유지하지만 두 가지를 추가합니다: 어떤 엔진의 가장 광범위한 양자화 형식 커버리지, 그리고 고급 샘플러. vLLM은 증가하고 있지만 엄선된 형식 세트를 지원하는 곳, Aphrodite는 거의 모든 커뮤니티가 생성합니다 — GGUF, GPTQ, AWQ, ExLlamaV3, AQLM, BitNet, Marlin, 등, 양자화된 KV 캐시를 더합니다. 샘플링 측면에서 그것은 DRY (anti-repetition), XTC (창의성), Mirostat를 배제하고, 채팅과 창의적 애플리케이션에 중요합니다.

Aphrodite는 모델을 서빙해야 할 때를 위한 선택입니다 (그래서 당신은 vLLM-클래스 처리량을 원합니다) 하지만 모델이 vLLM이 로드할 수 없는 형식에 존재하거나, 그 고급 샘플러를 1차 기능으로 원할 때입니다. 그것은 커뮤니티 모델과 역할놀이 생태계에서 나왔고, 그 유산은 그것의 우선순위에 표시됩니다: 커뮤니티가 생산한 어떤 양자화든 실행하고, 세밀한 샘플러 제어를 사용합니다. 만약 당신이 완벽한 양자화 모델을 찾았고, 당신의 엔진이 그 형식을 로드할 수 없다는 것을 발견했다면, Aphrodite는 답입니다.

LMDeploy: 압축과 서빙, VLM

LMDeploy, InternLM/OpenMMLab 생태계에서, 고처리량 서빙 엔진 (TurboMind)과 내장 압축 도구 모음을 짝짓습니다. 그것은 지속적 배치와 차단된 KV 캐시를 통해 강한 처리량을 제공하고, 상자 밖에서 4비트 AWQ 가중치 양자화와 KV 캐시 양자화를 제공하고, 비전 언어 모델에 특히 강한 지원을 가집니다 (InternVL 및 Qwen-VL과 같은). 그것의 판매 포인트는 통합입니다: 모델을 양자화하고 하나의 도구 키트로 서빙하는 것, 별개 도구를 함께 스티칭하는 것보다.

LMDeploy는 전체 정밀도 모델에서 효율적으로 양자화 끝점으로 가는 길을 원할 때를 위한 선택입니다. 특히 멀티모달 모델을 서빙하거나 InternLM 생태계 내에서 일하고 있을 때입니다. 그것은 모든 커뮤니티 형식을 로드하기에 대해서입니다 (Aphrodite의 경지) 그리고 더 조직적이고 고성능 압축-그리고-서빙 파이프라인에 대해, 1차-클래스 VLM 지원을 사용합니다.

SGLang 및 ExLlamaV3: 두 명의 더 많은 전문가

두 더 많은 엔진은 특정 필요를 위해 환경을 라운드합니다. SGLang는 특히 구조화 생성과 복잡한 다단계 LLM 프로그램에서 고성능 서빙에 초점을 합니다 — 그것의 RadixAttention은 프리픽스 캐싱을 최적화하고, 많은 요청이 프롬프트 프리픽스를 공유할 때 빛나고 (에이전트와 적은 샷 워크로드에서 일반적입니다). 그것은 구조화되고 프로그래밍 생성 패턴에서 모서리를 가진 강한 처리량 엔진입니다.

ExLlamaV3는 좁고 가치있는 문제를 공격합니다: 소비자 NVIDIA GPU에서 VRAM 당 최대 품질. 그것의 EXL3 형식은 가변 비트율 양자화를 제공합니다 — 당신은 정확하게 평균 비트/가중치를 목표로 합니다 — 큰 모델이 단일 24GB 카드에 맞으면서도 메모리가 허용하는 최고 품질에서입니다. 로컬 enthusiast가 하나의 소비자 GPU에서 큰 모델을 실행할 때, ExLlamaV3는 종종 같은 VRAM에서 고정 형식 대안보다 더 많은 사용 가능한 품질을 추출하고, TabbyAPI 같은 서버로 플러그되어 OpenAI 호환 끝점입니다.

양자화 절충 이해

양자화가 당신이 종종 어느 엔진을 사용할 수 있는지 결정하는 레버이기 때문에, 그것은 그것을 실제로 거래할 때 이해할 가치가 있습니다. 양자화는 모델의 가중치의 수치 정밀도를 감소시킵니다 — 16비트 부동에서 8, 4, 또는 더 적은 비트로 — 그리고 효과는 대략 메모리에서 선형입니다: 4비트 양자화 모델은 약 16비트 원본 크기의 1/4입니다. 이것은 140GB를 필요로 할 7십억 매개변수 모델을 단일 24GB 소비자 카드에 누를 수 있게 합니다. 속도 이점은 따릅니다. 왜냐하면 더 적은 메모리 트래픽과 더 작은 가중치는 더 빠른 추론을 의미합니다. 특히 메모리 대역폭이 병목일 때.

비용은 품질이지만, 관계는 선형이 아니고 이는 핵심 인사이트입니다. 16비트에서 8비트로 가는 것은 대부분 모델에 거의 무손실입니다 — 품질 차이는 실천에서 지각할 수 없습니다. 4비트로 가는 것은 작고 보통 수용 가능한 저하를 도입합니다. 이것이 Q4_K_M과 4비트 AWQ 같은 4비트 형식이 로컬 추론의 워크호스인 이유입니다. 4비트 아래, 품질은 더 급하게 떨어지고, 2비트에서 저하는 상당합니다. 비록 EXL3의 가변 비트율 접근과 AQLM 같은 현대 방법은 이전 기법보다 그 경계를 더 밀어냅니다. 실제 지침은 메모리가 허용하는 가장 높은 비트율을 사용하는 것입니다: 만약 모델이 5 또는 6비트에 맞으면, 더 낮게 갈 드물게 이유가 있고, 만약 그것이 3비트에서만 맞으면, 그것을 느끼기를 기대합니다.

이것은 또한 왜 양자화 형식 — 비트율만이 아니라 — 엔진 선택에 중요한지입니다. 다른 형식은 가중치를 둥글게 하는 방법을 결정하기 위해 다른 알고리즘을 사용하고, 그들은 상호 교환 가능하지 않습니다: GGUF 모델은 GGUF를 읽는 엔진이 필요하고, EXL3 모델은 ExLlamaV3 또는 호환 서버가 필요하고, AWQ 모델은 AWQ 지원이 필요합니다. 커뮤니티는 것이 그것의 선호 도구가 사용하는 어떤 형식에서 모델을 생성하므로, 형식 당신의 목표 모델이 존재하는 것이 제약이 어느 엔진이 그것을 로드할 수 있는지입니다. 이것은 정확히 Aphrodite의 형식 폭이 소중한 이유이고, 가끔 팀을 특정 엔진으로 강제하는 제약이 그것의 성능 때문이 아니라 단순히 그것이 그들이 원하는 모델을 로드할 수 있는 유일한 것이기 때문입니다. 비트율/품질 곡선과 형식 환경을 이해하고, 양자화 운전 엔진 결정의 부분이 신비로운 것을 멈춥니다.

엔진 선택

결정은 엔진을 당신의 작업과 하드웨어로 맞추는 것으로 감소합니다. NVIDIA 하드웨어의 규모의 프로덕션 서빙, 표준 모델 형식을 위해, vLLM을 사용합니다 — 그것은 깊은 생태계 처리량 표준입니다. 로컬, 오프라인, 또는 엣지 추론을 위해, 또는 CPU/Apple Silicon/modest 하드웨어에서 실행, llama.cpp를 사용합니다 — 아무것도 그것의 이식성과 맞고, 그것의 GGUF 형식은 커뮤니티 표준입니다. 이국적 형식의 커뮤니티 양자화 모델을 서빙하기 위해, 또는 고급 샘플러 원할 때, Aphrodite Engine을 사용합니다 — 그것은 양자화 omnivore입니다. 압축 그리고 서빙 전부 일 개 인 일 개 파이프라인을 위해, 특히 비전 언어 모델을 사용, LMDeploy를 사용합니다. 구조화/에이전트 생성 처리량, 고려 SGLang. 그리고 단일 소비자 GPU에서 VRAM 당 최대 품질을 위해, ExLlamaV3를 사용합니다.

메타 포인트는 이 엔진이 점점 기초를 공유합니다 — 여럿은 vLLM을 기반으로 하거나 포크하고, 여럿은 OpenAI 호환 API를 말하고, 양자화 모델은 그것들 사이에서 이동합니다 — 그래서 선택은 락인에 대해 덜 그리고 어느 성격이 오늘 워크로드를 맞하는지에 대해 더 입니다. 팀은 로컬 개발을 위해 llama.cpp와 프로덕션 서빙을 위해 vLLM을 사용하거나, LMDeploy가 모델을 양자화하는 동안 Aphrodite가 그 후 제공한다는 경우도 같이 사용할 수도 있습니다. 당신의 지배적 제약을 진단하세요 — 처리량, 이식성, 양자화 폭, 또는 VRAM 당 품질 — 그리고 올바른 엔진은 따릅니다.

핵심

이제 2026년에서 단일 최고의 LLM 추론 엔진이 없고, 하나를 추구하는 것은 틀린 목표입니다. 성숙한 포트폴리오가 있고, 각 엔진이 명확한 작업을 가집니다: vLLM 규모에서 처리량 서빙, llama.cpp로컬과 어디서든, Aphrodite로 가장 넓은 양자화 커버리지, LMDeploy로 압축 그리고 서빙과 VLM, SGLang로 구조화 생성, ExLlamaV3로 소비자 GPU에서 품질 대 VRAM. 선택을 운전하는 세 가지 레버를 이해하세요 — 처리량 대 지연시간, 양자화 형식, 하드웨어 맞춤 — 엔진을 당신의 지배적 제약으로 맞추고, 당신은 더 빠르게, 더 싸게, 당신이 실제로 가지고 있는 하드웨어에서 모델을 실행할 것입니다.

참고 및 리소스

엔진

배경 및 분석

관련 1337skills 치트시트