El tráfico de sombras, la implementación de las Canarias y el despliegue progresivo de las MLL
Type: Learn
Languages: Python (stdlib, toy canary-progression simulator)
Prerequisites: Phase 17 · 13 (Observability), Phase 17 · 21 (A/B Testing)
Time: ~60 minutes
Objetivos de aprendizaje
- Distinguir entre el modo sombra (comparación de impacto cero), canario (trafico en vivo progresivo) y A/B (comparación confirmada por estabilidad).
- Enumerar cinco métricas canarias específicas del LLM (latencia, coste/solicitud, error/rechazo, distribución de longitud de salida, retroalimentación del usuario).
- Explicar por qué el no determinismo de la LLM (hasta el 15%) cambia lo que significa "estable" en un despliegue.
- Diseñar un camino de retroceso que tome segundos (invertir la política) y no horas (redistribuir).
El problema
En 24 horas, el costo ha aumentado un 40%, el número de usuarios ha aumentado un 8%, tres boletos de clientes reportan "respuestas extrañas".
Cada pieza de eso era evitable. El modo sombra habría alcanzado el 40% de aumento de costos antes de que cualquier usuario lo viera. Canary se habría detenido en el 10% cuando se movieron los pulgares hacia abajo. La retroceso de la bandera de política habría tomado 30 segundos. La disciplina es lo que llena la brecha entre "las evaluaciones fuera de línea se ven bien" y "los usuarios reales están felices".
El concepto
Modo de sombra
El candidato recibe las mismas solicitudes que la producción; las salidas se registran, no se devuelven a los usuarios. Cero impacto del usuario.
- Contenido de la producción (diferencia con la producción).
- Cuentas de tokens (delta de costo).
- La latencia.
- Rechazo y error.
Captura: aumento de costos, regresión de longitud, cambios obvios de rechazo, errores difíciles. NO captura: los usuarios del delta percibirían calidad.
Despliegue de las Canarias
Progresividad del tráfico con puertas. Progreso típico: 1% → 10% → 25% → 50% → 75% → 100%. Puerta en 5 métricas en cada paso:
- Latency percentiles P50, P95, P99. Infracción: el canario tiene P99 > 1,5 veces el valor de referencia.
- Cost per request mezclado. incumplimiento: > 20% por encima del límite de referencia.
- Error / refusal rate5xx más rechazos explícitos.
- Output length distribution media + P99. incumplimiento: cambio de distribución.
- User-feedback rate pulgares hacia abajo / presentación de boletos.
El no determinismo es la nueva variación
Las entradas idénticas producen resultados no idénticos.
- No asociatividad de la GPU FP (el orden de reducción de puntos flotantes varía según el lote).
- Varianza de tamaño de lote (el mismo pedido en un lote de 128 vs lote de 16).
- Muestreo (temperatura > 0).
Medido: hasta un 15% de variación de precisión en ejecución a ejecución en conjuntos de evaluaciones idénticos. "Stable" en un despliegue significa que las métricas están dentro de la variación esperada, no idénticas a la línea de base.
El costo es variable
Un modelo mejor del 20% puede ser 3 veces más caro por llamada. El costo/solicitud es una de las cinco puertas.
El Rollback es el arma
- Bandera de política (sistema de banderas de características): porcentaje de cambio en configuración; toma segundos.
- Pinning de modelo (digest de registro): el modelo pegado no se actualiza automáticamente.
- Repetición = revertir la bandera + fijar el digesto fijado a la anterior.
Si su pila requiere de redistribuir para volver a rodar, arregle eso antes de rodar.
Equipamiento
Argo Rollouts- ¿ Qué ?Flagger Controller de entrega progresiva Kubernetes. Integrado con el enrutamiento ponderado Istio/Linkerd.
Istio weighted routing División del tráfico a nivel de red de servicio.
KServe / Seldon Core modelo que sirve con canario incorporado.
Feature flagsLaunchDarkly, Flagsmith, Unleash, Flip de nivel de política, no hay redistribución.
Cadencia de las métricas
Las puertas canarias revisan cada 5-15 minutos dependiendo del volumen de tráfico. El 1% del tráfico con 10 req/min da 50-150 puntos de datos por ventana suficiente para la latencia pero ruidoso para la retroalimentación del usuario. El 10% da ~10x más.
El paso A/B es opcional.
Si el nuevo modelo es claramente diferente (comportamiento diferente, curva de costos diferente, tono diferente), A/B prueba a 50% después de que canario pasa.
Números que debes recordar
- Progresón canaria: 1% → 10% → 25% → 50% → 75% → 100%.
- Topo de no determinismo: hasta un 15% de variación entre entradas en función de las entradas idénticas.
- Cinco métricas canarias: latencia, coste, error/rechazo, duración de salida, retroalimentación del usuario.
- Por ejemplo, el precio de la empresa de la empresa de la empresa de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de la marca de marca de la marca de la marca de marca de la marca de marca de la marca de marca de la marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de marca de
- Repetición: segundos, no horas.
Usalo
code/main.pySimula un despliegue canario con regresiones inyectadas.
Envío
Esta lección produceoutputs/skill-rollout-runbook.md. Dado el modelo candidato, el nivel de referencia y la tolerancia al riesgo, diseña un plan de sombra→canario→100%.
Los ejercicios
- - ¿ Qué ?
code/main.pyInyectar una regresión del 25% de costos. ¿En qué etapa se detiene el canario? - Su nuevo modelo tiene un aumento de 3% de precisión fuera de línea pero el costo/solicitud es +18%. ¿Es un barco?
- Diseñe un retroceso que dure menos de 60 segundos de extremo a extremo.
- No determinismo muestra ±7% en su evaluación.
- El modo sombra tiene un aumento de 40% antes de canario.
Términos clave
| Term | What people say | What it actually means |
|---|---|---|
| Shadow mode | "duplicate to new" | Zero-impact send-to-candidate for logging |
| Canary | "progressive traffic" | Gradual user-exposed rollout with gates |
| Gates | "rollout checks" | Metric thresholds that block progression |
| Non-determinism | "LLM variance" | Irreducible run-to-run differences |
| Policy flag | "flag flip rollback" | Config-level rollback, seconds not hours |
| Model pin | "registry digest" | Immutable reference to a model version |
| Argo Rollouts | "K8s progressive" | Kubernetes-native canary/rollback controller |
| KServe | "inference K8s" | Model serving with canary primitives |
| Istio weighted | "mesh split" | Service-mesh traffic splitter |
Leer más
- TianPan — Releasing AI Features Without Breaking Production
- MarkTechPost — Safely Deploying ML Models
- APXML — Advanced LLM Deployment Patterns
- Argo Rollouts docs
- Flagger docs
This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.
Browse the complete course catalog or open this lesson on GitHub.