Perduts pel mig: el biaix de posició en els LLM i el seu impacte en la IA financera
Quan miro enrere a l'entrada de DocFinQA —on tant les canalitzacions basades en recuperació com els LLM de context llarg es van col·lapsar amb documents de la SEC amb contextos de 123.000 tokens— la pregunta que vaig deixar a l'aire era per què. Aquest article de Liu et al. (TACL 2024, arXiv:2307.03172) és la resposta mecànica, i resulta que el mode d'error és més simple i tossut del que m'hauria esperat.
L'article
"Lost in the Middle: How Language Models Use Long Contexts" de Nelson F. Liu, Kevin Lin, John Hewitt, Ashwin Paranjape, Michele Bevilacqua, Fabio Petroni i Percy Liang realitza dos experiments dirigits: resposta a preguntes multidocument sobre NaturalQuestions-Open (amb 10, 20 i 30 documents recuperats) i recuperació sintètica de clau-valor (amb 75, 140 i 300 parells). En cada experiment, varien sistemàticament on se situa el document rellevant o el parell clau-valor dins del context d'entrada —al principi, al mig o al final— mentre mantenen la resta fixa. La troballa és clara: el rendiment segueix una corba en forma de U amb el punt més baix al mig del context, i la corba apareix en cada model provat.
Idees clau
- La forma de U és real i constant. En l'escenari de QA amb 20 documents, el rendiment a la primera posició era aproximadament del 75% i es degradava fins al voltant del 55% a la posició 10, abans de recuperar-se fins a prop del 72% a la posició 20 —una diferència de ~20 punts entre els extrems i el centre.
- Tots els models segueixen el mateix patró. Els models provats inclouen tancats i oberts, petits i grans: GPT-3.5-Turbo (4K i 16K), GPT-4, Claude-1.3 (8K i 100K), MPT-30B-Instruct i LongChat-13B. La corba en U va aparèixer en cadascun d'ells, inclosos els models comercialitzats explícitament per a finestres de context ampli.
- Ni tan sols Claude-1.3-100K n'és immune. La variant de context de 100K es va comportar com les altres. Una finestra de context llarga no vol dir que el model realment hi pari atenció de manera uniforme.
- La base de referència "closed-book" estableix un mínim preocupant. El GPT-3.5-Turbo sense cap document va respondre correctament el 56,1% de les NaturalQuestions; amb accés directe a l'únic document rellevant va arribar al 88,3%. Però en les pitjors posicions intermèdies de l'escenari de 20 documents, el rendiment va caure per sota de la base de referència "closed-book", cosa que significa que afegir més context va ser activament perjudicial.
- Els models encoder-decoder (Flan-T5-XXL, Flan-UL2) són més robustos dins de la seva longitud d'entrenament, però recauen quan els contextos la superen. La diferència arquitectònica és important, però ambdós es degraden a escala.
- La causa principal és l'emmascarament d'atenció causal. Cada token només pot atendre els tokens precedents, de manera que les posicions del principi acumulen més pes d'atenció total a través del model que les posicions del mig. Els efectes de recència també eleven el rendiment al final del context.
Què es manté ferm — i què no
El disseny experimental aquí és admirablement net: la posició és l'única variable que es manipula, les tasques són punts de referència estàndard i la troballa es replica en una àmplia gamma de famílies de models. No tinc res a objectar al resultat principal.
El que em sembla menys convincent és l'enfocament de la tasca de recuperació de clau-valor com a substitut significatiu de l'ús real. Les cerques d'UUID a UUID proven si un model pot repetir com un lloro una cadena memoritzada, no si pot fer res que requereixi raonament. La corba en U també apareix aquí, cosa que reforça l'afirmació del biaix de posició, però també significa que l'article combina dos fenòmens diferents: la precisió de la recuperació en tasques de coincidència exacta i la qualitat del raonament sobre fragments rellevants. M'agradaria saber si la forma de U empitjora o millora quan el document rellevant requereix una inferència en diversos passos abans de la resposta final, i no només una repetició textual.
També hi ha una llacuna que els autors reconeixen majoritàriament però no tanquen: mai no proven si l'ajust d'instruccions o l'RLHF canvia la sensibilitat a la posició, només si ho fa una finestra de context més gran. Atès que la causa principal és arquitectònica (emmascarament causal), sospito que l'ajust d'instruccions no ho solucionarà, però l'article no ho confirma.
Per què això és important per a la IA financera
Aquest article proporciona l'explicació mecànica per a un patró empíric que em trobo contínuament. DocFinQA es va col·lapsar amb documents llargs de la SEC. IRCoT i FLARE recuperen múltiples fragments i els concatenen abans de raonar. Cada canalització RAG que he analitzat en un context financer aboca els fragments recuperats seqüencialment al prompt i espera que el model s'atengui al correcte.
La implicació per als agents de Beancount és concreta. Si un agent recupera deu entrades del llibre diari com a context, les entrades a les posicions 3–7 tenen el risc més alt de ser ignorades o de generar al·lucinacions al seu voltant. Això no és un problema de recuperació, és un problema de presentació. D'aquest article se'n deriven dues respostes: o bé posar les entrades més rellevants per al diagnòstic al principi (i al final), o bé no concatenar gens i raonar sobre un fragment cada vegada.
La troballa també complica la narrativa dels LLM de context llarg. Cada trimestre, un nou model anuncia una finestra de context més gran. Aquest article diu que el fet que la finestra sigui llarga no significa el que penses si estàs distribuint l'evidència uniformement per tota ella. Un model de context de 128K que enterra la transacció rellevant a la posició 60K és pitjor que un model de context de 4K que recupera exactament el fragment correcte.
Per a la seguretat en l'escriptura (write-back), les implicacions són incòmodes: si es demana al model que resumeixi una sessió del llibre diari i la regla de política pertinent de "no publiquis aquesta transacció" apareix al mig d'un system prompt llarg, el model pot actuar com si mai no hagués llegit aquesta regla.
Què llegir a continuació
- "Found in the Middle: How Language Models Use Long Contexts Better via Plug-and-Play Positional Encoding" (Zhang et al., arXiv:2403.04797) — proposa la codificació posicional multiescala (Ms-PoE) com una solució sense entrenament mitjançant l'escalat de RoPE; afirma una millora de fins a 3,8 punts en Zero-SCROLLS, abordant directament la corba en U.
- "Never Lost in the Middle: Mastering Long-Context Question Answering with Position-Agnostic Decompositional Training" (arXiv:2311.09198) — adopta l'enfocament oposat i entrena el model per ser explícitament agnòstic a la posició; la comparació amb Ms-PoE aclareix si l'ajust fi o els trucs en temps d'inferència són la millor palanca.
- "Mitigate Position Bias in Large Language Models via Scaling a Single Dimension" (arXiv:2406.02536) — identifica la dimensió específica dels estats ocults posicionals responsable del biaix i l'escala sense reentrenament; la solució més quirúrgica proposada fins ara, rellevant per al desplegament de models existents sense reentrenament.
