Моделі та платформи ШІ
UltraFastBERT: Введення у експоненційно швидшу мовну модель
Моделі мови та генерація штучного інтелекту, відомі своїми можливостями, є гарячою темою в галузі штучного інтелекту. Глобальні дослідники покращують їхню ефективність та можливості. Ці системи, зазвичай глибинні моделі навчання, попередньо навчаються на великих позначених даних, включаючи нейронні мережі для самоуваги. Вони використовують різні шари – прямопроточні, рекурентні, вкладені та увагові – для обробки вхідного тексту та генерації відповідних виходів.
Більшість великих мовних моделей мають прямопроточні шари, які містять найбільшу кількість параметрів. Дослідження показують, що ці моделі використовують лише частину доступних нейронів для обчислення виходу під час інтерференції.
Ця стаття вводить UltraFastBERT, каркас на основі BERT, який відповідає ефективності провідних моделей BERT, але використовує лише 0,3% нейронів під час інтерференції, зокрема 12 з 4095 нейронів у кожному шарі. Ми дослідимо архітектуру UltraFastBERT, функціонування та результати. Почнімо.
UltraFastBERT: Введення у експоненційно швидшу мовну модель
Традиційно мовна модель використовує різні компоненти для забезпечення можливостей генерації вмісту, включаючи прямопроточні шари, рекурентні шари, вкладені шари та шари уваги. Ці компоненти відповідають за навчання розпізнаванню закономірностей під час навчання та, в кінцевому підсумку, генерації точного виходу на основі вхідних текстів. Кожен з цих компонентів має деякі параметри, і в мовних моделях більша частина цих параметрів належить прямопроточним шарам. Однак ці прямопроточні шари не використовують 100% доступних нейронів для генерації виходу для кожного входу в час інтерференції, що призводить до марнування ресурсів, яке збільшує складність, час обчислень та обчислювальні витрати.
У своїй основі каркас UltraFastBERT є варіантом каркаса BERT, будується на цьому концепті та замінює прямопроточні шари на швидші прямопроточні мережі в своїй архітектурі, що в кінцевому підсумку призводить до того, що каркас UltraFastBERT використовує лише 0,3% доступних нейронів, забезпечуючи результати, порівнянні з моделями BERT подібного розміру та процесом навчання, особливо на задачах нижнього рівня. Завдяки своїм дизайнерським реалізаціям проміжні шари каркаса UltraFastBERT експоненційно швидші,
Припустимо, у нас є швидка прямопроточна (FFF) мережа та прямопроточна (FF) мережа, кожна з n нейронами, часова складність прямого проходу в прямопроточній мережі становить O(n), тоді як часова складність становить O(log2n) для швидкої прямопроточної мережі, а різниця у часовій складності в основному пояснюється тим, що в швидкій прямопроточній мережі нейрони організовані у збалансоване двійкове дерево, а коли надається вхід, мережа виконується лише одну гілку дерева умовно. Крім того, виконання інтерференції на швидкій прямопроточній мережі призводить до умовного матричного множення (CMM), при якому вхідні рядки крапкові з природними ваговими колонками окремо, а вихід попередньої операції крапкового добутку визначає вагу колонок для продовження. Таким чином, мережа використовує всі нейрони лише для кількох входів, і жоден вхід не вимагає більше кількох нейронів для обробки мережею. Операція крапкового добутку CMM контрастує з густим матричним множенням (DMM), яке обчислює крапковий добуток усіх входів з усіма ваговими колонками.
Підсумувавши, UltraFastBERT – це каркас на основі BERT, який забезпечує результати, порівнянні з провідними мовними моделями BERT, які
- Використовує лише 0,3% доступних нейронів під час стадії інтерференції та займає лише 12 нейронів з загальної кількості 4095 нейронів для кожного шару інтерференції.
- Забезпечує сильну продуктивність, порівнянну з провідними моделями BERT, реалізуючи стратегії тонкого налаштування на задачах нижнього рівня.
- Забезпечує вбудовану реалізацію умовного матричного множення (CMM), яке є основою для швидкої прямопроточної мережі, і в кінцевому підсумку призводить до 78-кратного прискорення продуктивності порівняно з оптимізованим густим матричним множенням (DMM).
Прямопроточні нейронні мережі
Прямопроточна нейронна мережа – одна з найпростіших штучних нейронних мереж, яка рухає інформацію лише у прямому напрямку, від вузлів входу до вузлів виходу через приховані вузли. Одним з основних моментів прямопроточної нейронної мережі є те, що в таких мережах немає петель чи циклів, і вони простіші для побудови порівняно з РНН (рекурентними нейронними мережами) та КНН (конвольними нейронними мережами). Архітектура прямопроточної нейронної мережі складається з трьох компонентів: шарів входу, прихованих шарів та шарів виходу, і кожен шар складається з одиниць, званих нейронами, і кожен шар з’єднаний з іншими за допомогою ваг.
Нейрони, присутні в шарах входу, приймають вхідні дані та передають їх до наступного шару. Кількість нейронів у кожному шарі входу визначається розмірністю вхідних даних. Далі у нас є приховані шари, які не піддаються ні входу, ні виходу, і вони відповідають за необхідні обчислення. Нейрони в кожному прихованому шарі приймають зважену суму виходів попереднього шару, застосовують функцію активації та передають результат до наступного шару, і цей процес повторюється знову і знову. Нарешті, у нас є шар виходу, який видає вихід для заданих входів. Кожен нейрон у кожному шарі прямопроточної мережі з’єднаний з кожним нейроном у наступному шарі, що робить FFF-мережі повністю з’єднаною мережею. Ваги використовуються для представлення сили з’єднання між нейронами, і мережа оновлює ці ваги для навчання закономірностей на основі помилки, яка виникає у виході.
Далі, у роботі прямопроточної нейронної мережі є два ключових етапи: фаза прямого проходу та фаза зворотного проходу.
Фаза прямого проходу
У фазі прямого проходу вхід подається до мережі, а потім рухається вперед. Приховані шари обчислюють зважену суму входів, вводять нелінійність у модель, передаючи суму входів через функцію активації, таку як ReLu, Sigmoid та TanH. Процес повторюється знову і знову, поки ваги не досягнуть шару виходу, і модель робить передбачення.
Фаза зворотного проходу
Як тільки модель робить передбачення, вона обчислює помилку між згенерованим виходом та очікуваним виходом. Помилка потім зворотно проходить через мережу, і мережа використовує алгоритм оптимізації градієнтного спуску для调整 ваг з метою мінімізації помилки.
UltraFastBERT: Архітектура моделі та робота
Каркас UltraFastBERT побудований на основі архітектури crammedBERT, і каркас UltraFastBERT використовує всі компоненти архітектури crammedBERT, крім природи проміжних шарів. Замість цього каркас UltraFastBERT замінює трансформер-кодувальник у прямопроточних мережах, що містяться у проміжних шарах архітектури crammedBERT, на швидкі прямопроточні мережі. Каркас UltraFastBERT робить наступні зміни до оригінальних прямопроточних мереж:
- Каркас позбувається різниці між листовими та нелістовими вузлами, використовуючи функцію активації GeLu по вузлах та оснащуючи ці вузли вихідними вагами та видаляючи вихідні зміщення повністю. Після цього каркас фіксує розмір листа до 1.
- Нарешті, каркас дозволяє кілька швидких прямопроточних мережевих дерев паралельно, спільно обчислюючи проміжні шари виходу. Каркас здійснює це обчислення, беручи суму окремих дерев, а потім представляє цю суму як проміжний шар виходу.
Далі, під час навчання, каркас UltraFastBERT слідує процедурі навчання, використовуваній каркасом crammedBERT, яка включає вимкнення dropout під час попереднього навчання та використання графіка навчання 1-циклу. Модель потім налаштовується для максимізації її продуктивності на широкому спектрі завдань, головним чином у рамках бенчмарка GLUE, протягом загального часу 5 епох.
Інтерференція
Інтерференція – це важливий аспект для швидкої прямопроточної мережі, і ці швидкі прямопроточні мережі самі по собі утворюють велику частку великих мовних моделей, і вони відомі своєю винятковою прискорювальною потенціальністю. Щоб зрозуміти цю прискорювальну потенціальність, давайте розглянемо приклад однієї з найбільш просунутих мовних моделей, GPT-3, у якій прямопроточні мережі в кожному трансформер-шарі складаються з понад 49 100 нейронів. Якщо тренуватися, швидка прямопроточна мережа (максимальна глибина 15) могла б замінити оригінальну прямопроточну мережу. Введена швидка прямопроточна мережа матиме понад 65 000 нейронів, але вона буде використовувати лише 16 з цих нейронів для інтерференції, що становить близько 0,03% доступних нейронів GPT-3.
Алгоритм та сумісність
Каркас UltraFastBERT використовує рекурсивний псевдокодовий алгоритм для швидкої прямопроточної інтерференції, і алгоритм зображений на наступній картинці.

Тут B представляє розмір批, H представляє ширину шарів входу, а M представляє колонки. Іншою великою проблемою при використанні підходу умовного матричного множення (CMM) є те, чи робить це використання швидких прямопроточних мереж несумісними з процесом, який вже використовується для густого матричного множення (DMM) та існуючих каркасів глибинного навчання. На щастя, використання CMM не впливає на продуктивність або вводить несумісність, хоча воно збільшує складність кешування.
Важливо відзначити, що як частина швидкої прямопроточної мережі, однопотокове густе матричне множення залежить від виконання інструкцій множення та накопичення (MAC), і внаслідок цього заміна DMM на підхід CMM принесе користь процесорам, оскільки для обчислення виходу шару на елемент потрібно менше інструкцій MAC. Тому, незважаючи на те, що використовується умовність, яка зазвичай пов’язана з розгалуженням, “нейронне розгалуження” діє як додаток до зміщення пам’яті щодо відповідних вказівників у каркасі. Тому в каркасі UltraFastBERT інструкція передбачення розгалуження ніколи не повністю задіяна для забезпечення умовності CMM, і завантажує лише відповідні колонки матриці ваг окремо. Крім того, оскільки каркас виконує операції крапкового добутку рядків-стовпців, векторна паралельна обробка SIMD все ще є хорошим варіантом для прискорення реалізації інтерференції для певних пристроїв.
UltraFastBERT: Продуктивність та результати
Ми поговоримо про продуктивність каркаса UltraFastBERT для тонкого налаштування, а також для завдань інтерференції, щоб проаналізувати, як каркас працює порівняно з провідними мовними моделями.
Результати тонкого налаштування
Наступна картина демонструє продуктивність різних моделей на наборах тестових даних GLUE-dev. Тут N представляє кількість нейронів, доступних для каркасів для навчання, “Середнє” представляє середній бал усіх завдань.

Як можна побачити, каркас UltraFastBERT, який був навчений на GPU A6000 протягом понад 24 годин, зберігає майже 96% передбачувальної продуктивності на завданнях нижнього рівня GLUE порівняно з оригінальним каркасом BERT. Крім того, можна побачити, що при збільшенні глибини швидких прямопроточних мереж продуктивність каркасів знижується, хоча більшість зниження продуктивності відбувається лише для завдання CoLa. Якщо завдання CoLa тимчасово відкладено, каркас UltraFastBERT повертає бал передбачувальної продуктивності близько 98,6%.
Результати інтерференції
У цьому розділі ми порівняємо продуктивність різних прямопроточних або швидких прямопроточних мереж на реалізації інтерференції, і ці реалізації розподілені на три рівні.
- У реалізації рівня 1 реалізація побудована за допомогою процедур рівня 1 BLAS, а саме скалярно-векторного добутку та добутку вектор-вектор.
- На рівні 2 реалізації використовують процедури рівня 2 BLAS, а саме пакетні скалярно-векторні добутки та пакетні добутки матриця-вектор.
- На рівні 3 реалізації використовують підхід некешованого матрично-матричного множення рівня 3 BLAS, і хоча це найшвидша реалізація, доступна для прямопроточних мереж, такі реалізації не доступні для швидких прямопроточних мереж, оскільки бібліотека не підтримує векторну розрідженість умовного матричного множення.
Крім того, каркас UltraFastBERT розгортає реалізації GPU за допомогою настраїваних ядер CUDA або PyTorch.

Вищезазначена таблиця порівнює продуктивність каркаса UltraFastBERT з його попередниками, каркасами на основі BERT, щодо прямопроточних та швидких прямопроточних шарів, де кожна колонка містить відносне прискорення реалізації інтерференції швидкої прямопроточної мережі над прямопроточною мережею при використанні тих самих лінійно-алгебричних примітивних операцій.
Однак варто відзначити, що прискорення, зазначені в таблиці, призначені для “чесних порівнянь”, тобто як швидкі прямопроточні, так і прямопроточні реалізації використовують однакові лінійно-алгебричні примітивні операції. Крім того, на рівнях 1 і 2 реалізації швидких прямопроточних мереж здатні виконувати інтерференцію в 48 і 78 разів швидше, ніж найшвидша реалізація прямопроточної мережі відповідно.
Фінальні думки
У цій статті ми говорили про UltraFastBERT, варіант каркаса BERT, який будується на концепції, що прямопроточні шари не використовують 100% доступних нейронів для генерації виходу для кожного входу в час інтерференції, що призводить до марнування ресурсів, яке збільшує складність, час обчислень та обчислювальні витрати, і замінює прямопроточні шари на швидші прямопроточні мережі в своїй архітектурі, що в кінцевому підсумку призводить до того, що каркас UltraFastBERT використовує лише 0,3% доступних нейронів, забезпечуючи результати, порівнянні з моделями BERT подібного розміру та процесу навчання, особливо на завданнях нижнього рівня.
Завдяки своїм дизайнерським реалізаціям проміжні шари каркаса UltraFastBERT експоненційно швидші. Крім того, сильна продуктивність, забезпечена каркасом UltraFastBERT, є доказом того, що великомасштабні мови (LLM) можуть забезпечувати сильну продуктивність, займаючи лише частину своїх параметрів для окремих інтерференцій, оскільки каркас UltraFastBERT використовує лише 0,3% доступних нейронів під час інтерференції, і тим самим досягає 78-кратного прискорення часу інтерференції.












