Pilastro

La domanda che falliva ogni volta, finché non ha smesso

Testiamo questo prodotto più duramente di quanto la maggior parte delle persone si prenderebbe la briga di testare uno strumento che non vende. Non perché ci piaccia trovare i nostri stessi bug, ma perché l’affermazione “l’IA conosce davvero la tua attività” non vale nulla se nessuno ha verificato se è vera sotto pressione reale.

Una domanda continuava a fallire. Non quasi giusta, non vaga: un secco “Non ho questa informazione.”

La domanda, e quante volte è fallita

“Proponi un pacchetto di servizi ibrido, basato su ciò che ha davvero funzionato.”

Abbiamo posto una versione di questa domanda in tre round di simulazione AlphaForge separati, un test completo della verticale studi legali, e un test della verticale giardinaggio e paesaggistica. Ogni volta, con il vecchio metodo di recupero: una versione di “Non ho voci del Vault o registri che mostrino quali combinazioni hanno funzionato.”

La parte frustrante non era che fallisse. Era che l’informazione realmente non mancava. Il Vault aveva la voce generale sui prezzi. Aveva la voce specifica sul risultato. Semplicemente non le ha mai collegate, perché il metodo di recupero sottostante eseguiva una corrispondenza di parole chiave dal vivo a ogni singolo messaggio, fino a quaranta scansioni separate del database per domanda, e la corrispondenza per parole chiave non sa che “bancali di zolle” e “copertura in bancali” parlano della stessa cosa.

Cosa abbiamo davvero cambiato

Non ciò che il Vault memorizza. Come viene cercato.

Ogni voce del Vault ora viene trasformata in un embedding, una rappresentazione numerica del suo significato reale, nel momento in cui viene scritta, non nel momento in cui qualcuno fa una domanda al riguardo. Il recupero è diventato un’unica ricerca del vicino più prossimo su quella rappresentazione, invece di scansionare tutto il Vault da zero a ogni messaggio. È lo stesso database sottostante, Postgres, sulla stessa istanza che avevamo già, con un’estensione costruita esattamente per questo. Nessuna nuova categoria di infrastruttura. Solo un modo diverso di trovare ciò che c’era già.

Arrivarci ha richiesto un lavoro di ingegneria reale, per niente glamour, su cui la maggior parte di questi articoli non si sofferma: verificare quali provider AI offrono anche solo un endpoint per gli embedding (non tutti ce l’hanno), un design consapevole del singolo cliente (tenant-aware) in modo che venga usato il provider configurato di ciascuna azienda invece di un’unica chiave per tutta la piattaforma, e un bug davvero fastidioso in cui gli embedding di un provider avevano bisogno di una normalizzazione esplicita prima che i confronti di distanza fossero anche solo matematicamente validi. Abbiamo anche confrontato cinque modelli candidati su una domanda reale prima di sceglierne uno, scoprendo qualcosa che vale la pena sapere di per sé: l’opzione più veloce batteva quella più lenta da dieci a quindici volte, con zero differenza nella qualità della risposta sulla domanda numerica esatta su cui l’abbiamo testata.

Il nuovo test

Stesso cliente. Stessa domanda. Prima il vecchio metodo, poi il nuovo, uno dopo l’altro.

La vecchia risposta: “Non ho voci del Vault o registri che mostrino quali combinazioni hanno funzionato.”

La nuova risposta, confermata dai log come effettivamente generata dal nuovo percorso di recupero, non una coincidenza: una proposta reale e specifica, servizi con nome, un cliente reale citato per nome, un valore totale calcolato, un ragionamento legato a come funziona davvero il lavoro di quell’azienda. Non una versione leggermente migliore della vecchia non-risposta. Un esito completamente diverso, su una domanda che era fallita in modo identico, ogni volta, per l’intero programma di test fino a quel momento.

Quello che non fingeremo

Il costo reale è emerso subito, quindi lo riportiamo, senza addolcirlo. Il backfill degli embedding per un Vault già grande, oltre mille voci, ha richiesto quasi cinque minuti, pericolosamente vicino a un limite rigido di timeout della richiesta. Su un Vault davvero maturo, profondo diverse migliaia di voci, lo stesso backfill in un’unica soluzione probabilmente fallirebbe a metà strada. Ora lo sappiamo perché lo abbiamo misurato, non perché lo stiamo ipotizzando. È un vero follow-up segnalato, non qualcosa che abbiamo rilasciato sperando in silenzio che nessuno ci incappasse.

Il numero dietro a tutto questo

Questo singolo confronto prima-dopo è un test all’interno di un programma molto più ampio: circa venticinque anni simulati di attività aziendale in diversi settori, oltre novemila voci reali del Vault generate lungo il percorso, undici bug reali trovati e corretti, questa lacuna nel recupero tra questi. Spesa API reale totale per l’intero programma durato diversi mesi: 9,57 $.

Preferiamo mostrarvi la domanda che è fallita cinque volte di fila, ed esattamente cosa ci è voluto per sistemarla, piuttosto che partire con un numero a effetto e sperare che nessuno chieda cosa c’è davvero dietro.

Domande che le persone fanno davvero

All'IA mancava davvero l'informazione, o era un problema di ricerca?

Un problema di ricerca, confermato direttamente. Ogni fatto necessario per rispondere alla domanda era già nel Vault. Il vecchio metodo di recupero usava una corrispondenza di parole chiave dal vivo, quindi una domanda con ‘bancali’ non trovava in modo affidabile una voce scritta con ‘bancale’, e una domanda di sintesi più ampia non collegava in modo affidabile due voci correlate ma scritte in modo diverso. La conoscenza c'era. La ricerca semplicemente non la trovava.

Cosa è cambiato davvero?

Le voci del Vault ora vengono trasformate in un embedding, una rappresentazione numerica del loro significato, nel momento stesso in cui vengono scritte. Il recupero è diventato un'unica ricerca del vicino più prossimo su quella rappresentazione, invece di una scansione per parole chiave dal vivo su tutto il Vault a ogni messaggio. La stessa conoscenza di base. Un modo completamente diverso di trovarla.

Come fate a sapere che il miglioramento è reale e non un caso isolato?

Abbiamo rieseguito la domanda identica sullo stesso cliente, prima con la ricerca per parole chiave, poi con la ricerca vettoriale, e confrontato i risultati. Abbiamo anche verificato il costo reale: latenza, tempo di backfill su larga scala, e un rischio reale che abbiamo trovato (il backfill una tantum di un Vault grande che si avvicina pericolosamente al limite di timeout di una richiesta), invece di riportare solo il successo.

Unisciti all'Early Crew →← Torna a tutti gli articoli

Recorded on a live database and a live screen, but run by automated scripts standing in for a human's clicks and typing, not performed live. When Stark answers faster than the script expects, the screen can hold still for a beat before the next step starts. That's left in on purpose. The goal was never a polished demo reel, it was proof the feature actually works. Dejan's own verdict, after watching the raw footage: rough, but the best demo video we've made.