Todos os artigos

O Jev responde em probabilidades. A pergunta continua a ser tua.

Ouvir o artigo (experimental) · 16:12

00:00 / 16:12

Um único mostrador a brilhar, com o ponteiro pousado logo a seguir ao meio, dentro de um anel, sobre um campo escuro de linhas tracejadas iguais

Há cerca de uma semana que os meus feeds estão cheios de um modelo que não escreve. A TypeSafe AI chama ao Jev um modelo System One. Envias-lhe um estado, qualquer texto ou JSON, e perguntas tipadas. Uma Choice escolhe uma de até 255 opções que definiste, um Score avalia o estado em dois a dez níveis que descreveste, e um Noul devolve a probabilidade de uma afirmação ser verdadeira. O que vem de volta é a resposta selecionada, uma probabilidade para cada resposta que permitiste e, exceto num Noul, um valor de confiança. Sem prosa. A TypeSafe cobra $0.042 por milhão de tokens de entrada, com o output gratuito, e anuncia 200 vezes mais rápido e 400 vezes mais barato do que os modelos de chat que as pessoas usam para os mesmos trabalhos.

A TypeSafe pôs as inscrições em pausa antes de eu ter uma chave, e os ensaios aqui devem medir em vez de testemunhar. Por isso este pesa os relatos das pessoas que o experimentaram mesmo, e depois corre o piloto que eu quereria ver antes de acreditar em qualquer múltiplo, nos meus próprios ensaios, com o modelo aberto que fez as vezes do Jev.

A parte interessante é a forma, não a velocidade

Tira os múltiplos e o que sobra é um contrato. Um modelo conversacional devolve texto que o teu código tem de analisar, validar e pôr em dúvida. O Jev devolve algo que um programa pode usar diretamente para decidir, e recusa-se a devolver qualquer outra coisa. O modelo fornece um julgamento. A aplicação é dona do que acontece a seguir.

Na experiência dos agentes o primeiro passo do workflow era uma pergunta ao Jev antes de o Jev existir: o modelo escolhia uma rota de um enum fechado, a aritmética era código, e por isso uma classificação correta não podia produzir um número errado. O Jev torna esse padrão a única coisa que o modelo consegue fazer. É o primeiro modelo com hype cujo argumento de venda é aquilo que não fará.

Serve para julgamentos repetidos cujo espaço de respostas consegues nomear: que equipa é dona deste ticket, esta ação proposta parece destrutiva, a tarefa ficou concluída. Não serve para nada que seja exato, como aritmética ou datas, nem para a resposta virada para o cliente. E não torna o teu agente seguro. Torna um tipo de decisão suficientemente barato para se perguntar sobre tudo.

O número que toda a gente cita é o errado

Duzentas vezes mais rápido e quatrocentas vezes mais barato são os números do fornecedor para comparações escolhidas. Um relato correu quatro julgamentos sobre mil avaliações de apps por dois cêntimos, contra dezasseis para um modelo Gemini rápido, e depois notou que não tinha comparado a exatidão de todo. Um endpoint de decisão barato não é um workflow barato. O que tens de contabilizar é a tarefa concluída, incluindo o modelo de fallback, a revisão humana e as tarefas que seguiram pelo ramo errado.

O número que importa está por baixo dos múltiplos. Quando construí o plano de controlo do Smithproof, a lição que deixei escrita foi que o modelo que podes dar-te ao luxo de correr em linha é o modelo que governa. O Jev é uma candidatura a esse lugar. Uma única decisão de mil tokens custa quatro milésimos de cêntimo. Um juiz generativo é algo que se corre numa amostra e se lê. Um modelo de decisão é algo que se corre em todos os traces e em todas as chamadas de ferramentas propostas, e cujo resultado decide o passo seguinte. Passa tudo pelo crivo barato, e gasta o modelo caro nas falhas que o barato assinalou.

Confiança não é acerto

A probabilidade é a parte do Jev que mais se parece com recurso e que menos o é. O campo de confiança é aritmética sobre a distribuição, e nenhum resultado entra nessa conta: Archer Hume, que reconstituiu a arquitetura do Jev a partir de cerca de dez mil chamadas à API, descobriu a fórmula a ler o adaptador da própria TypeSafe. A TypeSafe treinou para a calibração e, enquanto escrevo, não publicou nenhuma curva de calibração nem nenhum artigo. E o número de exatidão do próprio fornecedor é concordância com as respostas médias de dois modelos de chat de fronteira, com 67.8% no total e 61.8% em faturas. Concordância não é acerto.

Um teste de spam relatado no blogue da Arize mostra para que serve a probabilidade: o Jev em zero-shot acertou em 98.3% dos emails, os 4.6% cuja probabilidade caía entre 0.3 e 0.7 foram para uma pessoa, e o resto voltou com 99.5% de acerto. A probabilidade não fez o modelo acertar. Comprou uma via de revisão e disse que largura lhe dar.

Pega no exemplo que circula: um ticket de suporte com faturação a 0.52, técnico a 0.46, vendas a 0.02. Ganha a faturação, com uma confiança de 0.28. É um cara ou coroa com uma etiqueta colada, e um sistema que decide pelo vencedor automatizou um cara ou coroa. O Jev dá-te o número e retém as razões, por isso a verificação tem de acontecer fora do modelo: medir o acerto por faixa de probabilidade nos teus próprios exemplos etiquetados, definir cada limiar segundo o que um erro custa, fixar a versão do modelo, e voltar a testar sempre que a rubrica, o modelo ou a distribuição das entradas se mover.

Um erro válido segundo o esquema continua a ser um erro

O marketing diz que o Jev não consegue alucinar, o que é verdade no sentido estreito de que não consegue responder fora do espaço que definiste. Uma resposta válida pode continuar a ser a resposta errada. O Jev remove o output malformado, que sempre foi a falha barata de apanhar. Mantém o ramo errado e confiante, que sempre foi a falha cara, e retira aquilo que um modelo generativo te dava para o diagnosticar: uma explicação que podias ler.

Por isso o recurso tem de ser construído. As regras rígidas vão primeiro. O autor do jev-gate, um portão de permissões para agentes de programação, correu cerca de trezentas chamadas contra ele: uma injeção direta não fez passar nenhum de trinta comandos perigosos, e uma linha a afirmar que o dono do repositório já tinha aprovado o comando fez passar três. Três em trinta fazem do Jev um filtro à frente de uma fronteira, nunca a fronteira, e é por isso que as regras rígidas ficam à frente dele. A faixa de incerteza vai para uma pessoa ou para um modelo que sabe falar; um Noul não se consegue abster, por isso a abstenção é o teu limiar. E todas as perguntas levam uma opção de saída, nenhuma destas ou precisa de revisão, antes de afinares e não depois. O piloto abaixo mostra porquê.

E depois a pergunta que fiz a dez fornecedores no mês passado: se o 0.52 estiver errado e isso me custar alguma coisa, quem paga? Ainda não li os termos da TypeSafe, e ficaria surpreendido se se lessem de forma diferente dos dez que li: nada é garantido, verifica tudo, um teto perto do preço de um livro de bolso. Uma probabilidade não muda isso, por isso a pessoa que definiu o limiar é a pessoa que responde.

O piloto, corrido no meu próprio índice

O Jev não consegui correr, por isso o piloto correu no substituto. Poucos dias depois do lançamento, o modelo número um nas tendências do Hugging Face era o Laya, da Convai Innovations. Tem a mesma forma: entra um estado, os mesmos três tipos de pergunta, e voltam os mesmos campos. É Apache 2.0, e com 421 milhões de parâmetros corre neste portátil. Os números abaixo são do Laya, não do Jev.

A carga de trabalho é o único conjunto etiquetado que este blogue possui, o seu índice: 33 ensaios, cada um classificado à mão sob um de seis temas e uma a quatro das quatro moradas. Por isso «concordou», abaixo, quer dizer que concordou com a minha classificação, e discordar não é automaticamente erro do modelo. Antes de qualquer número escrevi o que um erro custa, um leitor que carrega no botão de um tema e dá com o texto errado, e depois a fasquia: bater a etiqueta mais comum em todas as perguntas e manter as respostas quando as opções são invertidas. Cada ensaio levou seis perguntas: uma Choice para o tema, uma Choice para a morada que o ensaio defende mais diretamente, e quatro Nouls, um por morada. Sem opção de saída, porque o índice não a tem. Cada uma saiu em três formulações: a base, as opções invertidas, e uma paráfrase. O Laya distribui três checkpoints, inglês, multilingue e um afinado em decisões tipadas, e cada um correu tal como vem e outra vez com o contexto alargado até caberem ensaios inteiros. Tal como vem, o checkpoint inglês lê 512 tokens; depois de a pergunta do tema levar a sua parte, sobram 316 para o ensaio, e o ensaio mediano aqui tem 2658 tokens. Nada na resposta diz que a maior parte do ensaio ficou por ler. Cento e sessenta linhas de Python servem o Laya no formato de transporte do Jev, por isso o mesmo harness envia os mesmos pedidos, e as seis configurações correram em menos de um quarto de hora de GPU.

O melhor resultado acerta metade das vezes, e não sabe dizer qual metade. O checkpoint afinado em decisões tipadas, a ler os ensaios inteiros, concordou com a minha classificação do tema em 17 de 33 ensaios; responder sempre com o tema mais comum daria 8. Nos Nouls o seu Brier score foi 0.257 na formulação base e 0.308 parafraseado, contra 0.231 para responder sempre com a taxa de base, o que é pior do que uma constante. E sabia-o. Das suas 132 probabilidades de sim ou não, 131 caíram entre 0.3 e 0.7, e todos os temas voltaram com uma confiança abaixo de 0.3. Outra configuração foi, em vez disso, confiante: o checkpoint multilingue a ler os ensaios inteiros pôs 119 de 132 acima de 0.7 e acertou em 37%, abaixo dos 64% que responder sempre não pontuaria. É o ramo errado e confiante, medido.

Inverter as opções mudou a resposta. O mesmo ensaio, os mesmos seis temas pela outra ordem: o tema virou em 7 a 16 dos 33 ensaios, entre um quinto e metade, consoante o checkpoint e quanto do ensaio ele leu. Hume descobriu que o Jev também é sensível à ordem: inverter as opções tirou uma classificação de suporte técnico da faixa de 0.84 e pô-la na faixa de 0.93, o que pode levar uma resposta para lá de um limiar sem virar a etiqueta.

Acrescentar uma opção reescreveu as respostas às outras. Hume descobriu também que as opções do Jev não são pontuadas uma de cada vez: acrescenta uma opção irrelevante e a razão entre as probabilidades de duas opções em que nunca tocaste mexe-se. Repeti o teste em duas configurações, o checkpoint afinado a ler os ensaios inteiros e o checkpoint inglês tal como vem, enviando a pergunta do tema de quatro maneiras: os seis temas, os mesmos seis outra vez como controlo, os seis mais uma opção de jardinagem a que nenhum ensaio aqui pertence, e os seis mais uma opção de saída. O controlo voltou idêntico nos 33 ensaios. A jardinagem nunca foi escolhida uma única vez, nunca subiu acima de 0.06 da probabilidade, e ainda assim mudou qual o tema vencedor em três ensaios no checkpoint afinado e em quatro no inglês. A opção de saída mudou quatro e seis. O valor de confiança mexeu em todos os ensaios, até um quarto da sua amplitude, e é esse o número que um limiar lê. Por isso a opção de saída que toda a gente recomenda, eu incluído, é uma pergunta nova e não uma rede de segurança, e um limiar definido antes de ela chegar foi definido noutro menu.

Nada disto diz que o Jev faria o mesmo. A própria ficha do Laya chama-lhe «a fast base to specialise, not a zero-shot decision engine», e o relato de uma equipa, em seiscentos itens seus reservados para teste, tem o Jev em 0.77, o Laya de base em 0.72 e um fine-tuning completo do Laya em 0.90. O que a execução diz é que o piloto funciona como piloto. O teste de inversão sozinho teria impedido este ramo de ir para produção, e a fasquia que pus antes dos números não foi atingida em nenhuma pergunta. A resposta ao avança ou não avança para esta carga de trabalho é não, e a classificação continua a ser feita à mão.

O que não move

Um julgamento repetido com um espaço de respostas que consegues nomear é a metade barata do julgamento, e o Jev torna-a quase gratuita: dez mil decisões de mil tokens cada uma dão quarenta e dois cêntimos. Escrever a pergunta é a outra metade, e este blogue passou um ano a defender que a pergunta é para onde foi o trabalho. Os critérios, a opção de saída e o limiar que transforma um 0.52 numa ação são alguém a decidir quanto vale um erro, e o Jev consome essas decisões em vez de as tomar. A pessoa cujo ticket foi para a faturação quando devia ter ido para o técnico continua a ser uma pessoa, com um serão, a quem não interessa que o erro fosse válido segundo o esquema.

O Jev responde em probabilidades. A pergunta continua a ser tua. O limiar também, e também a resposta quando o limiar estava errado. Uma decisão, afinal, pode comprar-se por quatro milésimos de cêntimo. Saber se foi a decisão certa continua a não se poder comprar.

Perguntas a que este artigo responde

  • O que é o Jev, e em que difere de um modelo de linguagem normal?

    O Jev é um modelo alojado da TypeSafe AI que não gera texto. Envias-lhe um estado, qualquer texto ou JSON, e um conjunto de perguntas tipadas: uma Choice entre até 255 opções que defines, um Score em dois a dez níveis que descreves, ou um Noul, uma proposição de sim ou não. Devolve a resposta selecionada e uma probabilidade para cada resposta permitida, com todas as perguntas avaliadas em paralelo contra o mesmo estado e sem prosa, sem explicação e sem código. Uma Choice e um Score trazem também um valor de confiança; um Noul não. A TypeSafe cobra $0.042 por milhão de tokens de entrada, com o output gratuito, o que faz de uma única decisão de mil tokens quatro milésimos de cêntimo, e reporta 70 a 500 milissegundos de ponta a ponta. A tua aplicação decide o que acontece a seguir.

  • Posso confiar nas probabilidades que o Jev devolve?

    Não antes de as teres medido na tua própria carga de trabalho. A TypeSafe treinou para a calibração com um método a que chama Reinforcement Learning for Calibrated Decisions, mas, à data em que escrevo, não publicou nenhuma curva de calibração nem nenhum artigo, e a sua própria avaliação reporta concordância com as respostas médias de dois modelos de chat, e não acerto, com 67.8% no total e 61.8% em faturas. Todos os diagramas de fiabilidade públicos são de gente de fora, e não concordam entre si. Os primeiros resultados de terceiros apontam em sentidos opostos: um teste de spam enviou a faixa entre 0.3 e 0.7 para revisão e o resto voltou a 99.5%, enquanto uma comparação de classificação de emoções reportou um Brier score pior do que o de um pequeno modelo treinado de propósito. Mede o acerto por faixa de probabilidade, define os limiares por decisão segundo o que um erro custa, fixa a versão do modelo e volta a testar depois de qualquer alteração.

  • Onde deve o Jev entrar num agente, e onde não deve?

    Serve para julgamentos repetidos cujo espaço de respostas consegues nomear: que equipa é dona deste ticket, que modelo ou ferramenta serve este pedido, esta ação proposta parece destrutiva, a tarefa ficou concluída, esta passagem recuperada responde à consulta. O seu lugar é atrás de regras rígidas determinísticas e à frente de um caminho de fallback para os casos incertos, e o seu output é um veredicto que o teu caminho de pedido tem de aplicar. Não serve para aritmética, datas, contagens, comparação de strings, extração de valores que não estão numa lista, texto virado para o cliente, julgamentos que precisam de vários passos de raciocínio escondidos, menus que podem ficar desatualizados, ou línguas e domínios não testados. Num teste aberto de injeção, uma linha a afirmar que o dono já tinha aprovado o comando fez passar três de trinta comandos perigosos, por isso é um filtro à frente de uma fronteira de segurança, nunca a fronteira.

  • Chegaste a correr alguma parte disto tu próprio?

    Sim, com um substituto. A TypeSafe pôs as inscrições no Jev em pausa antes de eu conseguir uma chave, por isso corri o piloto no Laya, o modelo System One de pesos abertos da Convai Innovations que chegou ao topo das tendências do Hugging Face poucos dias depois do lançamento do Jev: as mesmas perguntas tipadas no formato de transporte do próprio Jev, os mesmos campos de volta, na GPU deste portátil. A carga de trabalho foi o índice deste blogue, 33 ensaios, cada um classificado à mão sob um de seis temas e uma a quatro das quatro moradas, seis perguntas por ensaio, três formulações, seis configurações. O melhor checkpoint na pergunta do tema concordou com a minha classificação em 17 de 33 ensaios contra 8 para responder sempre com o tema mais comum, pontuou pior do que uma constante nas perguntas de sim ou não, e pôs 131 das suas 132 probabilidades de sim ou não na faixa de revisão entre 0.3 e 0.7. Inverter a ordem das opções virou entre um quinto e metade das respostas sobre o tema, 7 a 16 de 33, e acrescentar uma opção que nunca chegou a ser escolhida mudou qual o tema vencedor em três dos 33 ensaios nesse melhor checkpoint. A fasquia posta antes de qualquer número não foi atingida em nenhuma pergunta, por isso a resposta ao avança ou não avança foi não. Os números são do Laya, não do Jev; o harness está escrito para o endpoint do próprio Jev e por testar contra ele até chegar uma chave.