Зміст
Коротко
Андрій Бірюков на «Хабрі» показує, чому довгий контекст не скасовує підготовки тексту. На 500 сторінках мережевої документації модель, якій віддали все одразу, відповіла правильно приблизно в третині випадків і ще зібрала неіснуючі маршрути з адрес по краях документа. Його прийом — дешева модель спочатку витягує факти, а дорога бачить короткий виклад на початку і найважливіший шматок у кінці.
Що сталося
Привід знайомий: коли оголосили контекст на мільйони токенів, багатьом здалося, що пошук по шматках можна викинути і згодувати моделі весь архів. На практиці увага тримає початок і кінець сильніше за середину. Бірюков порівнює це зі студентом перед іспитом: перші й останні сторінки вивчені, середина розмита. Контекст величезний, а на питання по документу на сто сторінок модель відповідає гірше, ніж менша модель з коротким вікном. Він називає це властивістю архітектури уваги, а не випадковою помилкою.
Перевірка влаштована так. П’ятсот сторінок документації з мережевого обладнання — журнали, адреси, версії прошивок — розрізані на п’ять частин по сто сторінок. Десять питань, відповіді на які лежать лише в середній частині. Повний контекст GPT-4o: точність близько 34%, перший токен приблизно через 14 секунд, плюс вигадані маршрути з адрес крайніх частин. Наївний пошук п’яти найближчих шматків підняв точність приблизно до 42% і відповів за трохи більше ніж секунду — швидко і все ще часто повз, бо зв’язок між шматками зник. Збільшення шматків до десяти тисяч токенів, пише він, лише переносить ту саму «забуту середину» всередину шматка.
«Семантичний воротар» влаштований як молодший помічник при дорогому фахівці. Роль помічника — Mistral-7B-Instruct у 4-бітному квантуванні, вивід через vLLM. Спочатку грубий векторний пошук бере не п’ять, а п’ятдесят шматків. Кожен шматок модель оцінює від нуля до одиниці, витягує три факти і відповідає JSON, без зв’язного переказу. Усе, що нижче 0,6, відкидають, із залишку беруть десять найкращих і кладуть їх за спаданням важливості, а не в порядку документа. На початок запиту — стислі конспекти цих десяти шматків, близько двох тисяч токенів. У кінець — найрелевантніший шматок цілком, без стиснення. Важливі факти опиняються в обох зонах, де увага сильніша.
У його зведеній таблиці на тисячу запитів картина така. Повний контекст: близько 180 тисяч токенів, 34,2% точності, 14,5 секунди, 180 доларів. Наївний пошук: близько 8 тисяч токенів, 41,1%, 1,4 секунди, 15 доларів. RAPTOR: близько 12 тисяч токенів, 49,7%, 5,2 секунди, 40 доларів. Воротар: близько 9 тисяч токенів, 68,4%, 3,8 секунди, 22 долари. Прогін через Mistral-7B зайняв 2,4 секунди, зате запит до GPT-4 став приблизно у двадцять разів коротшим і заощадив близько десяти секунд. 22 долари проти 180 — це і є економія приблизно у вісім разів на його тарифах.
Чому це важливо
Довге вікно не лікує шум. Модель, яка бачить п’ятсот сторінок, витрачає увагу на нерелевантні адреси і склеює їх у правдоподібну брехню. Модель, яка бачить відібрані факти і один повний шматок у кінці, помиляється менше не тому, що стала «розумнішою», а тому що їй нічим відволікатися. Для документації, договорів і журналів це важливіше за рекламний розмір контексту.
Цифри тут — один авторський прогін на десяти питаннях до середньої частини одного корпусу, не незалежний порівняльний тест. Їх корисно читати як порядок величин: повний контекст дорогий і слабкий на середині, наївний пошук швидкий і сліпий до зв’язку шматків, проміжний відбір фактів на дешевій моделі зсунув і точність, і рахунок. Переносити 68% на свій архів без повторної перевірки не варто.
На практиці
Схема тримається на забороні фантазувати на дешевому кроці. Якщо мала модель пише зв’язний текст, а не витягує факти зі шматка, помилки потраплять у виклад і дорога модель їх закріпить. Поріг 0,6 і «десять найкращих» — його налаштування, не закон. Варто міряти точність на питаннях, відповідь на які лежить у середині документа: саме там повне вікно зазвичай бреше впевненіше за все.
Дублювання важливого шматка в кінці — свідомий трюк під криву уваги, а не зайва копія «про всяк випадок». Якщо обрізати і виклад на початку, і повний фрагмент у кінці, прийом розвалюється.
- Не згодовуйте весь архів лише тому, що вікно це дозволяє: перевірте питання до середини документа.
- Відділяйте витягування фактів від відповіді: дешева модель хай повертає оцінку і факти в
JSON, без переказу. - Беріть із запасом на грубому пошуку, потім відсікайте слабкі шматки і сортуйте залишок за важливістю, а не за порядком сторінок.
- Кладіть стислий виклад на початок запиту і найважливіший вихідний шматок — у кінець.
- Рахуйте не лише точність, а й токени, час до першої відповіді і гроші на тисячу запитів, як у його таблиці.
Підсумок
Довгий контекст не замінив підготовки вибірки. На корпусі Бірюкова повний документ програв схемі, де мала модель спочатку відбирає факти, а велика читає коротко і двічі бачить головне. Це робочий прийом для технічних текстів, якщо повторити замір на своїх питаннях, а не скопіювати відсотки з чужої таблиці.



Коментарі