Aphrodite Engine - 고처리량 LLM 서빙 치트시트
Aphrodite Engine은 vLLM에서 포크된 고성능 LLM 추론 및 서빙 엔진입니다. vLLM의 PagedAttention과 연속 배치를 기반으로 하면서, 두 가지 큰 차이점을 더합니다: 모든 엔진 중 가장 광범위한 양자화 형식 커버리지(GGUF, GPTQ, AWQ, ExLlamaV3, AQLM, BitNet, Marlin 등, 양자화된 KV 캐시 포함) 그리고 고급 샘플러 (DRY, XTC, Mirostat)로 채팅/창의적 사용에 중요합니다. OpenAI 호환 API를 노출하므로 기존 클라이언트에 바로 적용됩니다.
설치
| 방법 | 명령어 |
|---|
| pip | pip install aphrodite-engine |
| 서버 실행 | aphrodite run <model> |
| Docker | docker run --gpus all -p 2242:2242 alpindale/aphrodite-openai |
| 요구사항 | NVIDIA GPU + CUDA (일부 빌드에서 AMD/ROCm 지원) |
| 검증 | aphrodite --version |
서버 시작
# 포트 2242에서 OpenAI 호환 API를 사용하여 모델 제공
aphrodite run meta-llama/Llama-3.1-8B-Instruct
# 양자화된 GGUF 모델 제공
aphrodite run ./model.Q4_K_M.gguf --quantization gguf
# 다중 GPU 텐서 병렬화
aphrodite run big-model --tensor-parallel-size 2
| 플래그 | 설명 |
|---|
--quantization | 형식: gguf, gptq, awq, exl3, fp8, … |
--tensor-parallel-size N | 모델을 N개 GPU 전체에 분할 |
--max-model-len N | 컨텍스트 길이 |
--gpu-memory-utilization 0.9 | VRAM 사용 비율 |
--kv-cache-dtype fp8 | KV 캐시를 메모리 절감을 위해 양자화 |
--dtype | 모델 계산 dtype (auto, half, bfloat16) |
--port 2242 | API 포트 |
--api-keys KEY | API 키 필요 |
OpenAI 호환 API
curl http://localhost:2242/v1/completions \
-H "Content-Type: application/json" \
-d '{"model":"default","prompt":"Hello","max_tokens":50}'
| 엔드포인트 | 목적 |
|---|
/v1/completions | 텍스트 완성 |
/v1/chat/completions | 채팅 완성 |
/v1/models | 로드된 모델 목록 |
/v1/embeddings | 임베딩 (임베딩 모델) |
양자화 형식
| 형식 | 사용 |
|---|
| GGUF | llama.cpp 스타일 k-quants (커뮤니티 모델) |
| GPTQ / AWQ | 인기있는 4비트 가중치 전용 형식 |
| ExLlamaV3 (exl3) | 고품질 가변 비트 양자화 |
| AQLM / QuIP# | 극도의 저비트 |
| Marlin | 빠른 GPTQ/AWQ 커널 |
| fp8 | 8비트 부동소수점 가중치/활성화 |
폭이 핵심입니다: Aphrodite는 vanilla vLLM이 로드할 수 없는 커뮤니티 양자화 모델을 제공할 수 있습니다.
고급 샘플러
| 샘플러 | 효과 |
|---|
| DRY | ”Don”t Repeat Yourself” — 축자 반복 감소 |
| XTC | 상위 선택 제외 — 창의성 강화 |
| Mirostat | 혼란도 설정점 목표 |
min_p, top_a, tfs | 추가 절단 샘플러 |
요청에서 추가 필드로 전달합니다 (예: "dry_multiplier": 0.8).
성능 튜닝
| 옵션 | 효과 |
|---|
--tensor-parallel-size | GPU 전체 확장 |
--kv-cache-dtype fp8 | 더 긴 컨텍스트에 맞추기 / 더 많은 동시성 |
--max-num-seqs | 동시성 (배치) 한계 |
--enforce-eager | CUDA 그래프 비활성화 (디버깅) |
--quantization | 메모리/속도 대비 품질 거래 |
Aphrodite vs 다른 추론 엔진
| 측면 | Aphrodite | vLLM | llama.cpp |
|---|
| 베이스 | vLLM 포크 | 원본 | C/C++ |
| Quant 커버리지 | 가장 광범위 | 확대 중 | GGUF k-quants |
| 샘플러 | DRY/XTC/Mirostat | 표준 | 많음 |
| 최고의 용도 | 커뮤니티 양자화 모델, 채팅 | 최대 처리량, 표준 형식 | CPU/엣지, GGUF |
리소스