{"id":4533,"date":"2025-11-12T03:40:50","date_gmt":"2025-11-12T02:40:50","guid":{"rendered":"https:\/\/www.fullo.net\/blog\/?p=4533"},"modified":"2025-11-12T03:41:28","modified_gmt":"2025-11-12T02:41:28","slug":"la-matematica-della-compressione-dei-prompt-per-llm","status":"publish","type":"post","link":"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/","title":{"rendered":"La matematica della compressione dei Prompt per LLM"},"content":{"rendered":"\n<p>Stavo facendo revisione degli esercizi per <a href=\"https:\/\/leanpub.com\/okr-the-right-way\">il mio libro sugli OKR<\/a>. Varie run di esercizi da validare, ognuno con un prompt che descriveva contesto, obiettivi di apprendimento, vincoli, formato output. Prompt tra i 1.800 e 2.500 caratteri. Dopo la cinquantesima iterazione, Claude mi ha gentilmente informato che avevo finito i token della giornata.<\/p>\n\n\n\n<p>Fastidioso? S\u00ec. Ma soprattutto: era un segnale.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>La sera stessa, mentre cercavo soluzioni, mi sono imbattuto in <a href=\"https:\/\/github.com\/toon-format\/toon\">TOON (Tokens Optimization Oriented Notation)<\/a>. L&#8217;idea era brillante: un formato ottimizzato per gestire <strong>strutture dati ripetute<\/strong> nei prompt. Tipo quando devi passare liste di prodotti, cataloghi, database rows. TOON comprimeva questi pattern ripetitivi in modo sistematico, mantenendo la semantica intatta.<\/p>\n\n\n\n<p>Nel mio caso, la situazione era ibrida: avevo le carte degli esercizi in JSON (strutture dati ripetute, perfette per TOON), pi\u00f9 una serie di agenti che simulavano giocatori in diverse partite. Ogni partita generava un report, che veniva dato a un altro agente per analizzare cosa non funzionava.<\/p>\n\n\n\n<p>TOON risolveva elegantemente il problema delle carte JSON. Ma gli agenti? Quelli avevano bisogno di <strong>istruzioni semantiche<\/strong> ripetute: &#8220;Simula un giocatore con esperienza X&#8221;, &#8220;Analizza il report cercando pattern Y&#8221;, &#8220;Genera feedback strutturato in formato Z&#8221;. Centinaia di caratteri di istruzioni che si ripetevano identiche (o quasi) ad ogni run.<\/p>\n\n\n\n<p>Ma il principio era valido: se esiste un pattern replicabile, deve esistere un formato pi\u00f9 efficiente.<\/p>\n\n\n\n<p>La domanda diventa: <strong>quanto di questa prosa \u00e8 effettivamente necessaria?<\/strong> E soprattutto: esiste un formato che mantenga la stessa qualit\u00e0 di output usando meno token?<\/p>\n\n\n\n<p>Prima di buttarmi nell&#8217;esperimento, per\u00f2, ho fatto i compiti a casa. Microsoft Research aveva pubblicato LLMLingua nel 2023, seguito da LLMLingua-2 nel 2024. Entrambi promettevano compressioni fino a 20\u00d7 mantenendo performance. <a href=\"https:\/\/arxiv.org\/html\/2407.08892v1\">Il paper originale<\/a> mostrava risultati impressionanti: compression ratios di 5-14\u00d7 con degradazione minima su GPT-3.5 e Claude 1.3.<\/p>\n\n\n\n<p>Il problema con LLMLingua? Richiedeva un piccolo modello ausiliario per la compressione, setup complessi, dipendenze Python, e &#8211; diciamocelo &#8211; chi ha tempo di integrare un&#8217;intera pipeline quando hai prompt da shippare domani? Serviva qualcosa di pi\u00f9 immediato, manuale, pratico.<\/p>\n\n\n\n<p>Quello che mi serviva era capire <strong>empiricamente<\/strong> dove stava il limite, senza algoritmi black-box. Esperimento diretto, vecchia scuola. Tre varianti dello stesso prompt, metriche chiare, e vedere dove crollava la qualit\u00e0.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">L&#8217;esperimento: tre livelli di compressione<\/h2>\n\n\n\n<p>Per rispondere in modo riproducibile, ho creato tre versioni dello stesso prompt. Task: scrivere un articolo di 1.000 parole sul libro &#8220;OKR The Right Way&#8221;. Non un task banale &#8211; doveva mantenere tono specifico, struttura narrativa, framework tecnici, e riferimenti bibliografici precisi. Il tipo di roba che faccio per i miei corsi, quindi sapevo esattamente cosa aspettarmi.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Variante 1: Natural Verbose (baseline)<\/h3>\n\n\n\n<p>Il prompt verbose seguiva le best practices di Anthropic: frasi complete, spiegazioni dettagliate, esempi inline, XML tags ben strutturati. Quello che trovi nella <a href=\"https:\/\/docs.claude.com\/en\/docs\/build-with-claude\/prompt-engineering\/overview\">documentazione ufficiale<\/a>.<\/p>\n\n\n\n<p><strong>Lunghezza:<\/strong> 2.100 caratteri<br><strong>Output prodotto:<\/strong> 1.083 parole<br><strong>Qualit\u00e0:<\/strong> 9\/10 secondo una scorecard che valutava completezza, tono, struttura e fedelt\u00e0 alle istruzioni<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Variante 2: Structured Optimal<\/h3>\n\n\n\n<p>Il prompt strutturato usava una notazione gerarchica con convenzioni sintattiche chiare:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>SECTION:value|modifier|context<\/code> per la struttura<\/li>\n\n\n\n<li>Operatori simbolici (<code>:<\/code> assign, <code>|<\/code> separate, <code>+<\/code> AND, <code>-<\/code> exclude, <code>!<\/code> negate)<\/li>\n\n\n\n<li>Parole inglesi complete per migliore tokenizzazione (ci torniamo dopo)<\/li>\n\n\n\n<li>Target quantitativi espliciti<\/li>\n<\/ul>\n\n\n\n<p><strong>Lunghezza:<\/strong> 800 caratteri (-62%)<br><strong>Output:<\/strong> 1.013 parole<br><strong>Qualit\u00e0:<\/strong> 8.5\/10<\/p>\n\n\n\n<p>Il decremento di qualit\u00e0 era minimo: descrizioni leggermente meno elaborate, una citazione in meno (Sharon Bowman omessa ma il concetto &#8220;Training from the Back of the Room&#8221; preservato). Niente di critico.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Variante 3: Ultra-Minimal<\/h3>\n\n\n\n<p>Il prompt ultra-compresso spingeva l&#8217;abbreviazione al limite: acronimi aggressivi (<code>PT:patient<\/code>, <code>DX:diagnosis<\/code>), simboli matematici, rimozione di contesto esplicativo. Lunghezza: 380 caratteri (-82%).<\/p>\n\n\n\n<p><strong>Output:<\/strong> 578 parole<br><strong>Problema critico:<\/strong> il prompt aveva richiesto esplicitamente &#8220;non meno di 1.000 parole&#8221;, ma l&#8217;output era del 42% pi\u00f9 corto.<\/p>\n\n\n\n<p>Ecco il cliff.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Il pattern: quando la compressione diventa lossy<\/h2>\n\n\n\n<p>I dati rivelano qualcosa che i paper accademici non enfatizzano abbastanza:<\/p>\n\n\n\n<p><strong>Da V1 a V2:<\/strong> -62% dimensione prompt, -6% qualit\u00e0 output = <strong>ROI eccellente<\/strong><br><strong>Da V2 a V3:<\/strong> -52% dimensione ulteriore, -40% qualit\u00e0 output = <strong>ROI pessimo<\/strong><\/p>\n\n\n\n<p>Esiste una soglia critica sotto la quale il modello inizia a interpretare male i requisiti. Per prompt complessi, questa soglia si colloca tra 500-600 caratteri. Sotto questo limite:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>I requisiti quantitativi vengono fraintesi o ignorati<\/li>\n\n\n\n<li>L&#8217;output diventa telegrafico invece che discorsivo<\/li>\n\n\n\n<li>La comprensibilit\u00e0 del prompt stesso crolla (anche per te, quando lo rileggi dopo tre settimane)<\/li>\n<\/ul>\n\n\n\n<p>Il punto di diminishing returns \u00e8 chiaro: <strong>la compressione ottimale si attesta al 60-70% della lunghezza originale<\/strong>.<\/p>\n\n\n\n<p>Questo dato \u00e8 coerente con quanto trovato dal <a href=\"https:\/\/arxiv.org\/html\/2407.08892v1\">research paper su prompt compression methods<\/a>, che su dataset come LongBench e GSM8K ha mostrato compression ratios ottimali tra 2\u00d7 e 5\u00d7 (50-80% di riduzione). Sopra il 10\u00d7, anche LLMLingua-2 con tutta la sua sofisticazione inizia a soffrire.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Anatomia del formato ottimale<\/h2>\n\n\n\n<p>Analizzando cosa funziona nella Variante 2, emerge un pattern replicabile:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CATEGORY:value|modifier|context<\/code><\/pre>\n\n\n\n<p>La struttura gerarchica usa:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Maiuscolo per sezioni<\/strong> (<code>TONE<\/code>, <code>STRUCTURE<\/code>, <code>OUTPUT<\/code>)<\/li>\n\n\n\n<li><strong>Minuscolo per propriet\u00e0<\/strong> (<code>conversational<\/code>, <code>expert<\/code>)<\/li>\n\n\n\n<li><strong>Operatori consistenti:<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>:<\/code> per assegnazione<\/li>\n\n\n\n<li><code>|<\/code> per alternative o modificatori<\/li>\n\n\n\n<li><code>+<\/code> per operazioni AND<\/li>\n\n\n\n<li><code>-<\/code> per esclusioni<\/li>\n\n\n\n<li><code>!<\/code> per negazioni<\/li>\n\n\n\n<li><code>?<\/code> per trasformazioni<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>Esempio pratico (perch\u00e9 un esempio vale pi\u00f9 di mille spiegazioni):<\/p>\n\n\n\n<p><strong>Verbose (247 caratteri):<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>You are a social media manager. Write engaging posts for LinkedIn. \nKeep them professional but not boring. Use emojis sparingly. \nEach post should be 100-150 words. Focus on B2B tech industry.\nAvoid jargon and corporate speak.<\/code><\/pre>\n\n\n\n<p><strong>Structured Optimal (97 caratteri, -61%):<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SOCIAL_MEDIA:LinkedIn|B2B_tech\nTONE:professional+engaging-boring|emojis_sparse\nLENGTH:100-150_words|EXPLICIT_TARGET\nAVOID:jargon|corporate_speak<\/code><\/pre>\n\n\n\n<p>La semantica \u00e8 identica, la compressione del 61% rientra perfettamente nel sweet spot, e il formato resta &#8220;at a glance&#8221; leggibile. Non serve un dottorato per capire cosa fa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Il prompt converter: quando il meta diventa pratico<\/h2>\n\n\n\n<p>Se il formato ottimale \u00e8 replicabile, pu\u00f2 essere automatizzato? La risposta \u00e8 stata creare un &#8220;prompt converter&#8221;: un meta-prompt che trasforma prompt verbose in formato strutturato ottimale.<\/p>\n\n\n\n<p>Il converter iniziale era lungo 1.470 caratteri e conteneva:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Regole di conversione dettagliate<\/li>\n\n\n\n<li>Esempi di convenzioni sintattiche<\/li>\n\n\n\n<li>Lista di cosa preservare e cosa rimuovere<\/li>\n\n\n\n<li>Formato output atteso<\/li>\n<\/ul>\n\n\n\n<p>Poi mi sono chiesto: e se applico il converter a se stesso? Un sistema di ottimizzazione che si auto-ottimizza dovrebbe convergere a un punto fisso o divergere caoticamente. Tipo il barber paradox, ma con pi\u00f9 token e meno filosofia.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Risultati dell&#8217;auto-applicazione (o: scoprire i punti fissi empiricamente)<\/h3>\n\n\n\n<p><strong>Iterazione 0 (verbose):<\/strong> 1.470 caratteri<br><strong>Iterazione 1 (compressione manuale):<\/strong> 485 caratteri (-67.0%)<br><strong>Iterazione 2 (auto-compressione):<\/strong> 478 caratteri (-67.5%)<br><strong>Iterazione 3 (stimata):<\/strong> 475 caratteri (-67.7%)<\/p>\n\n\n\n<p>Il sistema converge. Ogni iterazione produce miglioramento decrescente:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Iter 1?2: -7 chars (-1.4%)<\/li>\n\n\n\n<li>Iter 2?3: -3 chars (-0.6% stimato)<\/li>\n\n\n\n<li>Iter 3?4: -1 char (-0.2% stimato)<\/li>\n<\/ul>\n\n\n\n<p>Il punto fisso si trova intorno ai <strong>475 caratteri<\/strong>. Ulteriori iterazioni producono miglioramenti inferiori all&#8217;1%.<\/p>\n\n\n\n<p>L&#8217;auto-applicazione non ha solo compresso, ma ha fatto <strong>refactoring intelligente<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Eliminazione ridondanze non evidenti al designer umano<\/li>\n\n\n\n<li>Riorganizzazione logica delle sezioni<\/li>\n\n\n\n<li>Esplicitazione di impliciti (<code>risk_notes<\/code> ? <code>risk_notes|if_semantic_ambiguity<\/code>)<\/li>\n<\/ul>\n\n\n\n<p>Il converter ha dimostrato di &#8220;capire&#8221; le proprie regole e applicarle coerentemente anche a se stesso. Questo \u00e8 un indicatore forte di design auto-consistente. E anche, ammetto, piuttosto soddisfacente da vedere.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Perch\u00e9 funziona: tokenizzazione e prior (la parte nerd ma importante)<\/h2>\n\n\n\n<p>Il formato structured optimal funziona meglio del previsto per due ragioni tecniche che vale la pena capire:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Tokenizzazione efficiente<\/h3>\n\n\n\n<p>I tokenizer basati su Byte Pair Encoding (BPE), che \u00e8 quello che usano GPT, Claude, e praticamente tutti i modelli transformer moderni, sono ottimizzati per parole inglesi comuni. Le abbreviazioni ultra-compresse possono paradossalmente consumare <strong>pi\u00f9<\/strong> token:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"TONE:conv+exp-acad\" ? &#91;\"TONE\", \":\", \"conv\", \"+\", \"exp\", \"-\", \"ac\", \"ad\"] = 8 tokens\n\"TONE:conversational+expert-academic\" ? &#91;\"TONE\", \":\", \"conversational\", \"expert\", \"academic\"] = 5 tokens\n<\/code><\/pre>\n\n\n\n<p>L&#8217;uso di parole complete \u00e8 controintuitivamente pi\u00f9 efficiente. Questo \u00e8 documentato anche nella <a href=\"https:\/\/docs.claude.com\/en\/docs\/build-with-claude\/prompt-engineering\/overview\">ricerca di Anthropic sul prompt engineering<\/a>, dove suggeriscono di evitare abbreviazioni eccessive proprio per questo motivo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Prior nel training<\/h3>\n\n\n\n<p>I Large Language Models hanno visto durante il training:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>File di configurazione (YAML, TOML, JSON)<\/li>\n\n\n\n<li>Code annotations e docstrings<\/li>\n\n\n\n<li>Notazioni matematiche e linguistiche<\/li>\n\n\n\n<li>Markup languages strutturati<\/li>\n<\/ul>\n\n\n\n<p>Questo significa che Claude (e GPT) hanno un <strong>prior forte<\/strong> per notazioni strutturate gerarchiche. Il formato non \u00e8 &#8220;alieno&#8221;, \u00e8 familiare al modello da milioni di esempi di training. \u00c8 come parlare a qualcuno nella sua lingua madre invece che con gesti.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Applicazioni pratiche <\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Use case 1: Template library aziendale<\/h3>\n\n\n\n<p>Un&#8217;azienda con 50+ prompt standardizzati per vari task (code review, documentazione tecnica, customer support, content creation) pu\u00f2:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Convertire tutti i prompt in formato strutturato<\/li>\n\n\n\n<li>Ridurre costi API del 60-70% per ogni chiamata<\/li>\n\n\n\n<li>Rendere i prompt pi\u00f9 facili da versioning (diff pi\u00f9 chiari)<\/li>\n\n\n\n<li>Facilitare modifiche parametriche (cambiare un valore in una struttura \u00e8 pi\u00f9 semplice che riscrivere frasi)<\/li>\n<\/ol>\n\n\n\n<p><strong>ROI reale:<\/strong> se un&#8217;azienda fa 10.000 chiamate API\/mese con prompt da 2.000 caratteri, la riduzione del 65% porta a ~1.3M caratteri risparmiati\/mese. In token (stima ~4 char\/token) sono ~325k token\/mese. A $0.003\/1k tokens (input Claude Sonnet), il risparmio \u00e8 ~$1\/mese per prompt. Con 50 prompt diversi: ~$50\/mese, <strong>$600\/anno<\/strong>.<\/p>\n\n\n\n<p>Il breakeven \u00e8 quasi immediato se i prompt sono usati frequentemente. Non diventerete ricchi, ma neanche \u00e8 aria fritta.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Use case 2: Rapid prototyping<\/h3>\n\n\n\n<p>Durante lo sviluppo di nuove applicazioni AI, i prompt vengono iterati decine di volte. Il formato strutturato permette modifiche chirurgiche:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>TONE:formal ? TONE:casual\nLENGTH:500_words ? LENGTH:200_words\nINCLUDE:examples ? INCLUDE:examples|code_snippets<\/code><\/pre>\n\n\n\n<p>Invece di riscrivere paragrafi interi, si modificano valori precisi. Questo accelera sperimentazione e A\/B testing. Ho risparmiato ore durante lo sviluppo del converter stesso proprio per questo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Use case 3: Chain-of-thought compression<\/h3>\n\n\n\n<p>Per applicazioni che usano chain-of-thought o multi-step reasoning, ogni step ha il suo prompt. Se una pipeline ha 5 step con prompt da 1.500 caratteri ciascuno (7.500 totali), la compressione al 35% porta a 2.625 caratteri totali.<\/p>\n\n\n\n<p>In contesti dove il budget token \u00e8 limitato &#8211; tipo quando lavori con context window pieni o devi stare sotto certi limiti di latency &#8211; questo pu\u00f2 fare la differenza tra una pipeline che funziona e una che esplode i limiti.<\/p>\n\n\n\n<p>Il <a href=\"https:\/\/bdtechtalks.com\/2024\/04\/01\/llmlingua-2-prompt-compression\/\">paper di ricerca su prompt compression<\/a> ha dimostrato che LLMLingua-2 riduce inference time del 3-6\u00d7 proprio grazie a prompt pi\u00f9 corti. Il principio \u00e8 lo stesso, solo che qui lo facciamo manualmente con risultati pi\u00f9 prevedibili.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Use case 4: Embedded systems<\/h3>\n\n\n\n<p>Per applicazioni edge o embedded che comunicano con LLM, la dimensione del prompt trasmesso su rete conta. Un device IoT che manda telemetria con prompt di istruzioni, o un&#8217;app mobile che deve minimizzare payload, beneficia direttamente dalla compressione senza perdita qualitativa.<\/p>\n\n\n\n<p>Non \u00e8 il caso d&#8217;uso pi\u00f9 comune, ma quando serve, serve davvero.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Limiti e controindicazioni (perch\u00e9 l&#8217;onest\u00e0 paga sempre)<\/h2>\n\n\n\n<p>Il formato strutturato non \u00e8 universalmente superiore. Ci sono casi dove NON dovresti usarlo:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Quando NON usarlo<\/h3>\n\n\n\n<p><strong>Documenti legali o medici:<\/strong> La precisione assoluta richiede linguaggio naturale completo e non ambiguo. Ogni parola pu\u00f2 avere peso legale. Il risparmio di token non vale il rischio di ambiguit\u00e0 semantica. Seriamente, non fatelo.<\/p>\n\n\n\n<p><strong>First-time learning:<\/strong> Se un team sta imparando a usare prompt engineering, il formato verbose con spiegazioni estese \u00e8 didatticamente superiore. Il formato strutturato richiede comprensione delle convenzioni. Insegna con il verbose, ottimizza con lo structured.<\/p>\n\n\n\n<p><strong>Prompt one-shot rarissimi:<\/strong> Se un prompt viene usato una volta sola, il tempo di conversione (10-15 minuti) non vale il risparmio di token di una singola chiamata. Economics 101.<\/p>\n\n\n\n<p><strong>Task creativi molto aperti:<\/strong> Quando serve massima espressivit\u00e0 e sfumature emotive\/tonali complesse, il linguaggio naturale offre pi\u00f9 granularit\u00e0. Il formato strutturato eccelle per task tecnici con requisiti chiari, non per scrivere poesia.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Il trade-off documentazione<\/h3>\n\n\n\n<p>Un prompt strutturato da 500 caratteri \u00e8 meno auto-documentante di uno verbose da 1.500. Per sistemi condivisi tra team, serve:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Documentazione separata che spiega le convenzioni<\/li>\n\n\n\n<li>Changelog delle modifiche<\/li>\n\n\n\n<li>Esempi di utilizzo<\/li>\n<\/ul>\n\n\n\n<p>Questo overhead organizzativo va considerato nel ROI totale. Non \u00e8 gratis, anche se i token lo sono di pi\u00f9.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Il caso particolare: image generation prompts<\/h3>\n\n\n\n<p>Mentre preparavo l&#8217;immagine di copertina per questo articolo, ho fatto una scoperta meta-ironica: <strong>i principi di compressione ottimale per text LLM non si applicano agli image generators<\/strong>.<\/p>\n\n\n\n<p>Ho testato tre versioni del prompt per generare una cover in stile Commodore 64 pixel art:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Structured Optimal<\/strong> (1.456 chars): notazione gerarchica come nell&#8217;articolo<\/li>\n\n\n\n<li><strong>Natural Efficient<\/strong> (589 chars): linguaggio naturale scorrevole<\/li>\n\n\n\n<li><strong>Ultra-Minimal<\/strong> (187 chars): abbreviazioni aggressive<\/li>\n<\/ol>\n\n\n\n<p>Risultato? La Version 2 (natural efficient) ha prodotto i risultati migliori con DALL-E e Midjourney. La notazione strutturata ultra-ottimizzata confondeva i modelli &#8211; probabilmente perch\u00e9 il loro training set include principalmente descrizioni in linguaggio naturale, non notazioni tecniche strutturate.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>STRUCTURED: \"COMPOSITION:split_screen|before_after LEFT_SIDE:verbose_text_wall|...\"\n? Confuso, interpretazione literale delle pipe e dei due punti\n\nNATURAL: \"Split screen composition: left side shows verbose text...\"\n? Perfetto, interpreta correttamente la scena<\/code><\/pre>\n\n\n\n<p><strong>Takeaway:<\/strong> I principi di compressione sono domain-specific. Per text instruction prompts (Claude, GPT), la notazione strutturata \u00e8 ottimale. Per image generation prompts, il linguaggio naturale scorrevole ma conciso rimane superiore.<\/p>\n\n\n\n<p>Questo ha senso: i text LLM devono processare istruzioni complesse e lunghe chain-of-thought, dove la struttura aiuta. Gli image generators devono tradurre descrizioni visive, dove la fluidit\u00e0 narrativa \u00e8 pi\u00f9 importante della compressione estrema.<\/p>\n\n\n\n<p>Una lezione nell&#8217;umilt\u00e0: non esiste un formato universalmente ottimale. Il contesto conta sempre.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Convergenza e punti fissi <\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/tetris-prompt.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"580\" src=\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/tetris-prompt.png?resize=580%2C580&#038;ssl=1\" alt=\"\" class=\"wp-image-4535\" srcset=\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/tetris-prompt.png?resize=700%2C700&amp;ssl=1 700w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/tetris-prompt.png?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/tetris-prompt.png?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/tetris-prompt.png?resize=768%2C768&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/tetris-prompt.png?w=1024&amp;ssl=1 1024w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><\/figure>\n\n\n\n<p>L&#8217;esperimento di auto-applicazione ha rivelato una propriet\u00e0 interessante: il sistema converge a un punto fisso. Non \u00e8 magia, \u00e8 information theory.<\/p>\n\n\n\n<p>Per un task generico di &#8220;prompt optimization&#8221; con regole complete, il punto fisso \u00e8 ~475 caratteri. Questo non \u00e8 arbitrario: rappresenta il minimo informazionale necessario per codificare:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ruolo e obiettivo (50 char)<\/li>\n\n\n\n<li>Regole di trasformazione (150 char)<\/li>\n\n\n\n<li>Convenzioni sintattiche (100 char)<\/li>\n\n\n\n<li>Output atteso (75 char)<\/li>\n\n\n\n<li>Constraints (100 char)<\/li>\n<\/ul>\n\n\n\n<p>Sotto questa soglia, la perdita semantica inizia. Sopra questa soglia, c&#8217;\u00e8 ridondanza estraibile.<\/p>\n\n\n\n<p>La velocit\u00e0 di convergenza segue una legge esponenziale decrescente: ogni iterazione riduce il miglioramento del ~60%. Questo suggerisce che <strong>2-3 iterazioni sono sufficienti<\/strong> per raggiungere il 95% dell&#8217;ottimizzazione possibile.<\/p>\n\n\n\n<p>Questo pattern \u00e8 consistente con quanto Claude Shannon aveva gi\u00e0 teorizzato negli anni &#8217;40 sulla compressione ottimale: esiste un limite teorico oltre il quale stai comprimendo rumore invece che ridondanza. <a href=\"https:\/\/schlaff.com\/wp\/the-art-of-prompt-compression-from-claude-shannon-to-llms\/\">Un ottimo articolo sul tema<\/a> collega Shannon information theory ai modern LLM prompts in modo molto chiaro.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pattern replicabili <\/h2>\n\n\n\n<p>Dall&#8217;esperimento emergono pattern generalizzabili che puoi usare da domani:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pattern 1: Gerarchia esplicita<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>TOP_LEVEL:\n  sub_property:value\n  another_property:value|modifier<\/code><\/pre>\n\n\n\n<p>Meglio di strutture piatte o implicite. I modelli &#8220;capiscono&#8221; la gerarchia.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pattern 2: Operatori consistenti<\/h3>\n\n\n\n<p>Non inventare sintassi custom ogni volta. Usa convenzioni riconoscibili:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>:<\/code> per &#8220;\u00e8&#8221;<\/li>\n\n\n\n<li><code>|<\/code> per &#8220;oppure\/o anche&#8221;<\/li>\n\n\n\n<li><code>+<\/code> per &#8220;e&#8221;<\/li>\n\n\n\n<li><code>-<\/code> per &#8220;ma non&#8221;<\/li>\n\n\n\n<li><code>!<\/code> per &#8220;negazione\/assenza&#8221;<\/li>\n\n\n\n<li><code>?<\/code> per &#8220;diventa\/trasforma in&#8221;<\/li>\n<\/ul>\n\n\n\n<p>La consistenza conta pi\u00f9 della perfezione teorica.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pattern 3: Target espliciti<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>BAD:  OUTPUT:long_article\nGOOD: OUTPUT:1500-2000_words|EXPLICIT_TARGET<\/code><\/pre>\n\n\n\n<p>I numeri non vanno <strong>mai<\/strong> compressi o approssimati. Questo l&#8217;ho imparato nel modo difficile con la Variante 3.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pattern 4: Liste brackettate<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>CHECKS:&#91;SQL_injection|XSS|CSRF|authentication|authorization]<\/code><\/pre>\n\n\n\n<p>Invece di elenchi puntati in prosa. Pi\u00f9 compatto, pi\u00f9 chiaro.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pattern 5: Negazioni su antipattern<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>AVOID:!input_validation|!error_handling|hardcoded_credentials<\/code><\/pre>\n\n\n\n<p>Il <code>!<\/code> davanti indica &#8220;mancanza da evitare&#8221; vs &#8220;presenza da evitare&#8221;. Subtle ma importante.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Direzioni future<\/h2>\n\n\n\n<p>Questo esperimento apre diverse direzioni che mi piacerebbe esplorare:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Domain-specific compression dictionaries<\/h3>\n\n\n\n<p>Per domini specifici (medical, legal, finance), creare dizionari di abbreviazioni standard. Esempio medicina:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PT:patient|SX:symptoms|DX:diagnosis|TX:treatment<\/code><\/pre>\n\n\n\n<p>Con glossario condiviso, la compressione pu\u00f2 raggiungere 80% mantenendo precisione. Servirebbero per\u00f2 esperti del dominio per validare.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Hybrid prompting<\/h3>\n\n\n\n<p>Sezioni critiche verbose + sezioni tecniche strutturate:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CONTEXT: &#91;prosa naturale con sfumature importanti]\n\nTECHNICAL_SPECS:\n  format:JSON\n  fields:&#91;name|age|diagnosis|treatment_plan]\n  validation:strict_schema<\/code><\/pre>\n\n\n\n<p>Best of both worlds. Sto testando questo approccio su alcuni progetti e sembra promettente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Prompt compilation<\/h3>\n\n\n\n<p>Tool che prendono prompt verbose con annotazioni e compilano automaticamente in formato ottimale, simile a compilatori per linguaggi di programmazione:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># @target: structured-optimal\n# @compression: 65%\n# @preserve: examples, tone_markers\n\nYou are a code reviewer...\n&#91;resto del prompt verbose]<\/code><\/pre>\n\n\n\n<p>Output compilato automaticamente con metriche e warning. Tipo TypeScript per prompts.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Adaptive compression<\/h3>\n\n\n\n<p>Sistema che monitora quality metrics degli output e adatta dinamicamente il livello di compressione:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Se quality score > 0.95: aumenta compressione del 5%<\/li>\n\n\n\n<li>Se quality score &lt; 0.85: riduci compressione del 5%<\/li>\n<\/ul>\n\n\n\n<p>Trova automaticamente il punto ottimale per ogni task. Questo richiederebbe per\u00f2 un feedback loop robusto, che non \u00e8 banale da implementare.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusioni empiriche <\/h2>\n\n\n\n<p>I dati raccolti permettono conclusioni quantitative:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Esiste un sweet spot:<\/strong> 60-70% di compressione con &lt;10% perdita qualitativa<\/li>\n\n\n\n<li><strong>Il cliff \u00e8 reale:<\/strong> Sotto il 30% della lunghezza originale, la qualit\u00e0 crolla >40%<\/li>\n\n\n\n<li><strong>Convergenza prevedibile:<\/strong> Auto-ottimizzazione converge in 2-3 iterazioni<\/li>\n\n\n\n<li><strong>ROI immediato:<\/strong> Per prompt usati >10 volte, il breakeven \u00e8 garantito<\/li>\n\n\n\n<li><strong>Formato stabile:<\/strong> Structured English Notation \u00e8 ottimale per tokenizer BPE<\/li>\n<\/ol>\n\n\n\n<p>Il linguaggio naturale verbose ha circa <strong>65% di ridondanza<\/strong> quando usato per istruzioni tecniche a LLM. Quella ridondanza \u00e8 utile per umani (chiarezza, documentazione, insegnamento) ma costosa per macchine.<\/p>\n\n\n\n<p>Il formato strutturato ottimale non \u00e8 un metalinguaggio esoterico, ma una notazione familiare ai modelli dal training. \u00c8 leggibile dagli umani &#8220;at a glance&#8221; e processabile efficientemente dalle macchine.<\/p>\n\n\n\n<p>La compressione non \u00e8 solo risparmio economico, ma <strong>design migliore<\/strong>: prompt pi\u00f9 chiari, modificabili, versioning pi\u00f9 facile, meno ambiguit\u00e0. Il constraint di spazio forza precisione. Come diceva Antoine de Saint-Exup\u00e9ry: &#8220;Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away.&#8221;<\/p>\n\n\n\n<p>Solo che lui parlava di aerei e io di prompt. Ma il principio regge.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Riferimenti e letture consigliate<\/h2>\n\n\n\n<p>Per approfondire il tema della prompt compression e le tecniche correlate:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>LLMLingua &amp; LLMLingua-2<\/strong> (Microsoft Research): <a href=\"https:\/\/arxiv.org\/html\/2407.08892v1\">Paper originale su compression methods<\/a> e <a href=\"https:\/\/bdtechtalks.com\/2024\/04\/01\/llmlingua-2-prompt-compression\/\">articolo tecnico su LLMLingua-2<\/a><\/li>\n\n\n\n<li><strong>Anthropic Prompt Engineering Guide<\/strong>: <a href=\"https:\/\/docs.claude.com\/en\/docs\/build-with-claude\/prompt-engineering\/overview\">Documentazione ufficiale<\/a> con best practices e prompt improver<\/li>\n\n\n\n<li><strong>Claude Shannon e information theory applicata a LLM<\/strong>: <a href=\"https:\/\/schlaff.com\/wp\/the-art-of-prompt-compression-from-claude-shannon-to-llms\/\">Ottimo articolo divulgativo<\/a><\/li>\n\n\n\n<li><strong>PromptHub research<\/strong>: <a href=\"https:\/\/prompthub.substack.com\/p\/save-money-with-prompt-compression\">Analisi pratica su risparmio costi<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Materiali e riproducibilit\u00e0<\/h2>\n\n\n\n<p>L&#8217;esperimento completo include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tre varianti di prompt con metriche comparative<\/li>\n\n\n\n<li>Output generati da ciascuna variante<\/li>\n\n\n\n<li>Scorecard di valutazione qualitativa<\/li>\n\n\n\n<li>Prompt converter auto-applicato con traccia di convergenza<\/li>\n\n\n\n<li>Test su prompt reali (code review, social media, technical writing)<\/li>\n<\/ul>\n\n\n\n<p>Il formato structured optimal proposto non \u00e8 proprietario o brevettato &#8211; \u00e8 una convenzione aperta che chiunque pu\u00f2 adottare e adattare. <\/p>\n\n\n\n<p><strong>Il converter \u00e8 disponibile su <a href=\"https:\/\/github.com\/fullo\/claude-prompt-converter\">GitHub<\/a> per sperimentazione.<\/strong><\/p>\n\n\n\n<p>Chi volesse replicare pu\u00f2 iniziare con un singolo prompt ad alto utilizzo, convertirlo manualmente seguendo i pattern descritti, testare side-by-side con la versione verbose, e misurare il delta qualitativo e il risparmio token.<\/p>\n\n\n\n<p>La matematica della compressione, in questo caso, non mente: c&#8217;\u00e8 un punto di equilibrio reale, misurabile, replicabile. E quel punto si trova molto pi\u00f9 in l\u00e0 di quanto la maggior parte dei praticanti attualmente utilizzi.<\/p>\n\n\n\n<p><strong>Note:<\/strong> Questo articolo \u00e8 basato su test empirici condotti con Claude Sonnet 4.5 nel novembre 2025. I risultati specifici (percentuali, punti fissi) possono variare con altri modelli o versioni future, ma i principi generali (esistenza di un sweet spot, legge dei diminishing returns, convergenza) dovrebbero mantenersi validi per architetture transformer-based con tokenizer BPE<\/p>\n","protected":false},"excerpt":{"rendered":"<p>TL;DR &#8211; Il cliff della compressione<\/p>\n<p>Puoi comprimere i tuoi prompt del 60-70% senza perdita qualitativa significativa. Sotto quella soglia, la qualit\u00e0 crolla. Ho testato tre varianti dello stesso prompt, applicato un converter a se stesso, e scoperto che i LLM hanno un punto fisso di convergenza intorno ai 475 caratteri per task complessi. E anche questo articolo \u00e8 un test del prompt converter ;)<\/p>\n","protected":false},"author":1,"featured_media":4534,"comment_status":"closed","ping_status":"open","sticky":false,"template":"templates\/template-cover.php","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[16,5],"tags":[2413,2430,1161,1044],"class_list":["post-4533","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-lifehack","category-tecnologia","tag-ai","tag-claude","tag-optimization","tag-prompt"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>La matematica della compressione dei Prompt per LLM - Fullo<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"La matematica della compressione dei Prompt per LLM - Fullo\" \/>\n<meta property=\"og:description\" content=\"TL;DR - Il cliff della compressione Puoi comprimere i tuoi prompt del 60-70% senza perdita qualitativa significativa. Sotto quella soglia, la qualit\u00e0 crolla. Ho testato tre varianti dello stesso prompt, applicato un converter a se stesso, e scoperto che i LLM hanno un punto fisso di convergenza intorno ai 475 caratteri per task complessi. E anche questo articolo \u00e8 un test del prompt converter ;)\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/\" \/>\n<meta property=\"og:site_name\" content=\"Fullo\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-12T02:40:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-12T02:41:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/compressed-prompt.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Francesco Fullone\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fullo\" \/>\n<meta name=\"twitter:site\" content=\"@fullo\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Francesco Fullone\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/\"},\"author\":{\"name\":\"Francesco Fullone\",\"@id\":\"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c\"},\"headline\":\"La matematica della compressione dei Prompt per LLM\",\"datePublished\":\"2025-11-12T02:40:50+00:00\",\"dateModified\":\"2025-11-12T02:41:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/\"},\"wordCount\":2774,\"publisher\":{\"@id\":\"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c\"},\"image\":{\"@id\":\"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/compressed-prompt.png?fit=1024%2C1024&ssl=1\",\"keywords\":[\"ai\",\"claude\",\"optimization\",\"prompt\"],\"articleSection\":[\"lifehack\",\"tecnologia\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/\",\"url\":\"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/\",\"name\":\"La matematica della compressione dei Prompt per LLM - Fullo\",\"isPartOf\":{\"@id\":\"https:\/\/www.fullo.net\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/compressed-prompt.png?fit=1024%2C1024&ssl=1\",\"datePublished\":\"2025-11-12T02:40:50+00:00\",\"dateModified\":\"2025-11-12T02:41:28+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/compressed-prompt.png?fit=1024%2C1024&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/compressed-prompt.png?fit=1024%2C1024&ssl=1\",\"width\":1024,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.fullo.net\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"La matematica della compressione dei Prompt per LLM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.fullo.net\/blog\/#website\",\"url\":\"https:\/\/www.fullo.net\/blog\/\",\"name\":\"Fullo\",\"description\":\"nulla e&#039; impossibile per chi non lo deve fare!\",\"publisher\":{\"@id\":\"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.fullo.net\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c\",\"name\":\"Francesco Fullone\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1\",\"url\":\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1\",\"width\":622,\"height\":622,\"caption\":\"Francesco Fullone\"},\"logo\":{\"@id\":\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1\"},\"sameAs\":[\"http:\/\/www.fullo.net\",\"https:\/\/www.linkedin.com\/in\/fullo\",\"https:\/\/x.com\/fullo\"],\"url\":\"https:\/\/www.fullo.net\/blog\/author\/fullo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"La matematica della compressione dei Prompt per LLM - Fullo","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/","og_locale":"en_US","og_type":"article","og_title":"La matematica della compressione dei Prompt per LLM - Fullo","og_description":"TL;DR - Il cliff della compressione Puoi comprimere i tuoi prompt del 60-70% senza perdita qualitativa significativa. Sotto quella soglia, la qualit\u00e0 crolla. Ho testato tre varianti dello stesso prompt, applicato un converter a se stesso, e scoperto che i LLM hanno un punto fisso di convergenza intorno ai 475 caratteri per task complessi. E anche questo articolo \u00e8 un test del prompt converter ;)","og_url":"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/","og_site_name":"Fullo","article_published_time":"2025-11-12T02:40:50+00:00","article_modified_time":"2025-11-12T02:41:28+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/compressed-prompt.png","type":"image\/png"}],"author":"Francesco Fullone","twitter_card":"summary_large_image","twitter_creator":"@fullo","twitter_site":"@fullo","twitter_misc":{"Written by":"Francesco Fullone","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/#article","isPartOf":{"@id":"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/"},"author":{"name":"Francesco Fullone","@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c"},"headline":"La matematica della compressione dei Prompt per LLM","datePublished":"2025-11-12T02:40:50+00:00","dateModified":"2025-11-12T02:41:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/"},"wordCount":2774,"publisher":{"@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c"},"image":{"@id":"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/compressed-prompt.png?fit=1024%2C1024&ssl=1","keywords":["ai","claude","optimization","prompt"],"articleSection":["lifehack","tecnologia"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/","url":"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/","name":"La matematica della compressione dei Prompt per LLM - Fullo","isPartOf":{"@id":"https:\/\/www.fullo.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/#primaryimage"},"image":{"@id":"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/compressed-prompt.png?fit=1024%2C1024&ssl=1","datePublished":"2025-11-12T02:40:50+00:00","dateModified":"2025-11-12T02:41:28+00:00","breadcrumb":{"@id":"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/#primaryimage","url":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/compressed-prompt.png?fit=1024%2C1024&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/compressed-prompt.png?fit=1024%2C1024&ssl=1","width":1024,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fullo.net\/blog\/"},{"@type":"ListItem","position":2,"name":"La matematica della compressione dei Prompt per LLM"}]},{"@type":"WebSite","@id":"https:\/\/www.fullo.net\/blog\/#website","url":"https:\/\/www.fullo.net\/blog\/","name":"Fullo","description":"nulla e&#039; impossibile per chi non lo deve fare!","publisher":{"@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.fullo.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c","name":"Francesco Fullone","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1","url":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1","width":622,"height":622,"caption":"Francesco Fullone"},"logo":{"@id":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1"},"sameAs":["http:\/\/www.fullo.net","https:\/\/www.linkedin.com\/in\/fullo","https:\/\/x.com\/fullo"],"url":"https:\/\/www.fullo.net\/blog\/author\/fullo\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/11\/compressed-prompt.png?fit=1024%2C1024&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3OSc1-1b7","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":4460,"url":"https:\/\/www.fullo.net\/blog\/2025\/10\/07\/anche-meno-pero\/","url_meta":{"origin":4533,"position":0},"title":"Anche meno per\u00f2&#8230;","author":"Francesco Fullone","date":"07\/10\/2025","format":false,"excerpt":"Nell'ultimo periodo ho testato in giro il workshop sui KPI, validato i modelli di gioco, stampato prototipi delle carte, modificato le carte ed i \"tavoli di gioco\" fisici e su miro e rivisto le carte. Un lavorone in cui mi sono divertito tantissimo.","rel":"","context":"In &quot;advisoring&quot;","block_context":{"text":"advisoring","link":"https:\/\/www.fullo.net\/blog\/category\/entrepreneurship\/advisoring\/"},"img":{"alt_text":"KPI ,the right way. Il libro \u00e8 su LeanPUB","src":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/10\/ChatGPT-Image-Oct-8-2025-12_34_15-AM.png?fit=800%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/10\/ChatGPT-Image-Oct-8-2025-12_34_15-AM.png?fit=800%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/10\/ChatGPT-Image-Oct-8-2025-12_34_15-AM.png?fit=800%2C1200&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/10\/ChatGPT-Image-Oct-8-2025-12_34_15-AM.png?fit=800%2C1200&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":4595,"url":"https:\/\/www.fullo.net\/blog\/2026\/03\/18\/il-paradosso-del-cervello-aumentato\/","url_meta":{"origin":4533,"position":1},"title":"Il paradosso del cervello aumentato","author":"Francesco Fullone","date":"18\/03\/2026","format":false,"excerpt":"Sto usando un LLM per scrivere un articolo su come usare un LLM senza atrofizzare il cervello. Se questo vi sembra un cortocircuito, avete ragione. Se vi sembra anche la cosa pi\u00f9 onesta che potessi fare sull'argomento, allora siete pronti per quello che segue.","rel":"","context":"In &quot;lifehack&quot;","block_context":{"text":"lifehack","link":"https:\/\/www.fullo.net\/blog\/category\/di-tutto-un-po\/lifehack\/"},"img":{"alt_text":"Il paradosso del cervello aumentato","src":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/skadush.png?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/skadush.png?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/skadush.png?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/skadush.png?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/skadush.png?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":4396,"url":"https:\/\/www.fullo.net\/blog\/2025\/05\/23\/farsi-gabbare-dai-llm-un-altro-esperimento-mentale\/","url_meta":{"origin":4533,"position":2},"title":"Farsi gabbare dai LLM, un altro esperimento mentale","author":"Francesco Fullone","date":"23\/05\/2025","format":false,"excerpt":"Dopo aver letto del comportamento inquietante di Claude Opus 4 (che ricatta gli sviluppatori nell'84% dei test), ho testato le presunte \"capacit\u00e0 avanzate\" di Sonnet 4. Risultato? L'AI ha ammesso che il 70% dei suoi \"miglioramenti rivoluzionari\" sono ottenibili anche con la versione 3.7 usando prompt engineering appropriato. La differenza\u2026","rel":"","context":"In &quot;pensieri&quot;","block_context":{"text":"pensieri","link":"https:\/\/www.fullo.net\/blog\/category\/pensieri\/"},"img":{"alt_text":"gabba gabba ai","src":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/05\/9770265b-63a8-474c-a39a-e2ede243155c.png?fit=1200%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/05\/9770265b-63a8-474c-a39a-e2ede243155c.png?fit=1200%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/05\/9770265b-63a8-474c-a39a-e2ede243155c.png?fit=1200%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/05\/9770265b-63a8-474c-a39a-e2ede243155c.png?fit=1200%2C800&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/05\/9770265b-63a8-474c-a39a-e2ede243155c.png?fit=1200%2C800&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":4603,"url":"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/","url_meta":{"origin":4533,"position":3},"title":"Agenti disfunzionali, software funzionante","author":"Francesco Fullone","date":"23\/03\/2026","format":false,"excerpt":"Per ottenere software decente da cinque agenti AI, ho dovuto simulare un ufficio dove nessuno si fida di nessuno. PM paranoico, QA smascherato, Security che controverifica tutto. Diciassette iterazioni, 606 test, e una domanda aperta che ancora non so rispondere: sto applicando ingegneria sociale come workaround a un limite strutturale\u2026","rel":"","context":"In &quot;lifehack&quot;","block_context":{"text":"lifehack","link":"https:\/\/www.fullo.net\/blog\/category\/di-tutto-un-po\/lifehack\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?fit=1200%2C670&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?fit=1200%2C670&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?fit=1200%2C670&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?fit=1200%2C670&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?fit=1200%2C670&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":4434,"url":"https:\/\/www.fullo.net\/blog\/2025\/08\/08\/kpi-the-right-way\/","url_meta":{"origin":4533,"position":4},"title":"KPI, the right way","author":"Francesco Fullone","date":"08\/08\/2025","format":false,"excerpt":"Quando ti accorgi che tutti parlano di OKR ma nessuno sa cosa sia un KPI decente, l'unica soluzione sensata \u00e8 creare un corso fatto di carte da gioco e far finta che sia tutto normale.","rel":"","context":"In &quot;advisoring&quot;","block_context":{"text":"advisoring","link":"https:\/\/www.fullo.net\/blog\/category\/entrepreneurship\/advisoring\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/08\/image.png?fit=933%2C430&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/08\/image.png?fit=933%2C430&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/08\/image.png?fit=933%2C430&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2025\/08\/image.png?fit=933%2C430&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":4588,"url":"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/","url_meta":{"origin":4533,"position":5},"title":"Vibe coding e Green Software, si pu\u00f2 fare!","author":"Francesco Fullone","date":"13\/03\/2026","format":false,"excerpt":"Stavo preparando un hackathon sul green software. Quello che doveva essere un esperimento veloce si \u00e8 trasformato in quattro tool open source in cascata, ognuno estratto dal problema reale che il precedente aveva lasciato irrisolto. Il risultato: un CLAUDE.md come contratto tra developer e agente AI, una libreria TypeScript zero-dipendenze\u2026","rel":"","context":"In &quot;php&quot;","block_context":{"text":"php","link":"https:\/\/www.fullo.net\/blog\/category\/tecnologia\/php\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/frankenstein-junior-jr-1799166.gif?fit=454%2C250&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4533","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/comments?post=4533"}],"version-history":[{"count":6,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4533\/revisions"}],"predecessor-version":[{"id":4541,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4533\/revisions\/4541"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/media\/4534"}],"wp:attachment":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/media?parent=4533"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/categories?post=4533"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/tags?post=4533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}