Як тренують нейромережі і скільки це коштує
Чому навчання однієї нейромережі може коштувати кілька мільйонів доларів, а іншої сто мільйонів? Чи завжди більша кількість елементів дорівнює точнішій роботі алгоритму? Чому машинне навчання потребує величезної кількості обчислювальної потужності й даних та чи є спосіб спростити їх навчання? SPEKA спробувала розібратись у цих питаннях та розповісти про основні тренди у deep learning.
Скільки коштує натренувати нейромережу
Більшість сучасних систем штучного інтелекту побудовані за типом LLM — Large language model. Ця нейромережа з багатьма параметрами навчена на великій кількості тексту за допомогою самоконтрольованого або напівконтрольованого навчання. LLM добре працюють із широким спектром завдань на відміну від навчання для одного конкретного завдання.
LLM використовують обчислювальний механізм під назвою трансформер. Трансформер приймає на вхід один набір послідовностей (даних) і видає на виході теж набір послідовностей, але інший, перетворений за певним алгоритмом.
GPT-3 під час свого навчання обробив текстовий набір даних обсягом 420 Гб! Тобто «просканував» мільйони книг та мільярди текстів з усього інтернету. Для порівняння: увесь обсяг світової «Вікіпедії» становив лише 3% від усього датасету нейромережі.
Але це далеко не межа. За оцінками Сема Альтмана, директора компанії OpenAI, розроблення GPT-4, який окрім тексту може працювати з графікою, коштувало понад $100 млн. У 2022 році дослідницька компанія Epoch AI підрахувала, що обчислювальна потужність, необхідна для навчання передової моделі, подвоюється кожні шість-десять місяців. Якщо розрахунки правильні, а кількість тренувальних даних зростатиме, то витрати на навчання моделей перевищить $1 млрд ще у 2026 році.
Чому тренувати нейромережі так дорого
Вартість тренування нейромереж зростає через їхнє ускладнення, тобто збільшення кількості параметрів.
Щоб передбачати послідовність слів, виконувати математичні операції та аналізувати отриману інформацію, нейромережі мають розуміти взаємозв’язки між словами та логічні операції. Для відображення кореляції між явищами (наприклад вища зарплата корелює із роками досвіду у галузі) використовують рівняння лінійної регресії.
Але це лише кореляція одного параметра. Натомість у сучасних нейромереж їх мільярди. Параметри (їх ще називають ваги або коефіцієнти) визначають під час тренування моделі. У це гігантське рівняння щоразу підставляють різні слова, але самі параметри рівняння залишаються незмінними.
Що складніше рівняння (що більше у ньому параметрів), то краще модель передбачає ймовірності та правдоподібнішу й точнішу відповідь здатна згенерувати. Основне завдання під час тренування мовної моделі — підібрати такі коефіцієнти, щоб вони дійсно відображали залежність (наприклад, зв’язок між словами).
Мовні моделі мають дуже велику кількість параметрів. Наприклад, GPT-3 та чатбот на його основі ChatGPT був справді гігантською нейромережею. Він мав 175 млрд параметрів. GPT-4 натомість має вже 1 трлн параметрів — майже у шість разів більше, ніж у його попередника.
Щоб обробляти величезні датасети навчальних даних та виявити таку кількість параметрів, потрібні великі обчислювальні потужності — тисячі спеціалізованих графічних процесорів.
Ці чинники зумовлюють високу вартість тренування нейромереж, не кажучи вже про високі зарплати спеціалістів зі штучного інтелекту.
Чи вистачить у мережі даних, щоб тренувати штучний інтелект
Оскільки розміри навчальних датасетів постійно зростають, дослідники буквально парсять всю мережу, щоб забезпечити модель достатньою кількістю текстів чи зображень.
Наприклад, ще для навчання GPT-2 у 2019 році не було великих та якісних наборів текстових даних, тому команда OpenAI вивантажила з онлайн-форуму Reddit гіперпосилання з усіх повідомлень, які мали понад три лайки. Разом це становило 8 млн посилань. Щоб прочитати все це, людині знадобиться 40 років без перерв на їжу та сон.
Чи багато це для нейромережі? Для сучасної — ні. Весь датасет важив 40 гігабайтів, тобто менше десятої частини GPT-3.
За деякими оцінками, нейромережі відібрали весь високоякісний текст, який був у мережі ще у жовтні 2022 року.
Деякі моделі можна тренувати на штучно створених датасетах. Наприклад, для алгоритмів з розпізнавання облич. Багато сучасних моделей навчені на величезних бібліотеках справжніх облич, на що люди не завжди надавали згоду. Дослідники з лабораторії Microsoft Mixed Reality & AI Lab розв’язали цю проблему, випустивши колекцію зі 100 тис. синтетичних облич. Ці обличчя генеруються на основі набору з 500 осіб, які дали дозвіл на сканування. Система Microsoft бере елементи облич із початкового набору, щоб створювати нові унікальні комбінації.
Схожий підхід застосовують і для генерування текстів або чутливих даних, як-от рентгенівські знімки та комп’ютерна томографія, щоб навчити систему краще діагностувати захворювання.
Чи більші нейронні мережі завжди ефективніші
Кількість даних не безмежна, тому дослідники шукають способи зробити моделі ефективнішими із меншою кількість параметрів або навчальних даних. Адже великі моделі не лише дорогі у тренуванні, їх експлуатація також дорога.
Кожен діалог із ChatGPT або запит у Bing, де інтегрований чатбот, коштує 1-2 центи. У 2022-му 3,3 трлн пошукових запитів Google, за підрахунками Morgan Stanley, коштували приблизно по 0,2 цента кожен.
Один із підходів, над яким працюють дослідники, — зменшити кількість параметрів, але навчати моделі з іще більшою кількістю даних.
Успішні кейси вже є. У 2022 році дослідники DeepMind, підрозділу Google, створили велику мовну модель (LLM) під назвою Chinchilla. Вона має 70 млрд параметрів, але навчалася на датасеті з 1,4 трлн слів (у ChatGPT 175 млрд параметрів і 300 млрд слів).
Розробники стверджують, що попри простішу архітектуру, Chinchilla досягла майже таких самих результатів, що й GPT-3.
ШІ Chinchilla має середню точність 67,5% за тестом MMLU (Measuring Massive Multitask Language Understanding). У GPT-3 цей показник становить 70%, але Chinchilla менша, швидша та дешевша у використанні (поки що модель не у вільному доступі).
Як зробити навчання та використання нейромереж дешевшими
Ще один спосіб — спрости обрахунки. Оскільки мовні моделі прораховують ймовірності і декодують слова у числа, відстеження меншої кількості знаків після коми, тобто їх округлення, може значно спростити роботу процесорам.
А команда у Google тим часом розробила альтернативу для тих, кому буде достатньо менших моделей. Цей підхід зосереджений на вилученні необхідних знань із великої моделі загального призначення у меншу спеціалізовану.
Велика модель виступає в ролі вчителя, а менша — в ролі учня. Дослідники просять вчителя відповісти на запитання та показати, як він доходить до своїх висновків. І відповіді, і міркування вчителя використовують для навчання моделі учня. Врешті модель учня, яка мала лише 770 млн параметрів, перевершила свого вчителя (540 млрд параметрів) у спеціалізованому завданні з мислення.
Як кодування та нові процесори можуть спростити розробку нейромереж
Значну частину програмування штучного інтелекту виконують мовою Python. Її перевага у простоті та зручності, але код, який запускає процесори, досить повільний.
Кращий код також можна отримати за допомогою інших інструментів. На початку цього року Meta випустила оновлену версію PyTorch, фреймворку програмування штучного інтелекту, який має вдвічі пришвидшити навчання моделей.
Modular (стартап, заснований колишніми інженерами Apple і Google) минулого місяця випустив орієнтовану на ШІ мову програмування під назвою Mojo, яка базується на Python. У деяких випадках код, написаний на Mojo, може працювати у тисячі разів швидше, ніж той самий код на Python.
Ще одна опція — вдосконалення мікросхем, на яких працює цей код. Графічні процесори можуть працювати з програмним забезпеченням штучного інтелекту, але їх розробили для оброблення графіки у відеоіграх.
Зокрема, каже дослідник апаратного забезпечення у Meta, графічні процесори не ідеально розроблені для роботи з «виведенням» даних з моделі. Тому деякі компанії розробляють більш спеціалізоване обладнання. Google вже запускає більшість своїх проєктів штучного інтелекту на власних чипах TPU. Meta створює чипи MTIA, а Amazon — Inferentia.
Чому оптимізацію розроблення ШІ не використовували раніше
Підвищити продуктивність можна завдяки відносно простим змінам, як-от округленню чисел або перемиканню мов програмування. Це може здатися дивним, але пояснюється шаленою швидкістю розробки LLM.
Лише нещодавно вони перейшли до комерційних, масових продуктів. Більшість експертів вважають, що існує ще багато можливостей для вдосконалення. Кріс Меннінг, комп’ютерний науковець зі Стенфордського університету, заявив: «Немає жодних підстав вважати, що це найкраща нейронна архітектура, і ми ніколи не знайдемо нічого кращого».