Aller au contenu

Moteur Aphrodite - Service d'inférence LLM à débit élevé

Moteur Aphrodite - Service d’inférence LLM à débit élevé

Aphrodite Engine est un moteur d’inférence et de service LLM haute performance dérivé de vLLM. Il construit sur PagedAttention et la mise en lot continue de vLLM, puis ajoute deux grands différenciateurs : la couverture de formats de quantification la plus large de tout moteur (GGUF, GPTQ, AWQ, ExLlamaV3, AQLM, BitNet, Marlin, et plus, plus cache KV quantifiée) et des samplers avancés (DRY, XTC, Mirostat) qui importent pour le chat/créatif. Il expose une API compatible OpenAI, donc il s’insère dans les clients existants.

Installation

MéthodeCommande
pippip install aphrodite-engine
Exécuter le serveuraphrodite run <model>
Dockerdocker run --gpus all -p 2242:2242 alpindale/aphrodite-openai
ExigencesNVIDIA GPU + CUDA (AMD/ROCm supporté sur certains builds)
Vérifieraphrodite --version

Démarrer un serveur

# Servir un modèle avec une API compatible OpenAI sur le port 2242
aphrodite run meta-llama/Llama-3.1-8B-Instruct

# Servir un modèle GGUF quantifié
aphrodite run ./model.Q4_K_M.gguf --quantization gguf

# Parallélisme de tenseur multi-GPU
aphrodite run big-model --tensor-parallel-size 2
FlagDescription
--quantizationFormat : gguf, gptq, awq, exl3, fp8, …
--tensor-parallel-size NDiviser le modèle entre N GPU
--max-model-len NLongueur du contexte
--gpu-memory-utilization 0.9Fraction de VRAM à utiliser
--kv-cache-dtype fp8Quantifier le cache KV pour économiser la mémoire
--dtypeDtype de calcul du modèle (auto, half, bfloat16)
--port 2242Port de l’API
--api-keys KEYExiger une clé API

API compatible OpenAI

curl http://localhost:2242/v1/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"default","prompt":"Hello","max_tokens":50}'
EndpointObjectif
/v1/completionsComplétude de texte
/v1/chat/completionsComplétude de chat
/v1/modelsLister les modèles chargés
/v1/embeddingsEmbeddings (modèles d’embedding)

Formats de quantification

FormatUtilisation
GGUFStyles k-quants llama.cpp (modèles communautaires)
GPTQ / AWQFormats populaires 4-bit poids-only
ExLlamaV3 (exl3)Quantification de bits variables de haute qualité
AQLM / QuIP#Extrêmement faible-bit
MarlinKernels rapides GPTQ/AWQ
fp8Poids/activations 8-bit float

L’amplitude est le point : Aphrodite peut servir les modèles quantifiés communautaires que vanilla vLLM ne peut pas charger.

Samplers avancés

SamplerEffet
DRY« Don”t Repeat Yourself » — réduit la répétition verbatim
XTCExclude Top Choices — renforce la créativité
MirostatCible un point de perplexité
min_p, top_a, tfsSamplers de troncature supplémentaires

Passer ces options comme champs supplémentaires dans la requête (ex. "dry_multiplier": 0.8).

Tuning des performances

OptionEffet
--tensor-parallel-sizeMettre à l’échelle entre les GPU
--kv-cache-dtype fp8Adapter un contexte plus long / plus de concurrence
--max-num-seqsLimite de concurrence (batch)
--enforce-eagerDésactiver les graphes CUDA (debug)
--quantizationFaire un compromis qualité pour mémoire/vitesse

Aphrodite vs autres moteurs d’inférence

AspectAphroditevLLMllama.cpp
BaseDérivé de vLLMOriginalC/C++
Couverture quantLa plus largeCroissanteGGUF k-quants
SamplersDRY/XTC/MirostatStandardNombreux
Meilleur pourModèles quantifiés communautaires, chatDébit max, formats standardCPU/edge, GGUF

Ressources