заглушки UltraFastBERT: експоненціально швидше моделювання мови - Unite.AI
Зв'язатися з нами

Штучний Інтелект

UltraFastBERT: Експоненціально швидше моделювання мови

mm

опублікований

 on

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, які

  1. Використовує лише 0.3% доступних нейронів під час стадії перешкод і залучає лише 12 нейронів із загальної кількості 4095 нейронів для кожного шару перешкод. 
  2. Забезпечує високу продуктивність, яку можна порівняти з найсучаснішими моделями BERT, реалізуючи стратегії тонкого налаштування для подальших завдань. 
  3. Забезпечує власну реалізацію CMM або множення умовної матриці, яка є основою для мережі швидкого прямого зв’язку, і в кінцевому підсумку забезпечує 78-кратне прискорення продуктивності порівняно з власним оптимізованим DMM або множенням щільної матриці. 

Нейронні мережі прямого зв’язку

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

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

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

Фаза прямого зв'язку

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

Фаза зворотного поширення

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

UltraFastBERT: Архітектура моделі та її робота

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

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

Під час навчання фреймворк UltraFastBERT дотримується процедури навчання, яка використовується фреймворком crammedBERT, яка включає в себе відключення відключення під час попереднього навчання та використання 1-циклового трикутного розкладу швидкості навчання. Потім модель налаштована, щоб максимізувати її продуктивність у широкому спектрі завдань, головним чином у тесті GLUE, протягом 5 епох. 

Втручання

Перешкоди є важливою частиною мережі швидкого прямого зв’язку, і ці мережі швидкого прямого зв’язку самі по собі утворюють значну частину великих мовних моделей, і вони відомі своїм винятковим потенціалом прискорення. Щоб зрозуміти цей потенціал прискорення, давайте візьмемо приклад однієї з найдосконаліших мовних моделей, GPT-3, у якій мережі прямого зв’язку на кожному рівні трансформатора складаються з понад 49,100 15 нейронів. Якщо її можна навчити, мережа швидкого прямого зв’язку (максимальна глибина 65,000) може замінити оригінальну мережу прямого зв’язку. Представлена ​​мережа швидкого прямого зв’язку матиме понад 16 0.03 нейронів, але вона використовуватиме лише 3 із цих нейронів для перешкод, що становить приблизно XNUMX% нейронів, доступних для GPT-XNUMX. 

Алгоритм і сумісність

Фреймворк UltraFastBERT використовує рекурсивний алгоритм псевдокоду для швидкої прямої перешкоди, і алгоритм зображено на зображенні нижче. 

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

Важливо відзначити, що як частина мережі швидкого прямого зв’язку, однопотокове множення щільної матриці покладається на виконання інструкцій MAC або множення та накопичення, і, як наслідок, заміна DMM підходом CMM принесе користь ЦП, оскільки для обчислення потрібно менше інструкцій MAC. вихід шару на елемент. Тому, незважаючи на використання умовності, яка зазвичай пов’язана з розгалуженням, «нейронне розгалуження» діє як доповнення до зсуву пам’яті до відповідних покажчиків у структурі. Таким чином, у структурі UltraFastBERT передбачення розгалужень інструкцій ніколи не використовується повністю для полегшення умовності CMM, а завантажує лише відповідні стовпці вагової матриці окремо. Крім того, оскільки структура виконує скалярний добуток рядок-стовпець, SIMD або паралельна обробка кількох векторів даних з однією інструкцією все ще є хорошим варіантом для прискорення впровадження перешкод для конкретних пристроїв. 

UltraFastBERT: продуктивність і результати

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

Результати тонкої настройки

На наступному малюнку показано продуктивність різних моделей на тестових наборах даних GLUE-dev. Тут N являє собою кількість нейронів, доступних фреймворкам для навчання, «Avg» являє собою середній бал усіх завдань. 

Як можна чітко побачити, фреймворк UltraFastBERT, який навчався на графічному процесорі A6000 протягом понад 24 годин, зберігає майже 96% прогнозної продуктивності для подальших завдань GLUE порівняно з оригінальним фреймворком BERT. Крім того, також можна побачити, що зі збільшенням глибини мереж швидкого прямого зв’язку продуктивність фреймворків знижується, хоча більшість погіршення продуктивності відбувається лише для завдання CoLa. Якщо завдання CoLa деякий час ігнорувати, фреймворк UltraFastBERT повертає передбачувану оцінку продуктивності приблизно 98.6%. 

Результати перешкод

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

  1. У реалізації рівня 1 реалізація побудована з використанням процедур BLAS рівня 1, а саме скалярно-векторного добутку та векторно-векторного скалярного добутку. 
  2. На Рівні 2 реалізації використовують підпрограми BLAS рівня 2, а саме пакетний скалярно-векторний добуток і пакетний матрично-векторний скалярний добуток. 
  3. На рівні 3 у реалізації використовується безпакетний підхід BLAS Level 3 множення матриці на матрицю, і хоча це найшвидша реалізація, доступна для мереж прямого зв’язку, такі реалізації недоступні для мереж швидкого прямого зв’язку, оскільки бібліотека не підтримує векторні рівень розрідженості множення обчислювальної матриці. 

Крім того, фреймворк UltraFastBERT розгортає реалізації GPU за допомогою спеціальних ядер CUDA або PyTorch. 

У наведеній вище таблиці порівнюється продуктивність фреймворку UltraFastBERT із його попередниками, фреймворками на основі BERT, з точки зору рівнів прямої подачі та швидкої подачі, де кожен стовпець містить відносне прискорення реалізації Fast Feedforward над Feedforward, коли вони використовують той самий лінійний -алгебраїчні рутинні примітиви. 

Однак варто зазначити, що прискорення, про які повідомляється у наведеній вище таблиці, призначені для «чесних порівнянь», тобто як швидка реалізація, так і реалізація прямого передавання використовують ідентичні лінійно-алгебраїчні рутинні примітивні операції. Крім того, на Рівні 1 і Рівні 2 реалізації мереж швидкого прямого зв’язку здатні створювати перешкоди в 48 і 78 разів швидше, ніж найшвидша реалізація прямого зв’язку відповідно. 

Заключні думки

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

Завдяки конструктивним реалізаціям проміжні рівні фреймворку UltraFastBERT експоненціально швидші. Крім того, підтвердженням цього є висока продуктивність фреймворку UltraFastBERT LLM може забезпечити високу продуктивність, задіявши лише частину своїх параметрів для окремих перешкод, оскільки структура UltraFastBERT використовує лише 0.3% доступних нейронів під час перешкод, і все ж вдається досягти 78-кратного прискорення за час перешкод. 

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