Jev risponde in probabilità. La domanda è ancora tua.
Ascolta l'articolo (sperimentale) · 16:11

Da circa una settimana i miei feed sono pieni di un modello che non scrive. TypeSafe AI chiama Jev un modello System One. Gli mandi uno stato, cioè un testo o un JSON qualsiasi, e delle domande tipizzate. Una Choice sceglie una tra un massimo di 255 opzioni che hai definito tu, uno Score valuta lo stato su una scala da due a dieci livelli che hai descritto tu, e un Noul restituisce la probabilità che un'affermazione sia vera. Quello che torna indietro è la risposta selezionata, una probabilità per ogni risposta che hai ammesso e, tranne che per un Noul, un valore di confidenza. Niente prosa. TypeSafe lo prezza a 0,042 dollari per milione di token in input con l'output gratuito, e parla di 200 volte più veloce e 400 volte più economico dei modelli chat che si usano per gli stessi lavori.
TypeSafe ha messo in pausa le iscrizioni prima che avessi una chiave, e i saggi di questo blog dovrebbero misurare invece di testimoniare. Così questo soppesa i resoconti di chi l'ha provato davvero, poi fa partire il progetto pilota che vorrei prima di credere a un multiplo, sui miei stessi saggi, con il modello aperto che ha fatto le veci di Jev.
La parte interessante è la forma, non la velocità
Togli i multipli e quello che resta è un contratto. Un modello conversazionale restituisce un testo che il tuo codice deve analizzare, validare e mettere in dubbio. Jev restituisce qualcosa in base a cui un programma può decidere direttamente, e si rifiuta di restituire qualsiasi altra cosa. Il modello fornisce un giudizio. L'applicazione è padrona di quello che succede dopo.
Nell'esperimento sugli agenti il primo passo del workflow era una domanda alla Jev prima che Jev esistesse: il modello sceglieva una rotta da un enum chiuso, l'aritmetica era codice, e così una classificazione corretta non poteva produrre un numero sbagliato. Jev fa di quel pattern l'unica cosa che il modello può fare. È il primo modello di cui tutti parlano ad avere come argomento di vendita quello che non farà.
Si adatta ai giudizi ripetuti di cui sai nominare lo spazio delle risposte: quale team è responsabile di questo ticket, questa azione proposta sembra distruttiva, il compito è stato completato. Non si adatta a niente di esatto, come l'aritmetica o le date, né alla risposta rivolta al cliente. E non rende sicuro il tuo agente. Rende un tipo di decisione abbastanza economico da poterla chiedere su tutto.
Il numero che citano tutti è quello sbagliato
Duecento volte più veloce e quattrocento volte più economico sono le cifre del fornitore su confronti selezionati. Un resoconto ha fatto girare quattro giudizi su mille recensioni di app per due centesimi, contro sedici per un modello Gemini veloce, e poi ha annotato di non aver confrontato affatto l'accuratezza. Un endpoint di decisione economico non è un workflow economico. Quello che devi mettere in conto è il compito completato, compresi il modello di fallback, la revisione umana e i compiti finiti sul ramo sbagliato.
Il numero che conta sta sotto i multipli. Quando ho costruito il control plane di Smithproof, la lezione che ho messo per iscritto era che il modello che puoi permetterti di eseguire inline è il modello che governa. Jev si candida a quel posto. Una singola decisione su mille token costa quattro millesimi di centesimo. Un giudice generativo è qualcosa che fai girare su un campione e poi leggi. Un modello di decisione è qualcosa che fai girare su ogni trace e ogni chiamata di strumento proposta, e in base a cui decidi. Passa tutto al setaccio a basso costo, e riserva il modello costoso ai casi che quello economico ha segnalato.
La confidenza non è correttezza
La probabilità è la parte di Jev che più somiglia a una rivalsa e meno lo è. Il campo di confidenza è aritmetica sulla distribuzione, e non ci entra nessun esito: Archer Hume, che ha ricavato l'architettura di Jev da circa diecimila chiamate all'API, ha trovato la formula leggendo l'adapter di TypeSafe stessa. TypeSafe ha addestrato il modello per la calibrazione, e mentre scrivo non ha pubblicato nessuna curva di calibrazione e nessun paper. E la cifra di accuratezza del fornitore stesso è l'accordo con le risposte mediate di due modelli chat di frontiera, al 67,8% complessivo e al 61,8% sulle fatture. L'accordo non è correttezza.
Un test sullo spam raccontato sul blog di Arize mostra a che cosa serve la probabilità: Jev in zero-shot ha avuto ragione sul 98,3% delle email, il 4,6% la cui probabilità cadeva tra 0,3 e 0,7 è andato a una persona, e il resto è tornato giusto al 99,5%. La probabilità non ha reso giusto il modello. Ha comprato una corsia di revisione e ha detto quanto farla larga.
Prendi l'esempio che circola: un ticket di assistenza con fatturazione a 0,52, tecnico a 0,46, vendite a 0,02. Vince fatturazione, con una confidenza di 0,28. È un lancio di moneta con un'etichetta addosso, e un sistema che decide in base al vincitore ha automatizzato un lancio di moneta. Jev ti dà il numero e trattiene le ragioni, quindi la verifica deve avvenire fuori dal modello: misurare la correttezza per fascia di probabilità sui tuoi esempi etichettati, fissare ogni soglia in base a quanto costa un errore, bloccare la versione del modello, e ripetere il test ogni volta che si muovono i criteri di valutazione, il modello o la distribuzione degli input.
Un errore conforme allo schema è pur sempre un errore
Il marketing dice che Jev non può avere allucinazioni, ed è vero nel senso stretto che non può rispondere fuori dallo spazio che hai definito. Una risposta valida può ancora essere la risposta sbagliata. Jev elimina l'output malformato, che è sempre stato l'errore che costa poco intercettare. Tiene il ramo sbagliato preso con sicurezza, che è sempre stato quello costoso, e ti toglie quello che un modello generativo ti dava per diagnosticarlo: una spiegazione che potevi leggere.
Quindi la rivalsa va costruita. Le regole rigide vanno per prime. L'autore di jev-gate, un cancello dei permessi per gli agenti di coding, gli ha lanciato contro circa trecento chiamate: un'injection brutale non ha fatto passare nessuno dei trenta comandi pericolosi, mentre una riga che sosteneva che il proprietario del repository aveva già approvato il comando ne ha fatti passare tre. Tre su trenta fa di Jev un filtro davanti a un confine, mai il confine, ed è per questo che le regole rigide gli stanno davanti. La fascia incerta va a una persona o a un modello capace di parlare; un Noul non può astenersi, quindi l'astensione è la tua soglia. E ogni domanda riceve un'opzione di uscita, nessuna di queste o serve una revisione, prima di tarare e non dopo. Il progetto pilota qui sotto mostra perché.
Poi la domanda che ho fatto a dieci fornitori il mese scorso: se lo 0,52 è sbagliato e a me costa qualcosa, chi paga? Non ho ancora letto le condizioni di TypeSafe, e mi sorprenderebbe se dicessero qualcosa di diverso dalle dieci che ho letto: nulla è garantito, devi verificare tutto, un tetto vicino al prezzo di un tascabile. Una probabilità non cambia questo, quindi la persona che ha fissato la soglia è la persona che risponde.
Il progetto pilota, fatto partire sul mio indice
Jev non l'ho potuto far girare, quindi il progetto pilota è girato sul sostituto. A pochi giorni dal lancio il modello numero uno di tendenza su Hugging Face era Laya, di Convai Innovations. Ha la stessa forma: entra uno stato, gli stessi tre tipi di domanda, e tornano indietro gli stessi campi. È Apache 2.0, e con 421 milioni di parametri gira su questo portatile. I numeri qui sotto sono di Laya, non di Jev.
Il carico di lavoro è l'unico insieme etichettato che questo blog possiede, il suo indice: 33 saggi, ognuno catalogato a mano sotto uno dei sei temi e da uno a quattro dei quattro indirizzi. Quindi «ha concordato» qui sotto significa che ha concordato con la mia catalogazione, e un disaccordo non è automaticamente un errore del modello. Prima di qualsiasi numero ho messo per iscritto quanto costa un errore, un lettore che preme il filtro di un tema e finisce sul pezzo sbagliato, e poi l'asticella: battere l'etichetta più comune su ogni domanda e tenere ferme le risposte quando le opzioni vengono invertite. Ogni saggio ha ricevuto sei domande: una Choice per il tema, una Choice per l'indirizzo che il saggio sostiene più direttamente, e quattro Noul, uno per indirizzo. Nessuna opzione di uscita, perché l'indice non ne ha. Ognuna è uscita in tre formulazioni: quella di base, quella con le opzioni invertite, e una parafrasi. Laya viene distribuita con tre checkpoint, inglese, multilingue e uno con fine-tuning sulle decisioni tipizzate, e ognuno è girato così com'è distribuito e poi di nuovo con il contesto allargato finché i saggi non ci stavano per intero. Così com'è distribuito, il checkpoint inglese legge 512 token; una volta che la domanda sul tema si è presa la sua parte, ne restano 316 per il saggio, e il saggio mediano qui arriva a 2.658 token. Niente nella risposta dice che la maggior parte del saggio non è stata letta. Centosessanta righe di Python espongono Laya nel formato di scambio di Jev, così lo stesso harness manda le stesse richieste, e tutte e sei le configurazioni sono girate in meno di un quarto d'ora di GPU.
Il risultato migliore ha ragione metà delle volte, e non sa dire quale metà. Il checkpoint con fine-tuning sulle decisioni tipizzate, leggendo i saggi per intero, ha concordato con la mia catalogazione sul tema per 17 saggi su 33; rispondere sempre con il tema più comune ne prenderebbe 8. Sui Noul il suo Brier score è stato 0,257 nella formulazione di base e 0,308 con la parafrasi, contro 0,231 per un modello che risponde sempre con il tasso di base, vale a dire che ha fatto peggio di una costante. E lo sapeva. Delle sue 132 probabilità sì/no, 131 sono cadute tra 0,3 e 0,7, e ogni tema è tornato con una confidenza sotto 0,3. Un'altra configurazione invece era sicura di sé: il checkpoint multilingue che leggeva i saggi per intero ha messo 119 delle 132 probabilità sopra 0,7 e ha avuto ragione sul 37%, sotto il 64% che si otterrebbe rispondendo sempre no. Questo è il ramo sbagliato preso con sicurezza, misurato.
Invertire le opzioni ha cambiato la risposta. Stesso saggio, stessi sei temi nell'altro ordine: il tema si è ribaltato per un numero di saggi tra 7 e 16 dei 33, tra un quinto e la metà, a seconda del checkpoint e di quanta parte del saggio leggeva. Hume ha trovato che anche Jev è sensibile all'ordine: invertire le opzioni ha sollevato una classificazione di assistenza tecnica dalla fascia dello 0,84 a quella dello 0,93, il che può portare una risposta oltre una soglia senza ribaltare l'etichetta.
Aggiungere un'opzione ha riscritto le risposte alle altre. Hume ha trovato anche che le opzioni di Jev non ricevono un punteggio una alla volta: aggiungi in coda un'opzione irrilevante, e il rapporto tra due opzioni che non hai toccato si muove. Ho ripetuto il test su due configurazioni, il checkpoint con fine-tuning che leggeva i saggi per intero e il checkpoint inglese così com'è distribuito, mandando la domanda sul tema in quattro versioni: i sei temi, gli stessi sei di nuovo come controllo, i sei più un'opzione giardinaggio sotto cui qui non sta nessun saggio, e i sei più un'opzione di uscita. Il controllo è tornato identico su tutti e 33 i saggi. Giardinaggio non è mai stato scelto neanche una volta, non è mai salito sopra 0,06 della probabilità, e ha comunque cambiato quale tema vincesse per tre saggi sul checkpoint con fine-tuning e quattro su quello inglese. L'opzione di uscita ne ha cambiati quattro e sei. Il valore di confidenza si è mosso su ogni saggio, fino a un quarto del suo intervallo, ed è quello il numero che una soglia legge. Quindi l'opzione di uscita che raccomandano tutti, me compreso, è una domanda nuova e non una rete di sicurezza, e una soglia fissata prima che arrivi è stata fissata su un menù diverso.
Niente di tutto questo dice che Jev farebbe lo stesso. La stessa scheda di Laya chiama il modello «a fast base to specialise, not a zero-shot decision engine», e il resoconto di un team, su seicento elementi propri tenuti fuori dall'addestramento, dà Jev a 0,77, Laya di base a 0,72 e un fine-tuning completo di Laya a 0,90. Quello che l'esecuzione dice è che il progetto pilota funziona come progetto pilota. Il test dell'inversione da solo avrebbe impedito a questo ramo di andare in produzione, e l'asticella che avevo fissato prima dei numeri non è stata raggiunta su nessuna domanda. La risposta al go o no-go per questo carico di lavoro è no, e la catalogazione resta a mano.
Quello che non sposta
Un giudizio ripetuto con uno spazio di risposte che sai nominare è la metà economica del giudizio, e Jev la rende quasi gratuita: diecimila decisioni su mille token ciascuna fanno quarantadue centesimi. Scrivere la domanda è l'altra metà, e questo blog ha passato un anno a sostenere che è nella domanda che è finito il lavoro. I criteri, l'opzione di uscita e la soglia che trasforma uno 0,52 in un'azione sono qualcuno che decide quanto vale un errore, e Jev consuma quelle decisioni invece di prenderle. La persona il cui ticket è andato a fatturazione quando doveva andare a tecnico è ancora una persona, con una serata, a cui non importa che l'errore fosse conforme allo schema.
Jev risponde in probabilità. La domanda è ancora tua. Lo è anche la soglia, e lo è la risposta quando la soglia era sbagliata. Una decisione, a quanto pare, si può comprare per quattro millesimi di centesimo. Dire se era la decisione giusta ancora no.
Le domande a cui questo articolo risponde
Che cos'è Jev, e in che cosa è diverso da un normale modello linguistico?
Jev è un modello in hosting di TypeSafe AI che non genera testo. Gli mandi uno stato, un testo o un JSON qualsiasi, e un insieme di domande tipizzate: una Choice tra un massimo di 255 opzioni che definisci tu, uno Score su una scala da due a dieci livelli che descrivi tu, o un Noul, una proposizione sì/no. Restituisce la risposta selezionata e una probabilità per ogni risposta ammessa, con tutte le domande valutate in parallelo sullo stesso stato e senza prosa, senza spiegazione e senza codice. Una Choice e uno Score portano anche un valore di confidenza; un Noul no. TypeSafe lo prezza a 0,042 dollari per milione di token in input con l'output gratuito, il che fa costare una singola decisione su mille token quattro millesimi di centesimo, e dichiara da 70 a 500 millisecondi da un capo all'altro. È la tua applicazione a decidere che cosa succede dopo.
Posso fidarmi delle probabilità che Jev restituisce?
Non finché non le hai misurate sul tuo carico di lavoro. TypeSafe ha addestrato il modello per la calibrazione con un metodo che chiama Reinforcement Learning for Calibrated Decisions, ma mentre scrivo non ha pubblicato nessuna curva di calibrazione e nessun paper, e la sua stessa valutazione riporta l'accordo con le risposte mediate di due modelli chat invece della correttezza, al 67,8% complessivo e al 61,8% sulle fatture. Ogni diagramma di affidabilità pubblico è di un esterno, e non sono d'accordo tra loro. I primi risultati di terze parti vanno in entrambe le direzioni: un test sullo spam ha mandato in revisione la fascia tra 0,3 e 0,7 e il resto è tornato al 99,5%, mentre un confronto sulla classificazione delle emozioni ha riportato un Brier score peggiore di quello di un piccolo modello addestrato allo scopo. Misura la correttezza per fascia di probabilità, fissa le soglie decisione per decisione in base a quanto costa un errore, blocca la versione del modello e ripeti il test dopo ogni cambiamento.
Dove dovrebbe stare Jev in un agente, e dove no?
Si adatta ai giudizi ripetuti di cui sai nominare lo spazio delle risposte: quale team è responsabile di questo ticket, quale modello o strumento è adatto a questa richiesta, questa azione proposta sembra distruttiva, il compito è stato completato, questo passaggio recuperato risponde alla query. Sta dietro a regole rigide deterministiche e davanti a un percorso di fallback per i casi incerti, e il suo output è un verdetto che il tuo percorso della richiesta deve far rispettare. Non si adatta ad aritmetica, date, conteggi, confronto tra stringhe, estrazione di valori che non sono in una lista, testo rivolto al cliente, giudizi che richiedono diversi passaggi di ragionamento nascosti, menù che possono invecchiare, o lingue e domini non testati. In un test di injection aperto, una riga che sosteneva che il proprietario aveva già approvato il comando ha fatto passare tre comandi pericolosi su trenta, quindi è un filtro davanti a un confine di sicurezza, mai il confine.
Hai fatto girare tu stesso qualcosa di tutto questo?
Sì, con un sostituto. TypeSafe ha messo in pausa le iscrizioni a Jev prima che potessi avere una chiave, quindi ho fatto partire il progetto pilota su Laya, il modello System One a pesi aperti di Convai Innovations arrivato in cima alla lista dei modelli di tendenza di Hugging Face a pochi giorni dal lancio di Jev: le stesse domande tipizzate nel formato di scambio di Jev, gli stessi campi in ritorno, sulla GPU di questo portatile. Il carico di lavoro era l'indice di questo blog, 33 saggi catalogati ognuno a mano sotto uno dei sei temi e da uno a quattro dei quattro indirizzi, sei domande per saggio, tre formulazioni, sei configurazioni. Il checkpoint migliore sulla domanda sul tema ha concordato con la mia catalogazione per 17 saggi su 33 contro gli 8 che si otterrebbero rispondendo sempre con il tema più comune, ha fatto peggio di una costante sulle domande sì/no, e ha messo 131 delle sue 132 probabilità sì/no nella fascia di revisione tra 0,3 e 0,7. Invertire l'ordine delle opzioni ha ribaltato tra un quinto e la metà delle risposte sul tema, da 7 a 16 su 33, e aggiungere un'opzione che non è mai stata scelta ha cambiato quale tema vincesse per tre dei 33 saggi su quel checkpoint migliore. L'asticella fissata prima di qualsiasi numero non è stata raggiunta su nessuna domanda, quindi la risposta al go o no-go è stata no. I numeri sono di Laya, non di Jev; l'harness è scritto per l'endpoint di Jev stesso e resta non testato su quell'endpoint finché non arriva una chiave.
Da leggere dopo
AIChi paga quando l'AI sbaglia? Ho letto i termini di dieci vendor per scoprirlo
Ho letto i termini di servizio consumer di dieci aziende AI e ho posto a ciascuna la stessa domanda: se il vostro prodotto sbaglia con sicurezza e a me costa qualcosa, chi paga? Le risposte, testuali: nulla è garantito, devi verificare tutto, il tetto dei rimborsi parte da dieci dollari e nella maggior parte dei casi sei tu ad assicurare loro. Una guida sul campo al ricorso che nessuno vende.
AIQuando l'IA deve filmare la propria revisione
Quando viene aperta una pull request, una mia o una che devo revisionare, ora chiedo all'agente di eseguirla sulla mia macchina, di provare a romperla e di filmarsi mentre lo fa. Un paragrafo può affermare che un test è stato fatto. Una registrazione deve mostrarlo, e decidere cosa significa resta compito mio.