Volver a plantillas
technical guide

Guía de Decodificación Especulativa

Acelere la inferencia de LLMs un 60-80% con modelos borrador. Tabla de decisión para cuándo usar decodificación especulativa y patrones de implementación.

Request customization
🌐
Bilingual / Bilingüe

This template includes both English and Spanish versions. Scroll down to find "Versión Española".

Speculative Decoding Guide

Template provided by VORLUX AI | vorluxai.com


What Is Speculative Decoding?

Speculative decoding is an inference acceleration technique that uses a small, fast draft model to predict multiple tokens ahead, then verifies those predictions in a single forward pass of the large target model. When the draft model guesses correctly — which happens 60-80% of the time for well-matched pairs — you get multiple tokens for the cost of one target-model pass.

The key insight: verification is cheaper than generation. A large model can check 8 draft tokens in roughly the same time it takes to generate 1 token autoregressively.


How It Works

1. Draft model generates N candidate tokens (fast, ~100ms)
2. Target model verifies all N tokens in one forward pass (~200ms)
3. Accept all correct tokens, reject from first mismatch
4. Resume from last accepted position

Typical speedup: 1.5-3x wall-clock time reduction without any quality loss. The output is mathematically identical to running the target model alone — speculative decoding is lossless.


Decision Table: When to Use

ScenarioUse Speculative Decoding?Why
Long-form generation (>200 tokens)YesMaximum benefit from batched verification
Chat / short responses (<50 tokens)MaybeOverhead may negate gains for very short outputs
Streaming to userYesDraft tokens appear faster, improving perceived latency
Batch processing (offline)YesThroughput gains compound across thousands of requests
VRAM-constrained deviceNoBoth models must fit in memory simultaneously
Code generationYesCode is highly predictable, draft accuracy is very high
Creative writingMaybeLower draft accuracy reduces the speedup
Multi-language outputMaybeDraft model must handle the target language well

Choosing a Draft Model

The draft model should be:

  1. Same architecture family as the target (e.g., Llama draft for Llama target)
  2. 5-10x smaller than the target model
  3. Trained on similar data for high token-match rates
Target ModelDraft ModelExpected Acceptance Rate
Llama 3.1 70BLlama 3.1 8B70-80%
Qwen 2.5 72BQwen 2.5 7B65-75%
Mistral LargeMistral 7B60-70%
Command R+ 104BCommand R 35B55-65%
Phi-3 Medium 14BPhi-3 Mini 3.8B70-80%

Implementation with vLLM

# Start vLLM with speculative decoding enabled
python -m vllm.entrypoints.openai.api_server \
  --model meta-llama/Llama-3.1-70B \
  --speculative-model meta-llama/Llama-3.1-8B \
  --num-speculative-tokens 5 \
  --use-v2-block-manager

With llama.cpp (local deployment):

# Use --draft flag for speculative decoding
./llama-server \
  -m llama-3.1-70b-q4_k_m.gguf \
  --draft llama-3.1-8b-q4_k_m.gguf \
  -ngl 99 --draft-ngl 99 \
  -np 5

Memory Budget

Both models must fit simultaneously. Calculate total memory as:

Total VRAM = Target VRAM + Draft VRAM + KV Cache (both) + 2 GB overhead

Example: Llama 3.1 70B Q4_K_M (42 GB) + Llama 3.1 8B Q4_K_M (5 GB) + KV cache (4 GB) + overhead (2 GB) = 53 GB minimum.


Tuning num_speculative_tokens

N (draft tokens)Typical Result
3Conservative — safe default, 1.3-1.5x speedup
5Balanced — recommended starting point, 1.5-2.5x speedup
8Aggressive — higher throughput if acceptance rate is high
12+Diminishing returns — only for very predictable outputs

Monitor your acceptance rate. If it drops below 50%, reduce N or switch to a better-matched draft model.


Need help optimising inference for your edge deployment? Contact VORLUX AI for a free consultation.


Versión Española

Guía de Decodificación Especulativa

Plantilla proporcionada por VORLUX AI | vorluxai.com


¿Qué es la Decodificación Especulativa?

La decodificación especulativa es una técnica de aceleración de inferencia que usa un modelo borrador pequeño y rápido para predecir múltiples tokens por adelantado, y luego verifica esas predicciones en un solo paso forward del modelo objetivo grande. Cuando el modelo borrador acierta — lo cual ocurre el 60-80% de las veces con pares bien emparejados — se obtienen múltiples tokens por el coste de un solo paso del modelo objetivo.

La clave: la verificación es más barata que la generación. Un modelo grande puede verificar 8 tokens borrador en aproximadamente el mismo tiempo que tarda en generar 1 token autorregresivamente.


Cómo Funciona

1. El modelo borrador genera N tokens candidatos (rápido, ~100ms)
2. El modelo objetivo verifica todos los N tokens en un paso forward (~200ms)
3. Se aceptan todos los tokens correctos, se rechaza desde el primer error
4. Se reanuda desde la última posición aceptada

Aceleración típica: Reducción de 1,5-3x en tiempo real sin ninguna pérdida de calidad. La salida es matemáticamente idéntica a ejecutar el modelo objetivo solo — la decodificación especulativa es sin pérdidas.


Tabla de Decisión: Cuándo Usar

Escenario¿Usar Decodificación Especulativa?Por Qué
Generación larga (>200 tokens)Máximo beneficio de la verificación por lotes
Chat / respuestas cortas (<50 tokens)QuizásEl overhead puede anular las ganancias
Streaming al usuarioLos tokens borrador aparecen más rápido
Procesamiento por lotes (offline)Las ganancias se acumulan en miles de peticiones
Dispositivo con VRAM limitadaNoAmbos modelos deben caber en memoria
Generación de códigoEl código es altamente predecible
Escritura creativaQuizásMenor precisión del borrador reduce la aceleración
Salida multilingüeQuizásEl modelo borrador debe manejar bien el idioma objetivo

Elección del Modelo Borrador

El modelo borrador debe ser:

  1. Misma familia de arquitectura que el objetivo (ej: borrador Llama para objetivo Llama)
  2. 5-10x más pequeño que el modelo objetivo
  3. Entrenado con datos similares para altas tasas de coincidencia de tokens

Pares Recomendados

Modelo ObjetivoModelo BorradorTasa de Aceptación Esperada
Llama 3.1 70BLlama 3.1 8B70-80%
Qwen 2.5 72BQwen 2.5 7B65-75%
Mistral LargeMistral 7B60-70%
Command R+ 104BCommand R 35B55-65%
Phi-3 Medium 14BPhi-3 Mini 3.8B70-80%

Implementación con vLLM

# Iniciar vLLM con decodificación especulativa habilitada
python -m vllm.entrypoints.openai.api_server \
  --model meta-llama/Llama-3.1-70B \
  --speculative-model meta-llama/Llama-3.1-8B \
  --num-speculative-tokens 5 \
  --use-v2-block-manager

Con llama.cpp (despliegue local):

# Usar --draft para decodificación especulativa
./llama-server \
  -m llama-3.1-70b-q4_k_m.gguf \
  --draft llama-3.1-8b-q4_k_m.gguf \
  -ngl 99 --draft-ngl 99 \
  -np 5

Presupuesto de Memoria

Ambos modelos deben caber simultáneamente. Calcule la memoria total como:

VRAM Total = VRAM Objetivo + VRAM Borrador + Caché KV (ambos) + 2 GB overhead

Ejemplo: Llama 3.1 70B Q4_K_M (42 GB) + Llama 3.1 8B Q4_K_M (5 GB) + caché KV (4 GB) + overhead (2 GB) = 53 GB mínimo.


Ajuste de num_speculative_tokens

N (tokens borrador)Resultado Típico
3Conservador — por defecto seguro, aceleración 1,3-1,5x
5Equilibrado — punto de partida recomendado, aceleración 1,5-2,5x
8Agresivo — mayor rendimiento si la tasa de aceptación es alta
12+Rendimientos decrecientes — solo para salidas muy predecibles

Monitorice su tasa de aceptación. Si cae por debajo del 50%, reduzca N o cambie a un modelo borrador mejor emparejado.


¿Necesita ayuda optimizando la inferencia para su despliegue edge? Contacte con VORLUX AI para una consulta gratuita.

EU AI Act: 99 días para el deadline

15 minutos para evaluar su caso

Consultoría inicial sin compromiso. Analizamos su infraestructura y le recomendamos la arquitectura híbrida óptima.

Sin compromiso 15 minutos Propuesta personalizada

136 páginas de recursos gratuitos · 26 plantillas de compliance · 22 dispositivos certificados