
Laya Explicada: Um Modelo de Decisão Que Responde Sem Escrever um Único Token
- openaiNOVOOpenAI: GPT-6 Luna2026-09-2237Inteligência
- openaiNOVOOpenAI: GPT-6 Sol2026-09-2248Inteligência
- anthropicNOVOAnthropic: Claude Opus 5.52026-09-2258Inteligência
- grokNOVOGrok 4.72026-09-2146Inteligência
- OrcaNOVOOrca: OrcaCyber Zero 1.02026-09-17$3.00 / $5.00 por 1M de tokens
- orcaNOVOOrca: OrcaVerify Text 1.02026-09-16$2.00 / $0.00 por 1M de tokens
- deepseekNOVODeepSeek: DeepSeek V4.1 Flash2026-09-1040Inteligência
- openaiOpenAI: GPT-6 Astra2026-09-0453Inteligência77Código
- googleGoogle: Gemini 3.8 Flash2026-09-0241Inteligência76Código
- qwenQwen: Qwen3.8 Max (0902)2026-09-0245Inteligência76Código
- anthropicAnthropic: Claude Fable 5.12026-09-0153Inteligência82Código
- AlibabaQwen: Qwen3.8 Flash2026-08-26$0.15 / $0.47 por 1M de tokens
- z-aiZ.ai: GLM 5.3 Flash2026-08-2642Inteligência72Có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-1845Inteligência75Código
- obsidianQwen3.8 27B2026-08-1534Inteligência68Código
- deepseekDeepSeek: DeepSeek V4 Pro 08132026-08-1236Inteligência69Código
- grokSpaceXAI: Grok 4.62026-08-1244Inteligência77Código
- metaMeta: Muse Spark 1.22026-08-0540Inteligência72Código
- qwenQwen: Qwen3.8 Max2026-08-0345Inteligência76Código
A coisa mais interessante sobre o Laya não é sua velocidade. É que cada opção que você oferece a ele é pontuada em seu próprio token [MASK], e as probabilidades são então passadas por softmax sobre as opções dessa única pergunta. A Convai Innovations publicou os pesos do Laya no Hugging Face em 18 de setembro de 2026, sob Apache 2.0 — três checkpoints, um repositório, 421M parâmetros para o modelo em inglês. Não há tokens de saída. Não há loop de decodificação, nenhum JSON para analisar, nenhuma chave para esquecer de fechar. Você entrega a ele um estado e um conjunto de perguntas tipadas e, após um único forward pass, recebe uma escolha entre opções nomeadas, uma pontuação ordinal com um nível esperado ou uma probabilidade de que uma afirmação seja verdadeira. Esse design tem uma consequência que as pessoas deixam passar: como o espaço de respostas é montado por requisição, em vez de embutido em uma cabeça de vocabulário, um esquema que você inventa nesta tarde não precisa de retreinamento. Ele também tem um limite, e o projeto o declara claramente em seu próprio model card: os checkpoints base pontuam 0.362 no benchmark de decisões tipadas, contra 0.318 para adivinhação aleatória e 0.461 para sempre responder à classe majoritária. A própria frase da Convai é a que você deve manter na cabeça — "Laya é uma base rápida para especializar, não um motor de decisão zero-shot." O ponto óbvio de comparação é o Jev, da TypeSafe AI, um modelo System One hospedado, sem pesos publicados, sem contagem de parâmetros publicada e sem modelo base publicado. O Laya é a resposta de pesos abertos a ele. Se essa resposta é útil para você depende quase inteiramente de qual metade do pipeline você está tentando substituir.
O que Laya realmente é, e o que não é
Comece pelo negativo, porque é aí que a maioria das análises erra. Laya não é um LLM. Ela é não autorregressiva: uma única passagem direta produz a resposta, e o modelo nunca emite texto. Comparar sua latência com os tokens por segundo de um modelo de chat é comparar duas operações diferentes — uma classifica, a outra gera. Se você precisa de um parágrafo, um resumo, um plano ou uma cadeia de raciocínio, Laya não pode lhe dar isso e não está tentando.
O que é: um codificador bidirecional com uma cabeça de decisão acoplada no topo. O checkpoint em inglês é o ModernBERT-large — 395M de parâmetros, totalmente fine-tuned — mais uma cabeça treinada do zero composta por duas camadas transformer, um pontuador de marcador de opção e uma cabeça de ação/escalonamento, totalizando 421M. O checkpoint multilíngue substitui o backbone pelo mmBERT-base, 22 camadas e um vocabulário de 256k, totalizando 322M. Três checkpoints vêm em um único repositório, e apenas aquele que você solicitar é baixado:
• convaiinnovations/laya — ModernBERT-large, 421M de parâmetros, contexto de 512 tokens, inglês, aproximadamente 808 MB em disco.
• convaiinnovations/laya-multilingual — mmBERT-base, 322M parâmetros, contexto de 1.024 tokens (o codificador suporta até 8.192 com RoPE), mais de 100 idiomas, aproximadamente 2,2x mais rápido, aproximadamente 647 MB.
• convaiinnovations/laya-typed-decisions — ModernBERT-large, 421M parâmetros, contexto de 1.024 tokens, e o único dos três que traz o valor 0,766 que você verá citado em toda parte.
Um Router fica na frente e escolhe o checkpoint por requisição identificando o sistema de escrita e o idioma em menos de meio milissegundo, em Python puro, antes que qualquer forward pass aconteça. Isso não é um recurso de conveniência. É um recurso de correção, e as evidências do próprio projeto mostram por quê: o checkpoint em inglês obtém 0,000 de precisão em khmer enquanto reporta 0,952 de confiança. Um modelo que permanece confiante mesmo estando completamente errado é exatamente o caso em que o controle por confiança não consegue salvá-lo, de modo que a decisão de roteamento precisa ser tomada antes que o modelo veja a entrada. Em uma varredura de 51 idiomas, o roteador tornou 45 dos 51 idiomas utilizáveis — definido como superar o acaso em três vezes — contra 23 de 51 apenas do checkpoint em inglês.

O fato de design que vale a pena entender: um token [MASK] por opção
Se você levar uma coisa deste artigo, leve isto. Em uma cabeça de classificação normal, o conjunto de rótulos é fixo no momento do treinamento: a camada final tem uma saída por classe, e adicionar uma classe significa retreinar. A Laya não faz isso. Ela renderiza cada opção como texto com um marcador, e o pontuador de marcador de opção lê uma pontuação da própria opção na posição [MASK]. Em seguida, aplica softmax entre as opções pertencentes àquela pergunta.
O espaço de respostas é, portanto, definido no momento da requisição. Você escreve as opções, o modelo as pontua. Um novo esquema não precisa de retreinamento nem de ajuste fino, porque não há nada nos pesos que codifique "faturamento" ou "técnico" como uma classe — apenas o mecanismo para comparar uma opção renderizada com outra no contexto do estado.
Dois orçamentos determinam quão bem isso funciona, e eles são compartilhados. Cada sequência se divide em um orçamento de prompt de opções (head_max_len, 192 tokens no checkpoint em inglês e 256 nos outros dois) e um orçamento de documento (o que restar de max_len). Cada pergunta em uma chamada é respondida nessa mesma única passagem direta, então uma chamada com seis perguntas não são seis invocações do modelo. Mas as opções compartilham o orçamento de opções, e é por isso que uma pergunta com 77 opções como Banking77 aloca cerca de três a quatro tokens por rótulo e a acurácia despenca — 0,425 contra os 0,870 publicados por Jev. A correção é documentada em vez de escondida: aumente head_max_len e max_len, ou divida um conjunto grande de opções em uma escolha em duas etapas do tipo grosso para fino.
As três primitivas
Tudo o que a Laya faz é um de três tipos de pergunta, e cada um retorna um formato diferente:
• escolha — uma probabilidade por opção nomeada, além do rótulo principal e de um nível de confiança. Esta é a primitiva de roteamento e classificação de intenção.
• pontuação — uma distribuição sobre uma rubrica ordenada mais um nível esperado. Este é o primitivo ordinal: urgência, frustração, severidade.
• noul — uma probabilidade calibrada de que uma afirmação seja verdadeira, de 0,0 a 1,0. Phishing, risco de churn, injeção de prompt.
Os tipos são estritos de uma forma que importa operacionalmente. Uma pergunta de escolha não pode retornar uma opção que você não forneceu, porque as únicas opções que ela pode pontuar são as que você renderizou. Isso elimina toda uma classe de falhas de produção — o valor de enum inventado, o JSON truncado, o loop de retentativa em torno de um parser. Não elimina o erro semântico. Um modelo que retorna cobrança: 0,94 para um ticket que deveria ter ido para o suporte técnico está errado, e está errado com confiança. A saída tipada garante a forma da resposta, nunca sua correção.
RLCD, ou por que as probabilidades deveriam significar algo
A maioria dos classificadores é treinada para estar certa. A Laya é treinada para ser honesta sobre o quanto ela está certa, e é da receita de treinamento que isso vem.
O método chama-se RLCD — Aprendizado por Reforço para Decisões Calibradas. A política emite uma distribuição em vez de um argmax; a exploração adiciona ruído gaussiano de média zero aos logits; e a recompensa é uma regra de pontuação estritamente própria — logarítmica mais esférica, com uma pontuação de probabilidade ordenada adicionada para perguntas ordinais. Essa palavra "própria" está fazendo o trabalho. Uma regra de pontuação estritamente própria é maximizada em expectativa apenas ao relatar suas crenças verdadeiras, então respostas evasivas ou afirmações exageradas perdem recompensa por construção, e não por instrução. As atualizações são REINFORCE com linha de base de média de grupo, no estilo GRPO, e conversas multiturno usam TD(λ=1.0) sobre fatias de prefixo.
A consequência prática é que um limiar de confiança é algo significativo sobre o que construir lógica de aplicação — uma afirmação que você não pode fazer a respeito de um softmax saído de um classificador treinado com entropia cruzada. É também uma afirmação com uma ressalva que o projeto deixa clara desde o início: os checkpoints fornecidos são superconfiantes, e espera-se que você reajuste uma temperatura nos seus próprios dados antes de confiar nos números. Reajustar uma temperatura por tipo de pergunta e quantidade de opções levou o ECE médio de 0,466 para 0,081 no checkpoint em inglês e de 0,314 para 0,106 no multilíngue. O limiar inicial sugerido pelo projeto para aprovação automática versus revisão humana é em torno de 0,85.
Quanto custa executar
Os valores de latência são do próprio projeto, medidos em uma Tesla T4, com cada checkpoint respondendo a perguntas idênticas byte a byte na mesma execução:
• Uma pergunta — 39,5 ms em laya, 32,8 ms em laya-multilingual.
• Cinco perguntas — 84,5 ms e 40,1 ms.
• Dez perguntas em lote — 158,6 ms (15,9 ms por pergunta) e 72,3 ms (7,2 ms por pergunta).
• Cinquenta perguntas — 771 ms e 337 ms, ou 6,8 ms por pergunta no checkpoint multilíngue.
• Throughput em lote em uma única T4 — 103 a 332 perguntas por segundo.
Se você viu uma alegação de "50x mais rápido que o Jev" circulando, ela não é o número do projeto, e o próprio benchmark do projeto não a respalda. A comparação publicada da Convai é de 7,8x na latência p50 para uma pergunta: 32,8 ms contra 236–276 ms. Essa comparação também é a que deve ser lida com atenção, porque o card da Laya rotula o lado do Jev como números publicados por terceiros que a Convai nunca mediu — ela não tem acesso à API TypeSafe — e porque coloca uma passagem direta de GPU local contra uma chamada de API hospedada que inclui ida e volta de rede e enfileiramento. A parte arquitetural dessa diferença é real. A parte de infraestrutura dela não é uma propriedade do modelo.
Em termos de memória, o consumo é de algumas centenas de megabytes por checkpoint, e vale a pena conhecer a tabela de implantação antes de dimensionar um host. O padrão lazy mantém dois checkpoints residentes (inglês e multilíngue, os únicos dois entre os quais o roteador escolhe automaticamente), portanto, após o primeiro carregamento de cada idioma, uma troca custa apenas a detecção. Router(max_loaded=1) numa máquina com restrições de memória recarrega a cada troca de idioma, com uma mediana de 7,4 segundos na CPU e 10,3 segundos numa T4. Router(preload=True) é a configuração de servidor: nada é recarregado, e a latência por pedido é o valor de 32,8 ms na GPU ou 193–464 ms na CPU.
A metade honesta
É aqui que a peça justifica o seu valor, porque a superfície ao redor do Laya é ruidosa e as limitações são específicas.
Primeiro, o número de destaque é um número de modelo com fine-tuning. A acurácia de 0,766 pertence a laya-typed-decisions, o checkpoint ajustado na própria divisão de treinamento desse benchmark. Os checkpoints base obtêm 0,362 e 0,342 zero-shot contra uma linha de base aleatória de 0,318 e uma linha de base de classe majoritária de 0,461 — abaixo da linha de base trivial, em outras palavras. O projeto diz isso em sua própria lista de limitações, em vez de escondê-lo, e o checkpoint ajustado supera o teto de autoconcordância do professor de 0,735, o que é um resultado genuinamente forte para um codificador de 421M em quatro fluxos de trabalho estreitos (processamento de faturas 0,804, incidentes de segurança 0,766, atendimento ao cliente 0,764, observabilidade de rastreamento de agentes 0,730). Mas é um resultado sobre especialização, não sobre o modelo base, e quem cita 0,766 como uma capacidade geral está interpretando mal o card.
Segundo, as primitivas não são igualmente boas. Pela acurácia no checkpoint com ajuste fino: noul 0.857, choice 0.733, score 0.723. O projeto chama o score ordinal de "a primitiva mais fraca" sem rodeios, com SST-5 em 0.372. Se a sua superfície de decisão é uma classificação de gravidade de 1 a 5, essa é a primitiva em que você tem menos motivo para confiar de imediato.
Terceiro, dois comportamentos estão documentados como bugs no próprio issue tracker do projeto, e ambos vão te queimar em produção se você não os ler. action.act_probability ainda não carrega nenhum sinal utilizável — issue #185 — porque a saída do decision head não é normalizada, ficando em cerca de 300x a escala do encoder, o que satura o act head de modo que ele lê 1.0 para quase toda entrada. Seus logits brutos vão contra a correção, com uma AUROC de 0,30 em 396 decisões rotuladas. Use confidence como critério, em vez disso, que alcança uma AUROC de 0,77 nos mesmos itens. Separadamente, o noul pode seguir seus próprios rótulos de opção em vez do estado — issue #156 — porque render_options codifica de forma fixa os rótulos de um noul como false: / true:, e esse par de rótulos pode dominar a resposta, retornando um "não" confiante para uma entrada claramente positiva. A solução alternativa documentada é fazer a mesma pergunta como uma choice de duas opções com chaves neutras e seu texto de sim/não como as descrições.
Quarto, um detalhe de calibração fácil de passar despercebido e que vale a pena enunciar com precisão. O checkpoint traz uma temperatura ajustada de 0,1006 para o bucket choice:11+, e o loader limita todas as temperaturas ao intervalo [0,5, 5,0]. Esse limite está lhe fazendo um favor. Uma temperatura tão acentuada poderia pegar uma distribuição genuinamente dividida e reportá-la como quase certeza; o limite significa que o pior caso é uma resposta mais suave do que o ajuste pretendia, e o loader emite um aviso nomeando o bucket afetado e dizendo para você tratar essa confiança como não calibrada. Leia os avisos ao carregar, em vez de suprimi-los.
Quinto, apenas inglês na raiz do repositório, e o modo de falha fora do inglês não é elegante — daí o roteador, e daí a recomendação de usar laya-multilingual para qualquer coisa que não seja prosa em inglês.
O quadro independente, onde existe, é mais estreito do que o quadro do fornecedor e não o contradiz. Uma comparação direta independente — sysone-bench, 751 estados em nove conjuntos, datada de 2026-09-21, executada sobre entradas idênticas byte a byte, com os hashes das perguntas verificados como idênticos antes da comparação — coloca o Jev à frente em triagem, guardrails, moderação, banking77 e intenção multilingue, e o Laya à frente em AG News (0,940 vs 0,910) e MNLI (0,983 vs 0,867). O seu resultado de gating por confiança é aquele em torno do qual eu realmente planearia: o gating a 0,85 de confiança manteve 58% do tráfego do Laya com 0,878 de exatidão, contra 78% do do Jev com 0,917. Essa é a forma do compromisso — o Laya automatiza menos tráfego, com menor exatidão na porção que mantém, e a sua própria execução de router eleva a intenção multilingue de 0,360 para 0,840.
A superfície ao seu redor, que é incomumente larga.
Para um projeto cujos pesos têm apenas alguns dias, a superfície de integração é a parte que surpreende. Tudo isso está no repositório upstream em NandhaKishorM/laya, que exibia 19.871 estrelas no GitHub quando isto foi escrito, e é Apache 2.0 em toda a sua extensão:
• laya-serve — um servidor HTTP que expõe o Router no mesmo formato de requisição e resposta de POST /v1/systemone da API Jev hospedada da TypeSafe, de modo que um cliente TypeSafe existente migra apenas alterando sua URL base. Observe o padrão de segurança com honestidade: ele vincula-se a 0.0.0.0 sem autenticação, a menos que LAYA_API_KEY esteja definida, caso em que exige um token bearer. Existe uma variante reforçada do módulo NixOS que é executada sob uma unidade systemd DynamicUser e passa o token via LoadCredential em vez de colocá-lo no store.
• Um porte completo em TypeScript em laya-ts/ para Node e o navegador, além de um caminho de agente ONNX (laya.onnx_agent.ONNXAgent) para executar um modelo exportado no ONNX Runtime sem PyTorch em tempo de execução.
• Um servidor MCP por trás de um extra opcional, expondo laya_predict, laya_route, laya_preset e laya_status como ferramentas.
• Integrações com LangChain e LangGraph — LayaRouter para roteamento de aresta condicional com um limite de confiança e fallback, e LayaGuardrail.
• Um flake Nix com nix run .#laya-serve e um módulo services.laya-serve, quatro arquivos compose, um caminho de imagem Docker com um início rápido documentado, e um notebook do Kaggle que executa o loop completo de fine-tuning RLCD em GPUs 2xT4 gratuitas em quatro a cinco horas ao longo de aproximadamente 30 mil perguntas.

O Apache 2.0 é o detalhe de licença que decide se você pode distribuir isto dentro de um produto: permite uso comercial, modificação e redistribuição, e não exige que você publique suas alterações nem seus pesos ajustados. A obrigação é a habitual de atribuição e preservação de avisos, além da ausência explícita de concessão de patente ou marca registrada para além do que a licença declara. Para uma camada de decisão que fica à frente do tráfego de clientes, essa é uma proposta materialmente diferente de um endpoint hospedado de acesso antecipado cujos pesos, arquitetura e receita de treinamento são todos não divulgados — que é o que o Jev é hoje, a US$ 0,042 por milhão de tokens de entrada, com saída gratuita e uma superfície de entrada apenas de texto.
Onde isso realmente se encaixa: uma cabeça de decisão na frente, um LLM roteado atrás
O padrão que vale a pena internalizar não é "modelo de decisão em vez de LLM". É um pipeline de duas etapas, e ambas as etapas existem porque a outra é ruim em alguma coisa.
Coloque a Laya na frente para o julgamento de alto volume, estreito e consumível por máquina: encaminhar o ticket, classificar a intenção, pontuar a urgência, decidir se este documento é relevante para a consulta, verificar se este rascunho viola uma política. Essas chamadas têm um conjunto fixo de respostas, acontecem milhares de vezes por hora, e uma passagem direta local de 33 milissegundos com zero tokens de saída se encaixa melhor nelas do que uma ida e volta generativa. Depois, coloque um modelo generativo por trás dela para as chamadas que realmente precisam de prosa, síntese ou raciocínio sobre um contexto longo — a redação, a explicação, o resumo de escalonamento.
É aí que o OrcaRouter se posiciona, e vale a pena ser preciso quanto à fronteira. Não servimos o Laya; é um encoder de 421M que você mesmo executa, e o ponto central dele é que roda onde os seus dados já estão. Também não servimos o Jev — é o endpoint de acesso antecipado da TypeSafe. O que cobrimos é a metade generativa desse mesmo pipeline: mais de 200 modelos por trás de uma única chave compatível com OpenAI, a preço de tabela dos fornecedores repassado com 0% de margem, com failover automático entre fornecedores. A razão prática de isso importar aqui é a costura entre as duas metades. No momento em que você começa a encaminhar decisões para um modelo generativo nos casos que a cabeça de decisão recusou, você passa a ter uma segunda integração, uma segunda fatura e um segundo modo de falha. Uma única chave para o lado da geração, com failover caso um fornecedor se degrade, significa que o caminho de escalonamento da camada de decisão é uma mudança de configuração, e não um segundo relacionamento com fornecedor. É uma afirmação pequena, e é a verdadeira.
Quem deve adotá-lo, e quem deve esperar
Adote o Laya agora se você tiver dados rotulados e um loop de treinamento, e uma superfície de decisão estável o suficiente para valer a pena especializar. O notebook do Kaggle existe exatamente para que a etapa de ajuste fino não seja um projeto de pesquisa, os checkpoints base carreguem em cerca de dois segundos na CPU, e a licença permita que você entregue o resultado comercialmente sem publicar seus pesos. As cargas de trabalho que melhor se encaixam são as que o projeto já avaliou: triagem de tickets, processamento de faturas, classificação de incidentes de segurança, guardrails e moderação, e observabilidade de traces de agentes. Mantenha perguntas de múltipla escolha abaixo de aproximadamente 20 opções, calibre uma temperatura nos seus próprios dados de validação antes de colocar um limiar em produção, e faça o gate com base em confiança, nunca em act_probability.
Aguarde se a sua decisão precisa de estar pronta a usar de imediato e sem dados rotulados. Um checkpoint base que fica abaixo da linha de base da classe majoritária no benchmark contra o qual foi publicado não é um motor zero-shot, e a leitura honesta dos números do fornecedor versus os independentes é que uma API de decisão hospedada bem gerida é atualmente a escolha zero-shot mais forte. Aguarde também se os seus conjuntos de opções forem grandes e você não estiver disposto a ajustar o orçamento da cabeça, se a sua pontuação ordinal precisar ser confiável imediatamente, ou se você precisar de entrada de imagem, áudio ou documento longo — a Laya é apenas texto e o seu orçamento de contexto é de 512 a 1.024 tokens por padrão, o que é uma seleção de evidências em vez de um documento inteiro.
O que vai decidir esta categoria não são os números de latência, que já são bons o suficiente para deixarem de ser o argumento. É se um modelo pequeno que reporta probabilidades honestas numa superfície de decisão que você definiu, e que você pode retreinar com seus próprios rótulos, supera chamar um grande modelo generativo e analisar sua saída. Laya é uma primeira tentativa séria e crível da versão de pesos abertos dessa questão — e tem no máximo alguns dias de idade, que é a forma correta de ler tudo o que está acima. A base é o ponto de partida, não o produto.

