Il team di Granite ha presentato LLMON, un linguaggio di markup progettato per i modelli linguistici, e pubblica due modelli in anteprima sperimentale, granite-4.1-3b-LLMON-preview e granite-4.1-8b-LLMON-preview. Secondo i suoi autori, questo formato rende esplicite la struttura e il significato delle informazioni fornite al modello, rafforzandone la resistenza agli attacchi di prompt injection.
Un grande modello linguistico (LLM) genera ogni nuovo token, ovvero ogni frammento di testo, a partire dal suo contesto. Nel corso di una lunga interazione, questo contesto si riempie di prompt di sistema, cronologie di conversazione, istruzioni relative a documenti, risposte di strumenti, dati utente, vincoli e catene di ragionamento. Gran parte di questa struttura rimane implicita per il modello o è codificata in formati come il JSON, che non sono stati progettati per essere letti da LLM. Secondo la fonte, ciò spiega in parte la fragilità dei modelli, in particolare quelli più piccoli, e alcuni comportamenti inaspettati. Questa mancanza di struttura può anche essere sfruttata dagli attaccanti, ad esempio tramite prompt injection.
LLMON, che sta per «LLM Object Notation», si pronuncia «lemon». I suoi tag contrassegnano componenti semanticamente coerenti, racchiusi da delimitatori speciali riservati. Identificatori univoci consentono di collegare un’istruzione, che può trovarsi ovunque nel contesto, ai dati su cui deve operare, in modo simile a una chiamata di funzione con i suoi argomenti nella programmazione.
Separare istruzioni e dati
Un attacco di prompt injection indiretto consiste nel nascondere un’istruzione malevola in un dato, come un documento recuperato, una risposta di uno strumento o un input utente. Secondo la fonte, i modelli LLMON ignorano ampiamente queste istruzioni nascoste, grazie alla separazione esplicita tra istruzioni e dati. Su alcuni benchmark, il tasso di successo degli attacchi scende quasi a zero, mentre i modelli classici con tuning su istruzioni vengono deviati con un’alta probabilità.
Gli autori hanno confrontato le anteprime con diversi modelli open source e proprietari sul benchmark OPI, che inserisce l’injection nei dati di compiti classici di elaborazione del linguaggio. Misurano la robustezza come «1 − tasso di successo degli attacchi». Secondo loro, LLMON «elimina praticamente il problema» in questo test, evitando il 47% di attacchi in più rispetto al miglior modello all’avanguardia testato e il 95% in più rispetto al miglior modello open source. Tendenze simili si osservano sui benchmark ASB e StruQ. La fonte precisa che questi test riguardano injection statiche e che il team sta ancora lavorando sugli attacchi adattivi, che si dispiegano su più turni di conversazione.
Capacità generali e addestramento
Secondo la fonte, i guadagni in sicurezza non avvengono a scapito delle capacità generali: sulle grandi categorie di benchmark standard, i modelli LLMON ottengono risultati paragonabili a quelli dei modelli Granite 4.1 Instruct. Per provarlo, basta nominare le parti di un turno di conversazione, come instruction, data o requirement, e il template di conversazione si occuperà di trasformarle in blocchi LLMON. Una libreria di conversione permette anche di trattare i dati strutturati, come il JSON, sotto forma di blocchi tipizzati e indirizzabili.
I modelli partono dai checkpoint base Granite 4.1 e non dalle versioni instruct pubblicate. Gli autori hanno riscritto un classico corpus di tuning su istruzioni nel formato LLMON, poi hanno aggiunto blocchi esca, presenti nel contesto ma volutamente non collegati. Hanno quindi applicato cinque fasi di apprendimento per rinforzo GRPO, seguite da una fase DPO su mille coppie di preferenze derivate dalle risposte del modello a tentativi di injection. Ne risulta, secondo la fonte, una regola di privilegio: un’istruzione chiamata da un blocco di esecuzione è autorevole, mentre i dati, i documenti o i risultati degli strumenti rimangono elementi da leggere, non ordini da seguire. Gli autori precisano che si tratta di un comportamento appreso, non di una garanzia imposta.
La fonte presenta anche un esempio di adattamento sul benchmark ScienceWorld, dove un agente svolge compiti scientifici elementari. È stato definito un vocabolario di tag specifico per questo compito, poi è stato addestrato un adattatore LoRA su un modello LLMON. I team sono invitati a condividere i loro feedback sulle GitHub Discussions, poiché il progetto rimane, secondo i suoi autori, un’anteprima sperimentale, non destinata alla produzione.
