
Explicación de Laya: un modelo de decisión que responde sin escribir un solo token
- openaiNUEVOOpenAI: GPT-6 Luna2026-09-2237Inteligencia
- openaiNUEVOOpenAI: GPT-6 Sol2026-09-2248Inteligencia
- anthropicNUEVOAnthropic: Claude Opus 5.52026-09-2258Inteligencia
- grokNUEVOGrok 4.72026-09-2146Inteligencia
- OrcaNUEVOOrca: OrcaCyber Zero 1.02026-09-17$3.00 / $5.00 por 1M de tokens
- orcaNUEVOOrca: OrcaVerify Text 1.02026-09-16$2.00 / $0.00 por 1M de tokens
- deepseekNUEVODeepSeek: DeepSeek V4.1 Flash2026-09-1040Inteligencia
- openaiOpenAI: GPT-6 Astra2026-09-0453Inteligencia77Código
- googleGoogle: Gemini 3.8 Flash2026-09-0241Inteligencia76Código
- qwenQwen: Qwen3.8 Max (0902)2026-09-0245Inteligencia76Código
- anthropicAnthropic: Claude Fable 5.12026-09-0153Inteligencia82Código
- AlibabaQwen: Qwen3.8 Flash2026-08-26$0.15 / $0.47 por 1M de tokens
- z-aiZ.ai: GLM 5.3 Flash2026-08-2642Inteligencia72Código
- DeepSeekDeepSeek: DeepSeek V4 Flash Vision (Exp)2026-08-21$0.22 / $0.66 por 1M de tokens
- z-aiZ.ai: GLM 5.32026-08-1845Inteligencia75Código
- obsidianQwen3.8 27B2026-08-1534Inteligencia68Código
- deepseekDeepSeek: DeepSeek V4 Pro 08132026-08-1236Inteligencia69Código
- grokSpaceXAI: Grok 4.62026-08-1244Inteligencia77Código
- metaMeta: Muse Spark 1.22026-08-0540Inteligencia72Código
- qwenQwen: Qwen3.8 Max2026-08-0345Inteligencia76Código
Lo más interesante de Laya no es su velocidad. Es que cada opción que le ofreces se puntúa en su propio [MASK] token, y luego las probabilidades se pasan por softmax sobre las opciones de esa única pregunta. Convai Innovations publicó los pesos de Laya en Hugging Face el 18 de septiembre de 2026, bajo Apache 2.0 —tres checkpoints, un repositorio, 421 millones de parámetros para el modelo en inglés. No hay tokens de salida. No hay bucle de decodificación, no hay JSON que parsear, no hay llave que olvidar cerrar. Le entregas un estado y un conjunto de preguntas tipadas, y una pasada forward después obtienes una elección entre opciones con nombre, una puntuación ordinal con un nivel esperado, o una probabilidad de que una afirmación sea verdadera. Ese diseño tiene una consecuencia que la gente pasa por alto: como el espacio de respuestas se arma por solicitud en lugar de estar integrado en una cabeza de vocabulario, un esquema que inventes esta tarde no necesita reentrenamiento. También tiene un límite, y el proyecto lo declara claramente en su propia model card: los checkpoints base puntúan 0.362 en el benchmark de decisiones tipadas, frente a 0.318 para adivinar al azar y 0.461 para responder siempre la clase mayoritaria. La propia frase de Convai es la que hay que mantener en la cabeza —"Laya es una base rápida para especializar, no un motor de decisiones zero-shot". El punto obvio de comparación es Jev de TypeSafe AI, un modelo System One alojado sin pesos publicados, sin recuento de parámetros publicado y sin modelo base publicado. Laya es la respuesta de pesos abiertos a eso. Que esa respuesta te sea útil depende casi por completo de qué mitad del pipeline intentas reemplazar.
Qué es Laya realmente y qué no es
Empieza por lo negativo, porque ahí es donde más se equivocan la mayoría de los análisis. Laya no es un LLM. Es no autoregresivo: una sola pasada hacia delante produce la respuesta, y el modelo nunca emite texto. Comparar su latencia con los tokens por segundo de un modelo de chat es comparar dos operaciones diferentes: una clasifica, la otra genera. Si necesitas un párrafo, un resumen, un plan o una cadena de razonamiento, Laya no puede darte uno y no lo intenta.
Qué es: un codificador bidireccional con una cabeza de decisión acoplada encima. El checkpoint en inglés es ModernBERT-large —395M de parámetros, con ajuste fino completo— más una cabeza entrenada desde cero formada por dos capas transformer, un puntuador de marcadores de opción y una cabeza de actuación/escalado, para un total de 421M. El checkpoint multilingüe sustituye el backbone por mmBERT-base, 22 capas y un vocabulario de 256k, con un total de 322M. Se incluyen tres checkpoints en un único repositorio, y solo se descarga el que solicites:
• convaiinnovations/laya — ModernBERT-large, 421M parámetros, contexto de 512 tokens, inglés, aproximadamente 808 MB en disco.
• convaiinnovations/laya-multilingual — mmBERT-base, 322M de parámetros, contexto de 1.024 tokens (el codificador admite hasta 8.192 con RoPE), más de 100 idiomas, aproximadamente 2,2 veces más rápido, aproximadamente 647 MB.
• convaiinnovations/laya-typed-decisions — ModernBERT-large, 421 M de parámetros, contexto de 1.024 tokens y el único de los tres que incluye la cifra de 0,766 que verás citada por todas partes.
Un enrutador se sitúa delante y elige el punto de control por solicitud detectando el sistema de escritura y el idioma en menos de medio milisegundo, en Python puro, antes de que ocurra cualquier pasada hacia adelante. Eso no es una característica de conveniencia. Es una característica de corrección, y la propia evidencia del proyecto muestra por qué: el punto de control en inglés obtiene una precisión de 0.000 en jemer mientras reporta una confianza de 0.952. Un modelo que se mantiene confiado mientras está completamente equivocado es exactamente el caso en el que la compuerta de confianza no puede salvarte, así que la decisión de enrutamiento tiene que tomarse antes de que el modelo vea la entrada. A lo largo de un barrido de 51 idiomas, el enrutador hizo que 45 de 51 idiomas fueran utilizables —definido como superar tres veces el azar— frente a 23 de 51 solo con el punto de control en inglés.

El hecho de diseño que vale la pena entender: un token [MASK] por opción
Si te llevas una sola cosa de este artículo, que sea esta. En una cabeza de clasificación normal, el conjunto de etiquetas se fija en el momento del entrenamiento: la capa final tiene una salida por clase, y añadir una clase implica volver a entrenar. Laya no hace eso. Representa cada opción como texto con un marcador, y el puntuador de marcador de opción lee una puntuación de la propia posición [MASK] de esa opción. Luego aplica softmax sobre las opciones que pertenecen a esa pregunta.
El espacio de respuestas, por lo tanto, se define en el momento de la solicitud. Tú escribes las opciones, el modelo las puntúa. Un nuevo esquema no necesita reentrenamiento ni ajuste fino, porque no hay nada en los pesos que codifique "facturación" o "técnico" como una clase — solo el mecanismo para comparar una opción renderizada con otra en el contexto del estado.
Dos presupuestos determinan qué tan bien funciona eso, y son compartidos. Cada secuencia se divide en un presupuesto para el prompt de opciones (head_max_len, 192 tokens en el checkpoint en inglés y 256 en los otros dos) y un presupuesto para el documento (lo que quede de max_len). Cada pregunta de una llamada se responde en esa misma única pasada hacia adelante, así que una llamada con seis preguntas no son seis invocaciones del modelo. Pero las opciones comparten el presupuesto de opciones, y por eso una pregunta con 77 opciones como Banking77 asigna aproximadamente de tres a cuatro tokens por etiqueta y la precisión se desploma: 0,425 frente al 0,870 publicado por Jev. La solución está documentada en lugar de oculta: aumentar head_max_len y max_len, o dividir un conjunto grande de opciones en una elección de dos pasos de grueso a fino.
Las tres primitivas
Todo lo que hace Laya es uno de tres tipos de preguntas, y cada uno devuelve una forma diferente:
• elección — una probabilidad por opción con nombre, más la etiqueta superior y una confianza. Esta es la primitiva de enrutamiento y clasificación de intención.
• puntuación — una distribución sobre una rúbrica ordenada más un nivel esperado. Esta es la primitiva ordinal: urgencia, frustración, gravedad.
• noul — una probabilidad calibrada de que una afirmación sea verdadera, de 0.0 a 1.0. Phishing, riesgo de abandono, inyección de prompt.
Los tipos son estrictos de una manera que importa operativamente. Una pregunta de opción múltiple no puede devolver una opción que no hayas proporcionado, porque las únicas opciones que puede puntuar son las que renderizaste. Eso elimina toda una clase de fallo en producción — el valor de enumeración inventado, el JSON truncado, el bucle de reintento alrededor de un analizador. No elimina el error semántico. Un modelo que devuelve billing: 0.94 para un ticket que debería haber ido a soporte técnico está equivocado, y está equivocado con confianza. La salida tipada garantiza la forma de la respuesta, nunca su corrección.
RLCD, o por qué se supone que las probabilidades significan algo
La mayoría de los clasificadores se entrena para acertar. Laya se entrena para ser honesta sobre qué tan acertada es, y la receta de entrenamiento es de donde eso proviene.
El método se llama RLCD — Aprendizaje por refuerzo para decisiones calibradas. La política emite una distribución en lugar de un argmax; la exploración añade ruido gaussiano de media cero a los logits; y la recompensa es una regla de puntuación estrictamente propia — logarítmica más esférica, con una puntuación de probabilidad ordenada añadida para preguntas ordinales. Esa palabra «propia» es la que hace el trabajo. Una regla de puntuación estrictamente propia solo se maximiza en esperanza si se informan tus verdaderas creencias, por lo que cubrirse o exagerar pierde recompensa por construcción en lugar de por instrucción. Las actualizaciones son REINFORCE con una línea base de media grupal, al estilo GRPO, y las conversaciones multiturno usan TD(λ=1.0) sobre segmentos de prefijo.
La consecuencia práctica es que un umbral de confianza es algo significativo sobre lo que construir lógica de aplicación — una afirmación que no se puede hacer sobre un softmax de un clasificador entrenado con entropía cruzada. También es una afirmación con una advertencia que el proyecto reconoce abiertamente: los checkpoints distribuidos son demasiado confiados, y se espera que reajustes una temperatura con tus propios datos antes de confiar en las cifras. Reajustar una temperatura por tipo de pregunta y número de opciones movió el ECE medio de 0.466 a 0.081 en el checkpoint en inglés y de 0.314 a 0.106 en el multilingüe. El umbral inicial sugerido por el proyecto para decidir entre aprobación automática y revisión humana es de alrededor de 0.85.
Lo que cuesta funcionar
Las cifras de latencia son del propio proyecto, medidas en una Tesla T4, con cada checkpoint respondiendo preguntas idénticas byte a byte en la misma ejecución:
• Una pregunta — 39,5 ms en laya, 32,8 ms en laya-multilingual.
• Cinco preguntas — 84,5 ms y 40,1 ms.
• Diez preguntas en lote — 158,6 ms (15,9 ms por pregunta) y 72,3 ms (7,2 ms por pregunta).
• Cincuenta preguntas — 771 ms y 337 ms, o 6,8 ms por pregunta en el checkpoint multilingüe.
• Rendimiento por lotes en una sola T4 — de 103 a 332 preguntas por segundo.
Si ha visto circular una afirmación de "50x más rápido que Jev", no es la cifra del proyecto y el benchmark propio del proyecto no la respalda. La comparación publicada por Convai es de 7,8x en latencia p50 para una pregunta: 32,8 ms frente a 236–276 ms. Esa comparación también es la que hay que leer con atención, porque la ficha de Laya etiqueta el lado de Jev como cifras publicadas por terceros que Convai nunca midió —no tiene acceso a la API de TypeSafe— y porque contrapone una pasada forward en GPU local con una llamada a una API alojada que incluye ida y vuelta por red y encolamiento. La parte arquitectónica de esa diferencia es real. La parte de infraestructura no es una propiedad del modelo.
En cuanto a la memoria, la huella es de unos cientos de megabytes por checkpoint, y conviene conocer la tabla de despliegue antes de dimensionar un host. La configuración predeterminada diferida mantiene dos checkpoints residentes (inglés y multilingüe, los dos únicos entre los que el router elige automáticamente), así que, tras la primera carga de cada idioma, un cambio solo cuesta la detección. Router(max_loaded=1) en una máquina con memoria limitada vuelve a cargar en cada cambio de idioma, con una mediana medida de 7,4 segundos en CPU y 10,3 segundos en una T4. Router(preload=True) es la configuración de servidor: nada se recarga, y la latencia por solicitud es la cifra de 32,8 ms en GPU o de 193–464 ms en CPU.
La mitad honesta
Aquí es donde esta pieza justifica su valor, porque la superficie alrededor de Laya es ruidosa y las limitaciones son específicas.
En primer lugar, la cifra principal es una cifra con ajuste fino. La precisión de 0,766 corresponde a laya-typed-decisions, el checkpoint ajustado con el propio split de entrenamiento de ese benchmark. Los checkpoints base obtienen 0,362 y 0,342 en zero-shot frente a una línea base aleatoria de 0,318 y una línea base de clase mayoritaria de 0,461, es decir, por debajo de la línea base trivial. El proyecto lo admite en su propia lista de limitaciones en lugar de esconderlo, y el checkpoint ajustado supera el techo de 0,735 de autoacuerdo del teacher, lo que es un resultado genuinamente sólido para un encoder de 421M en cuatro flujos de trabajo concretos (procesamiento de facturas 0,804, incidentes de seguridad 0,766, atención al cliente 0,764, observabilidad de trazas de agentes 0,730). Pero es un resultado sobre la especialización, no sobre el modelo base, y cualquiera que cite 0,766 como una capacidad general está malinterpretando la ficha del modelo.
Segundo, las primitivas no son igual de buenas. Por precisión en el checkpoint ajustado: noul 0.857, choice 0.733, score 0.723. El proyecto llama a la primitiva ordinal score "la primitiva más débil" sin rodeos, con SST-5 en 0.372. Si tu superficie de decisión es una calificación de gravedad de 1 a 5, esa es la primitiva en la que menos razones tienes para confiar de entrada.
Tercero, dos comportamientos están documentados como errores en el propio gestor de incidencias del proyecto, y ambos te quemarán en producción si no los lees. action.act_probability aún no aporta ninguna señal utilizable —incidencia n.º 185— porque la salida de la cabeza de decisión no está normalizada, a aproximadamente 300 veces la escala del codificador, lo que satura la cabeza de acción, de modo que lee 1.0 para casi cualquier entrada. Sus logits brutos van en contra de la corrección, con un AUROC de 0.30 en 396 decisiones etiquetadas. Filtra por confidence en su lugar, que alcanza un AUROC de 0.77 en los mismos elementos. Por otra parte, noul puede seguir sus propias etiquetas de opción en lugar del estado —incidencia n.º 156— porque render_options fija de forma rígida las etiquetas de noul a false: / true:, y ese par de etiquetas puede dominar la respuesta, devolviendo un "no" con confianza para una entrada claramente positiva. El truco documentado es formular la misma pregunta como un choice con claves neutras y tu redacción de sí/no como las descripciones.
Cuarto, un detalle de calibración que es fácil pasar por alto y que vale la pena enunciar con precisión. El checkpoint incluye una temperatura ajustada de 0.1006 para el bucket choice:11+, y el cargador restringe toda temperatura a [0.5, 5.0]. Esa restricción te hace un favor. Una temperatura tan afilada podría tomar una distribución genuinamente dividida y reportarla como casi certeza; la restricción implica que el peor caso es una respuesta más suave de lo que pretendía el ajuste, y el cargador emite una advertencia que nombra el bucket afectado y te indica que trates esa confianza como no calibrada. Lee las advertencias al cargar en lugar de suprimirlas.
En quinto lugar, solo inglés en la raíz del repositorio, y el modo de fallo fuera del inglés no es nada elegante; de ahí el enrutador, y de ahí la recomendación de usar laya-multilingual para cualquier cosa que no sea prosa en inglés.
El panorama independiente, allí donde existe, es más limitado que el del proveedor y no lo contradice. Una comparación directa e independiente — sysone-bench, 751 estados en nueve suites, con fecha 2026-09-21, ejecutada con entradas idénticas byte a byte y hashes de preguntas verificados como idénticos antes de la comparación — sitúa a Jev por delante en triaje, barreras de seguridad, moderación, banking77 e intención multilingüe, y a Laya por delante en AG News (0,940 frente a 0,910) y MNLI (0,983 frente a 0,867). El resultado de gating por confianza es el que realmente usaría como base para planificar: el gating con una confianza de 0,85 conservó el 58 % del tráfico de Laya con una precisión de 0,878, frente al 78 % del de Jev con 0,917. Esa es la forma del compromiso: Laya automatiza menos tráfico con una precisión más baja en la porción que conserva, y su propia ejecución del router eleva la intención multilingüe de 0,360 a 0,840.
La superficie a su alrededor, que es inusualmente ancha.
Para un proyecto cuyos pesos tienen apenas unos días de antigüedad, la superficie de integración es la parte que sorprende. Todo esto está en el repositorio de origen en NandhaKishorM/laya, que tenía 19.871 estrellas en GitHub cuando se escribió esto, y es Apache 2.0 en su totalidad:
• laya-serve — un servidor HTTP que expone el Router con la misma forma de solicitud y respuesta de POST /v1/systemone que la API Jev alojada de TypeSafe, de modo que un cliente de TypeSafe existente se traslada cambiando su URL base. Nótese, con honestidad, el valor predeterminado de seguridad: se enlaza a 0.0.0.0 sin autenticación a menos que se establezca LAYA_API_KEY, en cuyo caso requiere un token de portador. Existe una variante de módulo NixOS reforzada que se ejecuta bajo una unidad systemd con DynamicUser y pasa el token mediante LoadCredential en lugar de colocarlo en el store.
• Un port completo a TypeScript en laya-ts/ para Node y el navegador, además de una ruta de agente ONNX (laya.onnx_agent.ONNXAgent) para ejecutar un modelo exportado en ONNX Runtime sin PyTorch en tiempo de ejecución.
• Un servidor MCP incluido en un extra opcional, que expone laya_predict, laya_route, laya_preset y laya_status como herramientas.
• Integraciones con LangChain y LangGraph — LayaRouter para el enrutamiento de aristas condicionales con un umbral de confianza y respaldo, y LayaGuardrail.
• Un flake de Nix con nix run .#laya-serve y un módulo services.laya-serve, cuatro archivos de compose, una ruta de imagen Docker con una guía de inicio rápido documentada, y un notebook de Kaggle que ejecuta el bucle completo de ajuste fino de RLCD en GPUs 2xT4 gratuitas en cuatro a cinco horas con aproximadamente 30 000 preguntas.

Apache 2.0 es el detalle de licencia que decide si puedes distribuir esto dentro de un producto: permite el uso comercial, la modificación y la redistribución, y no te exige publicar tus cambios ni tus pesos ajustados. La obligación es la habitual de atribución y preservación de avisos, además de la ausencia explícita de una concesión de patente o marca más allá de lo que establece la licencia. Para una capa de decisión que se sitúa delante del tráfico de clientes, esa es una propuesta materialmente diferente de un endpoint alojado de acceso anticipado cuyos pesos, arquitectura y receta de entrenamiento están todos sin revelar — que es lo que Jev es hoy, a $0.042 por millón de tokens de entrada con salida gratuita y una interfaz de entrada solo de texto.
Dónde encaja esto realmente: una cabeza de decisión delante y un LLM enrutado detrás
El patrón que vale la pena interiorizar no es «modelo de decisión en lugar de LLM». Es un pipeline de dos etapas, y ambas etapas existen porque la otra es mala en algo.
Pon a Laya al frente para los juicios de alto volumen, acotados y consumibles por máquina: enrutar el ticket, clasificar la intención, puntuar la urgencia, decidir si este documento es relevante para la consulta, comprobar si este borrador infringe alguna política. Esas llamadas tienen un conjunto fijo de respuestas, ocurren miles de veces por hora, y una pasada local hacia adelante de 33 milisegundos con cero tokens de salida les encaja mejor que una ida y vuelta generativa. Luego, pon un modelo generativo detrás para las llamadas que realmente necesitan prosa, síntesis o razonamiento sobre un contexto largo: la redacción, la explicación, el resumen de escalado.
Ahí es donde se sitúa OrcaRouter, y vale la pena ser precisos sobre el límite. No servimos Laya; es un codificador de 421M que ejecutas tú mismo, y el objetivo principal es que se ejecute donde ya están tus datos. Tampoco servimos Jev — es el endpoint de acceso anticipado de TypeSafe. Lo que cubrimos es la mitad generativa de ese mismo pipeline: más de 200 modelos detrás de una única clave compatible con OpenAI, a precio de lista del proveedor transferido con 0% de margen, con conmutación por error automática entre proveedores. La razón práctica por la que esto importa aquí es la unión entre las dos mitades. En el momento en que empiezas a enrutar decisiones a un modelo generativo para los casos que la cabeza de decisión rechazó, tienes una segunda integración, una segunda factura y un segundo modo de fallo. Una única clave para el lado de la generación, con conmutación por error si un proveedor se degrada, significa que la ruta de escalado de la capa de decisión es un cambio de configuración en lugar de una segunda relación con un proveedor. Esa es una afirmación modesta, y es la verdadera.
¿Quién debería adoptarlo y quién debería esperar?
Adopta Laya ahora si tienes datos etiquetados y un bucle de entrenamiento, y una superficie de decisión lo bastante estable como para que merezca la pena especializarla. El notebook de Kaggle existe precisamente para que el paso de ajuste fino no sea un proyecto de investigación, los checkpoints base se cargan en unos dos segundos en CPU, y la licencia te permite distribuir el resultado comercialmente sin publicar tus pesos. Las cargas de trabajo que mejor encajan son las que el proyecto ya evaluó: triaje de tickets, procesamiento de facturas, clasificación de incidentes de seguridad, guardrails y moderación, y observabilidad de trazas de agentes. Mantén las preguntas de opción múltiple por debajo de unas 20 opciones, calibra una temperatura con tus propios datos reservados antes de poner un umbral en producción, y basa la decisión en la confianza, nunca en act_probability.
Espera si tu decisión necesita ser correcta desde el primer momento sin datos etiquetados. Un checkpoint base que se sitúa por debajo de la línea base de la clase mayoritaria en el benchmark contra el que fue publicado no es un motor de zero-shot, y la lectura honesta de las cifras del proveedor frente a las independientes es que una API de decisión alojada y bien gestionada es actualmente la opción zero-shot más sólida. Espera también si tus conjuntos de opciones son grandes y no estás dispuesto a ajustar el presupuesto del head, si tu puntuación ordinal necesita ser fiable de inmediato, o si necesitas entrada de imagen, audio o documentos largos — Laya es solo texto y su presupuesto de contexto es de 512 a 1024 tokens por defecto, lo cual es una selección de evidencia en lugar de un documento completo.
Lo que decidirá esta categoría no son las cifras de latencia, que ya son lo bastante buenas como para dejar de ser el argumento. Se trata de si un modelo pequeño que reporta probabilidades honestas sobre una superficie de decisión que tú definiste, y que puedes reentrenar con tus propias etiquetas, supera a llamar a un modelo generativo grande y analizar su salida. Laya es un primer intento serio y creíble de la versión de pesos abiertos de esa pregunta, y tiene como máximo unos días de vida, que es la forma correcta de leer todo lo anterior. La base es el punto de partida, no el producto.

