← Torna al blog
EngineeringBuild in PublicVideo

Ho chiesto a un LLM di correggere i nomi scritti male. Ha rinominato il prodotto.

Il mio clipper AI corregge i nomi propri nei trascritti. In un video ha sostituito un modello sconosciuto con un concorrente reale. Perché, e come l'ho risolto.

28 settembre 2026

Ho chiesto a un LLM di correggere i nomi scritti male. Ha rinominato il prodotto.

Creato: 28 settembre 2026 · Aggiornato: 28 settembre 2026

Katto è un clipper video AI. Carichi un video lungo, lui ritaglia i momenti migliori in short verticali e scrive i sottotitoli al posto tuo. Lo sviluppo da solo, in pubblico. Questo articolo parla di una funzione che pubblicizzo nella pagina dei prezzi, e che ho beccato a fare in silenzio l'esatto contrario del suo lavoro.

Il problema che volevo risolvere

Lo speech-to-text è bravissimo con le parole e pessimo con i nomi. Whisper sente un marchio che non ha mai incontrato e lo scrive in modo fonetico. "Trump" diventa "trompe". "Suárez" diventa "Suares". "ChatGPT" diventa "chatgépété". In un video francese sul calcio una volta ne ho contati novantotto in un solo trascritto.

I sottotitoli con i nomi storpiati sembrano fatti con sciatteria, e sono la parte più visibile di una clip. Così ho aggiunto un passaggio di correzione: dopo la trascrizione, il testo va a un piccolo modello linguistico con una sola istruzione, trova i nomi propri scritti foneticamente e correggi l'ortografia. Costa circa un centesimo a video. Ha sistemato tutti e novantotto.

Cosa è finito davvero in produzione

La settimana scorsa un utente ha clippato un video francese sui large language model. Chi parlava continuava a citare un modello chiamato JEV. Whisper l'ha sentito e ha scritto "Jev", che è abbastanza vicino da non far battere ciglio a nessuno.

Le clip sono uscite con i titoli "Perché Jamba è sopravvalutato" e "Jamba: rivoluzione e sopravvalutato allo stesso tempo". I sottotitoli dicevano Jamba. Le descrizioni dicevano Jamba.

Jamba è un large language model reale, fatto da AI21. Semplicemente non è quello del video.

Sono andato a guardare cosa aveva salvato la pipeline. Il trascritto archiviato diceva "Jev" due volte e "Jamba" zero volte. Ogni fase successiva diceva "Jamba" e mai "Jev": i candidati con punteggio, i metadati delle clip, il pool di clip, ventiquattro occorrenze in tutto. La trascrizione era corretta. La cosa che avevo aggiunto per proteggerla l'aveva rovinata.

Perché il modello l'ha fatto

Ha fatto esattamente quello che fa un assistente premuroso. Il video parla di modelli linguistici. "Jev" non è un modello che conosce. "Jamba" è un modello che conosce, e i due non sono così lontani se strizzi gli occhi. Nel contesto, sostituire l'uno con l'altro sembra una correzione più che un'invenzione.

È la modalità di fallimento di cui nessuno ti avverte, con questo tipo di compito. Un correttore ortografico che non riconosce una parola la lascia stare. Un modello linguistico che non riconosce una parola si aggrappa alla parola più vicina che invece riconosce, e più conoscenza di dominio ha, più quella presa diventa sicura di sé e sbagliata. Il mio correttore era peggiore sui nomi rari proprio perché era bravo su quelli comuni.

La parte che brucia

Ci avevo già pensato. Il prompt diceva, in maiuscolo:

Correggi SOLO ortografia e maiuscole. Non sostituire MAI un nome con un nome DIVERSO. Inventare un nome plausibile ma sbagliato è PEGGIO che lasciare invariato un nome insolito. […] NON indovinare un nome più noto partendo dal contesto.

Tre frasi, inequivocabili, scritte apposta per impedire quello che è successo. Il modello le ha lette e ha rinominato il prodotto lo stesso.

Non credo che il prompt fosse scritto male, e non credo più che uno migliore avrebbe aiutato. Chiedere a un modello di non fare la cosa verso cui è incline è una richiesta, non un vincolo. Regge quasi sempre, il che è peggio che non reggere mai, perché smetti di controllare.

Cosa ho fatto al suo posto

La regola è uscita dal prompt ed è entrata nel codice. Il modello propone ancora le correzioni; ora una funzione decide se ciascuna è una correzione ortografica o una rinomina, e scarta in silenzio le rinomine.

Il test è volutamente grezzo: togli maiuscole e accenti da entrambe le stringhe, poi misura quanto dell'originale sopravvive nella sostituzione. Sopra 0.6, è lo stesso nome scritto in modo diverso. Sotto, è un nome diverso.

Tutte le correzioni del mio set di test sopravvivono. Alcune correzioni legittime no: la quinta riga è un caso reale. Un francese che dice "Nguyen" viene sentito come "nouillène", le due stringhe non hanno quasi nulla in comune una volta tolti gli accenti, e il controllo ora butta via quella correzione. Lo stesso succederà ai nomi giapponesi romanizzati e agli acronimi scanditi lettera per lettera in un'altra lingua.

È il lato che ho scelto. Un nome strano lasciato com'è si vede, e chi legge può capire cosa si intendeva. Un nome sbagliato non si vede, e nessuno può capirlo. I rifiuti vengono loggati con entrambe le stringhe, perché un rifiuto significa che il modello ha appena provato a rinominare qualcosa, e vale la pena vederlo.

Le lezioni

Una regola che un modello può ignorare non è una regola. Se un vincolo conta, deve stare nel codice che gira dopo il modello, non in un paragrafo che il modello legge. I prompt esprimono un'intenzione. Non la fanno rispettare.

Guarda la direzione di una correzione, non solo la sua presenza. Su questo passaggio avevo delle metriche: quante correzioni faceva per video. Novantotto sembrava un numero sano. Niente misurava se una correzione avvicinasse il testo alla verità o lo allontanasse, e una correzione sbagliata è indistinguibile da una buona se tutto quello che conti è il totale.

Una pipeline che salva l'input e consegna l'output può mentirti due volte. Il trascritto archiviato diceva "Jev" mentre ogni clip consegnata diceva "Jamba". Se avessi letto solo l'archivio avrei concluso che la pipeline funzionava. Il controllo che conta è quello su ciò che è uscito.

La sicurezza di sé fa parte del fallimento. Un correttore che lascia stare un nome sconosciuto produce una stranezza visibile e innocua. Uno che lo sostituisce produce un testo pulito, scorrevole e sbagliato che nessuno mette in dubbio, me compreso, finché la persona che ha fatto il video non legge i propri sottotitoli.

Il controllo è andato in produzione lo stesso giorno. Se clippi un video su qualcosa di poco noto e Katto lascia un nome insolito esattamente come l'ha sentito, ora è una scelta deliberata.

Articoli correlati

Pronto a trasformare i tuoi video in clip virali?

Katto taglia, sottotitola e riformatta automaticamente i tuoi video lunghi in contenuti brevi.

Prova Katto gratis →
Ho chiesto a un LLM di correggere i nomi scritti male. Ha rinominato il prodotto. | Katto