Преминете към основното съдържание

Изгубени по средата: Позиционно отклонение в големите езикови модели (LLM) и неговото въздействие върху финансовия ИИ

· 7 минути четене
Mike Thrift
Mike Thrift
Marketing Manager

Когато погледна назад към записа за DocFinQA — където конвейерите, базирани на извличане, и LLM с дълъг контекст се сринаха при документи на SEC с контекст от 123 хил. токена — въпросът, който оставих висящ, беше защо. Тази статия от Liu и съавтори (TACL 2024, arXiv:2307.03172) е механистичният отговор и се оказва, че режимът на отказ е по-прост и по-упорит, отколкото бих очаквал.

Статията

2026-06-27-lost-in-the-middle-language-models-long-contexts

„Lost in the Middle: How Language Models Use Long Contexts“ от Nelson F. Liu, Kevin Lin, John Hewitt, Ashwin Paranjape, Michele Bevilacqua, Fabio Petroni и Percy Liang провежда два целеви експеримента: отговаряне на въпроси върху множество документи чрез NaturalQuestions-Open (с 10, 20 и 30 извлечени документа) и синтетично извличане на двойки ключ-стойност (със 75, 140 и 300 двойки). Във всеки експеримент те систематично променят позицията на съответния документ или двойка ключ-стойност в рамките на входния контекст — в началото, в средата или в края — докато всичко останало е фиксирано. Констатацията е ясна: производителността описва U-образна крива с дъно в средата на контекста, като тази крива се появява при всеки тестван модел.

Ключови идеи

  • U-образната крива е реална и последователна. В настройките за отговаряне на въпроси с 20 документа, производителността на първа позиция беше приблизително 75% и се влоши до около 55% на 10-та позиция, преди да се възстанови до около 72% на 20-та позиция — разлика от ~20 пункта между краищата и центъра.
  • Всички модели следват един и същ модел. Тестваните модели обхващат затворени и отворени, малки и големи: GPT-3.5-Turbo (4K и 16K), GPT-4, Claude-1.3 (8K и 100K), MPT-30B-Instruct и LongChat-13B. U-кривата се появи при всеки от тях, включително при модели, изрично рекламирани с разширени контекстни прозорци.
  • Дори Claude-1.3-100K не е имунизиран. Вариантът със 100K контекст се държеше като останалите. Дългият контекстен прозорец не означава, че моделът действително отделя равномерно внимание по цялата му дължина.
  • Базовата линия „затворена книга“ (closed-book) поставя отрезвяваща граница. GPT-3.5-Turbo без никакви документи отговори правилно на 56,1% от NaturalQuestions; с директен достъп само до единствения подходящ документ той достигна 88,3%. Но при най-лошите средни позиции в настройката с 20 документа, производителността падна под базовата линия „затворена книга“ — което означава, че добавянето на повече контекст е било активно вредно.
  • Моделите енкодер-декодер (Flan-T5-XXL, Flan-UL2) са по-стабилни в рамките на дължината си на обучение, но се влошават, когато контекстът я надвиши. Архитектурната разлика има значение, но и двата типа все още деградират при мащабиране.
  • Основната причина е каузалното маскиране на вниманието (causal attention masking). Всеки токен може да обръща внимание само на предхождащите го токени, така че позициите в самото начало акумулират по-голямо общо тегло на вниманието в целия модел, отколкото позициите в средата. Ефектите на скорошността (recency effects) също изтеглят производителността в края на контекста нагоре.

Кое е основателно и кое — не

Експерименталният дизайн тук е възхитително чист: позицията е единствената променлива, която се манипулира, задачите са стандартни бенчмаркове и откритието се възпроизвежда в широк диапазон от семейства модели. Нямам възражения срещу основния резултат.

Това, което намира за по-малко убедително, е рамкирането на задачата за извличане на ключ-стойност като смислено прокси за реална употреба. Търсенето на UUID към UUID тества дали моделът може да папагалства запаметена низа, а не дали може да прави нещо, изискващо разсъждения. U-кривата се появява и там, което засилва твърдението за позиционно отклонение, но също така означава, че статията обединява две различни явления: точност на извличане при задачи с точно съвпадение и качество на разсъжденията върху съответните пасажи. Бих искал да знам дали U-образната форма се влошава или подобрява, когато съответният документ изисква многоетапно логическо извеждане преди крайния отговор, а не просто дословно възпроизвеждане.

Съществува и празнина, която авторите до голяма степен признават, но не запълват: те никога не тестват дали фината настройка на инструкциите (instruction fine-tuning) или RLHF променя чувствителността към позицията, а само дали по-големият контекстен прозорец го прави. Като се има предвид, че основната причина е архитектурна (каузално маскиране), подозирам, че настройката на инструкциите няма да го поправи, но статията не потвърждава това.

Защо това е важно за финансовия ИИ

Тази статия предоставя механистично обяснение за емпиричен модел, на който постоянно се натъквам. DocFinQA се срина при дълги документи на SEC. IRCoT и FLARE извличат множество пасажи и ги обединяват преди разсъжденията. Всеки RAG конвейер, който съм разглеждал във финансов контекст, изсипва извлечените пасажи последователно в подканата и се надява моделът да обърне внимание на правилния.

Последиците за Beancount агентите са конкретни. Ако един агент извлече десет записа от главната книга като контекст, записите на позиции 3–7 са под най-голям риск да бъдат игнорирани или около тях да се появят халюцинации. Това не е проблем на извличането — това е проблем на представянето. От тази статия следват два възможни подхода: или поставете най-важните диагностични записи първи (и последни), или изобщо не ги обединявайте и разсъждавайте върху всеки пасаж поотделно.

Констатацията също така усложнява наратива за LLM с дълъг контекст. Всяко тримесечие нов модел обявява по-голям контекстен прозорец. Тази статия казва, че дългият прозорец не означава това, което мислите, ако разпределяте доказателствата равномерно в него. Модел със 128K контекст, който заравя съответната трансакция на позиция 60K, е по-лош от модел с 4K контекст, който извлича точно правилния пасаж.

За безопасността при записване (write-back) последиците са неудобни: ако от модела се поиска да обобщи сесия в главната книга и съответното правило на политиката „не публикувай тази трансакция“ се появи в средата на дълга системна подкана, моделът може да действа така, сякаш никога не е чел това правило.

Какво да прочетете след това

  • "Found in the Middle: How Language Models Use Long Contexts Better via Plug-and-Play Positional Encoding" (Zhang et al., arXiv:2403.04797) — предлага Multi-scale Positional Encoding (Ms-PoE) като решение без необходимост от обучение чрез RoPE мащабиране; твърди за подобрение до 3,8 пункта в Zero-SCROLLS, адресирайки директно U-кривата.
  • "Never Lost in the Middle: Mastering Long-Context Question Answering with Position-Agnostic Decompositional Training" (arXiv:2311.09198) — приема противоположния подход и обучава модела да бъде изрично агностичен към позицията; сравнението с Ms-PoE изяснява дали фината настройка или триковете по време на извеждане са по-добрият лост.
  • "Mitigate Position Bias in Large Language Models via Scaling a Single Dimension" (arXiv:2406.02536) — идентифицира специфичното измерение на скритите състояния на позицията, отговорно за отклонението, и го мащабира без преобучение; най-хирургичната корекция, предложена досега, подходяща за внедряване на съществуващи модели без преобучение.