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éthode | Commande |
|---|
| pip | pip install aphrodite-engine |
| Exécuter le serveur | aphrodite run <model> |
| Docker | docker run --gpus all -p 2242:2242 alpindale/aphrodite-openai |
| Exigences | NVIDIA GPU + CUDA (AMD/ROCm supporté sur certains builds) |
| Vérifier | aphrodite --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
| Flag | Description |
|---|
--quantization | Format : gguf, gptq, awq, exl3, fp8, … |
--tensor-parallel-size N | Diviser le modèle entre N GPU |
--max-model-len N | Longueur du contexte |
--gpu-memory-utilization 0.9 | Fraction de VRAM à utiliser |
--kv-cache-dtype fp8 | Quantifier le cache KV pour économiser la mémoire |
--dtype | Dtype de calcul du modèle (auto, half, bfloat16) |
--port 2242 | Port de l’API |
--api-keys KEY | Exiger 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}'
| Endpoint | Objectif |
|---|
/v1/completions | Complétude de texte |
/v1/chat/completions | Complétude de chat |
/v1/models | Lister les modèles chargés |
/v1/embeddings | Embeddings (modèles d’embedding) |
| Format | Utilisation |
|---|
| GGUF | Styles k-quants llama.cpp (modèles communautaires) |
| GPTQ / AWQ | Formats populaires 4-bit poids-only |
| ExLlamaV3 (exl3) | Quantification de bits variables de haute qualité |
| AQLM / QuIP# | Extrêmement faible-bit |
| Marlin | Kernels rapides GPTQ/AWQ |
| fp8 | Poids/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
| Sampler | Effet |
|---|
| DRY | « Don”t Repeat Yourself » — réduit la répétition verbatim |
| XTC | Exclude Top Choices — renforce la créativité |
| Mirostat | Cible un point de perplexité |
min_p, top_a, tfs | Samplers de troncature supplémentaires |
Passer ces options comme champs supplémentaires dans la requête (ex. "dry_multiplier": 0.8).
| Option | Effet |
|---|
--tensor-parallel-size | Mettre à l’échelle entre les GPU |
--kv-cache-dtype fp8 | Adapter un contexte plus long / plus de concurrence |
--max-num-seqs | Limite de concurrence (batch) |
--enforce-eager | Désactiver les graphes CUDA (debug) |
--quantization | Faire un compromis qualité pour mémoire/vitesse |
Aphrodite vs autres moteurs d’inférence
| Aspect | Aphrodite | vLLM | llama.cpp |
|---|
| Base | Dérivé de vLLM | Original | C/C++ |
| Couverture quant | La plus large | Croissante | GGUF k-quants |
| Samplers | DRY/XTC/Mirostat | Standard | Nombreux |
| Meilleur pour | Modèles quantifiés communautaires, chat | Débit max, formats standard | CPU/edge, GGUF |
Ressources