Перейти до основного вмісту

Загублені посередині: упередженість щодо позиції в LLM та її вплив на ШІ у сфері фінансів

· 6 хв. читання
Mike Thrift
Mike Thrift
Marketing Manager

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

Стаття

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

«Загублені посередині: як мовні моделі використовують довгі контексти» Нельсона Ф. Лю, Кевіна Ліна, Джона Х’юїтта, Ашвіна Паранджапе, Мікеле Бевілакуа, Фабіо Петроні та Персі Ляна проводить два цільових експерименти: відповіді на запитання за кількома документами у 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 контекстом поводився так само як і інші. Довге вікно контексту не означає, що модель насправді приділяє увагу всьому його обсягу рівномірно.
  • Базовий рівень «закритої книги» встановлює протверезний поріг. GPT-3.5-Turbo без жодних документів правильно відповів на 56,1% NaturalQuestions; з прямим доступом лише до одного релевантного документа показник сягнув 88,3%. Але на найгірших середніх позиціях у сценарії з 20 документами продуктивність падала нижче базового рівня «закритої книги» — це означає, що додавання контексту було активно шкідливим.
  • Моделі архітектури encoder-decoder (Flan-T5-XXL, Flan-UL2) стабільніші в межах своєї довжини навчання, але деградують, коли контекст її перевищує. Архітектурна різниця має значення, але обидва типи моделей все одно втрачають якість у великих масштабах.
  • Першопричиною є каузальне маскування уваги. Кожен токен може звертатися лише до попередніх токенів, тому позиції на самому початку накопичують більшу загальну вагу уваги в моделі, ніж позиції в середині. Ефекти новизни (recency effects) також підтягують продуктивність у кінці контексту.

Що підтверджується — а що ні

Експериментальний дизайн тут викликає захоплення своєю чистотою: позиція — це єдина змінна, якою маніпулюють, завдання є стандартними бенчмарками, а результати повторюються у широкому діапазоні сімейств моделей. У мене немає заперечень щодо основного результату.

Що мені здається менш переконливим, так це подання завдання пошуку ключ-значення як значущого проксі для реального використання. Пошук UUID за UUID перевіряє, чи може модель повторити зазубрений рядок, а не чи може вона робити щось, що потребує міркувань. U-подібна крива з’являється і там, що підкріплює твердження про упередженість щодо позиції, але це також означає, що стаття змішує два різні явища: точність пошуку в завданнях на точну відповідність і якість міркування над релевантними уривками. Я хотів би знати, чи погіршується або покращується U-подібна форма, коли релевантний документ вимагає багатокрокового логічного висновку перед фінальною відповіддю, а не просто дослівного відтворення.

Також існує прогалина, яку автори здебільшого визнають, але не закривають: вони ніколи не перевіряли, чи змінює точне налаштування інструкцій (instruction fine-tuning) або RLHF чутливість до позиції, лише чи робить це більше вікно контексту. Враховуючи, що першопричина є архітектурною (каузальне маскування), я підозрюю, що налаштування інструкцій це не виправить, але стаття цього не підтверджує.

Чому це важливо для ШІ у фінансах

Ця стаття дає механістичне пояснення емпіричної закономірності, з якою я постійно стикаюся. DocFinQA провалився на довгих звітах SEC. IRCoT та FLARE обидва отримують кілька уривків і об'єднують їх перед міркуванням. Кожен RAG-пайплайн, який я бачив у фінансовому контексті, послідовно скидає знайдені уривки в промпт і сподівається, що модель зверне увагу на потрібний.

Наслідки для агентів Beancount цілком конкретні. Якщо агент отримує десять записів бухгалтерської книги як контекст, записи на позиціях 3–7 перебувають під найбільшим ризиком бути проігнорованими або стати основою для галюцинацій. Це не проблема пошуку — це проблема подання. З цієї статті випливають дві реакції: або ставте найбільш діагностично релевантні записи першими (і останніми), або взагалі не з'єднуйте їх і робіть висновки по одному уривку за раз.

Цей результат також ускладнює наратив про «LLM з довгим контекстом». Кожного кварталу нова модель оголошує про збільшення вікна контексту. Ця стаття каже, що довжина вікна не означає того, що ви думаєте, якщо ви рівномірно розподіляєте докази по ньому. Модель із вікном 128K, яка ховає релевантну транзакцію на позиції 60K, гірша за модель із вікном 4K, яка отримує саме той уривок, що треба.

Для безпеки зворотного запису (write-back safety) наслідки неприємні: якщо модель просять підсумувати сесію роботи з книгою, а релевантне правило політики «не публікувати цю транзакцію» з'являється посередині довгого системного промпту, модель може діяти так, ніби вона ніколи не читала цього правила.

Що читати далі

  • "Found in the Middle: How Language Models Use Long Contexts Better via Plug-and-Play Positional Encoding" (Zhang et al., arXiv:2403.04797) — пропонує багатомасштабне позиційне кодування (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) — ідентифікує конкретний вимір прихованих станів позиції, відповідальний за упередженість, і масштабує його без перенавчання; найточніше запропоноване рішення на сьогодні, актуальне для впровадження існуючих моделей без перенавчання.