Perso nel mezzo
Effetti dell'attenzione sulla posizione.
Perso nel mezzo è una lezione AI Prompt Engineering gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Prompt Engineering, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Prompt Engineering include 4 lezioni in totale.
Effetto «lost in the middle»
Nei modelli a contesto lungo, l'accuratezza del retrieval segue una curva a forma di U in base alla posizione: i fatti all'inizio e alla fine del contesto vengono richiamati bene, mentre quelli al centro vengono richiamati peggio. Questo è l'effetto «lost in the middle».
- È una proprietà dell'attenzione e dell'addestramento, non un fenomeno casuale.
- Persiste anche quando la risposta è presente in modo inequivocabile.
La posizione non è neutrale: è un fattore di affidabilità di cui deve tenere conto nella progettazione.
Perché il centro è penalizzato
Nel centro si sommano diverse pressioni: i bias posizionali favoriscono i token più recenti e quelli iniziali, i dati di addestramento sovrarappresentano gli schemi in cui la risposta è vicina all'inizio o alla fine e l'enorme quantità di distrattori concorrenti nella parte interna diluisce l'attenzione su ogni singolo fatto.
Non può rimuovere il bias dal modello, ma può smettere di contrastarlo.
Posizioni i contenuti critici ai margini
La prima contromisura, e la più affidabile, consiste nel mettere ai margini ciò che il modello deve utilizzare. L'istruzione dell'attività e le informazioni più importanti devono trovarsi vicino all'inizio e alla fine, non essere sepolte al centro.
- Inizi con l'attività e i fatti chiave.
- Ripeta l'istruzione principale proprio alla fine («promemoria del compito: ...»).
context = (
TASK_INSTRUCTION +
KEY_EVIDENCE +
bulk_supporting_material +
TASK_REMINDER # restate at the tail
)Posizionamento ordinato per rilevanza
Quando controlla l'ordine dei chunk recuperati, non li disponga dall'inizio alla fine secondo il punteggio di retrieval. Li intercalI in modo che i chunk più rilevanti si trovino su entrambi i margini e quelli meno rilevanti riempiano il centro, sfruttando deliberatamente la curva a U.
Questo «caricamento ai margini» può recuperare una parte consistente della perdita nelle posizioni centrali.
def edge_load(chunks):
# chunks sorted by relevance desc
head, tail = [], []
for i, c in enumerate(chunks):
(head if i % 2 == 0 else tail).append(c)
return head + list(reversed(tail))Riduca il pagliaio
La soluzione più economica alla perdita nelle posizioni centrali consiste nell'avere meno centro. Un pre-filtraggio aggressivo, eliminando i chunk irrilevanti prima dell'assemblaggio, riduce la parte interna in cui i fatti si perdono e concentra l'attenzione su ciò che conta.
Un prompt mirato da 15k token ha un centro vulnerabile quasi inesistente; un prompt da 600k token è costituito per lo più da centro.
Segnalazioni e indicizzazione
Fornisca al modello una mappa. Un indice all'inizio, insieme a chiari riferimenti alle sezioni, permette al modello di raggiungere le aree pertinenti invece di affidarsi al richiamo puramente posizionale.
- Numeri le sezioni e vi faccia riferimento nella domanda.
- Aggiunga riferimenti espliciti come SEZIONE 7: PREZZI, che il modello possa cercare.
La struttura sostituisce in parte l'affidabilità posizionale.
# Top of prompt
# INDEX: [S1 Overview] [S2 Risks] [S3 Pricing] [S4 Appendix]
# Question: 'Using S3 only, what is the renewal fee?'Imponi una scansione prima della risposta
Chieda al modello di elencare dove compare il materiale pertinente prima di rispondere. Individuare prima le informazioni contrasta la tendenza a saltare il centro.
«Prima elenchi ogni sezione che menziona la tariffa di rinnovo con il relativo riferimento, poi risponda.» La scansione esplicita fa emergere i contenuti centrali che una domanda diretta non riuscirebbe a recuperare.
ask = (
'Step 1: list all anchors mentioning the topic. '
'Step 2: quote the relevant line from each. '
'Step 3: answer using only those quotes.'
)Ripeta la domanda riposizionando i contenuti
Se un fatto critico finisce nella zona morta e il richiamo è incerto, ripeta la chiamata spostando quel fatto su un margine. Per le attività con più fatti, può eseguire passaggi che ruotano i fatti occupando di volta in volta le posizioni più affidabili, quindi riconciliare i risultati.
La rotazione delle posizioni è un metodo pratico per aumentare la robustezza quando un singolo layout non è affidabile.
Suddivida e unisca per una copertura completa
Per le attività esaustive («trovi tutte le violazioni»), un unico passaggio gigantesco ometterà gli elementi centrali. Divida il contenuto in finestre sovrapposte abbastanza piccole da non avere un centro debole, esegua ogni finestra, quindi unisca i risultati ed elimini i duplicati.
- La sovrapposizione previene le omissioni ai margini.
- La fase di unione riconcilia duplicati e conflitti.
Le attività di copertura favoriscono molti passaggi piccoli rispetto a un unico passaggio enorme.
def coverage(doc, win, overlap):
out = []
for w in windows(doc, win, overlap):
out += extract(w)
return dedupe(out)Misuri la propria curva a U
La gravità dell'effetto varia in base al modello e alla struttura del prompt. Lo caratterizzi: inserisca un canary a profondità progressive e tracci il richiamo. Utilizzi la curva per decidere la lunghezza sicura del contesto e la strategia di caricamento ai margini per quel modello.
Progetti in base al comportamento misurato, non a supposizioni tramandate.
depths = [0.0, 0.25, 0.5, 0.75, 1.0]
recall = {d: probe_canary_at(d) for d in depths}
# Expect a dip around 0.5Una procedura per la robustezza posizionale
Per superare l'effetto «lost in the middle»: riduca il pagliaio, carichi ai margini i contenuti più rilevanti, ripeta l'attività in coda, aggiunga un indice e imponga una scansione per individuare i contenuti prima di rispondere, ruoti le posizioni quando ripete la domanda e utilizzi suddivisione e unione per una copertura esaustiva. Soprattutto, misuri la curva del proprio modello e progetti tenendone conto.
Verifica rapida
Ha un unico fatto che deve essere utilizzato e un'ampia quantità di contesto di supporto, e ha notato che il modello a volte ignora quel fatto.
Riepilogo: effetti dell'attenzione posizionale
Il richiamo nei contesti lunghi segue una curva a forma di U: i margini sono affidabili, il centro no. Per contrastare il fenomeno, riduca il pagliaio, carichi ai margini i chunk più rilevanti, ripeta l'attività in coda, aggiunga un indice e imponga una scansione per individuare i contenuti prima di rispondere, ruoti le posizioni quando ripete la domanda e utilizzi suddivisione e unione per una copertura esaustiva. Misuri la curva effettiva del proprio modello e progetti il posizionamento in base a essa, invece di presumere un richiamo uniforme.
Impara AI Prompt Engineering con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 53
- Lezioni
- 199
Domande Frequenti
La lezione «Perso nel mezzo» è gratuita?
Sì — il testo completo di «Perso nel mezzo» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Prompt Engineering, passa a CoddyKit PRO. Il corso AI Prompt Engineering include 4 lezioni in totale.
Cosa imparerò in «Perso nel mezzo»?
Effetti dell'attenzione sulla posizione. Eserciti AI Prompt Engineering con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare AI Prompt Engineering?
Non è richiesta alcuna esperienza precedente. AI Prompt Engineering su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Perso nel mezzo»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione AI Prompt Engineering?
Sì. Ogni lezione AI Prompt Engineering include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Finestre di contesto da un milione di token
- Perso nel mezzo
- Strutturare prompt enormi
- Memorizzare nella cache i prefissi lunghi