Servidores de Inferência de LLMs
vLLM
- Repositório: github.comvllm-projectvllm
- Origem: UC Berkeley (Kwon et al., 2023)
- Linguagem: Python + CUDA kernels
- Tecnologia central: PagedAttention + Continuous Batching
- Suporte: OpenAI-compatible API; GPTQ, AWQ, GGUF, FP8, INT4
- Hardware: NVIDIA (principal), AMD ROCm, Google TPU, Intel Gaudi (experimental)
- Especial: Multimodal (imagem + texto), LoRA serving nativo, prefix caching
- Quando usar: Padrão de mercado; melhor ecossistema; produção geral
- Throughput: Melhor throughput por token em produção (pós-SGLang otimizações)
SGLang — Structured Generation Language
- Repositório: github.comsgl-projectsglang
- Origem: Berkeley Sky Lab (Zheng et al., 2024)
- arXiv: 2312.07104
- Tecnologia central: RadixAttention (prefix caching), Compressed Finite State Machine para structured output, CUDA graphs
- Vantagem chave: Structured generation (JSON, regex) muito mais rápido que vLLM
- EAGLE-3: Melhor suporte a speculative decoding
- Quando usar: Workloads com prefixos repetidos; JSON estruturado; agents com tool use
- Performance: Frequentemente supera vLLM em benchmarks de throughput
TGI — Text Generation Inference (HuggingFace)
- Repositório: github.comhuggingfacetext-generation-inference
- Linguagem: Rust (servidor) + Python (kernels)
- Suporte: Continuous batching, flash attention, speculative decoding, GPTQ, AWQ
- Hardware: NVIDIA, AMD, Intel Gaudi, Google TPU
- Quando usar: Integração nativa com HuggingFace Hub; Inference API da HF usa TGI
- API: OpenAI-compatible + HF-native
llama.cpp
- Repositório: github.comggerganovllama.cpp
- Autor: Georgi Gerganov
- Linguagem: C/C++ puro; sem dependências
- Formato: GGUF
- Hardware: CPU (x86 AVX2/AVX-512), Apple Silicon (Metal), NVIDIA CUDA, AMD ROCm, Vulkan
- Vantagem: Roda em qualquer hardware; CPU-first; quantização nativa Q2–Q8
- Servidor:
llama-servercom API OpenAI-compatible - Quando usar: Local; edge; sem GPU; laptops; dev; Docker simplificado
Ollama
- Repositório: github.comollamaollama
- Base: llama.cpp (engine) + modelo gerenciador
- Experiência:
ollama run llama3— baixa e serve em 1 comando - Modelo Hub: Integrado; pull/push modelos
- API: REST + OpenAI-compatible (
localhost:11434) - Quando usar: Dev local; protótipo rápido; usuário não técnico; CI/CD local
Jan
- Repositório: github.comjanhqjan
- Engine: llama.cpp + extensões
- Interface: Desktop app cross-platform (Electron)
- API: OpenAI-compatible server embutido
- Quando usar: Usuário final; interface gráfica local; privacidade
LM Studio
- URL: lmstudio.ai
- Engine: llama.cpp
- Interface: Desktop app (MacWinLinux)
- Quando usar: Demos; não-técnicos; exploração de modelos locais
TensorRT-LLM (NVIDIA)
- Repositório: github.comNVIDIATensorRT-LLM
- Base: TensorRT com kernels LLM otimizados
- Suporte: FP8, INT4, NVFP4 (Blackwell), speculative decoding, paged KV cache
- Performance: Máximo throughput em hardware NVIDIA
- Limitações: NVIDIA-only; compilação demorada; menos flexível
- Quando usar: Produção em NVIDIA (H100B100B200); máximo throughput; inferência de escala enterprise
OpenVINO (Intel)
- URL: docs.openvino.ai
- Foco: CPU Intel, iGPU, NPU (Neural Processing Unit em laptops Intel Core Ultra)
- Suporte: INT8, INT4, modelos de código aberto (Llama, Mistral, Qwen)
- Quando usar: Edge; servidores sem GPU NVIDIA; laptops Intel com NPU
ONNX Runtime
- URL: onnxruntime.ai (Microsoft)
- Foco: Cross-platform (CPU, GPU, NPU, iOS, Android, Web)
- Limitações: Exportação de LLMs grandes complexa; menos otimizado para geração
- Quando usar: Mobile (iOS/Android via React Native); WebAssembly; edge
MLC-LLM (Machine Learning Compilation)
- Repositório: github.commlc-aimlc-llm
- Origem: CMU (Chen et al., TVM)
- Mecanismo: Compila modelos para qualquer hardware via Apache TVM
- Suporte: WebGPU (browser!), iOS, Android, CUDA, Metal, ROCm, Vulkan
- Caso único: Único framework que roda LLMs diretamente no browser (WebGPU)
- Quando usar: Browser; mobile nativo; hardware diverso
CTranslate2
- Repositório: github.comOpenNMTCTranslate2
- Foco: Modelos encoder-decoder (T5, Whisper, MarianMT) + LLMs
- Vantagem: Muito eficiente para Whisper (ASR); bom para modelos de tradução
- Quando usar: Whisper para transcrição; modelos de tradução
Aphrodite Engine
- Repositório: github.comPygmalionAIaphrodite-engine
- Base: Fork do vLLM com foco em modelos de roleplay/creative
- Features extras: Mirostat sampling, Kobold API, LoRA dinâmico
- Quando usar: Creative writing; roleplay; Kobold UI
TabbyAPI
- Repositório: github.comtheroyallabtabbyAPI
- Base: ExLlamaV2 (quantização EXL2)
- Vantagem: EXL2 é mais rápido que GGUF em GPU NVIDIA; API para TabbyML
- Quando usar: GPU NVIDIA com TABbyML para code completion
Servidores de Inferência por Caso de Uso
| Cenário | Servidor |
|---|---|
| Produção NVIDIA — alto throughput | vLLM ou TensorRT-LLM |
| Structured output / agents | SGLang |
| HuggingFace Hub integration | TGI |
| Local sem GPU | llama.cpp / Ollama |
| Desktop do usuário final | Ollama / Jan / LM Studio |
| Browser / WebGPU | MLC-LLM |
| Mobile (iOS/Android) | MLC-LLM ou ONNX Runtime |
| Intel CPU/NPU | OpenVINO |
| Máximo throughput NVIDIA Blackwell | TensorRT-LLM com NVFP4 |
API Padrão: OpenAI-Compatible
Todos os servidores modernos implementam a API da OpenAI:
POST /v1/chat/completionsPOST /v1/completionsGET /v1/models
Isso permite trocar o backend sem mudar o código do cliente.
Stack para o Kode
| Ambiente | Servidor | Modelo |
|---|---|---|
| Dev local (laptop) | Ollama | Qwen2.5-Coder-7B-GGUF Q4KM |
| Dev local (GPU) | vLLM | Qwen2.5-Coder-32B AWQ |
| Servidor s.r1 (2× RTX 4090) | SGLang | Qwen2.5-Coder-32B INT4 |
| Produção (quando H100 disponível) | vLLM + TurboQuant | Qwen2.5-Coder-32B FP8 |