Моделі нескінченної уваги: виклики, рішення та компроміси

💡 Усі статті, обговорення, новини про AI — в одному місці. Приєднуйтесь до AI спільноти!

Вікно контексту фіксованого розміру у ванільних моделях створює значні труднощі під час роботи з великими документами і текстами. Запропоноване Google рішення, так званий механізм нескінченної уваги, вирішує цю проблему, розширюючи контекстне вікно до вражаючих мільйона або навіть 10 мільйонів токенів. Таке вдосконалення є вигідним для певних кейсів у роботі.

Source

Це чудова новина для деяких сценаріїв, що здатна вирішити деякі нішеві проблеми. Хоча обробка 10 мільйонів токенів у кожному запиті зараз можлива, це, як на мене, занадто, й може призвести до непомірно високої ціни такого підходу, а також до затримки відповіді і низької швидкості.

Отже, векторні бази даних та інші методи управління даними, що дозволяють жонглювати даними за допомогою RAG, залишаються актуальними і важливими, оскільки вони не стають застарілими завдяки моделям Infini-Attention. Натомість Infini-Attention є додатковим інструментом в інструментарії RAG.

Погляд зблизька

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

Поки попередні механізми уваги у ванільних моделях намагалися проаналізувати всі токени до всіх інших (створюючи так звану квадратичну складність, що призводило до споживання великих обсягів пам’яті), механізм Infini-Attention мав на меті вирішити цю проблему шляхом лінійної обробки даних.

Лінійна обробка є частиною причини, чому такі моделі здатні значно зменшити обсяг споживаної пам’яті. Інша частина рішення — це стиснення пам’яті. Важливо розуміти тип стиснення і те, як воно працює. Перш за все потрібно знати, що це різновид стиснення з втратою даних, коли знижується якість, або, можна сказати, зменшується роздільна здатність даних. Також обмежується розмір використовуваної пам’яті з фіксованою кількістю параметрів для зберігання та виклику інформації.

Моделі Infini-Attention обробляють великі тексти, розбиваючи їх на послідовності, які працюють за допомогою «локальної уваги» та «точкової (dot-product) уваги» (що використовується у ванільних моделях).

Сегменти — це, по суті, шматки тексту, але цей термін застосовується до розбиття контексту в LLM. Моделі Infini-Attention вводять додаткову пам’ять, відому як прихована глобальна компресійна пам’ять, яка слугує підказкою між сегментами. Ця глобальна пам’ять інтегрує інформацію з усіх послідовностей, покращуючи здатність моделі керувати великими текстами, підтримуючи загальне глобальне знання в усіх сегментах.

Глобальна пам’ять стиснення «втрачає» інформацію, оскільки знижує роздільну здатність і якість, а також має обмежений розмір. Оскільки кожен сегмент тексту обробляється з локальною увагою, глобальна пам’ять безперервно оновлюється, інтегруючи нову інформацію та змінюючи параметри в глобальній пам’яті з поточною інформацією про сегмент. Цей процес повторюється для кожної послідовності, оновлюючи глобальну пам’ять лінійно, зберігаючи загальний контекст документа. Глобальна пам’ять стиснення підтримує фіксовану кількість параметрів, щоб зберігати і викликати інформацію з обмеженими витратами на зберігання і обчислення.

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

Однак таке стиснення може призвести до певної втрати деталей через його характер з можливістю зменшення та фіксований розмір пам’яті, подібно до проблеми vanishing aбо exploding gradients (градієнтів, що зникають або вибухають). Це може призвести до упередження щодо недавності, коли нова інформація відображається з більшою точністю, ніж стара. А це потенційно може зменшити увагу до більш ранніх частин послідовності. Цей компроміс необхідний для управління великими обсягами тексту без перевантаження пам’яті. Незважаючи на ці компроміси, моделі Infini-Attention демонструють обнадійливі результати.

Стиснення є інтуїтивно зрозумілим і необхідним рішенням для управління великими обсягами даних. Обмеження глобальної пам’яті — це ціна, яку доводиться платити під час обробки нескінченних або величезних обсягів інформації. Без цього обмеження, навіть якщо інформацію з кожної послідовності значно зменшити, глобальна прихована пам’ять однаково зростатиме нескінченно, що зробить систему некерованою. Тому утримувати глобальну приховану пам’ять обмеженого розміру також є необхідністю.

Використання стиснення в моделях з нескінченною увагою може призвести до певної втрати деталей через втрати та обмежений обсяг пам’яті. Це може призвести до зсуву щодо свіжості/позиції, коли більш свіжа або частіше повторювана інформація буде представлена з більшою точністю, ніж старіша, що потенційно може призвести до того, що більш раннім частинам тексту приділятиметься менше уваги. Це компроміс, який ми повинні заплатити за обробку великих обсягів тексту без перевантаження пам’яті.

Якість роздільної здатності моделей з нескінченною увагою, призначених для зменшення обсягу пам’яті за рахунок постійного оновлення з кожною новою послідовністю, неминуче призводить до певної втрати деталей і менш якісних результатів. На відміну від ванільних моделей, моделі з нескінченною увагою, навчені на довгих шматках даних, дослідження і згодом час покаже, як це впливає на якість отриманих результатів. Точний вплив цих компромісів і природа стиснення з втратами стануть зрозумілішими з часом.

Хоча на цьому етапі важко кількісно оцінити точний вплив цих компромісів і природу стиснення з втратами, поточний прогрес демонструє обнайдійливі результати, які раніше були недосяжними. Незважаючи на властиві компроміси, моделі з нескінченною увагою, ймовірно, є значним поліпшенням порівняно з минулими можливостями. Вони пропонують значний потенціал в управлінні великомасштабними завданнями обробки текстів.

Дехто може припустити, що RAG більше не знадобиться, якщо моделі нескінченної уваги позбудуться своїх недоліків, хоча це, швидше за все, не так. Ви можете побудувати LongRAG з акцентом на те, що отримані фрагменти будуть набагато більшими, ніж ті, що подаються до моделей (читача), які підтримують великі контекстні вікна. LongRAG усуває необхідність переранжування і демонструє хорошу продуктивність з загальнодоступною інформацією з Вікіпедії.

Висновки

Не буває лиха без добра. Або ж можна сказати, що за все є своя ціна. Велике контексте вікно впливає на якість результату. Хоча в деяких випадках все ж таки є сенс дещо поступитись якістю, обмінявши її на можливість обробити великий текст. Велике контекстне вікно (навіть якщо колись і досягне гарної якості) не вбиває RAG, а лиш може слугувати одним з багатьох інструментів в наборі конвеєрного застосунку-обгортки навколо LLM.

Підтримка

Якщо вам сподобалася ця стаття і ви хочете підтримати мене:

  1. Натисніть «Подобається 👍» та додайте «До обраного ⭐️» мою статтю; це допоможе мені. Також стежте за мною на DOU, щоб читати останні статті.
  2. Дайте відгук у коментарях нижче, навіть якщо це просте «дякую»  -  це допоможе мені розуміти, що моя робота була не марною. Якщо є помилки, скажіть, де, а найголовніше — як виправити, не претендую на роль всезнайки.
  3. Шукаю ентузіастів та однодумців, що знаються на Python і хотіли б втілити описані ідеї в моїх статтях у життя, і, можливо, навіть зробити сумісний проєкт: Напишіть мені в LinkedIn. Наразі працю над PoC RAG & KG, який використовує описані принципи у моїх статтях. Буду радий поділитись своїми напрацюваннями і знаннями.
👍ПодобаєтьсяСподобалось6
До обраногоВ обраному5
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Автор явно не розуміє те про що пише. Щось накопіпастив щось нагалюцинував...

Вичитав пейпер, зробив вижимку. Хотів розібратись бо цікаво і заодно поділитись, та поспілкуватись на цю тему.

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

А є інший підхід, поміряний: вести себе порядно, поважно, а головне по ділу, якщо є щось виправити чи додати. Десь помилився — скажіть.

Мені не подобається токсична культура у деяких представників ІТ спільноти. Гарного дня вам Василь.

""

Однак таке стиснення може призвести до певної втрати деталей через його характер з можливістю зменшення та фіксований розмір пам’яті, подібно до проблеми vanishing aбо exploding gradients (градієнтів, що зникають або вибухають)

градієнти — про оптимізацію. Стиснення — про representation learning і його властивості загалом. Вважаю дане порівняння/пояснення так як воно тут написане не самим коректним.

Василь, тому я і написав «подібно» в протилежність «точно так як». У мене в голові виникла саме така аналогія. Аналогія вона на то і аналогія, що не 100% співпадіння але є схожість. Будь що зрозуміліше у порівнянні із чимось іншим, не таким але подібним. Якщо у вас є краща аналогія дайте мені знати, буду радий поміняти.

Чому треба зупинятись на тому що «тут не так і крапка»? Замість того що «тут не так, треба так». Це просто не конструктивно. А якщо у вас немає кращої аналогії, то про що ми тоді говоримо?

Ваша аналогія не краща чи гірша нажаль... Вона — невірна. Саме ця область про яку ви пишете достатньо строга і натягувати Сову на Глобус методологічно невірно)))

Я ледве видавив що саме вам не сподобалось і вже в третій раз намагаюсь із вас добути а як краще на вашу думку, і я так розумію у вас кращої аналогії немає, тому лишаю як є, ми із вами переписувались виходить ні про що. Дякую за мій витрачений час, за те що ви так і не відповіли на моє питання і роздмухані емоції на пустому місці. Сподіваюсь хоч один із нас зробить якісь висновки.

Василь, у мене політика у спілкуванні наступна: бути ввічливим, конструктивним та корисним (на приклад якщо людина помиляється я кажу це не так, тому що ... і треба ось так ...).

Один із нас по відношенню до іншого має змінити цю політику, дайте мені знати хто.

Це коли ти щось не хотів знати, але тебе вимусили спитати, а тобі ще й не відповідають. Я втратив інтерес продовжувати спілкування яке почалось із персональної образи ще на початку цієї канітелі, тому думаю я на цьому зупинюсь далі коментувати в цій гілці.

Гарного дня.

Вибачаюсь якщо я вас образив. Швидше всього причина в тому що ми по різному побачили жанр в якому опублікована стаття(((

Один із нас по відношенню до іншого має змінити цю політику, дайте мені знати хто.

Damien Jobs ©

Да, вы скорее правы чем нет... Получается, шё, сравнение стиснения данных с проблемой исчезающих или взрывающихся градиентов в оптимизации нейронных сетей не совсем корректно изложено в данной статье и вот почему:
Проблема исчезающих/взрывающихся градиентов возникает при использовании определенных функций активации (например, сигмоида) в глубоких нейронных сетях. По мере распространения ошибки назад во время обучения, градиенты становятся очень маленькими или очень большими, что затрудняет обучение. Это связано с математическими свойствами функций активации.
Стиснение данных (например, с помощью автокодировщиков) используется для извлечения компактных представлений данных. Оно основано на идее сжатия информации в меньшее пространство признаков. Проблема здесь в том, что при стиснении может происходить потеря некоторых деталей, так как модель должна выучить, какую информацию сохранять, а какую отбрасывать.
Проблема исчезающих/взрывающихся градиентов возникает во время обучения модели, в то время как потеря деталей при стиснении происходит при использовании обученной модели для сжатия данных. Это разные концепции, происходящие на разных этапах. Кроме того, можно еще добавить хлопцы про то шё данная задача очень похожа на извлечение признаков в машинном обучении т.е. модель должна выучить, какие характеристики данных наиболее важны для компактного представления.
Стиснение данных также похоже на кодирование информации в меньшее пространство, как это делают автокодировщики. Модель пытается сохранить наиболее важную информацию при сжатии.
Потеря деталей при стиснении похожа на проблему переобучения — модель может запомнить слишком много деталей и не обобщать хорошо на новых данных. Стиснение требует баланса между сохранением важной информации и отбрасыванием избыточных деталей. Резюмируючи все вышесказанное можно сделать вывод, шё сравнение стиснения данных с проблемой исчезающих/взрывающихся градиентов не совсем уместно. Это разные концепции, происходящие на разных этапах и в разных контекстах. Вместо этого, стиснение данных лучше сравнивать с другими аспектами представления данных в машинном обучении, например, методы сжатия без потерь, адаптивное сжатие с потерями, многослойное сжатие и сжатие с предсказанием в зависимости от типа данных и требований к качеству, яркий пример-медицина. Написал, хлопцы, как мог, ну шёбы всем было понятно...

В принципі згоден. Але вже правити не буду.
Порівняння і приклади вони на те і є щоб пояснити на пальцях і не точно але щоб було приблизно зрозуміло що є втрата інформації у такому стисненні.

Напишите уже про смарт структуры бо нужуно, я естественно на вас потом сошлюся, как на диючого разробника, или может даже включу в обоснование темы курсача.

Написали б мені вже у LinkedIn

Я вам уже писал, вы дали понять, что студентов не рассматриваете. Если я вас правильно понял.

Автор явно не розуміє те про що пише. Щось накопіпастив щось нагалюцинував...

10 статей напише і вже буде експертом.
А люди які наймають на роботу в цьому ще менше розуміються.

Тобто правильним шляхом пан йде

Хай про смарты напишет, мне хлопцы, для курсача надо...

Згоден. Якщо і треба, то на дуже невелику кількість спеціалізованих задач. Зверніть увагу що вони зробили окремий leaderboard для long-context LLMs, з одного боку так, це більш правильно порівнювати апельсини із апельсинами, але це натякає (і по факту так і є) моделі із великим вікном, принаймні зараз, обміняли довжину вікна на якість уваги.

arxiv.org/pdf/2407.09450

Перефразую: щоб чомусь навчитись — навчи когось іншого. Дуже добре працює.

Стаття згенерована моделлю з явно обмеженим контекстом :) Адже одна й та сама думка повторюється кожні три параграфи :))

По суті, це не «необмежений контекст», а щось на кшталт «embedded RAG», але з дуже обмеженою пропускною здатністю.

Ok, I’ve spent some time reading the original article from Google. Basically, they maintain a ‘database’ of key-value pairs from attention layers in previous steps and apply an ‘exponential moving average’ to the ‘values’ for a given key across the history...

They reuse the KV values calculated by regular attention, so there’s no ‘training’ involved in the memory mechanism, which is probably good for training :)

As for ‘infinity’ - now, instead of a limited context size, they have a limited segment size used for splitting the ‘infinite’ context into segments :) So it’s not really infinite after all :)

Вийшло із чим боролись на то і напоролись, розширили вікно, знизили якість.
Сподіваюсь буде наступна ітерація де якість зможуть дотягнути до попереднього рівня моделей із меншим вікном.

Підписатись на коментарі