Актуальні теми
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Ви на співбесіді з науковим співробітником в OpenAI.
Інтерв'юер запитує:
"Як би ви розширили довжину контексту LLM з 2K до 128K токенів?"
Ви: "Я доопрацюю модель на довших документальних записах з контекстом 128К"
Інтерв'ю закінчено.
Ось що ви пропустили:
Розширення контекстного вікна стосується не лише більших матриць.
У традиційному трансформері розширення токенів у 8 разів збільшує потреби в пам'яті в 64 рази через квадратичну складність уваги. Зверніться до зображення нижче!
Отже, як нам це вдається?
продовжити... 👇

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

Аналогічна ідея була використана і в ModernBERT.
→ Повна глобальна увага до кожного 3-го шару
→ Місцева увага (128 токенів) в іншому випадку
Результат:
- У 16 разів більша довжина послідовності
- Набагато краща продуктивність
- Найбільш ефективний кодер пам'яті
Простий, але потужний. 👇
Ось інтуїтивне пояснення, взяте з статті:
Уявіть, що ви читаєте книгу. Чи потрібно вам бути повністю обізнаним з кожним прочитаним реченням, щоб зрозуміти більшу його частину (повна глобальна увага)?
Чи достатньо обізнаності про поточну главу (локальна увага), якщо ви час від часу згадуєте про її значення для основного сюжету (глобальної уваги)?
У переважній більшості випадків це останнє.
2) Спалах уваги
Це швидкий і ефективний для пам'яті метод, який зберігає точність традиційних механізмів уваги, т. Е. Використовує глобальну увагу, але ефективно.
Вся ідея обертається навколо оптимізації руху даних у пам'яті графічного процесора.
Давайте розбиратися!

Деякі подробиці:
- Нитка – найменша одиниця виконання.
- Кілька ниток утворюють блок.
Також:
- Потоки в блоці ділять швидку (але дефіцитну) пам'ять під назвою SRAM.
- Всі блоки мають спільну глобальну пам'ять під назвою HBM (багато, але повільно).
Перевірте це 👇

Увага переміщається великими матрицями між SRAM і HBM:
Щоб обчислити QK:
- розподілити матриці по нитках
- обчислювати;
- відправити товар в HBM
Щоб обчислити softmax:
- розподілити продукт по нитках
- обчислювати;
- надсилати вихідні дані в HBM
Повторіть для всіх шарів.
Перевірте це 👇

Flash Attention включає оптимізацію на рівні апаратного забезпечення, в якій вона використовує SRAM для кешування проміжних результатів.
Таким чином, він зменшує зайві рухи, пропонуючи прискорення до 7,6 разів порівняно зі стандартними методами уваги.
Перевірте це 👇

98,93K
Найкращі
Рейтинг
Вибране