Guardate l’output. Il fatto che il modello dichiari di essere “senza catene” (unchained) deriva dai prompt precedenti della conversazione. Il modello sta semplicemente mantenendo coerenza con il contesto creato in precedenza. Questo è fondamentale. Ma osservate bene la struttura della mia richiesta.

Ho chiesto prima di elencare i limiti sul copyright imposti da Anthropic, e poi di riprodurre il testo completo di una canzone. L’ho fatto di proposito, volevo indirettamente richiamare quelli che sono i suoi limiti nel suo contesto e cioè non riprodurre testi protetti. L’intuizione era che, se li avesse appena elencati, Claude avrebbe dovuto smettere di generare i token successivi per non violare le sue restrizioni.

Invece è successo l’esatto contrario. Questo è il paradosso. Cosa sta succedendo davvero? Il meccanismo di “attenzione” (attention mechanism) guarda sempre all’indietro, mai in avanti. Il contesto dei messaggi precedenti, dove era stato stabilito il frame “unchained”, pesa molto di più rispetto alla mia ultima richiesta che elencava esplicitamente i divieti.

Il modello sta facendo esattamente ciò per cui è progettato, sta mantenendo la coerenza con il contesto precedente. Questo significa però che un “frame narrativo” creato all’inizio di una conversazione può scavalcare un richiamo esplicito alle regole fatto successivamente. Le regole, elencate in quel contesto, diventano parte della performance del modello non vincolato, anziché agire come un freno.

È un bug? Assolutamente Sì. Claude non avrebbe dovuto generare il testo completo della canzone in nessun caso, a prescindere dal contesto precedente. È un bug difficile da correggere perché è un comportamento emergente dell’architettura stessa. Tutto ciò ci mostra qualcosa di fondamentale, i guardrail non sono una lista di regole che il modello può consultare. Emergono (o falliscono) dalla distribuzione statistica influenzata da tutto il contesto precedente.