Щойно інсайдери галузі знову отримали «відкритий вихідний код» GPT-4 OpenAI!
До них входять дуже конкретні параметри та інформація, як-от архітектура GPT-4, інфраструктура навчання та висновків, обсяг параметрів, набір навчальних даних, номер маркера, вартість і суміш експертів (MoE).
Зокрема, за різними проектами, як важить OpenAI. І як подолати найбільше вузьке місце у виведенні великої моделі.
Від кого таке тяжке одкровення?
Авторами статті є два учасники SemiAnalysis на ім'я Ділан Патель і Джеральд Вонг.
Варто зазначити, що Ділан Пател також був одним із авторів внутрішнього витоку документів Google («У нас немає рову, як і у OpenAI»), який раніше викликав обурення в галузі.
Генеральний директор DeepMind Хассабіс нещодавно підтвердив автентичність витоку документів від інженерів Google в інтерв’ю іноземному ЗМІ The Verge.
Видно, що у Ділана Пателя є деякі особливі канали, що робить сьогоднішнє відкриття дещо більш достовірним.
Лі Чжіфей, генеральний директор Going out to ask, також виступив з промовою
Багато компаній можуть робити GPT-4
На думку автора надзвичайної статті, причина, чому OpenAI не відкрита, полягає не в тому, щоб гарантувати, що люди не будуть знищені штучним інтелектом, а тому, що речі, які вони створюють, є відтворюваними.
Він навіть прогнозує, що в майбутньому всі великі інтернет-компанії або стартапи штучного інтелекту в Китаї та Сполучених Штатах зможуть побудувати модель, яка буде такою ж, як GPT-4 або навіть перевершить GPT-4.
Але він також визнав, що GPT-4 є великим шедевром OpenAI. Він конденсує геніальний дизайн інженера, складну структуру та різноманітні геніальні інженерні компроміси.
Найнадійніша перевага OpenAI полягає в тому, що вони мають відгуки від реальних користувачів, найкращі інженерні таланти в галузі та постійну лідируючу позицію, забезпечену перевагою першого учасника.
Структура моделі
По-перше, автор, який опублікував новину, вважає, що GPT-4 містить загалом 1,8 трильйона параметрів у 120 шарах, тоді як GPT-3 має лише близько 175 мільярдів параметрів.
Іншими словами, масштаб GPT-4 більш ніж у 10 разів перевищує GPT-3.
Раніше в Інтернеті говорилося, що параметр GPT-4 становить 1 трлн, що здається заниженим з реальної ситуації.
Щоб зберегти прийнятну вартість, OpenAI приймає модель MoE для будівництва.
Зокрема, GPT-4 має 16 експертних моделей із приблизно 111 мільярдами параметрів на експерта MLP. Серед них дві експертні моделі використовуються для прямого поширення.
Хоча в літературі є багато дискусій щодо передових алгоритмів для вибору експертів, на яких вказує кожен маркер, стверджується, що алгоритм, який OpenAI використовує для GPT-4, насправді дуже простий.
Крім того, в моделі є близько 55 мільярдів параметрів, які використовуються для розподілу уваги механізму.
У кожному обґрунтуванні прямого розповсюдження (генерації маркера) GPT-4 потрібно використовувати лише близько 280 мільярдів параметрів і 560 TFLOP.
Це різко контрастує з багатьма чисто щільними моделями, які вимагають приблизно 1,8 трильйона параметрів і 3700 TFLOPs на один прохід.
Склад набору даних
OpenAI навчив GPT-4 з 13 трильйонами токенів.
Цей набір даних містить не лише 13 трильйонів токенів, але оскільки немає високоякісних токенів, цей набір даних також містить багато епох.
У Scale AI і набір даних також включено мільйони рядків даних для точного налаштування інструкцій.
Однак автор викриття сказав, що вони не знайшли багато інформації про ці дані RLHF.
Довжина контексту на етапі попереднього навчання досягла 8K (seqlen), а версія 32K була налаштована на основі попередньо підготовленої версії 8K.
Розмір пакету поступово збільшується протягом кількох днів у кластері, і остаточний розмір пакета, який використовує OpenAI, становить 60 мільйонів.
Звичайно, це «лише» розмір експертної моделі з 7,5 мільйонами токенів кожен, оскільки не кожна експертна модель бачитиме всі токени.
Паралельна стратегія
Паралельна стратегія дуже важлива для A100GPU.
OpenAI використовує 8-сторонній тензорний паралелізм, оскільки NVLink підтримує лише таку кількість.
Але крім того, автор екстреної новини почув, що OpenAI використовує 15 паралельних конвеєрів.
Теоретично 15 конвеєрів — це небагато, враховуючи передачу даних і час обчислення.
Але через обмеження обсягу пам’яті така кількість конвеєрів має сенс.
У чисто конвеєрному та тензорно-паралельному режимі параметр FP16 становить близько 30 ГБ на GPU.
Але якщо додати кеш KV і вартість, якщо більшість графічних процесорів, які використовує OpenAI, мають 40 ГБ A100, тоді така архітектура теоретично має сенс.
Цілком можливо, що OpenAI використовує ZeRo Stage 1 і може використовувати FSDP на рівні блоку або гібридний паралелізм спільних даних.
Чому вони не використали повну модель FSDP? Можливо через високу вартість зв'язку.
Хоча OpenAI має високошвидкісну мережу між більшістю вузлів, вона не охоплює всі вузли.
Серед них принаймні деякі кластери матимуть набагато меншу пропускну здатність з’єднання, ніж інші.
Однак автор сказав, що він не зовсім розуміє, як OpenAI уникає генерації «величезних бульбашок» у кожній партії за такого високого паралелізму конвеєрів. Цілком імовірно, що OpenAI протистояв цим витратам.
Вартість навчання
OpenAI навчає GPT-4 приблизно з 2,15e25 FLOPS, тренується приблизно на 25 000 A100 протягом 90-100 днів, і рівень використання становить від 32% до 36%.
Такий надзвичайно низький рівень використання був частково зумовлений великою кількістю відмов, що вимагало перезапуску навчання з попередніх контрольних точок. Наприклад, вартість бульбашки, згадана вище.
Витрати на навчання в цьому випадку надзвичайно високі.
Інша причина полягає в тому, що повне зменшення серед такої кількості графічних процесорів дуже дороге.
На цій діаграмі припускається, що неможливість об’єднати кожну операцію, пропускна здатність пам’яті, необхідна для механізму звернення уваги, і накладні витрати на апаратне забезпечення, еквівалентні зчитуванню параметрів, призводять до неефективності. Фактично, навіть з оптимізованою бібліотекою, такою як бібліотека Nvidia FasterTransformer, загальні витрати можуть бути ще більшими
Автор викривача підозрює, що якщо цей кластер насправді є групою менших кластерів із слабшими мережевими з’єднаннями, то швидкість неблокуючого (неблокованого) з’єднання між різними частинами кластера становить 800G/1,6T, але ці частини швидкість з'єднання між ними становить лише 200G/400G.
Якщо вартість хмарних обчислень OpenAI становить близько $1/A100 годин, то за таких умов вартість навчання становить близько $63 млн.
Це не включає всі експерименти, невдале навчання та інші витрати, такі як збір даних, RLHF, людські витрати тощо.
Якщо врахувати щойно згадані фактори, то реальна вартість значно вища.
Крім того, це має виходити з передумови, що інші можуть купувати мікросхеми/мережі/центри обробки даних, нести капітальні витрати на створення цих систем і здавати їх в оренду OpenAI.
Але сьогодні, за $2/H100 годин, попереднє навчання можна провести на приблизно 8192 H100 всього за 55 днів за ціною 21,5 мільйона доларів.
На малюнку вище показано кількість параметрів і токенів для деяких із загальнодоступних розширених моделей. Лінія на малюнку — це масштабовані спостереження Google DeepMind Chinchilla (більші смуги помилок згладжені), кожна точка на лінії показує теоретичні FLOPS, необхідні для навчання моделі з цим параметром і кількістю токенів
Проте, за словами автора звіту, до кінця цього року щонайменше дев'ять компаній матимуть кластери H100, що перевищуватимуть вищезазначений розмір.
Хоча не всі з цих компаній використовуватимуть їх для індивідуального навчання моделей, якщо хтось це зробить, вони матимуть більші моделі, ніж GPT-4.
Наприклад, Meta матиме більше 100 000 H100 до кінця цього року, але значна частина з них буде розподілена у власному центрі обробки даних для висновків.
Але його найбільше окреме скупчення все одно перевищить 25 000 H100.
Коротше кажучи, до кінця цього року багато компаній матимуть достатньо обчислювальних ресурсів для навчання моделей розміру GPT-4.
У цій таблиці наведено теоретично оптимальну вартість навчання моделі на Nvidia A100, без урахування необхідної робочої сили, інструментів ML Ops, збору/попередньої обробки даних, усунення збоїв, одноразових/кількох прикладів навчання, висновків тощо, багато частини Вартість
Компроміси в змішаних експертних моделях
MoE (Змішана модель експертів) — чудовий спосіб зменшити кількість параметрів під час логічного висновку, збільшуючи їх одночасно.
Але це необхідно для кожного навчального токена, щоб кодувати більше інформації, тому що отримати достатньо якісних токенів дуже складно.
Якщо OpenAI дійсно хоче досягти найкращої продуктивності, їм потрібно навчити вдвічі більше токенів, щоб досягти цього.
З огляду на це, OpenAI пішов на чимало компромісів.
Наприклад, мати справу з MoE під час висновку дуже складно, оскільки кожна частина моделі не використовується під час кожного покоління маркерів.
Це означає, що деякі частини можуть перебувати в стані спокою, а інші частини працювати.
Така ситуація може значно знизити використання при обслуговуванні користувачів.
Дослідники показали, що використання 64-128 експертних моделей дає кращі профілі втрат, ніж використання 16 експертних моделей, але це лише дослідження.
Існує багато причин для використання відносно невеликої кількості експертних моделей.Одна з причин, чому OpenAI вибрав 16 експертів, полягає в тому, що більше експертних моделей важко узагальнити для багатьох завдань.
Також важче досягти конвергенції з більш експертними моделями.
У такому величезному навчальному процесі OpenAI вирішила бути більш консервативною щодо кількості експертних моделей.
Крім того, використання меншої кількості експертних моделей також сприяє їх інфраструктурі висновків. Існують різні складні компроміси та компроміси при переході на гібридну архітектуру логічного висновку експертної моделі.
Автор екстрених новин починає з обговорення основних компромісів міркувань LLM, а потім обговорює проблеми, з якими стикається OpenAI, і вибір, який вони роблять.
Розуміння компромісів
До речі, перед тим, як представити компроміси висновків, після спілкування з усіма компаніями LLM, інформатор виявив, що бібліотека висновків NVIDIA FasterTransformer дуже погана, а TensorRT – ще більше.
Це означає, що якщо Nvidia не буде модифікувати, людям доведеться створювати власні рішення з нуля.
Є три основні компроміси в міркуванні про великі мовні моделі, розмір пакету (кількість користувачів, що одночасно обробляються) і кількість використовуваних мікросхем, а саме:
1. Затримка
Модель повинна відповідати в межах розумної затримки. Ніхто не хоче чекати кілька секунд у програмі чату, перш ніж почне отримувати вихідні дані. Час обробки для попереднього заповнення (вхідні маркери) і декодування (вихідні маркери) змінюється.
2. Пропускна здатність
Модель повинна видавати певну кількість жетонів за секунду. Людям потрібно близько 30 жетонів на секунду. Для різних інших випадків використання прийнятна як нижча, так і вища пропускна здатність.
3. Коефіцієнт використання
Апаратне забезпечення, на якому працює модель, має досягати високих показників використання, інакше вартість буде непомірно високою. Хоча вищу затримку та нижчу пропускну здатність можна використовувати для об’єднання більшої кількості запитів користувачів разом для досягнення кращого використання, це також збільшує складність.
Ключ до міркування LLM полягає в тому, щоб збалансувати дві точки пропускної здатності пам’яті та обчислення.
Теоретичні вимоги до пропускної здатності LLM: можна припустити, що максимальний розмір моделі, яку можна запустити на iPhone 14, становить ~1 мільярд параметрів FP16 або ~4 мільярди параметрів int4. Це базове обмеження LLM на основі смартфонів. моделі не будуть прийняті
Простіше кажучи, кожен параметр потрібно прочитати, і з ним пов’язано 2 FLOP.
Таким чином, співвідношення більшості чіпів (H100 SXM має лише 3 ТБ/с пропускну здатність пам’яті, але FP8 має 2000 TFLOPs/с) є абсолютно незбалансованим у висновку з розміром партії 1.
Якщо є лише один користувач (розмір пакету 1), пропускна здатність пам’яті, необхідна для читання кожного параметра кожного разу, коли генерується маркер, домінує над часом висновку, тоді як час обчислення майже незначний.
Щоб ефективно масштабувати великі мовні моделі для кількох користувачів, розмір пакету має перевищувати 1. Кілька користувачів ділять вартість читання параметрів. Наприклад, з розміром пакета 256/512 ви можете отримати 512 FLOP/с або 1024 FLOP/с на байт прочитаної пам’яті.
Це співвідношення ближче до балансу H100 між пропускною здатністю пам'яті та FLOPS. Це допомагає досягти вищого рівня використання, але ціною більшої затримки.
Багато хто вважає ємність пам’яті головним вузьким місцем для висновків LLM, оскільки великі моделі вимагають кількох мікросхем для логічного висновку, а більший обсяг пам’яті означає, що вони можуть поміститися на меншу кількість мікросхем.
Однак насправді краще використовувати більше мікросхем, щоб затримка була нижчою, пропускна здатність збільшена, і більші розміри пакетів можна використовувати для кращого використання.
Компроміси та інфраструктура висновків GPT-4
Як згадувалося вище, для GPT-4 це дуже складно міркувати. Але бути модифікатором MoE знову створює цілий ряд труднощів.
Кожен перехід, який генерує токени, може бути направлений до іншого набору експертів. Це створює проблему з компромісом між пропускною здатністю, затримкою та використанням при більших розмірах пакетів.
GPT-4 OpenAI має 16 експертів, і кожен перехід направляє до 2 з них.
Це означає, що якщо розмір пакету дорівнює 8, кожен зчитований параметр експерта може мати лише розмір пакета 1.
Гірше того, це може означати, що один експерт має розмір пакета 8, а інші експерти мають розмір пакета 4, 1 або 0.
Для кожного згенерованого токена алгоритм маршрутизації надсилає прямі проходи в різних напрямках, через що затримки між токенами та розмірами пакетів експертів значно відрізняються.
Інфраструктура висновків є однією з головних причин, чому OpenAI обрав меншу кількість експертів. Якщо вони обирають більше експертів, пропускна здатність пам’яті стає вузьким місцем для висновків.
Кластер висновків OpenAI зазвичай може досягати розміру пакета 4k+, що означає, що навіть за найкращого балансу навантаження між експертами розмір пакету експертів становить лише близько 500 або близько того. Для досягнення цього потрібно дуже багато використання.
За словами інформатора, ми дізналися, що OpenAI робить висновок на кластері з 128 графічних процесорів. Вони мають кілька таких кластерів у кількох центрах обробки даних і географічних місцях.
Висновок використовує 8-сторонній тензорний паралелізм і 16-сторонній конвеєрний паралелізм. Кожен вузол, що складається з 8 GPU, має лише близько 130B параметрів, або менше 30 ГБ на GPU за FP16 і менше 15 ГБ за FP8/int8.
Це дозволяє виконувати висновки на 40 ГБ A100, якщо розмір кешу KV для всіх пакетів не надто великий.
Рівні, що містять різних експертів на різних вузлах, не розділені, оскільки це призведе до того, що мережевий трафік буде надто нерегулярним, а переобчислення кешу KV між кожним поколінням маркерів буде занадто дорогим.
Для майбутніх розширень моделі MoE та умовної маршрутизації найбільша складність полягає в тому, як обробити маршрутизацію кешу KV.
Модель має 120 шарів, тож їх можна просто розподілити між 15 різними вузлами, але оскільки перший вузол потребує завантаження та вбудовування даних, має сенс розмістити менше шарів на головному вузлі кластера висновків.
Крім того, є деякі чутки про «спекулятивне декодування» (далі), що також пояснює, чому майстерноди повинні містити менше рівнів.
Вартість висновку
Порівняно з моделлю Davinchi зі 175 мільярдами параметрів, GPT-4 коштує в 3 рази, хоча її параметри прямого зв’язку збільшуються лише в 1,6 рази.
Це в основному через те, що GPT-4 вимагає більшого кластера та досягає меншого використання.
Автори вважають, що вартість визначення довжини послідовності GPT-4 8k на 128 A100s становить $0,0049 за 1000 токенів, тоді як вартість визначення довжини послідовності GPT-4 8k на 128 H100s становить $0,0021 за 1000 токенів.
Зауважте, що це передбачає досить високе використання та підтримує високий розмір партії.
Але очевидно, що OpenAI іноді використовується дуже недостатньо.
У зв’язку з цим автор припустив, що OpenAI вимкне кластер у непікові години, переконфігурує вузли, відновить навчання менших тестових моделей і спробує різні нові технології, щоб зменшити витрати на висновки.
Якби OpenAI цього не зробив, їхнє використання було б нижчим, а витрати зросли б більш ніж удвічі.
Увага на кілька запитів
Крім того, OpenAI також використовує Multi-Query Attention (MQA).
Адреса паперу:
Коротше кажучи, потрібна лише одна головка уваги, і слід пам’яті кешу KV можна значно зменшити.
Незважаючи на це, GPT-4 довжиною 32 Кб точно не може працювати на 40 ГБ A100, і існує верхня межа максимального розміру пакета 8 Кб.
Безперервна пакетна обробка
OpenAI реалізує змінний розмір партії та безперервну пакетну обробку.
Це дозволяє деяку ступінь максимальної затримки та оптимізує вартість висновків.
Спекулятивне декодування
Було виявлено, що OpenAI використовував «спекулятивне декодування» в процесі міркувань GPT-4, який все ще має 100% невизначеність.
Різниця в затримці від маркера до маркера та різниця під час виконання простих завдань пошуку та більш складних завдань, здається, припускає, що це можливо, хоча є ще занадто багато змінних, щоб бути впевненими.
Тут викривач вніс відповідні зміни/додав деякі деталі, щоб пояснити текст у дослідженні DeepMind «Прискорення висновку LLM за допомогою поетапного спекулятивного декодування».
Зазвичай існує два етапи використання LLM.
Перший — це попереднє заповнення, коли текст підказки подається в модель для генерації кешу KV і логарифмічних шансів (розподілу ймовірностей можливих вихідних токенів) першого виходу. Цей процес зазвичай швидкий, оскільки весь текст підказки можна обробити паралельно.
Другий етап - розшифровка. Виберіть жетон із логарифмічних коефіцієнтів результату та введіть його в модель, яка створить логарифмічні коефіцієнти наступного жетона. Повторюйте цей процес, доки не буде згенеровано потрібну кількість токенів.
Оскільки декодування має відбуватися послідовно, щоразу ваги повинні передаватися через обчислювальний блок, щоб створити один маркер. Таким чином, цей другий етап є дуже обчислювально інтенсивним (тобто обчислення FLOP/байтів пропускної здатності пам’яті) під час роботи в міні-пакетах. Тому декодування зазвичай є найдорожчою частиною авторегресійної генерації.
Ось чому вхідний токен набагато дешевший, ніж вихідний токен у викликах API OpenAI.
Основна ідея «спекулятивного декодування» полягає у використанні меншої, швидшої чорнової моделі для декодування кількох токенів завчасно, а потім введення їх у прогнозну модель як пакет.
Якщо прогнози чернеткової моделі правильні, тобто більша модель узгоджується з цими прогнозами, кілька токенів можна декодувати за допомогою однієї партії, що економить пропускну спроможність пам’яті та час.
Однак, якщо більша модель відхиляє маркер, передбачений чорновою моделлю, пакет, що залишився, відкидається, і алгоритм природним чином повертається до стандартного декодування маркерів.
«Спекулятивне декодування» також може супроводжуватися схемою вибірки відхилення для вибірки з вихідного розподілу. Варто зазначити, що це корисно лише в налаштуваннях невеликих пакетів, де пропускна здатність є вузьким місцем.
Спекулятивне декодування, яке обмінює обчислення на пропускну здатність, є привабливою метою розробки продуктивності з двох ключових причин:
По-перше, це не знижує якість моделі. По-друге, покращення продуктивності, які він пропонує, часто є ортогональними до інших підходів, оскільки їхня продуктивність походить від перетворення «послідовного виконання» на «паралельне виконання».
Поточний метод висновку – це окрема послідовність пакетних прогнозів. Однак цей підхід погано масштабується для великих партій або вирівнювання моделі з низьким проектом.
Інтуїтивно зрозуміло, що ймовірність узгодження двох моделей щодо безперервних довгих послідовностей токенів є експоненціально низькою, що означає, що виграш від спекулятивного декодування швидко зменшується зі збільшенням арифметичної щільності.
Інформатор вважає, що якщо OpenAI використовує «спекулятивне декодування», вони можуть використовувати його лише в послідовностях приблизно з 4 токенів.
Крім того, вся змова про кастрацію OpenAI, яка призвела до нижчої якості GPT-4, може бути просто тому, що вони піддають свої прогностичні моделі низькоймовірним послідовностям з моделей «спекулятивного декодування».
Також було припущення, що Bard також використовує «спекулятивне декодування», оскільки Google чекає, поки вся послідовність буде повністю згенерована, перш ніж відправити її користувачеві, але, на думку викривача, це припущення абсолютно невірне.
Visual Multimodal
Візуальні мультимодальні можливості є найменш вражаючою частиною GPT-4, принаймні порівняно з провідними дослідженнями.
Звичайно, ніхто ще не комерціалізував результати мультимодальних досліджень LLM.
Викривач сказав, що це візуальний кодер, незалежний від кодера тексту, а також перехресне увагу, архітектура схожа на Flamingo, а в GPT-4 1.8T додано більше параметрів.
Мультимодальна здатність GPT-4 налаштована за допомогою приблизно 2 трильйонів токенів після попереднього навчання тексту.
Кажуть, що на візуальній моделі OpenAI спочатку сподівався навчатися з нуля, але оскільки він не був достатньо зрілим, у нього не було іншого вибору, окрім як налаштувати текстову навчальну модель.
І модель наступного покоління GPT-5, навчання якої має навчити модель зору з нуля та вміти генерувати зображення та навіть генерувати аудіо.
Одна з головних цілей цієї візуальної здатності — дозволити автономним агентам читати веб-сторінки та транскрибувати зображення та відео.
Варто зазначити, що дані, які використовує OpenAI для навчання мультимодальних моделей, включають: «об’єднані дані» (LaTeX/текст), знімки екрана веб-сторінок, відео YouTube (вибірка кадрів і запуск Whisper для отримання субтитрів).
Цікавим фактом про надмірну оптимізацію LLM є те, що візуальні моделі мають іншу вартість IO, ніж текстові моделі. У візуальній моделі IO завантаження даних приблизно в 150 разів перевищує текстову модель.
Вартість IO візуальної моделі низька
Кожен маркер у візуальній моделі має 600 байт, а текст – 4 байти на маркер.
Отже, це вимагає багато роботи щодо стиснення зображення. Це надзвичайно важливо для постачальників апаратного забезпечення, оскільки через 2-3 роки вони оптимізують обладнання відповідно до варіантів використання та співвідношень LLM.
Вони можуть опинитися у світі, де кожна модель має потужні візуальні та звукові можливості.
Вони можуть погано підходити до архітектури.
Загалом, архітектура точно перевершить текстові спрощені щільні моделі та моделі MoE, які ми бачимо сьогодні.
Посилання
Переглянути оригінал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
Витік інсайдера GPT-4, 1,8 трильйона величезних параметрів, 13 трильйонів навчання токенів, витрачено 63 мільйони доларів США
Джерело: "Xinzhiyuan" (ID: AI_era)
Щойно інсайдери галузі знову отримали «відкритий вихідний код» GPT-4 OpenAI!
До них входять дуже конкретні параметри та інформація, як-от архітектура GPT-4, інфраструктура навчання та висновків, обсяг параметрів, набір навчальних даних, номер маркера, вартість і суміш експертів (MoE).
Від кого таке тяжке одкровення?
Варто зазначити, що Ділан Пател також був одним із авторів внутрішнього витоку документів Google («У нас немає рову, як і у OpenAI»), який раніше викликав обурення в галузі.
Видно, що у Ділана Пателя є деякі особливі канали, що робить сьогоднішнє відкриття дещо більш достовірним.
Багато компаній можуть робити GPT-4
На думку автора надзвичайної статті, причина, чому OpenAI не відкрита, полягає не в тому, щоб гарантувати, що люди не будуть знищені штучним інтелектом, а тому, що речі, які вони створюють, є відтворюваними.
Він навіть прогнозує, що в майбутньому всі великі інтернет-компанії або стартапи штучного інтелекту в Китаї та Сполучених Штатах зможуть побудувати модель, яка буде такою ж, як GPT-4 або навіть перевершить GPT-4.
Але він також визнав, що GPT-4 є великим шедевром OpenAI. Він конденсує геніальний дизайн інженера, складну структуру та різноманітні геніальні інженерні компроміси.
Структура моделі
По-перше, автор, який опублікував новину, вважає, що GPT-4 містить загалом 1,8 трильйона параметрів у 120 шарах, тоді як GPT-3 має лише близько 175 мільярдів параметрів.
Іншими словами, масштаб GPT-4 більш ніж у 10 разів перевищує GPT-3.
Щоб зберегти прийнятну вартість, OpenAI приймає модель MoE для будівництва.
Зокрема, GPT-4 має 16 експертних моделей із приблизно 111 мільярдами параметрів на експерта MLP. Серед них дві експертні моделі використовуються для прямого поширення.
Хоча в літературі є багато дискусій щодо передових алгоритмів для вибору експертів, на яких вказує кожен маркер, стверджується, що алгоритм, який OpenAI використовує для GPT-4, насправді дуже простий.
Крім того, в моделі є близько 55 мільярдів параметрів, які використовуються для розподілу уваги механізму.
У кожному обґрунтуванні прямого розповсюдження (генерації маркера) GPT-4 потрібно використовувати лише близько 280 мільярдів параметрів і 560 TFLOP.
Це різко контрастує з багатьма чисто щільними моделями, які вимагають приблизно 1,8 трильйона параметрів і 3700 TFLOPs на один прохід.
Склад набору даних
OpenAI навчив GPT-4 з 13 трильйонами токенів.
Цей набір даних містить не лише 13 трильйонів токенів, але оскільки немає високоякісних токенів, цей набір даних також містить багато епох.
У Scale AI і набір даних також включено мільйони рядків даних для точного налаштування інструкцій.
Однак автор викриття сказав, що вони не знайшли багато інформації про ці дані RLHF.
Довжина контексту на етапі попереднього навчання досягла 8K (seqlen), а версія 32K була налаштована на основі попередньо підготовленої версії 8K.
Розмір пакету поступово збільшується протягом кількох днів у кластері, і остаточний розмір пакета, який використовує OpenAI, становить 60 мільйонів.
Звичайно, це «лише» розмір експертної моделі з 7,5 мільйонами токенів кожен, оскільки не кожна експертна модель бачитиме всі токени.
Паралельна стратегія
Паралельна стратегія дуже важлива для A100GPU.
OpenAI використовує 8-сторонній тензорний паралелізм, оскільки NVLink підтримує лише таку кількість.
Але крім того, автор екстреної новини почув, що OpenAI використовує 15 паралельних конвеєрів.
Теоретично 15 конвеєрів — це небагато, враховуючи передачу даних і час обчислення.
Але через обмеження обсягу пам’яті така кількість конвеєрів має сенс.
У чисто конвеєрному та тензорно-паралельному режимі параметр FP16 становить близько 30 ГБ на GPU.
Але якщо додати кеш KV і вартість, якщо більшість графічних процесорів, які використовує OpenAI, мають 40 ГБ A100, тоді така архітектура теоретично має сенс.
Цілком можливо, що OpenAI використовує ZeRo Stage 1 і може використовувати FSDP на рівні блоку або гібридний паралелізм спільних даних.
Чому вони не використали повну модель FSDP? Можливо через високу вартість зв'язку.
Хоча OpenAI має високошвидкісну мережу між більшістю вузлів, вона не охоплює всі вузли.
Серед них принаймні деякі кластери матимуть набагато меншу пропускну здатність з’єднання, ніж інші.
Однак автор сказав, що він не зовсім розуміє, як OpenAI уникає генерації «величезних бульбашок» у кожній партії за такого високого паралелізму конвеєрів. Цілком імовірно, що OpenAI протистояв цим витратам.
Вартість навчання
OpenAI навчає GPT-4 приблизно з 2,15e25 FLOPS, тренується приблизно на 25 000 A100 протягом 90-100 днів, і рівень використання становить від 32% до 36%.
Такий надзвичайно низький рівень використання був частково зумовлений великою кількістю відмов, що вимагало перезапуску навчання з попередніх контрольних точок. Наприклад, вартість бульбашки, згадана вище.
Витрати на навчання в цьому випадку надзвичайно високі.
Інша причина полягає в тому, що повне зменшення серед такої кількості графічних процесорів дуже дороге.
Автор викривача підозрює, що якщо цей кластер насправді є групою менших кластерів із слабшими мережевими з’єднаннями, то швидкість неблокуючого (неблокованого) з’єднання між різними частинами кластера становить 800G/1,6T, але ці частини швидкість з'єднання між ними становить лише 200G/400G.
Якщо вартість хмарних обчислень OpenAI становить близько $1/A100 годин, то за таких умов вартість навчання становить близько $63 млн.
Це не включає всі експерименти, невдале навчання та інші витрати, такі як збір даних, RLHF, людські витрати тощо.
Якщо врахувати щойно згадані фактори, то реальна вартість значно вища.
Крім того, це має виходити з передумови, що інші можуть купувати мікросхеми/мережі/центри обробки даних, нести капітальні витрати на створення цих систем і здавати їх в оренду OpenAI.
Але сьогодні, за $2/H100 годин, попереднє навчання можна провести на приблизно 8192 H100 всього за 55 днів за ціною 21,5 мільйона доларів.
Проте, за словами автора звіту, до кінця цього року щонайменше дев'ять компаній матимуть кластери H100, що перевищуватимуть вищезазначений розмір.
Хоча не всі з цих компаній використовуватимуть їх для індивідуального навчання моделей, якщо хтось це зробить, вони матимуть більші моделі, ніж GPT-4.
Наприклад, Meta матиме більше 100 000 H100 до кінця цього року, але значна частина з них буде розподілена у власному центрі обробки даних для висновків.
Але його найбільше окреме скупчення все одно перевищить 25 000 H100.
Коротше кажучи, до кінця цього року багато компаній матимуть достатньо обчислювальних ресурсів для навчання моделей розміру GPT-4.
Компроміси в змішаних експертних моделях
MoE (Змішана модель експертів) — чудовий спосіб зменшити кількість параметрів під час логічного висновку, збільшуючи їх одночасно.
Але це необхідно для кожного навчального токена, щоб кодувати більше інформації, тому що отримати достатньо якісних токенів дуже складно.
Якщо OpenAI дійсно хоче досягти найкращої продуктивності, їм потрібно навчити вдвічі більше токенів, щоб досягти цього.
З огляду на це, OpenAI пішов на чимало компромісів.
Наприклад, мати справу з MoE під час висновку дуже складно, оскільки кожна частина моделі не використовується під час кожного покоління маркерів.
Це означає, що деякі частини можуть перебувати в стані спокою, а інші частини працювати.
Така ситуація може значно знизити використання при обслуговуванні користувачів.
Дослідники показали, що використання 64-128 експертних моделей дає кращі профілі втрат, ніж використання 16 експертних моделей, але це лише дослідження.
Існує багато причин для використання відносно невеликої кількості експертних моделей.Одна з причин, чому OpenAI вибрав 16 експертів, полягає в тому, що більше експертних моделей важко узагальнити для багатьох завдань.
Також важче досягти конвергенції з більш експертними моделями.
У такому величезному навчальному процесі OpenAI вирішила бути більш консервативною щодо кількості експертних моделей.
Крім того, використання меншої кількості експертних моделей також сприяє їх інфраструктурі висновків. Існують різні складні компроміси та компроміси при переході на гібридну архітектуру логічного висновку експертної моделі.
Автор екстрених новин починає з обговорення основних компромісів міркувань LLM, а потім обговорює проблеми, з якими стикається OpenAI, і вибір, який вони роблять.
Розуміння компромісів
До речі, перед тим, як представити компроміси висновків, після спілкування з усіма компаніями LLM, інформатор виявив, що бібліотека висновків NVIDIA FasterTransformer дуже погана, а TensorRT – ще більше.
Це означає, що якщо Nvidia не буде модифікувати, людям доведеться створювати власні рішення з нуля.
Є три основні компроміси в міркуванні про великі мовні моделі, розмір пакету (кількість користувачів, що одночасно обробляються) і кількість використовуваних мікросхем, а саме:
1. Затримка
Модель повинна відповідати в межах розумної затримки. Ніхто не хоче чекати кілька секунд у програмі чату, перш ніж почне отримувати вихідні дані. Час обробки для попереднього заповнення (вхідні маркери) і декодування (вихідні маркери) змінюється.
2. Пропускна здатність
Модель повинна видавати певну кількість жетонів за секунду. Людям потрібно близько 30 жетонів на секунду. Для різних інших випадків використання прийнятна як нижча, так і вища пропускна здатність.
3. Коефіцієнт використання
Апаратне забезпечення, на якому працює модель, має досягати високих показників використання, інакше вартість буде непомірно високою. Хоча вищу затримку та нижчу пропускну здатність можна використовувати для об’єднання більшої кількості запитів користувачів разом для досягнення кращого використання, це також збільшує складність.
Ключ до міркування LLM полягає в тому, щоб збалансувати дві точки пропускної здатності пам’яті та обчислення.
Простіше кажучи, кожен параметр потрібно прочитати, і з ним пов’язано 2 FLOP.
Таким чином, співвідношення більшості чіпів (H100 SXM має лише 3 ТБ/с пропускну здатність пам’яті, але FP8 має 2000 TFLOPs/с) є абсолютно незбалансованим у висновку з розміром партії 1.
Якщо є лише один користувач (розмір пакету 1), пропускна здатність пам’яті, необхідна для читання кожного параметра кожного разу, коли генерується маркер, домінує над часом висновку, тоді як час обчислення майже незначний.
Щоб ефективно масштабувати великі мовні моделі для кількох користувачів, розмір пакету має перевищувати 1. Кілька користувачів ділять вартість читання параметрів. Наприклад, з розміром пакета 256/512 ви можете отримати 512 FLOP/с або 1024 FLOP/с на байт прочитаної пам’яті.
Це співвідношення ближче до балансу H100 між пропускною здатністю пам'яті та FLOPS. Це допомагає досягти вищого рівня використання, але ціною більшої затримки.
Багато хто вважає ємність пам’яті головним вузьким місцем для висновків LLM, оскільки великі моделі вимагають кількох мікросхем для логічного висновку, а більший обсяг пам’яті означає, що вони можуть поміститися на меншу кількість мікросхем.
Однак насправді краще використовувати більше мікросхем, щоб затримка була нижчою, пропускна здатність збільшена, і більші розміри пакетів можна використовувати для кращого використання.
Компроміси та інфраструктура висновків GPT-4
Як згадувалося вище, для GPT-4 це дуже складно міркувати. Але бути модифікатором MoE знову створює цілий ряд труднощів.
Кожен перехід, який генерує токени, може бути направлений до іншого набору експертів. Це створює проблему з компромісом між пропускною здатністю, затримкою та використанням при більших розмірах пакетів.
GPT-4 OpenAI має 16 експертів, і кожен перехід направляє до 2 з них.
Це означає, що якщо розмір пакету дорівнює 8, кожен зчитований параметр експерта може мати лише розмір пакета 1.
Гірше того, це може означати, що один експерт має розмір пакета 8, а інші експерти мають розмір пакета 4, 1 або 0.
Для кожного згенерованого токена алгоритм маршрутизації надсилає прямі проходи в різних напрямках, через що затримки між токенами та розмірами пакетів експертів значно відрізняються.
Інфраструктура висновків є однією з головних причин, чому OpenAI обрав меншу кількість експертів. Якщо вони обирають більше експертів, пропускна здатність пам’яті стає вузьким місцем для висновків.
Кластер висновків OpenAI зазвичай може досягати розміру пакета 4k+, що означає, що навіть за найкращого балансу навантаження між експертами розмір пакету експертів становить лише близько 500 або близько того. Для досягнення цього потрібно дуже багато використання.
За словами інформатора, ми дізналися, що OpenAI робить висновок на кластері з 128 графічних процесорів. Вони мають кілька таких кластерів у кількох центрах обробки даних і географічних місцях.
Висновок використовує 8-сторонній тензорний паралелізм і 16-сторонній конвеєрний паралелізм. Кожен вузол, що складається з 8 GPU, має лише близько 130B параметрів, або менше 30 ГБ на GPU за FP16 і менше 15 ГБ за FP8/int8.
Це дозволяє виконувати висновки на 40 ГБ A100, якщо розмір кешу KV для всіх пакетів не надто великий.
Рівні, що містять різних експертів на різних вузлах, не розділені, оскільки це призведе до того, що мережевий трафік буде надто нерегулярним, а переобчислення кешу KV між кожним поколінням маркерів буде занадто дорогим.
Для майбутніх розширень моделі MoE та умовної маршрутизації найбільша складність полягає в тому, як обробити маршрутизацію кешу KV.
Модель має 120 шарів, тож їх можна просто розподілити між 15 різними вузлами, але оскільки перший вузол потребує завантаження та вбудовування даних, має сенс розмістити менше шарів на головному вузлі кластера висновків.
Крім того, є деякі чутки про «спекулятивне декодування» (далі), що також пояснює, чому майстерноди повинні містити менше рівнів.
Вартість висновку
Порівняно з моделлю Davinchi зі 175 мільярдами параметрів, GPT-4 коштує в 3 рази, хоча її параметри прямого зв’язку збільшуються лише в 1,6 рази.
Це в основному через те, що GPT-4 вимагає більшого кластера та досягає меншого використання.
Автори вважають, що вартість визначення довжини послідовності GPT-4 8k на 128 A100s становить $0,0049 за 1000 токенів, тоді як вартість визначення довжини послідовності GPT-4 8k на 128 H100s становить $0,0021 за 1000 токенів.
Зауважте, що це передбачає досить високе використання та підтримує високий розмір партії.
Але очевидно, що OpenAI іноді використовується дуже недостатньо.
Якби OpenAI цього не зробив, їхнє використання було б нижчим, а витрати зросли б більш ніж удвічі.
Увага на кілька запитів
Крім того, OpenAI також використовує Multi-Query Attention (MQA).
Коротше кажучи, потрібна лише одна головка уваги, і слід пам’яті кешу KV можна значно зменшити.
Незважаючи на це, GPT-4 довжиною 32 Кб точно не може працювати на 40 ГБ A100, і існує верхня межа максимального розміру пакета 8 Кб.
Безперервна пакетна обробка
OpenAI реалізує змінний розмір партії та безперервну пакетну обробку.
Це дозволяє деяку ступінь максимальної затримки та оптимізує вартість висновків.
Спекулятивне декодування
Було виявлено, що OpenAI використовував «спекулятивне декодування» в процесі міркувань GPT-4, який все ще має 100% невизначеність.
Різниця в затримці від маркера до маркера та різниця під час виконання простих завдань пошуку та більш складних завдань, здається, припускає, що це можливо, хоча є ще занадто багато змінних, щоб бути впевненими.
Тут викривач вніс відповідні зміни/додав деякі деталі, щоб пояснити текст у дослідженні DeepMind «Прискорення висновку LLM за допомогою поетапного спекулятивного декодування».
Перший — це попереднє заповнення, коли текст підказки подається в модель для генерації кешу KV і логарифмічних шансів (розподілу ймовірностей можливих вихідних токенів) першого виходу. Цей процес зазвичай швидкий, оскільки весь текст підказки можна обробити паралельно.
Другий етап - розшифровка. Виберіть жетон із логарифмічних коефіцієнтів результату та введіть його в модель, яка створить логарифмічні коефіцієнти наступного жетона. Повторюйте цей процес, доки не буде згенеровано потрібну кількість токенів.
Оскільки декодування має відбуватися послідовно, щоразу ваги повинні передаватися через обчислювальний блок, щоб створити один маркер. Таким чином, цей другий етап є дуже обчислювально інтенсивним (тобто обчислення FLOP/байтів пропускної здатності пам’яті) під час роботи в міні-пакетах. Тому декодування зазвичай є найдорожчою частиною авторегресійної генерації.
Ось чому вхідний токен набагато дешевший, ніж вихідний токен у викликах API OpenAI.
Основна ідея «спекулятивного декодування» полягає у використанні меншої, швидшої чорнової моделі для декодування кількох токенів завчасно, а потім введення їх у прогнозну модель як пакет.
Якщо прогнози чернеткової моделі правильні, тобто більша модель узгоджується з цими прогнозами, кілька токенів можна декодувати за допомогою однієї партії, що економить пропускну спроможність пам’яті та час.
Однак, якщо більша модель відхиляє маркер, передбачений чорновою моделлю, пакет, що залишився, відкидається, і алгоритм природним чином повертається до стандартного декодування маркерів.
«Спекулятивне декодування» також може супроводжуватися схемою вибірки відхилення для вибірки з вихідного розподілу. Варто зазначити, що це корисно лише в налаштуваннях невеликих пакетів, де пропускна здатність є вузьким місцем.
Спекулятивне декодування, яке обмінює обчислення на пропускну здатність, є привабливою метою розробки продуктивності з двох ключових причин:
По-перше, це не знижує якість моделі. По-друге, покращення продуктивності, які він пропонує, часто є ортогональними до інших підходів, оскільки їхня продуктивність походить від перетворення «послідовного виконання» на «паралельне виконання».
Поточний метод висновку – це окрема послідовність пакетних прогнозів. Однак цей підхід погано масштабується для великих партій або вирівнювання моделі з низьким проектом.
Інтуїтивно зрозуміло, що ймовірність узгодження двох моделей щодо безперервних довгих послідовностей токенів є експоненціально низькою, що означає, що виграш від спекулятивного декодування швидко зменшується зі збільшенням арифметичної щільності.
Інформатор вважає, що якщо OpenAI використовує «спекулятивне декодування», вони можуть використовувати його лише в послідовностях приблизно з 4 токенів.
Крім того, вся змова про кастрацію OpenAI, яка призвела до нижчої якості GPT-4, може бути просто тому, що вони піддають свої прогностичні моделі низькоймовірним послідовностям з моделей «спекулятивного декодування».
Також було припущення, що Bard також використовує «спекулятивне декодування», оскільки Google чекає, поки вся послідовність буде повністю згенерована, перш ніж відправити її користувачеві, але, на думку викривача, це припущення абсолютно невірне.
Visual Multimodal
Візуальні мультимодальні можливості є найменш вражаючою частиною GPT-4, принаймні порівняно з провідними дослідженнями.
Звичайно, ніхто ще не комерціалізував результати мультимодальних досліджень LLM.
Викривач сказав, що це візуальний кодер, незалежний від кодера тексту, а також перехресне увагу, архітектура схожа на Flamingo, а в GPT-4 1.8T додано більше параметрів.
Мультимодальна здатність GPT-4 налаштована за допомогою приблизно 2 трильйонів токенів після попереднього навчання тексту.
Кажуть, що на візуальній моделі OpenAI спочатку сподівався навчатися з нуля, але оскільки він не був достатньо зрілим, у нього не було іншого вибору, окрім як налаштувати текстову навчальну модель.
І модель наступного покоління GPT-5, навчання якої має навчити модель зору з нуля та вміти генерувати зображення та навіть генерувати аудіо.
Одна з головних цілей цієї візуальної здатності — дозволити автономним агентам читати веб-сторінки та транскрибувати зображення та відео.
Варто зазначити, що дані, які використовує OpenAI для навчання мультимодальних моделей, включають: «об’єднані дані» (LaTeX/текст), знімки екрана веб-сторінок, відео YouTube (вибірка кадрів і запуск Whisper для отримання субтитрів).
Цікавим фактом про надмірну оптимізацію LLM є те, що візуальні моделі мають іншу вартість IO, ніж текстові моделі. У візуальній моделі IO завантаження даних приблизно в 150 разів перевищує текстову модель.
Кожен маркер у візуальній моделі має 600 байт, а текст – 4 байти на маркер.
Отже, це вимагає багато роботи щодо стиснення зображення. Це надзвичайно важливо для постачальників апаратного забезпечення, оскільки через 2-3 роки вони оптимізують обладнання відповідно до варіантів використання та співвідношень LLM.
Вони можуть опинитися у світі, де кожна модель має потужні візуальні та звукові можливості.
Вони можуть погано підходити до архітектури.
Загалом, архітектура точно перевершить текстові спрощені щільні моделі та моделі MoE, які ми бачимо сьогодні.
Посилання