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-server com 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/completions
  • POST /v1/completions
  • GET /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