NIVEL 1 — Serving / inferencia world-class (curso completo)
Índice y guía del nivel · Spine secundario · Checkpoint C1
Segundo nivel desarrollado hoja por hoja, autónomo y sin condicionamiento a proyectos concretos. Asume que cerraste C0 (tienes stack sano y tu número de referencia). El objetivo de este nivel es cerrar conscientemente el gap entre tu throughput real y el techo teórico, y llegar a Nivel 4 (innovador) de la rúbrica en serving.
Qué vas a saber hacer al terminar
- Leer y razonar las métricas que importan (TTFT, TPOT, throughput agregado) y entender PagedAttention y continuous batching por dentro.
- Ajustar vLLM conscientemente: memoria, concurrencia, chunked prefill, prefix caching determinista, KV-cache FP8.
- Aplicar speculative decoding (ngram / EAGLE / suffix) midiendo acceptance rate, y saber cuándo empeora.
- Cuantizar para serving (FP8, AWQ, NVFP4) midiendo tú el tradeoff calidad/velocidad, y sortear las trampas reales de NVFP4 en Blackwell.
- Decidir y demostrar cuándo SGLang (RadixAttention) gana a vLLM.
- Servir múltiples adaptadores LoRA con switching por petición y métricas de producción.
Prerrequisitos
- Checkpoint C0 cerrado. Lente roofline (N0·L1) y presupuesto de VRAM (N0·L3) frescos.
Mapa de lecciones
| Documento | Lección | Resultado |
|---|---|---|
N1_L1_metricas_y_batching.md | 1. Métricas, PagedAttention, continuous batching | Sabes qué medir y por qué escala con concurrencia |
N1_L2_vllm_tuning.md | 2. Tuning de vLLM (memoria, prefijo, KV FP8, chunked) | Cierras parte del gap conscientemente |
N1_L3_speculative_decoding.md | 3. Speculative decoding (ngram/EAGLE/suffix) | Aceleras decode midiendo acceptance rate |
N1_L4_cuantizacion_serving.md | 4. FP8 / AWQ / NVFP4 para serving | Eliges precisión con tus números |
N1_L5_sglang_radixattention.md | 5. SGLang y RadixAttention | Demuestras cuándo SGLang gana |
N1_L6_multi_lora.md | 6. Multi-LoRA serving (+ Checkpoint C1) | Sirves N adaptadores; cierras C1 |
Checkpoint del nivel (resumen)
C1 — aprobado cuando, reproducible: (1) sirves dentro del X% del roofline que calculaste y explicas el gap; (2) reproduces el speedup de RadixAttention en una workload prefix-heavy; (3) sirves múltiples LoRA con switching por petición y reportas latencia + hit-rate + throughput. Detalle en N1_L6_multi_lora.md.
Reto integrador del nivel (genérico, reutilizable)
Construye un "gateway de inferencia personal": un servidor que expone un modelo base con varios adaptadores LoRA especializados (p.ej. uno para SQL, uno para resúmenes, uno para clasificación), cuantizado, con prefix caching y speculative decoding activados, y un dashboard mínimo con sus métricas. No depende de ningún proyecto; es tu banco de pruebas de serving para el resto del curso.