0 · El mapaLección 1 de 1
El camino completo
The full path to production
Qué significa poner un modelo en producción, contado de principio a fin con un solo ejemplo: las seis etapas, los dos caminos y el reloj de cada uno.
Secciones14
- 01Una escena de 200 milisegundos
- 02Un modelo y sus dos momentos
- 03¿Qué significa «producción»?
- 04El camino completo, en seis etapas
- 05Lo que pasa cuando Ana sube su foto
- 06El presupuesto de 200 milisegundos extra
- 07Dos caminos: online y offline
- 08Los dos caminos en números extra
- 09Errores comunes
- 10En la vida real extra
- 11Ejercicios
- 12Lo que sigue
- 13Palabras que vas a oír
- 14Chequeo
Cuando una app «usa IA», ¿qué tuvo que pasar para que eso funcione?
Una escena de 200 milisegundos
EsencialA 200-millisecond scene
Ana quiere vender unos tenis que ya no usa. Abre la app de un marketplace (una tienda en línea donde cualquiera puede vender), les toma una foto, la sube y, antes de terminar de escribir el título, la app ya le sugiere la categoría: Calzado › Tenis.
Para Ana eso no fue nada. Para que pasara, alguien tuvo que juntar millones de fotos, enseñarle a un programa a reconocerlas, ponerlo a responder en computadoras que nunca se apagan, cuidar que conteste en más o menos lo que dura un parpadeo y revisar cada día que siga acertando.
Ese es el caso que vamos a seguir en todo Sensei. Se llama C01. Es el mismo caso que el Dojo (la parte de TrueML donde practicas con código) simula en pequeño: un marketplace que recibe unos 2.5 millones de publicaciones al día y le sugiere a quien vende la categoría de su foto, entre 500 posibles.
Un modelo y sus dos momentos
EsencialA model and its two moments
Qué es un modelo
A un programa normal tú le escribes las reglas: «si la compra pasa de 1,000 pesos, el envío es gratis». A un modelo no le escribes reglas. Le muestras miles de ejemplos con su respuesta correcta y él solo encuentra la manera de pasar de la entrada a la respuesta.
¿Por qué no escribir las reglas a mano? Intenta escribir la regla para reconocer unos tenis en una foto. ¿Por la forma? ¿Por las agujetas? ¿Y si es una bota? ¿Y si la foto está oscura, o de lado, o el tenis está dentro de su caja? Hay cosas que es mucho más fácil mostrar que explicar.
Por dentro, un modelo es un montón de números que se llaman parámetros. Piensa en ellos como perillas: cada combinación de perillas hace que el modelo responda distinto. El modelo de C01 tiene unos 25 millones.
Entrenar y usar
Todo modelo vive dos momentos muy distintos, y casi todo lo demás en esta app depende de no confundirlos.
- 1
Entrenar
El entrenamiento es mostrarle muchos ejemplos de los que ya sabes la respuesta: fotos con su categoría correcta, que se llama su etiqueta. El modelo adivina, compara su respuesta con la correcta y mueve sus perillas un poquito para equivocarse menos. Eso se repite millones de veces. Es lento y caro, así que se hace de vez en cuando: en C01, una vez al mes.
- 2
Usar
La inferencia es usar el modelo ya entrenado. Recibe una foto nueva, sin respuesta, y da su predicción. Las perillas ya no se mueven: solo calcula. Es rápido y pasa todo el tiempo: en C01, millones de veces al día.
¿Qué significa «producción»?
EsencialWhat production means
Que un modelo funcione en tu laptop no significa que esté listo. Está en producción cuando gente real lo usa todos los días y, si falla, alguien lo nota.
| En tu laptop | En producción | |
|---|---|---|
| Quién lo usa | Tú | Millones de personas que ni saben que existe |
| Cuántas veces | Unas cuantas, cuando tú quieres | Sin parar, de día y de noche, con horas pico |
| Qué tan rápido | Da igual si tarda 5 segundos | Más o menos lo que dura un parpadeo |
| Si se rompe | Lo vuelves a correr | Ana no recibe sugerencia y tiene que buscar la categoría a mano; si pasa seguido, se publica menos y el negocio pierde dinero |
| Los datos | Los que descargaste, siempre los mismos | Nuevos cada día, y van cambiando |
| Dónde corre | En un notebook (un documento donde corres el código por pedacitos), en tu máquina | En servidores que nunca se apagan |
Por eso existe el trabajo de ml engineer. No se trata solo de que el modelo acierte, sino de que todo lo que lo rodea funcione. Un artículo científico famoso de Google («Hidden Technical Debt in Machine Learning Systems», Sculley y otros, 2015) lo dibujó así: el código del modelo es una cajita chica en medio de todo lo demás, que son los datos, la configuración, los servidores y el monitoreo.
Deploy: cambiar de versión sin que nadie lo sufra
Pasar algo de tu laptop a producción, o cambiar la versión que está respondiendo por una nueva, se llama deploy (desplegar). Suena a apretar un botón, pero en un sistema que atiende a millones casi nunca se hace de golpe: si la versión nueva trae un error, le pegaría a todos a la vez.
En C01 se hace poco a poco. El modelo nuevo primero responde 5 de cada 100 fotos. Si sigue respondiendo rápido, sin errores y con respuestas sensatas, pasa a 25 de cada 100 y después a todas. Si algo empeora, el sistema regresa solo a la versión anterior. A esa primera prueba chiquita se le llama canary (canario), por los canarios que los mineros bajaban a la mina: si había gas, el pájaro lo resentía antes que ellos.
El camino completo, en seis etapas
EsencialThe six stages
Todo lo que rodea al modelo se puede ordenar en seis etapas. En TrueML (el conjunto de herramientas al que pertenece Sensei) cada etapa tiene su color, y juntas forman la T del logo: la verás arriba de cada lección, con las etapas que toca encendidas.
- Datos · fotos con su categoría
Todo empieza con ejemplos: fotos con su categoría correcta, revisadas y guardadas como una versión fija. Sale un dataset. Lo ves a fondo en las estaciones 1 y 2. - Modelo · entrenar y aprobar
Con el dataset se entrena el modelo, se examina con fotos que nunca vio y solo si pasa el examen se aprueba. Sale un archivo con el modelo aprobado. - API · el programa que responde
Un programa carga el modelo y lo pone a responder por la red: recibe una foto y regresa la categoría. La ventanilla por donde se le pregunta es su API. - Contenedor · empacado con todo
El programa se empaca con todo lo que necesita en un contenedor, para que corra igual en cualquier máquina. - Orquestación · muchas copias
Muchas copias del contenedor en muchas máquinas: la orquestación decide cuántas, reparte el trabajo y reemplaza las que fallan. - Monitoreo · ¿sigue rápido y acertando?
Se mide todo en producción: qué tan rápido responde, cuántas fallan y si el modelo sigue acertando. Cuando el mundo cambia (drift), se dispara el reentrenamiento.
Una cadena de pasos así, donde lo que sale de uno entra al siguiente, se llama pipeline. Veamos qué pasa en cada etapa.
1 · Datos
Todo empieza con ejemplos. Hay que juntar fotos, ponerles su categoría correcta (muchas veces una persona lo hace a mano), revisar que estén bien y guardarlas como una versión fija que ya nadie modifica, para saber después exactamente con cuáles se entrenó. Sale: un dataset, la colección de fotos con su categoría.
2 · Modelo
Con el dataset se entrena el modelo. Luego se examina con fotos que nunca vio, y solo si pasa el examen se aprueba. Al final se convierte a un formato que hace casi los mismos cálculos con mucho menos trabajo, para que responda más rápido, y se comprueba que sus respuestas no cambien. Sale: el modelo aprobado, guardado en un archivo.
3 · API
El modelo solo, en un archivo, no le sirve a nadie si nadie le puede preguntar. Se escribe un programa que lo carga y lo pone a responder: recibe una foto por la red (internet, o la red interna de la empresa) y regresa la categoría. La «ventanilla» por donde se le pregunta es su API, y a tener el modelo respondiendo así se le llama serving. Sale: el programa que responde.
4 · Contenedor
El programa funciona en tu máquina, pero ¿funcionará igual en otra? Se empaqueta con todo lo que necesita (la versión exacta de Python, las librerías, que son código que otros ya escribieron y tu programa usa, y el modelo) en un contenedor, que corre igual en cualquier máquina que sepa correr contenedores. La herramienta más usada para crearlos es Docker. Sale: el paquete probado, listo para copiarse a cualquier servidor.
5 · Orquestación
Una sola computadora tiene dos problemas: puede no aguantar todas las peticiones de la hora pico y, si se apaga, se apaga todo. En C01 pesa más el segundo: una sola máquina con el modelo aguantaría el tráfico, pero se usan dos para que, si una falla, la otra siga respondiendo. Así que se corren varias copias del contenedor en varias máquinas, y un sistema de orquestación decide cuántas hacen falta, les reparte el trabajo y reemplaza a las que fallan. También cambia a la versión nueva poco a poco, sin apagar nada. El orquestador más usado es Kubernetes. Sale: el servicio funcionando para todo el mundo.
6 · Monitoreo
Ya en producción se mide todo: cuánto tarda cada respuesta, cuántas fallan y si el modelo sigue acertando. Eso es el monitoreo. Y aquí viene lo que más sorprende al principio: aunque nadie toque el modelo, con el tiempo empieza a fallar más, porque el mundo cambia y llegan fotos distintas a las de su entrenamiento. A ese cambio en lo que llega se le llama drift. Cuando pasa, se juntan datos nuevos y se vuelve a la etapa 1: es el reentrenamiento. Sale: la señal de que hay que reentrenar y las fotos nuevas para etiquetar.
Para ir más hondoLas 12 estaciones de C01 dentro de las seis etapas+
En el Dojo y en la Ronda de Diseño el caso C01 se divide en 12 estaciones. Cada una vive dentro de una etapa. No te preocupes por los nombres raros: cada estación tendrá su propia lección aquí.
| Etapa | Estaciones de C01 | Qué sale, en palabras simples |
|---|---|---|
| Datos | 1 · Datos y etiquetas 2 · Versionado y linaje | Las fotos del mes con su categoría, guardadas con un nombre que no cambia |
| Modelo | 3 · Entrenamiento 4 · Gate de evaluación y registry 5 · Export, engine y paridad | Un modelo que pasó su examen, convertido a un formato rápido |
| API | 6 · Código de serving | El programa que recibe la foto y responde |
| Contenedor | 7 · Empaquetado (Docker) 8 · CI/CD y registro de imágenes | El paquete probado y guardado, listo para copiarse |
| Orquestación | 9 · Kubernetes 10 · Rollout seguro | El servicio corriendo en muchas copias, ya con la versión nueva |
| Monitoreo | 11 · La request en vivo 12 · Monitoreo y reentrenamiento | Las mediciones que deja cada request y la señal de reentrenar |
Lo que pasa cuando Ana sube su foto
EsencialThe life of a request
Ahora juntemos todo en la escena del principio. Cuando Ana sube la foto, pasa esto:
- App de Ana · sube la foto
Ana toma la foto de sus tenis y la sube. Para ella, la sugerencia aparece casi al instante. - Marketplace · sus servidores
Los servidores del marketplace reciben la publicación y le piden la categoría al sistema del modelo con una request. - API del modelo · prepara la foto
La API revisa que la petición venga bien, prepara la foto (la decodifica, la achica y la convierte en los números que el modelo espera) y se la pasa al modelo. Si la API no contesta en 300 ms, el marketplace le muestra a Ana el selector de categorías a mano. - Modelo · hace la inferencia
El modelo calcula: hace una inferencia y devuelve qué tan probable es cada categoría. - Registro · una línea por foto
Por cada foto queda una línea: cuándo llegó, qué respondió el modelo y cuánto tardó. Se escribe aparte, para no hacer esperar a Ana. - Monitoreo · rápido y acertando
Con esos registros, el monitoreo mide la latencia y si el modelo sigue acertando.
El mensaje que los servidores del marketplace le mandan a la API se llama request, y lo que regresa se llama response. El tiempo que pasa entre una request y su response es la latencia. C01 se compromete a que 99 de cada 100 respuestas tarden menos de 200 milisegundos, más o menos lo que dura un parpadeo, sin contar el viaje por internet hasta el celular de Ana.
Fíjate en dos detalles de esa promesa. Tiene un número que se puede medir: no dice «rápido», dice «menos de 200 ms, 99 de cada 100 veces». Y dice dónde se mide: del lado del servidor, desde que la request completa llega hasta que sale la respuesta. Lo que tarda la foto en subir depende de la señal del celular de Ana, y eso nadie en el marketplace lo controla. En la Ronda, a una promesa así, con número y con lugar donde se mide, se le llama SLO.
¿Y por qué «99 de cada 100» y no el promedio? Porque el promedio esconde a quienes esperan mucho. Lo ves con números en la sección extra «El presupuesto de 200 milisegundos».
Cuando la respuesta no llega a tiempo
¿Y si un día el modelo tarda 2 segundos, o no contesta? Ana no debería quedarse viendo una pantalla trabada. Por eso los servidores del marketplace esperan la respuesta un tiempo máximo: 300 ms. A ese tiempo máximo de espera se le llama timeout. Si se cumple y no llegó nada, dejan de esperar y le muestran a Ana el selector de categorías de siempre, para que la elija a mano.
Ese plan B es el fallback. Es peor que la sugerencia, pero Ana puede publicar igual: el sistema se degrada, no se cae. Y no es un detalle para casos rarísimos. Además de la de velocidad, C01 tiene una segunda promesa: que el 99.9 % de las requests respondan sin error y antes de los 300 ms. Suena a casi siempre, pero C01 responde unos 10 millones de fotos al día (cada publicación trae varias fotos, y otros equipos también le preguntan), unos 300 millones al mes. El 0.1 % que queda son hasta 300 mil fotos al mes sin sugerencia: 300,000,000 × 0.001 = 300,000. Todo lo que está en el camino de una persona que espera necesita su fallback.
¿Por qué 300 ms y no 5 segundos? Porque la sugerencia solo sirve mientras Ana todavía no elige la categoría. Si llega tarde, ya no le ayuda a nadie.
El presupuesto de 200 milisegundos
ExtraThe 200 ms latency budget
200 ms parecen poquísimo, pero para una computadora es bastante tiempo, si se reparte bien. Repartirlo es de lo primero que hace un ML engineer, antes de elegir herramientas: decidir cuánto le toca a cada paso del viaje de la foto. A eso se le llama presupuesto de latencia (latency budget).
Dentro del servidor, la foto de Ana pasa por cinco pasos:
- Red y entrada. La request entra por el balanceador de carga (load balancer), la puerta que reparte las requests entre las copias del servicio, y la API lee la foto que llegó.
- Preprocesamiento. La API decodifica la foto (convierte el archivo JPEG, el formato de foto más común, en píxeles), la achica, recorta el centro y la normaliza: la convierte en los números que el modelo espera.
- Modelo. La foto ya preparada viaja al servidor que tiene el modelo cargado en una GPU, la tarjeta que hace miles de cuentas a la vez. Ahí espera su turno como máximo 2 ms, porque el servidor junta varias fotos para calcularlas de un jalón, y el modelo calcula.
- Respuesta. De las 500 probabilidades se toman las 5 más altas, se arma el mensaje de respuesta y se deja lista la línea del registro, que se escribe aparte.
- El propio programa. El programa de la API también gasta tiempo en organizarse: atiende muchas requests a la vez, espera su turno en el procesador y limpia memoria de vez en cuando. En los casos lentos se nota.
La Ronda estima cuánto tarda cada paso en C01. Son estimaciones para medir después, no mediciones. Estos son sus valores para un caso lento: lo que tarda cada paso en sus peores momentos, cuando solo 1 de cada 100 requests tarda más en ese paso.
De esta cuenta salen dos cosas. La primera: quedan ≈ 50 ms para lo que no se planeó, como fotos web gigantes, pausas raras o una máquina más lenta. La segunda sorprende: el modelo no es el paso más caro. Preparar una foto grande en el procesador cuesta más que el cálculo en la GPU. Por eso se mide cada paso antes de optimizar: si solo aceleraras el modelo, ganarías poco.
Cada control es lo que tarda un paso del viaje de la foto en un caso lento. Empiezan en las estimaciones de la Ronda para C01. Muévelos y mira si todavía cabe en la promesa de 200 ms y en los 300 ms que espera el marketplace.
Sumar el caso lento de cada paso suele dar de más, porque casi nunca todos los pasos tienen su peor momento en la misma foto. Suele, no siempre: si se ponen lentos en fotos distintas, la suma puede quedarse corta. Sirve para repartir el presupuesto; el número de verdad se mide de punta a punta.
Empieza en los valores de la cuenta. Sube el preprocesamiento a 120 ms, como con una foto web gigante, y mira qué pasa con los dos márgenes.
¿Por qué «99 de cada 100» y no el promedio?
Imagina que 98 respuestas tardan 30 ms y 2 tardan 3 segundos:
El promedio se ve muy bien, pero 2 de cada 100 personas sienten la app trabada, y con millones de fotos al día eso es muchísima gente. Ordenadas de la más rápida a la más lenta, la número 99 tarda 3 segundos: eso es lo que mide «99 de cada 100», y ahí no se cumplen los 200 ms. Por eso se mide qué tan lentas son las respuestas más lentas, y no solo el promedio. En la Ronda lo vas a ver escrito como «p99 ≤ 200 ms»: el p99, el percentil 99. Lo vemos a fondo en la lección de percentiles.
Haz la prueba: el promedio contra «99 de cada 100»
Este programa inventa 10,000 tiempos de respuesta de juguete: casi todos rápidos, entre 20 y 60 ms, y 150 muy lentos, entre 250 ms y 3 segundos. Luego compara el promedio con lo que mide la promesa de C01 y cuenta cuántas fotos se quedarían sin sugerencia. Solo usa la biblioteca estándar de Python: cópialo y córrelo tal cual.
import random
random.seed(1)
# 10,000 requests de juguete: casi todas rápidas y unas pocas muy lentas
rapidas = [random.uniform(20, 60) for _ in range(9_850)]
lentas = [random.uniform(250, 3_000) for _ in range(150)]
tiempos = sorted(rapidas + lentas) # de la más rápida a la más lenta
promedio = sum(tiempos) / len(tiempos)
p99 = tiempos[9_899] # la número 9,900 de 10,000: «99 de cada 100»
selector = sum(1 for t in tiempos if t > 300)
print(f"promedio: {promedio:.0f} ms")
print(f"99 de cada 100: {p99:.0f} ms o menos")
print(f"pasan de 300 ms: {selector} (ven el selector manual)")promedio: 61 ms
99 de cada 100: 918 ms o menos
pasan de 300 ms: 145 (ven el selector manual)El promedio, 61 ms, haría pensar que todo va de maravilla. Pero la request número 9,900 tarda 918 ms: la promesa de 200 ms no se cumple y 145 personas vieron el selector manual. Si cambias la semilla (random.seed), los números cambian: el promedio apenas se mueve, y el de «99 de cada 100» puede moverse varios cientos de milisegundos, porque depende de unas pocas requests lentas. La conclusión no cambia: siempre pasa de 200 ms.
Dos caminos: online y offline
EsencialOnline and offline paths
Hasta aquí seguiste a una sola foto. Pero un sistema de ML hace dos trabajos muy distintos a la vez, cada uno con su propio reloj.
El camino online es todo lo que pasa mientras alguien espera la respuesta: llega la request, se prepara la foto, el modelo calcula y sale la respuesta. Su reloj son los milisegundos.
El camino offline es todo lo que prepara la siguiente versión del modelo sin que nadie esté esperando: juntar fotos nuevas, ponerles su etiqueta, entrenar, examinar y aprobar. Su reloj son las horas, los días y las semanas.
- App de Ana · sube la foto
Ana sube la foto de sus tenis y la sugerencia tiene que llegar mientras ella sigue escribiendo. Que alguien esté esperando es justo lo que define al camino online. - API del modelo · prepara la foto
Recibe la foto, la decodifica, la achica y la convierte en los números que el modelo espera. El marketplace no espera más de 300 ms: si no hay respuesta, usa el fallback. - Modelo · inferencia en GPU
Hace la inferencia con las perillas fijas: calcula qué tan probable es cada una de las 500 categorías. Corre en una GPU, la tarjeta que hace miles de cuentas a la vez. Es la versión que llegó con el último deploy. - Registro · una línea por foto
Una línea por foto: cuándo llegó, qué respondió el modelo, con qué versión y cuánto tardó. Se escribe aparte, sin hacer esperar a Ana. Es el puente 1: lo que el camino offline sabe de lo que está pasando en producción, lo sabe por aquí. - Datos y etiquetas · las fotos del mes
Una muestra de lo registrado (≈ 1 de cada 100 fotos) más las categorías del mes: las que eligió quien vende, las que corrigieron moderadores y unas 5 mil revisadas a mano. Sale un dataset fijo, con su versión. - Entrenamiento · unas horas en GPU
Aquí sí se mueven las perillas: es el entrenamiento. Corre en una máquina con GPU que se renta un rato y se apaga. Nadie está esperando: si tarda una hora más, no pasa nada. - Examen · ¿mejor que el actual?
El modelo nuevo responde el golden set, las mismas fotos de cada mes, y se compara con el modelo actual. Solo se aprueba si no es peor en nada importante. - Deploy · 5 % → 25 % → 100 %
El puente 2: el deploy pone la versión aprobada a responder poco a poco, primero 5 de cada 100 fotos, luego 25 y luego todas. Si la latencia o los errores empeoran, se regresa sola a la versión anterior.
Sus reglas son distintas, y casi todas salen de esa diferencia de relojes:
| Camino online | Camino offline | |
|---|---|---|
| Qué lo pone a correr | Una request: alguien subió una foto | Un calendario (cada mes, en C01) o una alarma: drift, una categoría nueva |
| Cuánto puede tardar | Milisegundos: 99 de cada 100 fotos en menos de 200 ms | Horas o días: importa terminar bien y a tiempo, no la velocidad de cada paso |
| Si falla | Se nota al instante: hacen falta un timeout y un fallback | Nadie lo nota ese día: el modelo actual sigue respondiendo, solo que envejece |
| Cómo crece | Más requests por segundo → más copias encendidas | Más datos → más máquinas un rato, que luego se apagan |
| Qué se vigila | Latencia, errores y requests por segundo | Que cada paso termine bien, la calidad de los datos y el examen del modelo nuevo |
| En C01 | Foto → API → modelo → 5 sugerencias → Ana | Registro → datos y etiquetas → entrenamiento → examen → deploy |
La pregunta que decide en qué camino vive algo es una sola: ¿alguien está esperando la respuesta? Sugerir la categoría mientras Ana escribe: sí, así que va online, con su presupuesto de tiempo y su fallback. Clasificar de una vez las ≈ 200 millones de fotos viejas del catálogo, publicadas antes de que existiera el modelo: nadie espera cada respuesta, así que va offline, en tandas y sin tocar el camino de Ana. En la Ronda a ese trabajo se le llama backfill.
Las seis etapas, en los dos caminos
Las seis etapas y los dos caminos son dos formas de cortar el mismo sistema. Las etapas responden «¿qué hay que construir, y en qué orden?». Los caminos responden «¿cuándo corre cada pieza, y con qué reloj?».
- Datos y Modelo viven en el camino offline: juntar, etiquetar, entrenar y examinar.
- API, Contenedor y Orquestación se construyen una vez por versión, pero lo que construyen trabaja en el camino online, en cada request.
- Monitoreo mira a los dos: mide cada request y avisa cuando toca darle otra vuelta al camino offline.
Los dos puentes
Los dos caminos no viven aislados: se tocan en dos puntos.
- 1
Del online al offline: el registro
Cada request deja una línea: cuándo llegó, qué respondió el modelo, con qué versión y cuánto tardó. Se escribe aparte, sin hacer esperar a Ana. De esas líneas salen las fotos nuevas, las pistas para etiquetarlas y las alarmas de drift: lo que el camino offline sabe de lo que está pasando en producción, lo sabe por aquí.
- 2
Del offline al online: el deploy
La versión que pasó el examen se pone a responder poco a poco, como viste en «¿Qué significa producción?». Es la única puerta por la que algo del camino offline le llega a Ana.
Sin el primer puente, el modelo nunca aprende nada nuevo. Sin el segundo, lo que aprende nunca le llega a nadie. En la Ronda, dibujar solo el camino online es el error más común de quien viene de entrenar modelos, y el entrevistador anota «no closed loop»: el ciclo no se cierra.
Por qué nunca se termina
De los dos caminos sale una idea que conviene llevarse: un modelo en producción no es un proyecto que se termina, es algo que se cuida.
Aunque nadie toque el modelo, el mundo sí cambia: salen modelos nuevos de tenis, cambian las modas, los celulares toman fotos con otra luz. Las fotos que llegan se van pareciendo menos a las del entrenamiento y el modelo acierta un poco menos cada mes. Nadie rompió nada. El monitoreo lo detecta, se etiquetan fotos nuevas, se reentrena y la versión nueva reemplaza a la anterior. Y el ciclo vuelve a empezar.
En el Dojo pasa además otra cosa: el 1 de octubre el negocio agrega la categoría «bolsas». El modelo no puede sugerir «bolsas» porque esa opción ni siquiera existe entre sus respuestas, así que elige la más parecida que conoce. Eso no es drift: es un cambio en las categorías, y obliga a reentrenar antes de lo planeado.
Los dos caminos en números
ExtraBoth paths in numbers
El camino online: cuántas fotos por segundo
Las máquinas no se planean por día, sino por segundo: lo que importa es cuántas fotos llegan al mismo tiempo. Es la cuenta de la Ronda para C01.
Diseñar para el promedio es un error caro: en la hora pico llegarían 3 veces más fotos de las que el sistema aguanta. Pero el promedio también importa, porque es el que paga la factura: la mayor parte del día las máquinas trabajan muy por debajo de lo que pueden.
El camino offline: un mes en números
Las etiquetas buenas son lo escaso del camino offline, y lo escaso cuesta. Según la Ronda, el reentrenamiento mensual de C01 son unas horas de una GPU: unas decenas de dólares. Es caro al lado de responder una foto, pero barato al lado de etiquetar con cuidado esas ≈ 5 mil fotos, que cuesta cientos de dólares (unos 5 o 10 centavos de dólar por foto). En el camino offline, el dinero y la calidad están en qué fotos se etiquetan, no en la máquina que entrena.
Compara los relojes: un mes son 30 × 86,400 = 2,592,000 segundos, y una request de 200 ms cabe 2,592,000 ÷ 0.2 ≈ 13 millones de veces. Por eso los dos caminos no pueden tener las mismas reglas: en uno, 50 ms de más rompen la promesa; en el otro, una hora de más ni se nota.
Errores comunes
EsencialCommon mistakes
Las confusiones que más se repiten al empezar, y cómo evitarlas.
- Confundir entrenar con usar. «El modelo aprende de cada foto que le subes», o «responder tarda horas». Entrenar mueve las perillas y se hace de vez en cuando; usar solo calcula y pasa millones de veces al día. Cómo evitarlo: pregúntate «¿se mueven las perillas?». Si sí, es entrenamiento; si no, es inferencia.
- Creer que 95 % en tu laptop significa «listo». Ese número dice que el modelo acierta en tus fotos de prueba. No dice si responde en 200 ms, si aguanta cientos de fotos por segundo en la hora pico, si sigue acertando con las fotos borrosas de celulares reales ni qué pasa cuando falla. Cómo evitarlo: recorre las seis etapas y pregunta en cada una «¿esto ya existe?».
- Creer que el modelo aprende en vivo. El modelo que responde tiene sus perillas fijas. Lo que aprende del mundo entra por el camino offline, con datos revisados y un examen, y llega como versión nueva. Aprender en vivo existe, pero es raro y arriesgado: sin examen, un error o un ataque se vuelve parte del modelo al instante. Cómo evitarlo: cuando oigas «aprende de los usuarios», pregunta cada cuánto se reentrena y quién aprueba la versión nueva.
- Ignorar el drift. «Nadie lo ha tocado, así que sigue igual de bien». El mundo cambia aunque el modelo no, y el modelo puede equivocarse más sin lanzar ningún error. Cómo evitarlo: vigila al modelo y no solo al servidor: mide con etiquetas nuevas y compara las fotos de hoy con las del entrenamiento.
- Olvidar el fallback. Sin plan B, el día que el modelo tarda o se cae, la persona se queda viendo una pantalla trabada. Cómo evitarlo: para cada pieza que está en el camino de alguien que espera, decide cuánto se espera como máximo y qué se hace si la respuesta no llega.
- Dibujar solo el camino online. Foto → API → modelo → respuesta, y listo. Falta de dónde salen las etiquetas, cómo se entrena la próxima versión, cómo sabes que es mejor y cómo te enteras de que la actual empeoró. Cómo evitarlo: dibuja siempre los dos caminos con sus dos puentes: el registro (de online a offline) y el deploy (de offline a online).
En la vida real
ExtraIn real life
El camino de C01 no es especial. Toma tres casos de la Ronda que no se parecen en nada: video, pagos y un asistente que contesta preguntas. Las seis etapas y los dos caminos son los mismos; cambian las piezas y, sobre todo, los relojes.
C02 · Video en tiempo real en 25 centros de distribución
Una empresa de logística tiene 25 centros con 40 cámaras cada uno: 1,000 cámaras. Quiere una alerta cuando una persona o un vehículo entra a una zona prohibida.
- Online: cada centro tiene su propia caja con GPU, que mira 5 cuadros por segundo de cada cámara y detecta personas y vehículos. Si alguien sigue en la zona ≈ 1.5 segundos, la caja sube el evento a la nube, otro modelo lo confirma y la alerta llega a la pantalla de un operador. Reloj: 5 segundos o menos desde que la persona entra, contando ese segundo y medio, 95 de cada 100 veces.
- Offline: cada operador marca la alerta como confirmada o descartada, y esas marcas son las etiquetas. Con ellas se reentrena, y el modelo nuevo se instala por olas: primero en 2 centros durante una semana y luego en 5, en 10 y en los últimos 8.
- Fallback: si se cae el internet de un centro, la caja sigue detectando y guarda los eventos en su disco (le caben al menos 72 horas) hasta que vuelve la red.
- Lo distinto: la API, el contenedor y la orquestación no viven en un solo lugar, sino repartidos en 25 cajas. Al cómputo que se pone junto a donde nacen los datos se le llama edge («la orilla»). Aquí hace falta porque el video de 40 cámaras no cabe en el internet de un centro.
C09 · Fraude en pagos con tarjeta
Una empresa latinoamericana que procesa pagos en línea recibe ≈ 10 millones de pagos al día y quiere frenar los fraudes en el momento en que ocurren.
- Online: el chequeo corre dentro del cobro, antes de pedirle la autorización al banco de la tarjeta. Reloj: 100 ms o menos, 99 de cada 100 veces. Una de las pistas más fuertes de un fraude es lo que pasó en los últimos minutos con esa tarjeta (por ejemplo, 30 intentos de pago en un minuto), así que esos conteos se calculan con un flujo continuo de eventos (streaming) que se pone al día en segundos: un tercer reloj, entre los otros dos.
- Offline: la etiqueta es el contracargo, el reclamo del dueño de la tarjeta que dice «yo no hice esa compra», y tarda semanas o meses en llegar. Con los supuestos de la Ronda, ≈ 60 % llega en 30 días y ≈ 90 % en 60, así que se entrena solo con meses que ya «maduraron».
- Fallback: si el modelo no responde a tiempo, deciden reglas fijas y límites. Nunca se bloquean todos los pagos.
- Lo distinto: el modelo no es una red neuronal sino uno mucho más ligero, que corre en el procesador, sin GPU. Lo difícil no es el modelo: son los datos frescos y las etiquetas lentas.
C11 · Un asistente que contesta con los documentos de la empresa
Los ≈ 8,000 empleados del marketplace de C01 hacen ≈ 25 mil preguntas al día a un asistente que responde con los documentos internos y cita de dónde sacó cada cosa. Usa un LLM (un modelo grande de lenguaje: escribe texto, como el de un chat) con RAG: antes de contestar, busca los pedazos de documento que vienen al caso y se los da al LLM.
- Online: llega la pregunta, se buscan los pedazos que esa persona tiene permiso de ver, se arma la instrucción para el LLM y la respuesta aparece palabra por palabra. Reloj: empieza a aparecer en 2.5 segundos o menos, 95 de cada 100 veces.
- Offline: el LLM no se reentrena. El camino offline es tener los documentos al día: ≈ 1.5 millones de documentos partidos en ≈ 12 millones de pedazos, y cada cambio tiene que poder encontrarse en 15 minutos o menos (95 de cada 100 veces).
- Fallback: si el LLM no está disponible, el asistente muestra los documentos más relevantes, sin respuesta redactada. Lo que nunca hace: si falla el filtro de permisos, no busca sin filtro.
- Lo distinto: aquí «entrenar» casi desaparece, y su lugar lo ocupa mantener al día lo que se busca. El camino offline existe igual: solo cambia lo que prepara.
Los relojes, lado a lado
| Caso | Reloj online | Reloj offline | Si falla lo online |
|---|---|---|---|
| C01 · Categoría de una foto | 200 ms (99 de 100) | Una versión nueva al mes | Selector manual |
| C02 · Video | 5 s hasta el operador (95 de 100) | Semanas: olas de centros | La caja guarda los eventos |
| C09 · Fraude | 100 ms dentro del cobro (99 de 100) | Meses: las etiquetas tardan | Reglas fijas y límites |
| C11 · Asistente con RAG | 2.5 s hasta que empieza la respuesta (95 de 100) | 15 min para un documento nuevo o editado | Solo resultados de búsqueda |
Fuera de ML pasa lo mismo. Un buscador de internet recorre y ordena páginas web todo el tiempo, sin que nadie espere (offline), y contesta tu búsqueda en una fracción de segundo (online). Tu banco autoriza tu tarjeta en el momento y arma tu estado de cuenta una vez al mes. La pregunta que separa los dos caminos es la misma en todos lados: ¿alguien está esperando?
Ejercicios
EsencialExercises
Resuelve cada uno en papel antes de abrir la solución. Los medios te piden razonar con dos ideas a la vez, y los retos, usar todo el camino en un caso nuevo.
- 1Fácil
Para cada frase, di si es entrenamiento o inferencia. (a) El modelo de C01 recibe la foto de Ana y responde «Calzado › Tenis, 94 %». (b) Se le muestran 1.8 millones de fotos con su categoría y sus perillas cambian un poquito con cada grupo. (c) Una app de galería ordena tus fotos por tema mientras el celular se carga de noche, con un modelo que ya trae instalado. (d) Un equipo ajusta un modelo de lenguaje con 10 mil conversaciones de su área de soporte.
Ver la solución paso a paso
La pregunta que decide es una: ¿se mueven las perillas?
- (a) Inferencia. El modelo ya entrenado solo calcula.
- (b) Entrenamiento. Ver ejemplos con su respuesta y ajustar las perillas es justo eso.
- (c) Inferencia. El modelo ya viene entrenado y solo calcula, aunque nadie mire la pantalla.
- (d) Entrenamiento. Ajustar con datos propios un modelo que ya existía también mueve perillas: es un fine-tuning.
- 2Fácil
¿En qué etapa del camino vive cada cosa? (a) Docker. (b) Kubernetes. (c) Personas que revisan si una foto es «Tenis» o «Botas». (d) El examen del modelo nuevo con fotos que nunca vio. (e) Medir cuánto tarda cada respuesta. (f) El programa que recibe la foto y regresa la categoría.
Ver la solución paso a paso
- (a) Contenedor. Docker es la herramienta más usada para crear contenedores.
- (b) Orquestación. Kubernetes decide cuántas copias correr, en qué máquinas y cuáles reemplazar.
- (c) Datos. Están poniendo etiquetas.
- (d) Modelo. El modelo nuevo se aprueba solo si pasa el examen.
- (e) Monitoreo.
- (f) API. Es la ventanilla por donde se le pregunta al modelo.
- 3Fácil
Otro marketplace, más chico, recibe 400 mil publicaciones al día, con 5 fotos cada una, y su modelo responde cada foto por separado. (a) ¿Cuántas fotos por segundo le llegan en promedio? (b) Si en la hora pico llega el triple del promedio, ¿para cuántas por segundo tiene que estar listo?
Ver la solución paso a paso
Fotos por segundoLa cuenta Fotos al día400,000 × 52,000,000Un día, en segundos24 × 60 × 6086,400 sPromedio2,000,000 ÷ 86,400 s≈ 23 por segundoHora pico23 × 3≈ 69 por segundoResultadoTiene que aguantar ≈ 70 fotos por segundo, aunque el promedio sea 23. - 4Fácil
En un rato llegan 100 fotos: 95 tardan 40 ms y 5 tardan 1 segundo. (a) ¿Cuánto tardan en promedio? (b) Ordenadas de la más rápida a la más lenta, ¿cuánto tarda la número 99? (c) ¿Se cumple la promesa de C01?
Ver la solución paso a paso
- (a) Promedio: (95 × 40 + 5 × 1,000) ÷ 100 = (3,800 + 5,000) ÷ 100 = 88 ms. Se ve muy bien.
- (b) Las 95 rápidas ocupan los lugares 1 a 95 y las 5 lentas, del 96 al 100. La número 99 es lenta: 1,000 ms.
- (c) No. La número 99 tarda 1,000 ms, no menos de 200. Además, las 5 lentas pasan de 300 ms: a esas 5 personas el marketplace les mostró el selector manual. El promedio escondía todo eso.
- 5Medio
Los dos ejes. Para cada caso di dos cosas: si es entrenar o usar, y si es online u offline. (a) Ana sube su foto y recibe la sugerencia. (b) El reentrenamiento del mes. (c) El examen del mes: el modelo nuevo responde las 50 mil fotos del golden set. (d) Clasificar de una vez las ≈ 200 millones de fotos viejas del catálogo. (e) Un modelo que ajusta sus perillas con cada clic de los usuarios, al instante.
Ver la solución paso a paso
Hay que hacer dos preguntas por separado: «¿se mueven las perillas?» y «¿alguien está esperando?».
Caso ¿Entrenar o usar? ¿Online u offline? (a) La foto de Ana Usar Online: Ana espera (b) El reentrenamiento Entrenar Offline (c) El examen del mes Usar: las perillas no se mueven Offline: nadie espera cada respuesta (d) Las fotos viejas Usar Offline: va en tandas, sin tocar el camino de Ana (e) Ajustar con cada clic Entrenar Online: en vivo, dentro del sistema que responde El (e) existe y se llama aprendizaje en línea (online learning). Ahí «en línea» quiere decir que se ajusta en vivo, en el mismo sistema que responde: nadie espera el ajuste, pero le pega al instante a la siguiente respuesta. Es raro: necesita la respuesta correcta en segundos o minutos (en fraude tarda meses) y, sin examen de por medio, un error o un ataque se vuelve parte del modelo al instante. C01 no lo hace.
- 6Medio
Esta vez Ana publica desde la web, no desde la app, y sube la foto original de su cámara, de muchos megapíxeles. En el caso lento, el preprocesamiento tarda 120 ms en lugar de 52. Los demás pasos quedan como en el presupuesto de C01: red y entrada 40 ms, modelo 27 ms, respuesta 3 ms y el propio programa 30 ms. (a) ¿Cuánto suma? (b) ¿Se cumple la promesa? (c) ¿Ana recibe sugerencia? (d) ¿Qué cambiarías?
Ver la solución paso a paso
Con una foto giganteLa cuenta Los otros pasos40 + 27 + 3 + 30100 msTotal100 + 120220 msContra la promesa220 − 20020 ms de másContra los 300 ms del marketplace300 − 22080 ms de sobraResultadoEn ese caso lento la promesa de 200 ms no se cumple, pero Ana sí recibe su sugerencia.(d) El problema está en lo que entra, así que se ataca ahí: achicar la foto antes de subirla (la app de C01 ya la reduce a 1024 píxeles de lado largo) y ponerle un límite de tamaño a lo que llega de la web. Compruébalo en la calculadora: con el preprocesamiento en 120 ms, el margen sale en −20 ms.
- 7Medio
¿Es drift? Para cada situación di si es drift y, si no, qué es. (a) Llega diciembre y suben las fotos de adornos, suéteres y juguetes. (b) El negocio agrega la categoría «bolsas». (c) Sale un celular muy popular que toma fotos más brillantes y con más contraste. (d) Alguien cambia el código de la API y ahora la foto le llega al modelo con los colores en otro orden. (e) Las respuestas tardan más en la hora de más tráfico.
Ver la solución paso a paso
- (a) Drift. Las fotos que llegan cambiaron con la temporada. Más adelante verás que tiene un nombre más exacto: cuando cambia sobre todo cuánto llega de cada categoría, se llama label shift.
- (b) No es drift: es un cambio en las categorías. El modelo ni siquiera tiene «bolsas» entre sus respuestas. Toca reentrenar con la categoría nueva.
- (c) Drift. Las fotos se parecen menos a las del entrenamiento, aunque los productos sean los mismos.
- (d) No es drift: es un bug. El mundo no cambió; cambió cómo el programa prepara la foto, que ya no es igual que en el entrenamiento. Tiene nombre: training-serving skew. Se arregla el código, no se reentrena.
- (e) No es drift: es carga. El modelo acierta igual; lo que faltan son copias. Es trabajo de la orquestación.
- 8Reto
Una app de comida a domicilio muestra «Llega en 35 min» cuando confirmas tu pedido. (a) ¿Qué parte es el camino online y qué tan rápido tendría que ser? (b) ¿De dónde salen las etiquetas del camino offline? (c) ¿Qué fallback pondrías? (d) ¿Cuáles son los dos puentes?
Ver la solución paso a paso
- (a) Online: al confirmar, la app manda el restaurante, tu dirección y la hora, y el modelo predice el tiempo. Tú estás esperando esa pantalla, así que tiene que ser rápido: del orden de cientos de milisegundos, como C01 (es un supuesto razonable, no un dato).
- (b) Etiquetas: el tiempo real de entrega, que se sabe cuando el pedido llega a tu puerta. Hay que guardar cada predicción y, cuando llegue el tiempo real, juntar las dos.
- (c) Fallback: un tiempo fijo por zona o el promedio de ese restaurante, como «30–45 min». Es peor que el modelo, pero nunca deja la pantalla vacía.
- (d) Puentes: el registro de cada predicción con su tiempo real (de online a offline) y el deploy del modelo reentrenado (de offline a online).
- 9Reto
Moderación quiere revisar con otro modelo si cada foto trae un producto prohibido. En el caso lento, ese modelo tarda 60 ms. (a) Si va en el camino de Ana, después del clasificador, ¿cuánto suma el caso lento de C01, que era de 152 ms, y qué margen queda contra los 200 ms? (b) ¿Ana está esperando esa respuesta? ¿Dónde lo pondrías y qué ganas?
Ver la solución paso a paso
Un modelo más en el camino de AnaLa cuenta Presupuesto de C01, caso lento40 + 52 + 27 + 3 + 30152 msCon el modelo de moderación152 + 60212 msContra la promesa200 − 212−12 msResultadoEn el caso lento ya no cabe en los 200 ms, y todo por un modelo que Ana ni siquiera necesita.(b) No. Para sugerirle «Tenis» no hace falta saber si el producto está prohibido, así que ese modelo va aparte, sin que nadie espere cada respuesta: otro servicio revisa la foto segundos o minutos después (y si hubiera que frenar la publicación, al publicar, con su propio reloj).
Ganas tres cosas: Ana conserva sus 48 ms de margen, si moderación falla ella ni se entera, y moderación puede usar un modelo más lento y más preciso. La Ronda hace lo mismo: en C01, la moderación es otro sistema, fuera de la API de categorías.
Lo que sigue
EsencialWhat comes next
- En Sensei. La siguiente lección, «Qué es un modelo», abre la caja: qué hace el modelo por dentro y qué significa de verdad el «94 %». Después vienen cómo ve una foto, con qué aprende, cómo aprende y cómo saber si aprendió. Las cuentas de esta lección (percentiles, requests por segundo, qué tan seguido falla algo) se hacen a fondo en el módulo «Números y estadística para producción».
- En la Ronda. M01 · El mapa y la entrevista arranca justo aquí: el ciclo de vida, la figura de Sculley y los dos caminos separados, que es lo primero que un entrevistador busca en tu diagrama. Su arquitectura de referencia es este mismo camino con más cajas (una puerta de entrada o gateway, un registro con las versiones aprobadas del modelo, un feature store que guarda datos ya preparados y una tarea diaria que busca drift), y sus estimaciones son las de la sección de números: 116, 350 y 500 requests por segundo. M02 · Patrones de inferencia desarrolla la pregunta «¿alguien está esperando?», M03 · Latencia y capacidad reparte el presupuesto de 200 ms tramo por tramo, M11 · Despliegue seguro hace el deploy poco a poco y M12 · Monitoreo caza el drift.
- En el Dojo. Practicas el mismo C01 estación por estación, con código de verdad: son las 12 estaciones de esta lección.
Palabras que vas a oír
EsencialWords you will hear
Estos son los conceptos que presentó esta lección. Cada uno tiene una lección donde se ve a fondo, más adelante.
ModelomodelUn programa que aprendió de ejemplos a convertir una entrada (una foto) en una respuesta (su categoría).Más +
No lo escribe una persona regla por regla. Una persona elige su forma y los ejemplos, y el entrenamiento ajusta sus parámetros hasta que acierta. Por dentro es una función matemática muy grande: entran números (los píxeles de la foto) y salen números (qué tan probable es cada categoría).
Ejemplo. En C01 el modelo es una ResNet-50: recibe la foto de una publicación y devuelve qué tan probable es cada una de 500 categorías.
Parámetroparameter · weightCada uno de los números internos de un modelo que el entrenamiento ajusta. Son sus «perillas».Más +
Una combinación de valores de los parámetros hace que el modelo responda de una forma, y otra combinación, de otra. Entrenar es buscar la combinación con la que el modelo se equivoca menos. En inglés también se les dice weights (pesos).
Ejemplo. La ResNet-50 de C01 tiene unos 24.5 millones de parámetros con sus 500 categorías (25.6 millones en la versión original, de 1000).
EntrenamientotrainingMostrarle al modelo muchos ejemplos con su respuesta correcta y ajustar sus parámetros, poco a poco, para que se equivoque menos.Más +
El modelo adivina, se compara con la etiqueta correcta y mueve sus parámetros un poquito en la dirección que reduce el error. Eso se repite millones de veces. Es lento y caro, y se hace de vez en cuando, no con cada uso.
Ejemplo. En C01 el modelo se reentrena una vez al mes con las fotos nuevas del mes.
EtiquetalabelLa respuesta correcta de un ejemplo: la que el modelo debería dar. En C01, la categoría real de una foto.Más +
Muchas veces la pone una persona a mano, y por eso cuesta tiempo y dinero. Con etiquetas malas, el modelo aprende mal, aunque todo lo demás esté perfecto.
Ejemplo. Una foto de unos tenis con la etiqueta «Calzado › Tenis». En C01 las etiquetas salen de tres lugares: la categoría que eligió quien vende, las correcciones de moderadores y unas 5 mil fotos al mes revisadas a mano.
InferenciainferenceUsar un modelo ya entrenado para responder sobre un caso nuevo. Los parámetros no cambian: el modelo solo calcula.Más +
Es el otro momento en la vida de un modelo, después del entrenamiento. Cada respuesta que da es una predicción. Es rápida y pasa todo el tiempo: es lo que hace el modelo en producción.
Ejemplo. Cada vez que alguien sube una foto al marketplace de C01, el modelo hace una inferencia. Son millones al día.
PredicciónpredictionLa respuesta que da un modelo para un caso. No es una certeza: suele venir con qué tan seguro está, como una probabilidad.Más +
Sale de la inferencia: el modelo calcula un número para cada respuesta posible y los convierte en probabilidades. La predicción es la respuesta más probable, o las primeras de la lista. Que diga 94 % no garantiza que acierte: qué tanto se le puede creer a ese número se ve en la lección «Qué es un modelo».
Ejemplo. «Calzado › Tenis, 94 %» es una predicción: el modelo cree que es eso, con una confianza de 94 %. Se lee como una probabilidad, aunque no siempre es exacta.
Producciónproduction · prodCuando el sistema ya lo usa gente real, todos los días, y si falla alguien lo nota.Más +
Lo contrario es desarrollo: tu laptop o un notebook, donde puedes romper cosas sin que nadie se entere. Pasar algo de uno a otro, o cambiar la versión que responde por una nueva, es un deploy.
Ejemplo. El modelo de C01 está en producción: cada foto que alguien sube al marketplace pasa por él, de día y de noche. Si deja de responder, miles de personas tienen que buscar la categoría a mano.
Deploydeployment · desplegarPoner a responder a la gente de verdad una versión nueva de un modelo o de un programa, en lugar de la anterior.Más +
Es el puente del camino offline al camino online: la única forma en que lo que se entrenó le llega a alguien. Casi nunca se hace de golpe: primero la versión nueva atiende una fracción chica del tráfico, se vigila y, si todo va bien, recibe más. Si algo empeora, se regresa a la versión anterior (rollback).
Ejemplo. En C01, un modelo aprobado responde primero 5 de cada 100 fotos, luego 25 y luego todas. Si suben la latencia o los errores, se regresa solo a la versión anterior.
NotebookJupyter notebookUn documento donde mezclas código, resultados y notas, y corres el código por pedacitos. Muy bueno para explorar, malo para producción.Más +
Puedes correr las celdas (los pedacitos de código) en cualquier orden, y por eso es fácil que algo funcione solo en tu máquina y solo esa vez. Para producción, el código pasa a archivos normales que corren siempre igual, de principio a fin.
Ejemplo. Entrenaste una primera versión en un notebook y funciona porque corriste la celda 3 antes que la 5. Si alguien lo corre de arriba abajo, falla. Para producción, ese código pasa a un archivo de Python que corre siempre igual.
ML engineermachine learning engineerLa persona que lleva un modelo del notebook a producción y lo mantiene funcionando: datos, entrenamiento, serving, despliegue y monitoreo.Más +
No basta con que el modelo acierte. El trabajo es que todo lo que lo rodea también funcione: que le lleguen buenos datos, que responda rápido, que no se caiga y que alguien note cuando empieza a fallar.
Ejemplo. En C01, el ML engineer no inventa la ResNet-50: se encarga de que las fotos le lleguen bien preparadas, de que responda en menos de 200 ms, de que una versión nueva salga sin romper nada y de notar cuando empieza a fallar.
PipelinepipelineUna cadena de pasos donde lo que sale de uno es lo que entra al siguiente, y que se puede volver a correr igual.Más +
Lo importante es que se pueda volver a correr igual: si cada paso lee una versión fija de lo que le entra y guarda lo que sale, cualquiera puede repetir el resultado o encontrar en qué paso se rompió. En producción casi todo es un pipeline: el de datos, el de entrenamiento y el de despliegue.
Analogía. Una línea de ensamblaje: cada estación hace una cosa y le pasa la pieza a la siguiente.
Ejemplo. El camino de C01 es un pipeline: datos → modelo → API → contenedor → orquestación → monitoreo.
Datasetdataset · conjunto de datosUna colección de ejemplos, guardada y ordenada, con la que se entrena o se evalúa un modelo.Más +
Cada ejemplo trae la entrada (la foto) y, casi siempre, su etiqueta (la categoría correcta). En producción no basta con tenerlo: hay que poder decir exactamente con cuál dataset se entrenó cada modelo.
Ejemplo. El dataset de un mes en C01 son las fotos de publicaciones con su categoría revisada.
APIApplication Programming InterfaceLa «ventanilla» de un programa: lo que otros programas le pueden pedir, cómo pedírselo y qué les va a regresar.Más +
Quien la usa no necesita saber cómo funciona por dentro, solo qué pedir y en qué formato. Un modelo en producción casi siempre se usa a través de una API: le mandas una request con la foto y te regresa la categoría.
Analogía. La ventanilla de un banco: no ves la bóveda ni los sistemas de atrás, pero sabes qué trámites puedes pedir y qué papeles llevar.
Ejemplo. La API de C01 recibe una foto y regresa las 5 categorías más probables, cada una con su porcentaje. El marketplace no necesita saber que adentro hay una ResNet-50.
Servingmodel serving · servir un modeloTener el modelo cargado en un servidor, listo para responder predicciones por una API.Más +
Es la etapa 3 del camino: un programa carga el modelo una vez, al arrancar, y desde ahí responde cada request. Lo difícil no es que responda una vez, sino que responda rápido y sin caerse, muchas veces por segundo, con la foto preparada igual que cuando se entrenó.
Ejemplo. En C01, el serving es la API que recibe la foto de Ana, la prepara y se la pasa al modelo, que vive en un servidor con GPU (Triton, en la Ronda).
ServidorserverUna computadora (o un programa) que se queda encendida esperando peticiones y las responde.Más +
La palabra se usa para las dos cosas: la máquina y el programa que corre en ella esperando peticiones. En producción, los servidores no se apagan nunca y casi siempre están en la nube (computadoras que empresas como Amazon o Google rentan por hora), no en una oficina.
Ejemplo. La API de C01 corre en varios servidores en la nube que responden millones de fotos al día. Si uno se apaga, los demás siguen respondiendo.
ContenedorcontainerUn paquete con tu programa y todo lo que necesita para correr (la versión de Python, las librerías, los archivos), para que corra igual en cualquier máquina.Más +
Resuelve el clásico «en mi máquina sí funciona». La herramienta más usada para crearlos es Docker. Ojo: si el modelo usa una GPU, la máquina también necesita sus drivers.
Analogía. Un contenedor de barco: no importa qué lleve adentro, tiene un tamaño estándar y cualquier puerto, grúa o barco lo puede mover.
Ejemplo. El contenedor de la API de C01 lleva la versión exacta de Python, las librerías y el código. El mismo contenedor que se probó es el que corre en cada servidor.
OrquestaciónorchestrationQue un sistema decida por ti cuántas copias de tu programa correr, en qué máquinas, y que levante otra si una se cae.Más +
También se encarga de cambiar a una versión nueva poco a poco, sin apagar el servicio. El orquestador de contenedores más usado es Kubernetes.
Ejemplo. En C01, Kubernetes mantiene varias copias de la API encendidas, agrega copias cuando sube el tráfico de la hora pico y, si una copia falla, levanta otra sola.
MonitoreomonitoringMedir todo el tiempo cómo se comporta el sistema en producción y avisar cuando algo se sale de lo normal.Más +
En un sistema con un modelo se miden dos tipos de cosas. Las del software: qué tan rápido responde (latencia), cuántas peticiones fallan. Y las del modelo: si sigue acertando, o si los datos que llegan ya no se parecen a los de su entrenamiento (drift).
Ejemplo. En C01 se vigila que 99 de cada 100 respuestas tarden menos de 200 ms, cuántas fallan y si cambia cuáles categorías predice más seguido el modelo, que es una señal temprana de drift.
Driftdata drift · derivaCuando los datos que llegan en producción dejan de parecerse a los del entrenamiento. Por eso el modelo puede empezar a fallar más aunque nadie lo haya tocado.Más +
El modelo no se descompone: el mundo cambia a su alrededor. Llegan productos nuevos, cambian las modas, las cámaras de los celulares toman fotos distintas. Ojo: drift no siempre quiere decir que el modelo empeoró (con fotos mejor iluminadas hasta puede acertar más). Por eso el drift abre una investigación, y lo que decide si hay que reentrenar son las etiquetas nuevas.
Ejemplo. Salen modelos nuevos de tenis y los celulares toman fotos con otra luz: las fotos que llegan se parecen cada vez menos a las del entrenamiento, y el modelo acierta un poco menos cada mes. Una categoría nueva (como «bolsas» en el Dojo) es otra cosa: ahí el modelo ni siquiera tiene esa respuesta.
ReentrenamientoretrainingVolver a entrenar el modelo con datos nuevos para que se ponga al día con lo que está pasando.Más +
Es lo que cierra el ciclo: el monitoreo detecta que el modelo se quedó atrás, se juntan y etiquetan datos nuevos, y se entrena una versión nueva que reemplaza a la anterior solo si es mejor.
Ejemplo. C01 reentrena cada mes con las fotos nuevas, y antes si el monitoreo detecta drift o si el negocio agrega una categoría, como «bolsas» en el Dojo.
Requestrequest · peticiónUn mensaje que un programa le manda a otro, por la red, para pedirle algo. Lo que regresa se llama response (respuesta).Más +
Viaja por la red con un formato acordado: a qué dirección va, qué se pide y qué datos lleva (aquí, la foto). Cada request recibe su response, aunque sea un mensaje de error. Contar cuántas llegan por segundo es la forma de medir cuánto trabajo tiene un servicio.
Ejemplo. Cuando Ana sube su foto, los servidores del marketplace le mandan una request a la API del modelo con la foto, y la response trae la categoría.
LatencialatencyCuánto tarda en llegar la respuesta desde que se hace la petición.Más +
Se mide en milisegundos. No basta con el promedio: importa sobre todo qué tan lentas son las respuestas más lentas, porque a esas personas la app se les traba.
Ejemplo. C01 se compromete a que 99 de cada 100 sugerencias tarden menos de 200 ms.
Milisegundo (ms)millisecondUna milésima de segundo. Un parpadeo dura entre 100 y 400 ms.Más +
Un segundo tiene 1,000 milisegundos. Es la unidad natural del camino online: la respuesta de un modelo se mide en decenas o cientos de ms.
Ejemplo. La promesa de C01 es de 200 ms, un quinto de segundo. El marketplace espera como máximo 300 ms, tres décimas de segundo.
Camino onlineonline path · serving pathTodo lo que pasa mientras alguien espera una respuesta: llega la request, se prepara la entrada, el modelo calcula y sale la respuesta. Su reloj son los milisegundos.Más +
Corre por cada request, a cualquier hora, y si falla se nota al instante. Por eso vive con un presupuesto de latencia, un tiempo máximo de espera y un fallback. Crece con el tráfico: más requests por segundo piden más copias encendidas. La pregunta que lo define: ¿alguien está esperando la respuesta?
Ejemplo. En C01: la foto de Ana entra a la API, se prepara, el modelo hace la inferencia y regresa las 5 categorías más probables. 99 de cada 100 veces, en menos de 200 ms.
Camino offlineoffline path · training pathTodo lo que prepara la siguiente versión del modelo sin que nadie esté esperando: juntar y etiquetar datos, entrenar, examinar y aprobar. Su reloj son las horas, los días y las semanas.Más +
Corre por calendario o cuando algo lo dispara, como el drift o una categoría nueva. Si falla, nadie lo nota ese día: el modelo actual sigue respondiendo, solo que envejece. Se une al camino online por dos puentes: el registro de cada predicción (de online a offline) y el deploy (de offline a online).
Ejemplo. En C01, cada mes: se guarda una muestra de las fotos, se juntan sus categorías (unas 5 mil revisadas a mano), se reentrena en unas horas de GPU, se examina contra el modelo actual y, si no es peor, se despliega.
Fallbackfallback · plan BLo que hace el sistema cuando el modelo no responde a tiempo o falla: una respuesta más simple que no depende de él, para que la persona pueda seguir.Más +
Todo lo que está en el camino online falla alguna vez. El fallback convierte esa falla en una molestia chica en vez de una pantalla trabada: el sistema se degrada, pero no se cae. Va junto con un tiempo máximo de espera (timeout): pasado ese tiempo, se deja de esperar y se usa el plan B.
Ejemplo. En C01, si la API no contesta en 300 ms, el marketplace le muestra a Ana el selector de categorías para elegirla a mano. En el caso de fraude de la Ronda, si el modelo no responde, deciden reglas fijas.
Chequeo
EsencialCheck
Intenta responder en tu cabeza antes de abrir cada respuesta.
1¿Cuál es la diferencia entre entrenar un modelo y usarlo?Ver respuesta
Al entrenar, el modelo ve ejemplos con su respuesta correcta y ajusta sus parámetros. Es lento y se hace de vez en cuando. Al usarlo (inferencia), recibe un caso nuevo sin respuesta y solo calcula, con los parámetros fijos. Es rápido y pasa millones de veces.
2Un modelo acierta 95 % en tu laptop. ¿Ya está en producción?Ver respuesta
No. Le falta todo lo demás: que alguien le pueda preguntar (API), que corra igual en otras máquinas (contenedor), que aguante a millones de personas sin caerse (orquestación) y que alguien vigile que siga acertando (monitoreo).
3¿Qué es el camino online, qué es el offline y cuál es el reloj de cada uno?Ver respuesta
El online es lo que pasa mientras alguien espera la respuesta: milisegundos (en C01, 99 de cada 100 fotos en menos de 200 ms). El offline prepara la siguiente versión sin que nadie espere, con datos, etiquetas, entrenamiento y examen: horas, días o semanas (en C01, una vuelta al mes).
4¿Cuáles son los dos puentes entre los dos caminos?Ver respuesta
El registro de cada request, que lleva lo que pasó en el online hacia el offline, y el deploy, que lleva la versión aprobada del offline al online. Sin el primero el modelo no aprende nada nuevo; sin el segundo, lo que aprende no le llega a nadie.
5¿Qué pasa si la API de C01 no contesta en 300 ms, y por qué existe ese plan?Ver respuesta
El marketplace deja de esperar y le muestra a Ana el selector de categorías: es el fallback. Existe porque todo falla alguna vez: aun cumpliendo su promesa del 99.9 %, hasta 300 mil fotos al mes se quedan sin sugerencia.
6¿Por qué un deploy se hace poco a poco y no de golpe?Ver respuesta
Para que, si la versión nueva trae un problema, solo le pegue a unos pocos. En C01 responde primero 5 de cada 100 fotos, luego 25 y luego todas; si algo empeora, se regresa sola a la anterior.
7Nadie ha tocado el modelo en seis meses y ahora se equivoca más. ¿Cómo puede ser?Ver respuesta
Porque el mundo cambió: llegan fotos distintas a las del entrenamiento. Eso es drift. La solución es juntar y etiquetar datos nuevos y reentrenar. (Si además aparece una categoría nueva, el modelo ni siquiera puede elegirla: también toca reentrenar.)