Ю Янг, Національний університет Сінгапуру: Як високопродуктивний штучний інтелект може пробитися?

Джерело: Lei Feng Net

Автор: Хуан Нан

За останні кілька років параметри моделей штучного інтелекту різко змінилися. Ю Ян зазначив, що з 2016 по січень 2021 року кількість параметрів моделі AI збільшувалася в 40 разів кожні 18 місяців; з січня 2018 по січень 2021 року кількість параметрів AI ​велика мовна модель збільшувалася кожні 18 місяців у 340 разів. Навпаки, з січня 2016 року по січень 2021 року пам'ять графічних процесорів буде збільшуватися лише в 1,7 рази кожні 18 місяців.

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

У відповідь на цю проблему Ю Ян запропонував систему Colossal-AI, починаючи з трьох рівнів високоефективної системи пам’яті, N-вимірної паралельної системи та великомасштабної оптимізації, щоб мінімізувати переміщення даних за однакових умов обладнання та збільшити пропускну здатність графічного процесора.

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

Нижче наведено зміст прямої промови Ю Яна, яку Leifeng.com відредагував і впорядкував, не змінюючи початкового наміру:

Можливості та проблеми великих моделей ШІ

Спочатку покажи картинку. По осі абсцис на графіку - час, а по осі ординат - кількість параметрів моделі AI.

З 2016 по січень 2021 року обсяг параметрів великої моделі AI буде збільшуватися приблизно в 40 разів кожні 18 місяців; з січня 2018 по січень 2021 року обсяг параметрів моделі AI буде збільшуватися в 340 разів кожні 18 місяців.

У 2016 році найкращою моделлю у світі на той момент була ResNet-50, а найкращою моделлю на сьогоднішній день – GPT-4. З точки зору архітектури, хоча OpenAI не анонсував архітектуру GPT-4, але в порівнянні з 50-шаровою нейронною мережею ResNet-50 і архітектурою GPT-3, яка має менше 100 рівнів, можна сказати, що кількість шарів моделі штучного інтелекту за останні роки не вироблялася. занадто багато змін.

Від ResNet-50 до GPT-4, хоча кількість параметрів збільшилася приблизно в 100 000 разів, кожен шар фактично став ширшим. Включаючи версію LLaMA-65B, це також мережа з десятками рівнів.

Отже, можливо, ми не глибоко навчаємося, але вступили в еру ширшого навчання.

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

Незважаючи на те, що ціна акцій Nvidia зросла в рази, темпи зростання GPU пам'яті виробників, включаючи Nvidia, значно відстають від швидкості розвитку великих моделей.

Порівняно з темпом зростання параметрів моделі за останні шість років, з січня 2016 року по січень 2021 року, темп зростання обчислень графічних процесорів NVIDIA збільшувався лише в 1,7 рази кожні 18 місяців.

Візьмемо як приклад A100 80G, щоб розрахувати обсяг пам'яті, необхідний для навчання GPT-3. GPT-3 має близько 175 мільярдів параметрів. Для зручності розрахунку візьміть ціле число 200 мільярдів, яке дорівнює 200 помножити на 10 до 9-й ступінь, і кожна окрема точність займає 4 байти, лише параметри займають 800 Г пам’яті, а градієнт також займає 800 Г пам’яті. Відповідно до поточного методу оптимізації така інформація, як перший і другий момент, зберігається в 800G. Іншими словами, якщо ви тренуєте велику модель, яка нічого не робить, вам знадобиться принаймні кілька терабайт пам’яті.Одного графічного процесора A100 лише з 80 Г пам’яті далеко недостатньо.Крім того, чим більший розмір пакету проміжних результатів, , тим більше накладні витрати пам’яті.

Ось чому, з точки зору пам’яті, для навчання великих моделей спочатку потрібні тисячі графічних процесорів.

Наведіть кількісно вимірний приклад. PaLM — це модель розміром 540 млрд. Згідно з поточною ринковою ціною хмарних обчислень, для навчання PaLM необхідно підключити принаймні 1000 GPU, а вартість становить приблизно понад 9 мільйонів доларів США. Раніше Meta чітко зазначала, що для LLaMA потрібно використовувати 2000 графічних процесорів A100, а для завершення тренувального сеансу потрібно три тижні.З цього розрахунку можна зробити висновок, що вартість одного навчального сеансу для LLaMA становить 5 мільйонів доларів США.

Однак, оскільки вдосконалення великої моделі не обмежується одним навчальним сеансом, може знадобитися щонайменше п’ять або шість ітерацій хорошої великої моделі продукту, а рання стадія — це метод проб і помилок. Таким чином, згідно з аналізом громадського каналу, вартість одного тренування GPT-4 становить близько 60 мільйонів доларів США, а навчання займає щонайменше кілька місяців. Ось чому, навіть якщо ChatGPT було оновлено до останньої версії, його нижній рівень все ще є моделлю вересневої версії 2021 року. Іншими словами, з вересня 2021 року до сьогодні OpenAI не оновлював свої продукти по суті. Основна причина полягає в тому, що вартість навчання кожної моделі не тільки висока, але й цикл навчання також дуже довгий, тому висока вартість підготовка великої моделі дуже висока. серйозна.

Уявіть собі проблему. Сьогодні існує велика модель з 1 трильйоном параметрів і 100 мільярдами параметрів. Чи можемо ми використати будь-який метод, щоб визначити, чи велика модель з трильйонами параметрів краща за велику модель зі 100 мільярдами параметрів? Тобто, наскільки збільшилася кількість параметрів моделі?

На сьогодні я вважаю, що наукової відповіді на це питання поки що неможливо. Є кілька причин.

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

Друга складність полягає в тому, що навчання великої моделі часто навчає лише одну або дві епохи, тоді як у попередній моделі CNN навчання ResNet має 90 епох, і навіть навчання із самоконтролем має 1000 епох, тому велика модель тренує лише одну або дві епохи. Цей метод еквівалентний перегляду набору даних лише один або два рази, а конвергенція ще більш недостатня. Таким чином, у разі такої високої вартості навчання нам важко перевірити, чи модель з 1 трильйоном параметрів чи модель з 2 трильйонами параметрів є кращою, оскільки їхній потенціал не був повністю використаний в експериментах. Тому я вважаю, що сьогодні велика модель штучного інтелекту є предметом експерименту, і те, як ефективно підвищити ефективність цього експерименту та зменшити витрати, відіграє фундаментальну роль у популяризації всієї галузі.

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

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

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

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

**Як працює Colossal-AI? **

Виходячи з вищезазначених проблем, ми пропонуємо велику систему навчання моделі Colossal-AI, яка забезпечує методи оптимізації, знижує вартість переміщення даних і максимізує ефективність масштабованості моделі.

Конкретні дані свідчать про те, що використання найпростішого PyTorch для навчання GPT-3 коштує 10 мільйонів доларів США. Після оптимізації Nvidia вартість може бути зменшена до 3 мільйонів доларів США за допомогою Megatron, а після використання Colossal-AI вартість може бути зменшена до 1,3 млн дол. Можна побачити, що за однакових умов обладнання мінімізація переміщення даних зменшує частку переміщення даних до найнижчого рівня та може збільшити пропускну здатність GPU до найвищої точки.

У відповідь на вищезазначені проблеми Colossal-AI пропонує три рівні. Інше подібне програмне забезпечення також включає ці три рівні.

Перший рівень – це оптимізація пам’яті. По-перше, переконайтеся, що ефективність пам’яті одного GPU та одного сервера є найвищою. Це основа.

Другий рівень — N-вимірний паралелізм. Коли ми зараз використовуємо тисячі або десятки тисяч GPU, основною технологією є Parallel Computing (паралельні обчислення). Від 1 графічного процесора до 10 графічних процесорів, через його відносно малий масштаб, ми можемо легко отримати 7-кратне прискорення; від 10 до 100 графічних процесорів ми можемо отримати лише 4-кратне прискорення, оскільки паралельний масштаб стає більшим, а його зв’язок Ціна впала. вгору. А від 100 графічних процесорів до 1000 графічних процесорів, оскільки вартість зв’язку додатково зростає, швидше за все, прискорення буде лише вдвічі. І переходячи від 1000 графічних процесорів до 10 000 графічних процесорів, якщо програмне забезпечення працює погано, воно може не тільки не прискорюватися, але навіть бути повільнішим, оскільки пристрій витрачає весь свій час на зв’язок з високою щільністю.

По-друге, це проблема оптимізації. Я думаю, що в майбутньому є два рівні розвитку великих моделей ШІ. Перший рівень полягає в тому, щоб зробити модель більш інтелектуальною та розробити кращу структуру. Наприклад, від BERT до GPT або від ResNet до BERT тощо. Він постійно намагається змінити структуру моделі.

Крім того, є вдосконалення методів оптимізації.Від переходу від SGD до MOMENTUM, ADAGRAD, а тепер і ADAM, також дуже важливо мати кращі методи оптимізації, які можуть підвищити ефективність у 10 разів у майбутньому.

Специфічний для паралельної проблеми підготовки великих моделей на практиці.

Перший — це паралелізм даних, який є найпростішим і найефективнішим паралельним методом. Паралелізм даних означає, що якщо припустити, що є 10 000 зображень, у кожному циклі обробляється 1000. Якщо є 10 машин, кожній машині виділяється 100 зображень, і всі зображення можна обробити за 10 циклів.

У процесі паралелізму даних їх потрібно підсумувати. Кожна машина використовує різні дані для отримання різних градієнтів. Машина вивчає різні зміни в різних даних, оновлює градієнт параметра та, нарешті, обчислює глобальний градієнт. Наразі метод підсумовування і використовується усереднення. Таким чином, ефект був дуже хорошим. Раніше метод LARS Colossal-AI у паралелізмі даних скоротив час навчання ImageNet з однієї години до однієї хвилини для Google, Meta, Tencent, Sony та інших компаній.

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

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

Звичайно, одного паралелізму даних недостатньо. Причина полягає в тому, що паралелізм даних передбачає, що модель має бути скопійована на кожен GPU або сервер, і сервер або GPU обмінюватимуться градієнтами. Однак, якщо GPU має лише 80 ГБ пам’яті, модель з трильйонами параметрів потребує десятки терабайт пам’яті, яку неможливо зберегти в GPU, необхідно розрізати модель на різні GPU, а потім узагальнити результати. Такий підхід називається паралелізмом моделі. Існує два типи паралелізму моделі. Перший — це тензорний паралелізм, тобто паралелізм моделі в межах шару. Наприклад, кількість шарів GPT-3 становить приблизно 80 або 90 шарів. Модель розрізається один раз для кожного шару, а розрахунок у шарі ділиться на кілька частин. Після обчислення одного шару розраховується наступний шар і т. д. Це тензорний паралелізм.

Іншим способом є конвеєрний паралелізм (Pipeline Parallelism), модельний паралелізм між паралелізмом даних і тензорним паралелізмом. При побудові кількох каналів даних (конвеєрів) точки даних кожного каналу даних відрізняються, що еквівалентно розділенню великого розміру на кілька малих розмірів, і розрахунок каналу виконується таким чином. Якщо є 10 каналів, 10 каналів представляють десять різних наборів даних, перший канал обчислює дані першого шару, а другий канал обчислює другий шар... паралельно таким чином, подібно до нашої будівлі Аналогічно, 10 інженерних команди будують 1000 поверхів, коли перша команда інженерів будує перший поверх першої будівлі, друга команда інженерів будує другий поверх другої будівлі тощо.

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

Наразі індустрія виконала відповідну роботу.На додаток до Colossal-AI, є також TensorRT від NVIDIA та DeepSpeed від Microsoft, які також є двома компаніями з найвищими технічними бар’єрами.

Але Colossal-AI відрізняється від нього тим, що Colossal-AI зосереджується на розвитку великих моделей у майбутньому. Можна побачити, що поточна модель все ще стає ширшою, а не глибшою, і тензорний паралелізм буде важливішим, але її найбільшим недоліком є те, що оскільки вона розрізає весь рівень, комунікаційні витрати занадто великі. Ось чому генеральний директор Nvidia спеціально пояснив проблему надто великих комунікаційних витрат під час впровадження 3D-паралелізму на саміті GTC вперше, і це можна зробити лише на одному сервері. Таким чином, Colossal-AI зосереджується на двовимірному паралелізмі тензорів і 2,5-вимірному паралелізмі тензорів, що на порядок зменшує витрати на обчислення.

Це означає, що з одновимірним тензорним паралелізмом кожна машина повинна мати справу з 9999 машинами з 10 000 машин, тоді як двовимірний тензорний паралелізм ділить її на субодиниці, і кожна машина має мати справу лише з 96 машинами. Його основна логіка полягає у використанні деякої локальної синхронізації (локальної синхронізації) замість глобальної синхронізації (глобальної синхронізації) та більш локального зв’язку замість глобального зв’язку.У цьому процесі планування проектування є найскладнішим.

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

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

Щоб покращити ефективність прогнозування моделі, нам часто потрібні дані з довгою послідовністю. Суть поточної великої моделі полягає в тому, щоб передбачити ймовірність наступного слова за допомогою виведення одного слова, а дані з довгою послідовністю просто необхідний. У зв'язку з цим Colossal-AI також запустив Sequence Parallelism (паралелізм послідовності).

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

Тобто, якщо припустити, що 200 людей у кімнаті сьогодні взяли пачку закусок, я сподіваюся, що кожен зможе скуштувати закуски всіх інших, і потрібно принаймні 200 квадратних обмінів, щоб усі могли скуштувати закуски інших. закуски. Тоді найпростіший спосіб: кожен утворює коло, кожен передає з’їдені закуски людині праворуч і отримує закуски зліва, лише n-1 разів, тобто 199 передає Фініш. Таким чином зменшується загальна вартість зв’язку.

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

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

Перехід на Open Source

Colossal-AI — це програмне забезпечення з відкритим вихідним кодом. Водночас ми також створили комерційну платформу. Для користувачів без графічного процесора вони можуть безпосередньо навчатися та розгортати власні великі моделі на платформі. Ми також надаємо різні моделі, такі як LLaMA, PaLM і GPT, і для найшвидшого завершення тонкого налаштування моделі потрібно лише два-три дні. Порівняно з попередніми користувачами, яким могли знадобитися тижні або навіть місяці, щоб мати справу з такою інфраструктурою, як апаратне та програмне забезпечення, ефективність значно підвищилася. У той же час Colossal-AI також захищає конфіденційність користувачів. Платформа не зберігатиме та не матиме доступу до даних користувачів. Це істотна відмінність між Colossal-AI та OpenAI ChatGPT. Коли ми завантажуємо дані в Google Cloud, Google у багатьох випадках не торкається наших даних, але OpenAI GPT аналізує їх, і такі ризики, як моделі штучного інтелекту, які неможливо інтерпретувати, і неповне навчання є поширеними. Тому в майбутньому багато компаній будуть навчати власні великі моделі. Colossal-AI робить це для максимального захисту конфіденційності користувачів, надаючи інструменти для навчання великих моделей.

Що стосується продуктивності, Colossal-AI може навчити модель у 24 рази більшу на тому ж апаратному забезпеченні, що в 3 рази швидше, ніж DeepSpeed.Навіть недорогий сервер може використовувати Colossal-AI для завершення відповідного навчання моделі. Наприклад, для навчання LLaMA-65B використання того самого коду на Colossal-AI може безпосередньо отримати близько 50% ефективності прискорення.

Проста аналогія, наприклад, зараз велика модель призначена для викопування золота, а Nvidia продає лопати, потім ми продаємо рукавички та одяг і максимізуємо ефективність видобутку золота.

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Репост
  • Поділіться
Прокоментувати
0/400
Немає коментарів
  • Закріпити