Read in English · Lire en français · Auf Deutsch lesen
Sección 12.2 de 12.8 · Avanzado · 33 min de lectura · Última revisión: noviembre de 2026
Dónde encajan los modelos en una arquitectura
Videolección
5 min · narrado en español, con subtítulosSolo escuchar (audio)
Leer la transcripción
Elegir el mejor modelo del mes importa menos de lo que podrías pensar. En los sistemas basados en la inteligencia artificial, o IA, las decisiones duraderas son dónde se ejecuta un modelo, qué tiene delante y qué ocurre cuando falla.
Piensa en un modelo como en un contratista especializado. Puedes contratar uno a una agencia por una tarifa por hora. Eso es una API alojada: los modelos más capaces y sin hardware, pero pagas por token, y tus datos salen de tu perímetro. Puedes emplear a tu propio especialista, con todo el equipo que necesita. Eso es autoalojar un modelo de pesos abiertos: controlas los datos y la versión, pero debes planificar la capacidad de unos aceleradores escasos y caros. O puedes dar a cada cliente un pequeño kit de herramientas para usar en casa. Eso es un modelo en el dispositivo: privado, sin conexión y sin costo por llamada, pero mucho menos capaz.
Después, pregúntate si hay un usuario esperando. La inferencia online está en la ruta de la solicitud, así que las respuestas se envían en streaming, y las llamadas necesitan timeouts y capacidad para el pico de la noche. En el trabajo por lotes no hay nadie esperando, como al etiquetar por la noche dos millones de platos de la carta con sus alérgenos. Puede usar el modelo adecuado más barato y reintentar con calma. La inferencia asíncrona pone la solicitud en cola y avisa al usuario de que el resultado llegará después. Sacar el trabajo de la ruta online es una de las decisiones de costo y fiabilidad más eficaces que existen.
En cuanto más de una funcionalidad llama a modelos, un gateway de IA se amortiza. Aquí lo llaman un asistente de soporte, un trabajo nocturno por lotes y una herramienta de búsqueda para el personal, cada uno con su propia identidad interna. El gateway ofrece una única API para todos los modelos. Guarda las claves de los proveedores, enruta las llamadas y gestiona las alternativas, hace cumplir las cuotas y los límites de tasa, registra cada llamada con enmascarado y ofrece ganchos para los guardrails. Detrás de él hay dos proveedores alojados y un modelo autoalojado. Cambiar de proveedor pasa a ser una decisión de configuración, no un cambio de código en cada servicio. El precio es una nueva dependencia crítica que debe tener alta disponibilidad, y un almacén concentrado de prompts que pueden contener datos personales.
No todas las solicitudes necesitan el modelo más capaz. El enrutamiento decide de antemano. Una pregunta como dónde está mi pedido puede ir a un modelo pequeño y barato, mientras que una queja sobre tres problemas va a uno más grande. Una cascada prueba primero un modelo barato y escala solo cuando falla una comprobación. Las mejores comprobaciones son deterministas, como una validación de esquema fallida. La declaración de confianza del propio modelo es la señal menos fiable. Cuando un modelo alcanza su límite de tasa o está caído, una escalera de alternativas prueba el siguiente peldaño: el mismo modelo en otro sitio, otro proveedor, un modelo más pequeño y, por último, una respuesta sin nada de IA, como un traspaso a una persona. Da a cada peldaño su propio timeout y a toda la escalera un plazo total, para que nadie tenga que esperar varios fallos lentos. Y registra qué peldaño respondió.
Así es como encaja todo en el asistente de soporte de la plataforma de reparto de comida. Atiende unas cuarenta mil conversaciones al día. Unas dos terceras partes tratan de pedidos con retraso, artículos que faltan o reembolsos. Las primeras palabras en streaming deben llegar en menos de dos segundos, y la respuesta completa en menos de ocho, ambas en el percentil noventa y cinco. El chat debe estar disponible el noventa y nueve punto nueve por ciento del tiempo. Detrás de un gateway de IA hay dos proveedores alojados. Un modelo pequeño enruta cada turno y responde a las preguntas sencillas sobre el estado. Un modelo más grande se encarga de las quejas. Los reembolsos de más de quince libras necesitan a una persona, y el servicio de reembolsos aplica la política en código corriente, no en el modelo. La escalera va del modelo principal al segundo proveedor, luego a un modelo pequeño y, por último, a un mensaje predefinido con la opción de ponerse en cola para hablar con una persona. En un escalado, los agentes ven la transcripción, las fuentes usadas y la acción propuesta, para que el cliente no tenga que repetirse.
Humano en el bucle abarca varios diseños: aprobación antes de una acción, revisión después, escalado o retroalimentación. Di a cuál te refieres. La aprobación crea una cola que debe dimensionarse para el volumen máximo, como la cola de revisión de fraude de la sección doce punto uno. Las personas que aprueban cientos de sugerencias buenas empiezan a aprobar sin leer. Eso es el sesgo de automatización. Así que muestra la evidencia y la acción exacta, y registra con qué frecuencia los revisores cambian la propuesta. Y elige los modelos con tu propio conjunto de evaluación de ejemplos reales, no con clasificaciones públicas. Espera una combinación, no un único ganador.
La sección completa compara las opciones de alojamiento y enumera los criterios para elegir un modelo. A continuación, en la sección doce punto tres, veremos la generación aumentada por recuperación. Nos vemos allí.
Lo que necesitas saber
- Un modelo es una dependencia dentro de un sistema más grande; las decisiones arquitectónicas duraderas son dónde se ejecuta, cómo se llama, qué tiene delante y qué ocurre cuando falla.
- Las API alojadas ofrecen la mejor capacidad sin infraestructura, pero con costo por token, límites de tasa y datos que salen de tu perímetro; los modelos de pesos abiertos autoalojados dan control a costa de operar aceleradores; los modelos en el dispositivo ofrecen privacidad y uso sin conexión con una capacidad limitada.
- La inferencia online atiende a usuarios que están esperando y necesita objetivos de latencia y streaming; la inferencia por lotes y la asíncrona sacan el trabajo de la ruta de la solicitud y son más baratas y más robustas.
- Un gateway de IA centraliza las claves de los proveedores, el enrutamiento, las alternativas (fallbacks), las cuotas, el logging y los guardrails, a costa de una nueva dependencia crítica y de un almacén concentrado de prompts.
- El enrutamiento envía cada solicitud a un modelo adecuado desde el principio; una cascada escala desde un modelo barato solo cuando falla una comprobación fiable; una escalera de alternativas prueba otras regiones, proveedores, modelos y, por último, una respuesta sin IA, dentro de un plazo total.
- Los diseños con humanos en el bucle (aprobación, revisión, escalado, retroalimentación) necesitan planificación de capacidad e interfaces que resistan el sesgo de automatización.
- Elige los modelos con tu propio conjunto de evaluación según unos criterios acordados: capacidad, costo, latencia, longitud del contexto, residencia de los datos, licencia, funcionalidades y condiciones operativas.
El modelo es una dependencia, no la arquitectura
La Sección 12.1 describió un modelo como una función probabilística a la que se accede mediante una API. En una arquitectura es un contenedor entre muchos y, normalmente, una pequeña parte del código. Un asistente de atención al cliente tiene un frontend de chat, un almacén de conversaciones, integraciones con los servicios de pedidos y de reembolsos, un índice de búsqueda, identidad, logging, un traspaso a agentes humanos y un pipeline de despliegue; la llamada al modelo es una línea en medio. Por tanto, las preguntas arquitectónicas son las de siempre, aplicadas a un nuevo tipo de dependencia: dónde se ejecuta, cómo se llama, qué hay entre ella y quienes la llaman, qué ocurre cuando es lenta, se equivoca o no está disponible, y quién responde de su salida.
Acertar con estas preguntas importa más que elegir el mejor modelo del mes. Los modelos se sustituyen cada pocos meses; el gateway, el diseño de las alternativas, el conjunto de evaluación y el proceso de revisión humana duran años. Las decisiones de esta sección son de las significativas y difíciles de revertir, en el sentido del Capítulo 1, así que merecen registros de decisiones; la elección de una versión concreta del modelo debe ser fácil de cambiar.
Tres lugares donde puede ejecutarse un modelo
API de modelos alojadas. El proveedor ejecuta el modelo y tú pagas por token. Esto abarca las API propias de los proveedores de vanguardia (OpenAI, Anthropic y Google, entre otros) y las plataformas en la nube que revenden los modelos de varios proveedores dentro de tu cuenta de nube existente. Es la forma más rápida de empezar y da acceso a los modelos más capaces, sin aceleradores que comprar ni operar. Los costos son un precio por token que crece con el uso, unos límites de tasa que fija otro, una dependencia de la disponibilidad del proveedor, modelos que quedan obsoletos según el calendario del proveedor y datos que salen de tu perímetro. Los contratos, las condiciones de tratamiento de datos, las opciones de conservación nula o limitada y el procesamiento regional reducen esta última preocupación, pero no la eliminan.
Modelos de pesos abiertos autoalojados. Un modelo de pesos abiertos (open-weight) publica sus pesos entrenados, así que puedes ejecutarlo en tus propios aceleradores o en aceleradores alquilados con un servidor de inferencia como vLLM. Algunos ejemplos son los modelos de Meta (Llama), Mistral, Alibaba (Qwen), DeepSeek, Google (Gemma) y OpenAI (gpt-oss). Tú controlas la ruta de los datos, la versión exacta y el fine-tuning, y con un volumen alto y constante el costo por token puede quedar muy por debajo de los precios de las API. A cambio, asumes la planificación de capacidad de un hardware escaso y caro, la utilización (los aceleradores ociosos cuestan lo mismo que los ocupados), las actualizaciones, los parches de seguridad y las guardias. Las licencias importan: algunos modelos de pesos abiertos usan licencias permisivas como Apache 2.0, mientras que otros usan licencias propias con condiciones de uso o de escala, y la mayoría no publican sus datos de entrenamiento. La Open Source AI Definition de la Open Source Initiative (versión 1.0, octubre de 2024) pone el listón más alto que los simples pesos abiertos. Una vía intermedia, la que usa el propio chatbot de este curso, es llamar a modelos de pesos abiertos a través de un proveedor de inferencia externo: precio por token, sin hardware y con la libertad de llevar el mismo modelo a otro sitio.
Modelos en el dispositivo. Los modelos pequeños, a menudo de unos pocos miles de millones de parámetros o menos y cuantizados a una precisión menor, se ejecutan en teléfonos, computadoras portátiles o en el navegador. Ofrecen privacidad (los datos nunca salen del dispositivo), funcionamiento sin conexión, ningún costo por llamada y una latencia muy baja, a cambio de una capacidad mucho menor, una gran dispersión del rendimiento entre dispositivos, descargas de la app más grandes y la dificultad de actualizar modelos ya distribuidos a millones de dispositivos. Muchos productos los combinan: un modelo pequeño en el dispositivo se encarga de las tareas rápidas y privadas y deriva las más difíciles a la nube.
Comparación de las opciones
| Opción | Ventajas | Costos y riesgos | Encaje típico |
|---|---|---|---|
| API propietaria alojada | La mejor capacidad, sin infraestructura, arranque rápido, el proveedor se encarga del escalado | Costo por token a escala, límites de tasa, caídas y retiradas de modelos del proveedor, datos que salen de tu perímetro, dependencia del proveedor (lock-in) a través de funcionalidades específicas del proveedor | La mayoría de las funcionalidades nuevas; volumen bajo o con picos; tareas que necesitan capacidad de vanguardia |
| Modelo de pesos abiertos a través de un proveedor de inferencia | Precio por token sin hardware; los mismos pesos pueden trasladarse a otro proveedor o a la propia empresa | Sigue siendo una dependencia externa; capacidad por debajo de la vanguardia en algunas tareas; la calidad y los límites varían según el proveedor | Funcionalidades sensibles al costo; portabilidad; un paso hacia el autoalojamiento |
| Pesos abiertos autoalojados | Control total de los datos, la versión y el ajuste; bajo costo marginal con una carga alta y constante | Costo y escasez de aceleradores, capacidad ociosa, competencias de operación, actualizaciones, condiciones de licencia | Restricciones estrictas sobre los datos; volumen muy alto y constante; fine-tuning intensivo |
| En el dispositivo | Privacidad, uso sin conexión, sin costo por llamada, latencia mínima | Solo modelos pequeños; fragmentación de dispositivos; distribución de actualizaciones; batería y memoria | Tareas rápidas privadas, autocompletado, funciones sin conexión, primer paso de una cascada |
Inferencia online y puntuación por lotes
La segunda pregunta es si hay un usuario esperando. La inferencia online llama al modelo en la ruta de la solicitud, así que se aplican objetivos de latencia: los usuarios notan el tiempo hasta las primeras palabras visibles, que es por lo que las respuestas del chat se envían en streaming, y abandonan una solicitud que tarda muchos segundos. Las llamadas online necesitan timeouts, límites de concurrencia y capacidad para el pico de la noche, exactamente igual que cualquier dependencia síncrona del Capítulo 6.
La puntuación por lotes procesa muchos elementos sin que nadie espere: etiquetar por la noche dos millones de platos de la carta con sus alérgenos, resumir las conversaciones de soporte del día anterior, volver a generar los embeddings de una colección de documentos. El trabajo por lotes puede usar el modelo adecuado más barato, ejecutarse cuando hay capacidad libre y reintentar con calma. Varios proveedores ofrecen interfaces asíncronas por lotes que aceptan un archivo de solicitudes y devuelven los resultados en unas horas con un descuento considerable. Entre ambas está la inferencia asíncrona: una solicitud se pone en cola, se avisa al usuario de que el resultado llegará después (una decisión de reembolso por correo electrónico, el resumen de un documento en unos minutos) y unos workers vacían la cola a un ritmo controlado, usando las colas y el back pressure del Capítulo 9 para absorber los picos y los límites de tasa del proveedor. Sacar el trabajo de la ruta online es una de las decisiones de costo y fiabilidad más eficaces que existen.
Modelos clásicos en producción: características, registros y desviación
No todos los modelos son modelos de lenguaje grandes. La estimación del tiempo de entrega y la puntuación de fraude de la plataforma de reparto de comida son modelos supervisados clásicos (Sección 12.1), entrenados con sus propios datos, y traen sus propios problemas de operación. La descripción que hizo Uber en 2017 de su plataforma Michelangelo es una buena referencia, entre otras cosas porque sus modelos de tiempo de entrega de UberEATS combinan una característica por lotes (el tiempo medio de preparación de un restaurante durante siete días) con otra casi en tiempo real (la misma medida en la última hora).
El fallo clásico es el desfase entre entrenamiento y servicio (training-serving skew), que las Rules of Machine Learning de Google definen como una diferencia entre el rendimiento durante el entrenamiento y el rendimiento durante el servicio. Nombran tres causas: tratar los datos de forma diferente en los dos pipelines, que los datos cambien entre el entrenamiento y el servicio, y los bucles de retroalimentación entre el modelo y el sistema. Supón que el trabajo de entrenamiento calcula el tiempo de preparación de un restaurante en SQL, incluidos los pedidos cancelados, y que el servicio en vivo lo calcula en Java, excluyéndolos. Ambos pasan sus tests, y el modelo empeora en silencio. Los remedios de Google son reutilizar código entre los pipelines siempre que sea posible y registrar las características realmente usadas en el momento de servir, para luego entrenar con esos registros; informa de que la página de inicio de YouTube mejoró significativamente tras hacerlo.
Un almacén de características (feature store) aborda la primera causa poniendo una única definición de cada característica a disposición en dos lugares. En Feast, de código abierto, un almacén offline proporciona el historial para el entrenamiento y un almacén online proporciona valores con baja latencia para la predicción. También da corrección en el tiempo (point-in-time correctness): una fila de entrenamiento de un pedido hecho a las 19:00 debe ver cada característica tal como estaba a las 19:00, o se filtrará información del futuro al entrenamiento y los resultados offline parecerán mejores que los reales. Sin embargo, un almacén de características no es un pipeline ni una base de datos. La documentación de Feast dice que depende de herramientas previas y de datos guardados en otro lugar. Se justifica cuando varios modelos comparten características; un único modelo por lotes rara vez necesita uno. El almacén online también se suma a la ruta de cada predicción, así que necesita un timeout y un mecanismo alternativo, como una estimación predeterminada de 30 a 45 minutos.
Un registro de modelos hace para los modelos entrenados lo que un repositorio de artefactos hace para las compilaciones (Sección 10.5). El de MLflow, por ejemplo, numera cada versión, la vincula a la ejecución que la produjo y ofrece etiquetas y alias móviles como champion. Los servicios cargan el alias, de modo que la promoción y el rollback son un pequeño cambio, pero registra la versión exacta que hay detrás en cada predicción, o no podrás explicar más tarde una mala estimación. Cada versión debe anotar sus definiciones de características, la instantánea de los datos de entrenamiento y los resultados de evaluación.
Después, vigila la segunda causa, que ninguna herramienta elimina. Compara las distribuciones de las características en vivo con las vistas en el entrenamiento, compara las predicciones con los resultados reales a medida que llegan, y reentrena a través del pipeline con los controles de evaluación de la Sección 12.5.
Un gateway de IA entre las aplicaciones y los modelos
En cuanto más de un equipo o una funcionalidad llaman a modelos, un gateway de IA (AI gateway) dedicado se amortiza. Desempeña el papel que un API gateway desempeña para los microservicios, especializado en el tráfico de modelos. Las aplicaciones llaman a un único endpoint interno con un único formato de solicitud y su propia identidad; el gateway guarda las claves de los proveedores, traduce a la API de cada proveedor, aplica el enrutamiento y las alternativas, hace cumplir las cuotas y los presupuestos de gasto por equipo, aplica límites de tasa, registra cada llamada (modelo, versión, número de tokens, latencia, costo, resultado) para el trazado y la asignación de costos, puede guardar respuestas en caché y ofrece un lugar donde conectar de forma centralizada los guardrails de entrada y de salida.
Las ventajas son arquitectónicas: la elección del proveedor pasa a ser una decisión de configuración en lugar de un cambio de código en cada servicio, las claves dejan de estar dispersas por las aplicaciones, el gasto es visible por funcionalidad y una caída de un proveedor se gestiona una sola vez. Los costos son los de cualquier intermediario compartido. Es una nueva dependencia crítica que debe tener alta disponibilidad, añade una pequeña latencia y sus logs se convierten en un almacén concentrado de prompts que pueden contener datos personales, por lo que se le aplican reglas de enmascarado y de conservación (consulta privacidad desde el diseño). Existen productos de gateway de código abierto y gestionados, y las plataformas en la nube incluyen funciones de gateway; construir uno ligero es razonable para un sistema pequeño, pero las cuotas, el streaming, los reintentos y la contabilidad dan más trabajo de lo que parece.
Un gateway de IA
Enrutamiento y cascadas
No todas las solicitudes necesitan el modelo más capaz. El enrutamiento decide de antemano qué modelo debe atender una solicitud, mediante reglas (la funcionalidad, el nivel del cliente, el idioma) o un clasificador pequeño y rápido. En el asistente de soporte, ¿dónde está mi pedido?
puede ir a un modelo pequeño y barato que llama a una herramienta, mientras que una queja sobre tres problemas distintos va a un modelo más grande. Una cascada de modelos, en cambio, prueba primero un modelo más barato y escala solo cuando una comprobación indica que su respuesta no es lo bastante buena. FrugalGPT (2023), de Chen, Zaharia y Zou, mostró que unas cascadas bien ajustadas pueden acercarse a la calidad del modelo más potente con una fracción del costo.
Una cascada solo es tan buena como su comprobación de escalado. Las comprobaciones fiables son deterministas: la salida no supera la validación del esquema, una fuente citada no existe, falta un campo obligatorio, una regla de negocio rechaza la propuesta. Un modelo verificador que puntúa la respuesta es más débil, pero a menudo útil. La declaración de confianza del propio modelo es la señal menos fiable y no debe usarse sola. Las cascadas también tienen costos: las solicitudes escaladas pagan dos llamadas y esperan a ambas, ahora hay dos modelos que evaluar y mantener sincronizados, y el techo de calidad lo fija la comprobación, no el modelo potente. Mide la tasa de escalado; si la mayoría de las solicitudes escalan, usa enrutamiento en su lugar.
Escaleras de alternativas entre modelos y proveedores
Las API de modelos fallan de todas las formas en que fallan las dependencias remotas, y de algunas propias: respuestas de límite de tasa (HTTP 429) cuando se agota una cuota, errores de sobrecarga en los momentos de más actividad, respuestas lentas que superan un timeout, caídas regionales y modelos retirados en una fecha de obsolescencia. Los patrones del Capítulo 9 se aplican directamente, organizados como una escalera de alternativas (fallback ladder): una lista ordenada de peldaños, cada uno de los cuales se prueba cuando falla el de arriba. Una escalera típica es el modelo principal; el mismo modelo en otra región o en otro proveedor de alojamiento; un modelo distinto de capacidad similar de un segundo proveedor; un modelo más pequeño y rápido; y, por último, una respuesta sin IA, como un mensaje predefinido útil, los resultados de búsqueda del centro de ayuda o un traspaso a una persona.
Reglas de diseño para una escalera: da a cada peldaño su propio timeout y a toda la escalera un plazo total, para que el usuario nunca espere cuatro fallos lentos seguidos; respeta Retry-After y pon un modelo con límite de tasa en un periodo de enfriamiento (un circuit breaker sencillo) en lugar de bombardearlo; no reintentes los errores que volverán a fallar, como una solicitud demasiado grande o rechazada por un filtro de contenido; valida la salida en cada peldaño, porque un peldaño inferior puede producir respuestas con una forma ligeramente distinta; evalúa cada peldaño con el mismo conjunto de evaluación, ya que los prompts suelen necesitar ajustes por modelo; y registra qué peldaño respondió, para que los paneles de calidad puedan distinguir una respuesta degradada de una normal.
Las propias funcionalidades de IA de este curso son un ejemplo pequeño y real. Las respuestas de ArchitectBot y la corrección de las respuestas escritas de las pruebas se generan a través de una escalera de varios modelos de pesos abiertos servidos por un único proveedor de inferencia, que se prueban en un orden de preferencia fijo. A un modelo que devuelve una respuesta de límite de tasa se le aplica un periodo de enfriamiento durante el tiempo que pide el proveedor (dentro de unos límites fijados); una solicitud que falla, agota su timeout o devuelve una respuesta inutilizable pasa al siguiente peldaño; esos peldaños comparten un presupuesto de tiempo global, y un segundo proveedor sirve como último peldaño. El diseño cambia algo de calidad de las respuestas en los peldaños inferiores por disponibilidad: es preferible una respuesta algo más débil a ninguna.
Humanos en el bucle
El concepto de humano en el bucle (human in the loop) describe varios diseños distintos, y conviene nombrar a cuál se refiere uno. Aprobación antes del efecto: el modelo redacta y una persona aprueba (un reembolso por encima de un límite, una respuesta a un regulador, un cambio en producción). Revisión después del efecto: las salidas surten efecto de inmediato y las personas revisan una muestra o los casos marcados. Escalado: el modelo gestiona lo que puede y pasa el resto a una persona, con la conversación y la evidencia. Retroalimentación: las personas etiquetan o corrigen las salidas para crear conjuntos de evaluación y mejorar los prompts.
Cada diseño tiene consecuencias arquitectónicas. La aprobación crea una cola que debe dimensionarse para el volumen máximo, como la cola de revisión de fraude de la sección 12.1, y añade una latencia que se mide en minutos u horas. Las personas que aprueban cientos de sugerencias buenas empiezan a aprobar sin leer (sesgo de automatización), así que la interfaz debe mostrar la evidencia y la acción exacta, resaltar lo inusual y registrar con qué frecuencia los revisores cambian la propuesta; una tasa de modificación cercana a cero es una señal de alarma, no un éxito. Los traspasos necesitan todo el contexto para que el cliente no tenga que repetirse. La supervisión humana que exige la normativa para algunos usos es aún más exigente: la persona debe entender los límites del sistema y poder anularlo.
La cadena de suministro de modelos: pesos, pickles y AI-BOM
Un modelo que descargas es una dependencia, así que todo lo de la Sección 8.6 se aplica, con una dificultad añadida. El código fuente se puede revisar; miles de millones de pesos, no. La lista de riesgos de LLM de OWASP dice que los modelos son cajas negras binarias y advierte de que los modelos preentrenados pueden ocultar sesgos, puertas traseras o funciones maliciosas que las evaluaciones de seguridad no detectan. Hay, por tanto, dos riesgos separados: que cargar el archivo ataque tu máquina, y que el propio modelo se comporte mal.
El primero proviene de los formatos de archivo. El formato pickle de Python, durante mucho tiempo el predeterminado para los checkpoints de PyTorch, puede ejecutar código mientras se carga, y la propia guía de Hugging Face es no deserializar con pickle datos de fuentes no fiables. Su Hub analiza lo que se sube y enumera las importaciones sospechosas, pero dice claramente que esto no es infalible. Desde la versión 2.6, torch.load de PyTorch usa por defecto un modo restringido weights_only, pero su documentación sigue diciendo que nunca se carguen datos de una fuente no fiable. Safetensors es la mejor respuesta: un formato diseñado para almacenar tensores de forma segura, a diferencia de pickle. Un repositorio también puede llevar código. Los modelos personalizados en la biblioteca Transformers necesitan trust_remote_code=True, lo que debe tratarse como la decisión de ejecutar el programa de otra persona.
Si la plataforma de reparto de comida aloja por su cuenta un modelo de pesos abiertos, de esto se deriva una política razonable. Prefiere safetensors y rechaza los archivos pickle externos. Replica los modelos aprobados en un almacén interno, para que producción nunca los descargue directamente de un hub público, y fija cada uno por revisión exacta y hash del archivo. Carga los modelos nuevos en un sandbox sin credenciales y sin acceso saliente a la red (Sección 10.1). Prueba cada modelo con tus propios casos y somételo a red teaming antes de usarlo, ya que ni un análisis ni un buen benchmark muestran cómo se comporta en tus tareas. Aplica las mismas reglas a complementos como los adaptadores LoRA, que OWASP enumera como un riesgo por sí mismo.
La firma ayuda con el origen. El proyecto model-signing de OpenSSF, lanzado como versión 1.0 en 2025, usa Sigstore para firmar modelos, de modo que la manipulación sea detectable y un modelo pueda vincularse a la identidad que lo produjo. Una firma válida dice quién publicó el archivo y que no ha cambiado. No dice que el modelo sea seguro.
Mantén también un inventario. Un AI-BOM extiende la lista de materiales de software a los modelos, los conjuntos de datos y el resto de un sistema de IA. Dos estándares cubren esto. CycloneDX admite un ML-BOM desde la versión 1.5, que registra modelos, conjuntos de datos, licencias, el linaje desde los modelos base y los detalles de la model card. SPDX 3.0 añadió un perfil de IA que cubre el tipo de modelo, la información de entrenamiento, la evaluación de riesgos de seguridad y el uso de energía. Para la plataforma, la entrada de un modelo de soporte con fine-tuning registraría el modelo base y su licencia, el adaptador, los datos de entrenamiento y el servidor de inferencia. Si se descubre que un modelo base está comprometido o cambia su licencia, podrás encontrar cada uso en minutos. Con una API alojada ves mucho menos, así que anota la versión fechada del modelo y lo que te haya dicho el proveedor. Ambos estándares están evolucionando, así que comprueba la versión vigente.
Construir o comprar, y cómo elegir un modelo
La pregunta de construir o comprar tiene más de dos respuestas. Puedes comprar una funcionalidad de IA completa dentro de un producto que ya usas (el asistente de un proveedor de software de helpdesk); construir sobre API alojadas; hacer fine-tuning de un modelo para tu tarea; autoalojar pesos abiertos; o, rara vez, entrenar el tuyo propio. Usa la lente estratégica del diseño guiado por el dominio: compra para capacidades genéricas, como la transcripción de reuniones, y construye donde la IA toca tu dominio central y tus propios datos te dan una ventaja. Construyas lo que construyas, mantén el código específico de cada proveedor detrás de un puerto con un adaptador por proveedor, y evita depender de funcionalidades que solo ofrece un proveedor, salvo que su valor justifique la dependencia del proveedor (lock-in).
Elige los modelos con tu propio conjunto de evaluación, no con las clasificaciones públicas (leaderboards). Las clasificaciones miden tareas generales que pueden no parecerse a las tuyas, y hay modelos que se han ajustado para puntuar bien en algunas de ellas. Define los criterios y sus pesos antes de probar, como en cualquier decisión ponderada, y después preselecciona dos o tres candidatos y mídelos con unos cientos de ejemplos reales. Espera que la respuesta sea una combinación, como un modelo pequeño para el enrutamiento y uno más grande para los casos difíciles, más que un único ganador.
Criterios para elegir un modelo
| Criterio | Preguntas que hacer | Cómo comprobarlo |
|---|---|---|
| Capacidad | ¿Hace nuestra tarea lo bastante bien, en nuestros idiomas y formatos? | Puntúalo con tu propio conjunto de evaluación; compara los tipos de error, no solo las medias |
| Costo | ¿Cuánto cuestan los tokens de entrada, de salida y de razonamiento con nuestros volúmenes? | Multiplica los tokens medidos por solicitud por el tráfico esperado; incluye los reintentos y los escalados |
| Latencia | ¿Cuánto tarda el primer token y cuántos tokens por segundo genera, en el pico? | Mide p50 y p95 desde tu región, con carga y con tamaños de prompt realistas |
| Longitud del contexto | ¿Cabe nuestra entrada realista más larga dejando espacio para la respuesta? | Prueba la calidad con esa longitud; la calidad con contextos largos varía |
| Residencia y conservación de los datos | ¿Dónde se procesan y almacenan los datos, durante cuánto tiempo, y se usan para entrenar? | Lee las condiciones de tratamiento de datos; confirma por escrito los endpoints regionales y la configuración de conservación |
| Licencia y condiciones | ¿Podemos usarlo para este fin, a esta escala, y hacerle fine-tuning? | Lee la licencia o las condiciones del servicio, con asesoramiento jurídico cuando haga falta |
| Funcionalidades | ¿Admite llamada a herramientas, salidas estructuradas, streaming, imágenes o audio? | Haz un prototipo de las funcionalidades exactas de las que depende el diseño |
| Operaciones | ¿Cuáles son los límites de tasa, el historial de disponibilidad, la fijación de versiones y la política de obsolescencia? | Comprueba los límites publicados, el historial de estado y durante cuánto tiempo se mantienen las versiones fijadas |
Guía de decisión
Guía de decisión: ¿dónde debe ejecutarse este modelo?
Hazte las preguntas en orden para cada funcionalidad de IA; las distintas funcionalidades de un mismo producto suelen acabar en lugares distintos.
- ¿Debe la funcionalidad funcionar sin conexión, o los datos no deben salir nunca del dispositivo del usuario?SíUsa un modelo en el dispositivo, acepta los límites de un modelo más pequeño y planifica cómo llegan las actualizaciones del modelo a los dispositivos. Considera escalar los casos difíciles a la nube con el consentimiento del usuario.NoContinúa.
- ¿Puede un proveedor externo tratar estos datos en virtud de un contrato (finalidad, conservación, región)?SíContinúa.NoAutoaloja un modelo de pesos abiertos en tu propio entorno, o usa un despliegue de un proveedor dentro de tu propia cuenta (tenant) en la nube que cumpla las mismas restricciones.
- ¿Necesita la tarea una capacidad que los modelos de pesos abiertos que podrías ejecutar no alcanzan en tu conjunto de evaluación?SíUsa una API alojada de vanguardia detrás de un gateway de IA, con una alternativa en un segundo proveedor y un último peldaño sin IA.NoContinúa.
- ¿Es el volumen lo bastante alto y constante como para mantener ocupados unos aceleradores dedicados, y tienes personas para operarlos?SíAutoalojar pesos abiertos puede salir más barato. Demuéstralo con un modelo de costos que incluya el personal, la capacidad ociosa, la redundancia y las actualizaciones.NoUsa una API alojada, ya sea propietaria o un modelo de pesos abiertos a través de un proveedor de inferencia, y vuelve a evaluarlo cuando crezca el volumen.
Ejemplo práctico
Ejemplo práctico: un asistente de soporte para la plataforma de reparto de comida
La plataforma recibe unas 40 000 conversaciones de soporte al día, con un pico en la hora punta de la cena. Unas dos terceras partes tratan de pedidos con retraso, artículos que faltan o reembolsos. El objetivo es resolver automáticamente los casos rutinarios, pasar el resto a personas con su contexto y no pagar nunca un reembolso que la política no permita.
| Objetivos de calidad | Primeras palabras en streaming en menos de 2 segundos en el p95; respuesta completa en menos de 8 segundos en el p95; chat disponible el 99.9% del tiempo, con una alternativa humana o un mensaje predefinido cuando los modelos no estén disponibles. |
|---|---|
| Restricciones | Clientes en el Reino Unido y la UE, así que los datos personales se tratan conforme al RGPD (GDPR), con procesamiento regional y conservación limitada; los reembolsos de más de £15 necesitan a una persona; los servicios existentes de pedidos y de reembolsos deben seguir siendo los sistemas de registro. |
| Dónde se ejecutan los modelos | API alojadas de dos proveedores detrás de un gateway de IA. Un modelo pequeño enruta cada turno según la intención y responde a las preguntas sencillas sobre el estado; un modelo más grande se encarga de las quejas y de las conversaciones con varios problemas. Por la noche, un trabajo por lotes resume y etiqueta las conversaciones para la analítica a través de la interfaz por lotes de un proveedor. |
| Conocimiento | Las políticas y los artículos del centro de ayuda se recuperan en el momento de la consulta de un índice de búsqueda híbrida (sección 12.3); nunca se incorporan a un modelo mediante fine-tuning. |
| Acciones | El orquestador expone herramientas de solo lectura (estado del pedido, artículos del pedido) y una herramienta de escritura que propone un reembolso; el servicio de reembolsos aplica la política y los límites en código corriente (sección 12.4; protegido en la sección 12.6). |
| Personas | Escalado a la consola de agentes cuando el cliente lo pide, tras dos intentos fallidos, para reembolsos por encima del límite o cuando la conversación sugiere un cliente vulnerable; los agentes ven la transcripción, las fuentes recuperadas y la acción propuesta. |
| Comportamiento ante fallos | Escalera: modelo principal, segundo proveedor, modelo pequeño y, después, un mensaje predefinido con un enlace al centro de ayuda y la opción de ponerse en cola para hablar con una persona. |
| Observabilidad | Cada llamada al modelo se traza a través del gateway con la versión del modelo, los tokens, la latencia, el costo, las fuentes recuperadas y el resultado, lo que alimenta la evaluación (sección 12.5) y la monitorización de costos (sección 12.7). |
Las llamadas al modelo son una pequeña parte del diseño; la mayoría de los contenedores son servicios corrientes con responsabilidades corrientes.
Las decisiones que más merecen un ADR son el gateway, la escalera con dos proveedores, mantener la política en el servicio de reembolsos y las reglas de escalado, porque son caras de revertir; la elección de las versiones de los modelos es deliberadamente fácil de cambiar.
Diagrama de contenedores: asistente de soporte
Comprueba lo que has entendido
¿Por qué los logs de un gateway de IA pueden convertirse en un problema de privacidad?
Reúnen en un solo lugar los prompts y las respuestas de todas las funcionalidades, y los prompts suelen contener datos personales, así que se necesitan enmascarado, control de acceso y límites de conservación.
¿Cuándo es el enrutamiento mejor opción que una cascada?
Cuando el tipo de solicitud puede reconocerse de antemano, o cuando la mayoría de las solicitudes escalarían de todos modos, de forma que probar primero el modelo barato solo añade costo y latencia.
¿Por qué cada peldaño de una escalera de alternativas necesita su propio timeout y toda la escalera un plazo total?
Para que un usuario nunca tenga que esperar varios fallos lentos seguidos; la escalera debe dar alguna respuesta dentro del tiempo de respuesta que toleran los usuarios.
Da una ventaja y un costo de ejecutar un modelo en el dispositivo del usuario.
Ventaja: privacidad, uso sin conexión, ningún costo por llamada o una latencia muy baja. Costo: una capacidad mucho menor, un rendimiento variable según el dispositivo, descargas más grandes o actualizaciones del modelo difíciles.
Inténtalo: La plataforma quiere un chat de atención al cliente en vivo y resúmenes nocturnos de reseñas de restaurantes con un modelo de lenguaje. Para cada uno, elige inferencia online o por lotes, y di qué harías si el proveedor del modelo no está disponible.
El chat en vivo es inferencia en línea, ya que una persona está esperando: usa streaming, objetivos de latencia y un plazo total. Si el proveedor está caído, recurre a otra región u otro proveedor, y luego a una respuesta sin IA o a un agente humano, para que el cliente nunca se quede bloqueado. Los resúmenes de reseñas se adaptan al procesamiento por lotes: más baratos, fuera de la ruta de la solicitud y capaces de esperar. Si el proveedor está caído, conserva los resúmenes de ayer y reintenta más tarde.
Fuentes y lecturas recomendadas
- Chen, Zaharia and Zou: FrugalGPT: How to Use Large Language Models While Reducing Cost and Improving Performance (2023)
- Open Source Initiative: The Open Source AI Definition 1.0
- Bharani Subramaniam and Martin Fowler: Emerging Patterns in Building GenAI Products (2025)
- Simon Brown: The C4 model for visualising software architecture
- Rules of Machine Learning (Google)
- Meet Michelangelo: Uber's Machine Learning Platform (2017)
- Feast documentation
- Point-in-time joins (Feast)
- MLflow Model Registry
- LLM03:2025 Supply Chain (OWASP GenAI Security Project)
- Pickle Scanning (Hugging Face Hub documentation)
- BC-breaking change: torch.load flipped to weights_only=True (PyTorch dev discussion)
- torch/serialization.py (PyTorch source, torch.load docstring)
- Safetensors documentation (Hugging Face)
- Custom models (Hugging Face Transformers)
- Taming the Wild West of ML: Practical Model Signing with Sigstore
- OWASP CycloneDX Authoritative Guide to AI/ML-BOM
- Machine Learning Bill of Materials (CycloneDX)
- SPDX 3.0.1 AI profile
- AI System Bill of Materials (SPDX)
¿Tienes una pregunta sobre esta sección? ArchitectBot, el asistente de estudio con IA del curso, responde primero a partir del curso.
Pregunta: “¿Cuándo tiene sentido autoalojar un modelo de pesos abiertos en lugar de pagar por una API alojada?”