Aphrodite Engine - Serviço LLM de Alto Throughput
Aphrodite Engine é um motor de inferência e serviço LLM de alto desempenho separado do vLLM. Ele se baseia em PagedAttention e batching contínuo do vLLM, então adiciona dois grandes diferenciais: a cobertura de formato de quantização mais ampla de qualquer motor (GGUF, GPTQ, AWQ, ExLlamaV3, AQLM, BitNet, Marlin e muito mais, além de cache KV quantizado) e amostradores avançados (DRY, XTC, Mirostat) que importam para uso de chat/criativo. Expõe uma API compatível com OpenAI, então se integra em clientes existentes.
Instalação
| Método | Comando |
|---|
| pip | pip install aphrodite-engine |
| Execute o servidor | aphrodite run <model> |
| Docker | docker run --gpus all -p 2242:2242 alpindale/aphrodite-openai |
| Requisitos | GPU NVIDIA + CUDA (AMD/ROCm suportado em algumas builds) |
| Verificar | aphrodite --version |
Iniciando um Servidor
# Sirva um modelo com uma API compatível com OpenAI na porta 2242
aphrodite run meta-llama/Llama-3.1-8B-Instruct
# Sirva um modelo GGUF quantizado
aphrodite run ./model.Q4_K_M.gguf --quantization gguf
# Tensor parallelism multi-GPU
aphrodite run big-model --tensor-parallel-size 2
| Flag | Descrição |
|---|
--quantization | Formato: gguf, gptq, awq, exl3, fp8, … |
--tensor-parallel-size N | Divida o modelo entre N GPUs |
--max-model-len N | Comprimento de contexto |
--gpu-memory-utilization 0.9 | Fração de VRAM a usar |
--kv-cache-dtype fp8 | Quantize o cache KV para economizar memória |
--dtype | Tipo de computação do modelo (auto, half, bfloat16) |
--port 2242 | Porta da API |
--api-keys KEY | Exigir uma chave de API |
curl http://localhost:2242/v1/completions \
-H "Content-Type: application/json" \
-d '{"model":"default","prompt":"Hello","max_tokens":50}'
| Endpoint | Propósito |
|---|
/v1/completions | Conclusão de texto |
/v1/chat/completions | Conclusão de chat |
/v1/models | Liste modelos carregados |
/v1/embeddings | Embeddings (modelos de embedding) |
| Formato | Uso |
|---|
| GGUF | Estilo llama.cpp k-quants (modelos comunitários) |
| GPTQ / AWQ | Formatos populares de peso de 4-bit |
| ExLlamaV3 (exl3) | Quantização de taxa de bits variável de alta qualidade |
| AQLM / QuIP# | Ultra baixo-bit |
| Marlin | Kernels rápidos GPTQ/AWQ |
| fp8 | Pesos/ativações de 8-bit float |
A amplitude é o ponto: Aphrodite pode servir modelos quantizados pela comunidade que o vLLM vanilla não consegue carregar.
Amostradores Avançados
| Amostrador | Efeito |
|---|
| DRY | ”Não Repita a Si Mesmo” — reduz repetição textual |
| XTC | Excluda Top Choices — aumenta criatividade |
| Mirostat | Alvo um setpoint de perplexidade |
min_p, top_a, tfs | Amostradores de truncagem adicionais |
Passe estes como campos extras na requisição (ex: "dry_multiplier": 0.8).
Otimização de Desempenho
| Opção | Efeito |
|---|
--tensor-parallel-size | Escale entre GPUs |
--kv-cache-dtype fp8 | Encaixe contexto mais longo / mais concorrência |
--max-num-seqs | Limite de concorrência (lote) |
--enforce-eager | Desabilite gráficos CUDA (depuração) |
--quantization | Troque qualidade por memória/velocidade |
Aphrodite vs Outros Motores de Inferência
| Aspecto | Aphrodite | vLLM | llama.cpp |
|---|
| Base | Separação vLLM | Original | C/C++ |
| Cobertura de quant | Mais ampla | Crescente | k-quants GGUF |
| Amostradores | DRY/XTC/Mirostat | Padrão | Muitos |
| Melhor para | Modelos quantizados comunitários, chat | Max throughput, formatos padrão | CPU/edge, GGUF |
Recursos