Pular para o conteúdo

Aphrodite Engine - Serviço LLM de Alto Throughput

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étodoComando
pippip install aphrodite-engine
Execute o servidoraphrodite run <model>
Dockerdocker run --gpus all -p 2242:2242 alpindale/aphrodite-openai
RequisitosGPU NVIDIA + CUDA (AMD/ROCm suportado em algumas builds)
Verificaraphrodite --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
FlagDescrição
--quantizationFormato: gguf, gptq, awq, exl3, fp8, …
--tensor-parallel-size NDivida o modelo entre N GPUs
--max-model-len NComprimento de contexto
--gpu-memory-utilization 0.9Fração de VRAM a usar
--kv-cache-dtype fp8Quantize o cache KV para economizar memória
--dtypeTipo de computação do modelo (auto, half, bfloat16)
--port 2242Porta da API
--api-keys KEYExigir uma chave de API

API Compatível com OpenAI

curl http://localhost:2242/v1/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"default","prompt":"Hello","max_tokens":50}'
EndpointPropósito
/v1/completionsConclusão de texto
/v1/chat/completionsConclusão de chat
/v1/modelsListe modelos carregados
/v1/embeddingsEmbeddings (modelos de embedding)

Formatos de Quantização

FormatoUso
GGUFEstilo llama.cpp k-quants (modelos comunitários)
GPTQ / AWQFormatos populares de peso de 4-bit
ExLlamaV3 (exl3)Quantização de taxa de bits variável de alta qualidade
AQLM / QuIP#Ultra baixo-bit
MarlinKernels rápidos GPTQ/AWQ
fp8Pesos/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

AmostradorEfeito
DRY”Não Repita a Si Mesmo” — reduz repetição textual
XTCExcluda Top Choices — aumenta criatividade
MirostatAlvo um setpoint de perplexidade
min_p, top_a, tfsAmostradores de truncagem adicionais

Passe estes como campos extras na requisição (ex: "dry_multiplier": 0.8).

Otimização de Desempenho

OpçãoEfeito
--tensor-parallel-sizeEscale entre GPUs
--kv-cache-dtype fp8Encaixe contexto mais longo / mais concorrência
--max-num-seqsLimite de concorrência (lote)
--enforce-eagerDesabilite gráficos CUDA (depuração)
--quantizationTroque qualidade por memória/velocidade

Aphrodite vs Outros Motores de Inferência

AspectoAphroditevLLMllama.cpp
BaseSeparação vLLMOriginalC/C++
Cobertura de quantMais amplaCrescentek-quants GGUF
AmostradoresDRY/XTC/MirostatPadrãoMuitos
Melhor paraModelos quantizados comunitários, chatMax throughput, formatos padrãoCPU/edge, GGUF

Recursos