Aphrodite Engine - Servicio LLM de Alto Rendimiento
Aphrodite Engine es un motor de inferencia y servicio LLM de alto rendimiento bifurcado de vLLM. Se construye sobre PagedAttention de vLLM y batching continuo, luego agrega dos grandes diferenciadores: la cobertura más amplia de formatos de cuantización de cualquier motor (GGUF, GPTQ, AWQ, ExLlamaV3, AQLM, BitNet, Marlin, y más, plus caché KV cuantizado) y muestreadores avanzados (DRY, XTC, Mirostat) que importan para chat/uso creativo. Expone una API compatible con OpenAI, así que se integra en clientes existentes.
Instalación
| Método | Comando |
|---|
| pip | pip install aphrodite-engine |
| Ejecutar el servidor | aphrodite run <model> |
| Docker | docker run --gpus all -p 2242:2242 alpindale/aphrodite-openai |
| Requisitos | GPU NVIDIA + CUDA (AMD/ROCm soportado en algunas compilaciones) |
| Verificar | aphrodite --version |
Iniciando un Servidor
# Servir un modelo con una API compatible con OpenAI en puerto 2242
aphrodite run meta-llama/Llama-3.1-8B-Instruct
# Servir un modelo GGUF cuantizado
aphrodite run ./model.Q4_K_M.gguf --quantization gguf
# Paralelismo de tensor multi-GPU
aphrodite run big-model --tensor-parallel-size 2
| Bandera | Descripción |
|---|
--quantization | Formato: gguf, gptq, awq, exl3, fp8, … |
--tensor-parallel-size N | Dividir el modelo a través de N GPUs |
--max-model-len N | Longitud de contexto |
--gpu-memory-utilization 0.9 | Fracción de VRAM a usar |
--kv-cache-dtype fp8 | Cuantizar la caché KV para ahorrar memoria |
--dtype | Dtype de cálculo del modelo (auto, half, bfloat16) |
--port 2242 | Puerto API |
--api-keys KEY | Requerir una clave API |
API Compatible con OpenAI
curl http://localhost:2242/v1/completions \
-H "Content-Type: application/json" \
-d '{"model":"default","prompt":"Hello","max_tokens":50}'
| Endpoint | Propósito |
|---|
/v1/completions | Completación de texto |
/v1/chat/completions | Completación de chat |
/v1/models | Listar modelos cargados |
/v1/embeddings | Incrustaciones (modelos de incrustación) |
| Formato | Uso |
|---|
| GGUF | Estilo llama.cpp k-quants (modelos comunitarios) |
| GPTQ / AWQ | Formatos populares de solo peso de 4-bit |
| ExLlamaV3 (exl3) | Cuantización de tasa de bits variable de alta calidad |
| AQLM / QuIP# | Bajo-bit extremo |
| Marlin | Kernels rápidos GPTQ/AWQ |
| fp8 | Pesos/activaciones flotantes de 8-bit |
La amplitud es el punto: Aphrodite puede servir modelos cuantizados por la comunidad que vLLM vanilla no puede cargar.
Muestreadores Avanzados
| Muestreador | Efecto |
|---|
| DRY | ”Don”t Repeat Yourself” — reduce la repetición verbatim |
| XTC | Exclude Top Choices — aumenta la creatividad |
| Mirostat | Apunta a un setpoint de perplejidad |
min_p, top_a, tfs | Muestreadores de truncamiento adicionales |
Pasa estos como campos adicionales en la solicitud (p. ej. "dry_multiplier": 0.8).
Afinación de Rendimiento
| Opción | Efecto |
|---|
--tensor-parallel-size | Escalar a través de GPUs |
--kv-cache-dtype fp8 | Ajustar contexto más largo / más concurrencia |
--max-num-seqs | Límite de concurrencia (lote) |
--enforce-eager | Desactivar gráficos CUDA (depuración) |
--quantization | Compensar calidad por memoria/velocidad |
Aphrodite vs Otros Motores de Inferencia
| Aspecto | Aphrodite | vLLM | llama.cpp |
|---|
| Base | Bifurcación de vLLM | Original | C/C++ |
| Cobertura de cuant | La más amplia | Creciente | GGUF k-quants |
| Muestreadores | DRY/XTC/Mirostat | Estándar | Muchos |
| Mejor para | Modelos cuantizados por comunidad, chat | Máximo throughput, formatos estándar | CPU/edge, GGUF |
Recursos