Мовні моделі — це статистичні методи, що передбачають послідовність токенів у послідовностях за допомогою природного тексту. Великі мовні моделі (LLM) — це мовні моделі на основі нейронних мереж із сотнями мільйонів (БЕРТ) до понад трильйона параметрів (MiCS), розмір якого робить навчання з одним GPU непрактичним. Генеративні здібності LLM роблять їх популярними для синтезу тексту, резюмування, машинного перекладу тощо.
Розмір LLM та навчальні дані — це палиця з двома кінцями: це забезпечує якість моделювання, але тягне за собою проблеми з інфраструктурою. Сама модель часто завелика, щоб поміститися в пам’ять одного пристрою графічного процесора або на кількох пристроях примірника з кількома графічним процесором. Ці фактори вимагають навчання LLM на великих кластерах екземплярів прискореного машинного навчання (ML). За останні кілька років багато клієнтів використовували AWS Cloud для навчання LLM.
У цій публікації ми зануримося в поради та найкращі практики для успішного навчання LLM Навчання Amazon SageMaker. SageMaker Training — це керована пакетна служба ML-обчислень, яка скорочує час і вартість навчання та налаштування моделей у масштабі без необхідності керування інфраструктурою. В межах однієї команди запуску, Amazon SageMaker запускає повністю функціональний ефемерний обчислювальний кластер, який виконує завдання за вашим вибором, і має вдосконалені функції ML, такі як метасховище, керований ввід-вивід і розподіл. Повідомлення охоплює всі етапи навчального навантаження LLM і описує відповідні функції інфраструктури та найкращі практики. Деякі з найкращих практик у цій публікації стосуються саме екземплярів ml.p4d.24xlarge, але більшість із них можна застосувати до екземплярів будь-якого типу. Ці найкращі практики дозволяють навчати магістрів права на SageMaker у масштабі від десятків до сотень мільйонів параметрів.
Щодо обсягу цієї публікації зверніть увагу на наступне:
- Ми не розглядаємо науковий дизайн нейронних мереж і пов’язану з ними оптимізацію. Amazon.Science містить численні наукові публікації, в тому числі й не обмежуючись ними LLM.
- Незважаючи на те, що ця публікація зосереджена на магістерських програмах, більшість її найкращих практик актуальні для будь-якого типу навчання на великих моделях, включаючи комп’ютерне бачення та мультимодальні моделі, такі як стабільна дифузія.
Кращі практики
У цьому дописі ми обговорюємо такі найкращі методи:
- обчислення – SageMaker Training — це чудовий API для запуску завдань підготовки набору даних ЦП і завдань графічного процесора тисячі масштабів.
- зберігання – Ми бачимо, що завантаження даних і контрольні точки виконуються двома способами, залежно від навичок і вподобань: за допомогою Amazon FSx Luster файлова система, або Служба простого зберігання Amazon (лише для Amazon S3).
- Паралелізм – Ваш вибір розподіленої навчальної бібліотеки має вирішальне значення для правильного використання GPU. Ми рекомендуємо використовувати оптимізовану для хмари бібліотеку, таку як паралельний паралелізм даних SageMaker, але самокеровані бібліотеки та бібліотеки з відкритим кодом також можуть працювати.
- мереж – Переконайтеся, що EFA та NVIDIA GPUDirectRDMA увімкнено для швидкого зв’язку між машинами.
- Стійкість – У масштабі можуть статися апаратні збої. Ми рекомендуємо регулярно проходити контрольні пункти. Кожні кілька годин – це звичайна справа.
Вибір регіону
Тип екземпляра та бажана потужність є визначальним фактором для вибору регіону. Для регіонів, які підтримуються SageMaker і Обчислювальна хмара Amazon Elastic (Amazon EC2) типи примірників, які доступні в кожному регіоні, див Ціни на Amazon SageMaker. У цьому дописі ми припускаємо, що тип навчального екземпляра – ml.p4d.24xlarge, яким керує SageMaker.
Ми рекомендуємо співпрацювати з вашою командою облікових записів AWS або зв’язатися Продажі AWS щоб визначити відповідний регіон для вашого навантаження LLM.
Підготовка даних
Розробники LLM навчають свої моделі на великих наборах даних природного тексту. Популярні приклади таких джерел даних включають Загальне сканування та Купа. Звичайний текст може містити упередження, неточності, граматичні помилки та синтаксичні варіанти. Кінцева якість LLM суттєво залежить від відбору та контролю навчальних даних. Підготовка даних навчання LLM є активною сферою досліджень та інновацій у галузі LLM. Підготовка набору даних обробки природної мови (NLP) рясніє можливостями паралелізму без спільного використання. Іншими словами, є кроки, які можна застосувати до одиниць роботи — вихідних файлів, абзаців, речень, слів — без необхідності синхронізації між робочими групами.
API завдань SageMaker, а саме SageMaker Training і SageMaker Processing, відмінно підходять для цього типу завдань. Вони дозволяють розробникам запускати довільний контейнер Docker на групі з кількох машин. У випадку SageMaker Training API обчислювальний парк може бути неоднорідний. На SageMaker використовувалися численні фреймворки розподілених обчислень, зокрема Панель приладів, промінь, а також PySpark, які мають спец Контейнер, керований AWS та SDK в SageMaker Processing.
Коли ви запускаєте завдання на кількох машинах, SageMaker Training and Processing запускає ваш код один раз на машині. Щоб написати розподілену програму, вам не потрібно використовувати особливу структуру розподілених обчислень: ви можете написати код за вашим вибором, який запускатиметься один раз на машині, щоб реалізувати паралелізм спільного доступу. Ви також можете написати або встановити логіку зв’язку між вузлами на свій вибір.
Завантаження даних
Є кілька способів зберігати навчальні дані та переміщувати їх зі свого сховища до прискорених обчислювальних вузлів. У цьому розділі ми обговорюємо варіанти та найкращі методи завантаження даних.
Параметри зберігання та завантаження SageMaker
Типовий розмір набору даних LLM становить сотні мільйонів текстових токенів, що становить кілька сотень гігабайт. Керовані SageMaker кластери екземплярів ml.p4d.24xlarge пропонують кілька варіантів зберігання та завантаження набору даних:
- На вузлі NVMe SSD – Екземпляри ml.P4d.24xlarge оснащені 8 ТБ NVMe, доступні під
/opt/ml/input/data/<channel>
якщо ви використовуєте Режим файлу SageMaker, і в/tmp
. Якщо вам потрібна простота та продуктивність локального читання, ви можете скопіювати свої дані на NVMe SSD. Копіювання може бути виконано або в режимі SageMaker File, або за допомогою вашого власного коду, наприклад, за допомогою багатопроцесорного Бото3 or S5cmd. - FSx для Luster – SSD-накопичувачі NVMe на вузлі мають обмежений розмір і вимагають прийому з Amazon S3 під час кожного завдання або створення теплого кластера. Якщо ви хочете масштабувати до більших наборів даних, зберігаючи довільний доступ із низькою затримкою, ви можете використовувати FSx для Lustre. Amazon FSx — це паралельна файлова система з відкритим кодом, популярна у високопродуктивних обчисленнях (HPC). FSx для використання Lustre розподілене сховище файлів (видалення) і фізично відокремлює метадані файлу від вмісту файлу для досягнення високої продуктивності читання/запису.
- Режим SageMaker FastFile – Режим FastFile (Місія) є функцією лише SageMaker, яка представляє віддалені об’єкти S3 в обчислювальних екземплярах, керованих SageMaker, у сумісному з POSIX інтерфейсі та передає їх лише під час читання за допомогою FUSE. FFM зчитує результати викликів S3, які блок за блоком передають віддалені файли. Щоб уникнути помилок, пов’язаних із трафіком Amazon S3, розробникам FFM слід прагнути підтримувати прийнятну базову кількість викликів S3, наприклад, зчитуючи файли послідовно та з контрольованим рівнем паралелізму.
- Самокероване завантаження даних – Звичайно, ви також можете вирішити реалізувати власну, повністю спеціальну логіку завантаження даних, використовуючи пропрієтарний або відкритий код. Деякі причини використовувати самокероване завантаження даних полягають у тому, щоб полегшити міграцію шляхом повторного використання вже розробленого коду, реалізувати спеціальну логіку обробки помилок або отримати більше контролю над основною продуктивністю та сегментуванням. Приклади бібліотек, які ви можете використовувати для самостійного завантаження даних, включають torchdata.datapipes (раніше Плагін AWS PyTorch S3) і Webdataset. AWS Python SDK Бото3 також можна поєднувати з Набір даних факела класи для створення спеціального коду завантаження даних. Спеціальні класи завантаження даних також дозволяють творчо використовувати гетерогенні кластери SageMaker Training, щоб точно адаптувати баланс ЦП і ГП до заданого робочого навантаження.
Додаткову інформацію про ці параметри та способи їх вибору див Виберіть найкраще джерело даних для навчальної роботи Amazon SageMaker.
Найкращі практики для широкомасштабної взаємодії з Amazon S3
Amazon S3 здатний обробляти робочі навантаження LLM, як для читання даних, так і для контрольних точок. Він підтримує a швидкість запиту 3,500 запитів PUT/COPY/POST/DELETE або 5,500 GET/HEAD на секунду на префікс у відрі. Однак ця ставка не обов’язково доступна за умовчанням. Натомість, коли кількість запитів на префікс зростає, Amazon S3 автоматично масштабується відповідно до збільшення частоти. Для отримання додаткової інформації див Чому я отримую помилку 503 Slow Down від Amazon S3, коли запити знаходяться в межах підтримуваної частоти запитів на префікс.
Якщо ви очікуєте високочастотної взаємодії з Amazon S3, ми рекомендуємо наступні передові методи:
- Спробуйте читати та писати з кількох відер S3 і префіксів. Наприклад, ви можете розділити навчальні дані та контрольні точки за різними префіксами.
- Перевірте показники Amazon S3 Amazon CloudWatch для відстеження ставок запитів.
- Спробуйте мінімізувати кількість одночасних PUT/GET:
- Використовуйте менше процесів за допомогою Amazon S3 одночасно. Наприклад, якщо вісім процесів на вузол потребують контрольних точок до Amazon S3, ви можете зменшити трафік PUT у 8 разів за допомогою ієрархічної контрольної точки: спочатку всередині вузла, потім від вузла до Amazon S3.
- Читайте кілька записів навчання з одного файлу або S3 GET замість використання S3 GET для кожного запису навчання.
- Якщо ви використовуєте Amazon S3 через SageMaker FFM, SageMaker FFM здійснює виклики S3 для отримання файлів фрагмент за фрагментом. Щоб обмежити трафік Amazon S3, створений FFM, радимо вам читати файли послідовно та обмежити кількість файлів, відкритих паралельно.
Якщо у вас є План підтримки розробника, бізнесу або підприємства, ви можете відкрити запит у технічну підтримку щодо помилок S3 503 Slow Down. Але спочатку переконайтеся, що ви дотримуєтеся найкращих практик, і отримати ідентифікатори запитів для невдалих запитів.
Навчальний паралелізм
LLM зазвичай мають від десятків до сотень мільярдів параметрів, що робить їх занадто великими, щоб поміститися в одну карту GPU NVIDIA. Практикуючі LLM розробили кілька бібліотек з відкритим вихідним кодом, які полегшують розподілене обчислення навчання LLM, у тому числі ФСДП, DeepSpeed та Мегатрон. Ви можете запускати ці бібліотеки в SageMaker Training, але ви також можете використовувати розподілені навчальні бібліотеки SageMaker, які оптимізовано для AWS Cloud і забезпечують простіший досвід розробника. Розробники мають два варіанти розподіленого навчання своїх LLM на SageMaker: розподілені бібліотеки або самокеровані.
Розподілені бібліотеки SageMaker
Щоб забезпечити вам покращену продуктивність і зручність розподіленого навчання, SageMaker Training пропонує кілька власних розширень для масштабування навчального коду TensorFlow і PyTorch. Навчання LLM часто проводиться в моді 3D-паралелізму:
- Паралелізм даних розділяє та подає навчальні міні-пакети на кілька ідентичних реплік моделі, щоб збільшити швидкість обробки
- Паралелізм трубопроводів приписує різні рівні моделі різним графічним процесорам або навіть примірникам, щоб масштабувати розмір моделі за межі одного графічного процесора та одного сервера
- Тензорний паралельність розділяє один шар на кілька графічних процесорів, як правило, на одному сервері, щоб масштабувати окремі шари до розмірів, що перевищують один графічний процесор
У наступному прикладі 6-рівнева модель навчається на кластері з k*3 серверів із 8*k*3 GPU (8 GPU на сервер). Ступінь паралелізму даних дорівнює k, паралелізму конвеєра – 6, а паралелізму тензорів – 4. Кожен графічний процесор у кластері містить одну чверть рівня моделі, а повна модель розділена на три сервери (загалом 24 графічні процесори).
Для LLM особливо актуальні наступні:
- Паралельна розподілена модель SageMaker – Ця бібліотека використовує розбиття графів для створення інтелектуального розбиття моделі, оптимізованого для швидкості або пам’яті. Розподілена паралельна модель SageMaker надає новітню та найкращу оптимізацію навчання великої моделі, включаючи паралелізм даних, паралелізм конвеєрів, паралелізм тензорів, сегментування стану оптимізатора, контрольні точки активації та розвантаження. За допомогою бібліотеки розподілених моделей SageMaker ми задокументували навчання моделі параметрів із 175 мільярдами на 920 графічних процесорах NVIDIA A100. Для отримання додаткової інформації див Навчайте 175+ мільярдів моделей НЛП з параметрами з додаванням паралельних моделей і обнімаючим обличчям на Amazon SageMaker.
- SageMaker паралельно сегментує дані - В MiCS: майже лінійне масштабування для навчання гігантської моделі в публічній хмарі, Чжан та ін. представити стратегію паралельної моделі з низьким рівнем зв’язку, яка розбиває моделі лише на паралельну групу даних, а не на весь кластер. Завдяки MiCS вчені AWS змогли досягти 176 терафлопс на GPU (56.4% від теоретичного піку) для навчання 210-рівневої моделі з 1.06 трильйонами параметрів на екземплярах EC2 P4de. MiCS тепер доступний для клієнтів SageMaker Training як SageMaker паралельно сегментує дані.
Розподілені навчальні бібліотеки SageMaker забезпечують високу продуктивність і простішу роботу розробника. Зокрема, розробникам не потрібно писати та підтримувати настроюваний засіб запуску паралельних процесів або використовувати спеціальний інструмент запуску, оскільки паралельний засіб запуску вбудовано в SDK для запуску завдань.
Самокерований
З SageMaker Training ви маєте свободу використовувати структуру та наукову парадигму на свій вибір. Зокрема, якщо ви хочете самостійно керувати розподіленим навчанням, у вас є два варіанти написання власного коду:
- Використовуйте контейнер глибокого навчання AWS (DLC) – AWS розробляє та підтримує ЦДО, що забезпечує оптимізоване для AWS середовище на основі Docker для найпопулярніших фреймворків машинного навчання з відкритим кодом. SageMaker Training має унікальну інтеграцію, яка дозволяє витягувати та запускати AWS DLC із зовнішньої точки входу, визначеної користувачем. Зокрема, для підготовки LLM AWS DLC для TensorFlow, PyTorch, Hugging Face і MXNet особливо актуальні. Використання фреймворка DLC дозволяє використовувати власний паралелізм фреймворку, наприклад PyTorch Distributed, без необхідності розробляти та керувати власними образами Docker. Крім того, наші DLC містять Інтеграція MPI, що дозволяє легко запускати паралельний код.
- Напишіть власний образ Docker, сумісний із SageMaker – Ви можете принести власне (BYO) зображення (див Використовуйте власні алгоритми навчання та Спеціальні навчальні контейнери Amazon SageMaker), починаючи з нуля або розширюючи існуючий образ DLC. Використовуючи спеціальне зображення для навчання LLM на SageMaker, особливо важливо перевірити наступне:
- Ваше зображення містить EFA з відповідними налаштуваннями (більше обговорюватиметься далі в цій публікації)
- Ваше зображення містить комунікаційну бібліотеку NVIDIA NCCL, увімкнену за допомогою GPUDirectRDMA
Клієнти мали змогу використовувати низку самокерованих розподілених навчальних бібліотек, у тому числі DeepSpeed.
зв'язку
Враховуючи розподілену природу навчальної роботи LLM, зв’язок між машинами має вирішальне значення для здійсненності, продуктивності та вартості робочого навантаження. У цьому розділі ми представляємо ключові функції для зв’язку між машинами та завершуємо порадами щодо встановлення та налаштування.
Адаптер з еластичної тканини
Щоб пришвидшити роботу програм ML і підвищити продуктивність за рахунок досягнення гнучкості, масштабованості та еластичності, які забезпечує хмара, ви можете скористатися перевагами Адаптер з еластичної тканини (EFA) за допомогою SageMaker. Згідно з нашим досвідом, використання EFA є обов’язковою умовою для отримання задовільного багатовузлового навчання LLM.
Пристрій EFA — це мережевий інтерфейс, підключений до примірників EC2, якими керує SageMaker під час виконання навчальних завдань. EFA доступний для окремих сімейств екземплярів, включаючи P4d. Мережі EFA здатні досягати кількох сотень Гбіт/с.
Пов’язаний з EFA, AWS представив Масштабована надійна датаграма (SRD), транспорт на основі Ethernet, натхненний Надійна датаграма InfiniBand, еволюціонував із послабленим обмеженням упорядкування пакетів. Додаткову інформацію про EFA та SRD див У пошуках ефективності існує більше ніж один спосіб побудувати мережу, відео Як працює EFA і чому ми не використовуємо infiniband у хмарі, та дослідницьку роботу Оптимізований для хмари транспортний протокол для еластичних і масштабованих HPC від Shalev та ін.
Ви можете додати інтеграцію EFA у сумісні екземпляри до існуючих контейнерів Docker SageMaker або спеціальних контейнерів, які можна використовувати для навчання моделей ML за допомогою завдань SageMaker. Для отримання додаткової інформації див Проведіть тренування з EFA. EFA представлено через відкритий код Libfabric комунікаційний пакет. Однак розробники LLM рідко безпосередньо програмують його за допомогою Libfabric, а зазвичай покладаються на бібліотеку колективних комунікацій NVIDIA (NCCL).
Плагін AWS-OFI-NCCL
У розподіленому ML EFA найчастіше використовується з бібліотекою колективних комунікацій NVIDIA (NCCL). NCCL — це бібліотека з відкритим кодом, розроблена NVIDIA, яка реалізує алгоритми зв’язку між GPU. Зв’язок між графічним процесором є наріжним каменем навчання LLM, який каталізує масштабованість і продуктивність. Він настільки важливий для навчання DL, що NCCL часто безпосередньо інтегрується як комунікаційний бекенд у навчальні бібліотеки глибокого навчання, так що розробники LLM використовують його — іноді непомічаючи — зі свого улюбленого середовища розробки Python DL. Щоб використовувати NCCL на EFA, розробники LLM використовують розроблений AWS Плагін AWS OFI NCCL, який відображає виклики NCCL на інтерфейс Libfabric, що використовується EFA. Ми рекомендуємо використовувати останню версію AWS OFI NCCL, щоб скористатися останніми вдосконаленнями.
Щоб переконатися, що NCCL використовує EFA, вам слід встановити змінну середовища NCCL_DEBUG
до INFO
, і перевірте в журналах, що EFA завантажується NCCL:
Додаткову інформацію про конфігурацію NCCL і EFA див Перевірте конфігурацію EFA та NCCL. Ви можете додатково налаштувати NCCL за допомогою кількох змінні середовища. Зауважте, що в NCCL 2.12 і вище AWS внесла логіку автоматичного вибору алгоритму зв’язку для мереж EFA (NCCL_ALGO
можна не налаштувати).
NVIDIA GPUDirect RDMA поверх EFA
З типом екземпляра P4d ми введені GPUDirect RDMA (GDR) поверх тканини EFA. Це дозволяє мережевим інтерфейсним картам (NIC) отримувати прямий доступ до пам’яті графічного процесора, пришвидшуючи віддалений зв’язок графічного процесора з графічним процесором між примірниками EC2 на базі графічного процесора NVIDIA, зменшуючи накладні витрати на оркестровку процесорів і програм користувача. GDR використовується під капотом NCCL, коли це можливо.
Використання GDR відображається під час зв’язку між GPU, коли для рівня журналу встановлено значення INFO, як у наступному коді:
Використання EFA в контейнерах глибокого навчання AWS
AWS підтримує контейнери глибокого навчання (DLC), багато з яких постачаються з файлами Docker, якими керує AWS, і містять EFA, AWS OFI NCCL і NCCL. Наступні сховища GitHub пропонують приклади з PyTorch та TensorFlow. Вам не потрібно встановлювати ці бібліотеки самостійно.
Використання EFA у вашому власному навчальному контейнері SageMaker
Якщо ви створюєте власний навчальний контейнер SageMaker і хочете використовувати NCCL через EFA для прискореного міжвузлового зв’язку, вам потрібно встановити EFA, NCCL і AWS OFI NCCL. Для отримання додаткової інформації див Проведіть тренування з EFA. Крім того, ви повинні встановити такі змінні середовища у своєму контейнері або в коді точки входу:
FI_PROVIDER="efa"
вказує постачальника інтерфейсу структуриNCCL_PROTO=simple
наказує NCCL використовувати простий протокол для зв’язку (наразі постачальник EFA не підтримує протоколи LL; їх увімкнення може призвести до пошкодження даних)FI_EFA_USE_DEVICE_RDMA=1
використовує функцію RDMA пристрою для односторонньої та двосторонньої передачіNCCL_LAUNCH_MODE="PARALLEL"
NCCL_NET_SHARED_COMMS="0"
Оркестрація
Для управління життєвим циклом і робочим навантаженням від десятків до сотень обчислювальних екземплярів потрібне програмне забезпечення оркестровки. У цьому розділі ми пропонуємо найкращі практики оркестровки LLM
Оркестровка всередині роботи
Розробники повинні писати як навчальний код на стороні сервера, так і код запуску на стороні клієнта в більшості розподілених фреймворків. Навчальний код виконується на навчальних машинах, тоді як клієнтський код запуску запускає розподілене робоче навантаження з клієнтської машини. Сьогодні стандартизації мало, наприклад:
- У PyTorch розробники можуть запускати багатомашинні завдання за допомогою
torchrun
,torchx
,torch.distributed.launch
(шлях депрекації), абоtorch.multiprocessing.spawn
- DeepSpeed пропонує власну програму запуску DeepSpeed CLI, а також підтримує запуск MPI
- MPI — це популярна структура паралельних обчислень, перевага якої полягає в тому, що вона не залежить від МЛ і має розумну користування, а тому стабільна та задокументована, і її все частіше можна побачити в розподілених робочих навантаженнях МЛ.
У кластері SageMaker Training навчальний контейнер запускається один раз на кожній машині. Отже, у вас є три варіанти:
- Рідний лаунчер – Ви можете використовувати як точку входу власну програму запуску певної фреймворку DL, наприклад a
torchrun
виклик, який сам породить кілька локальних процесів і встановить зв’язок між примірниками. - Інтеграція SageMaker MPI – Ви можете використовувати інтеграцію SageMaker MPI, доступну в нашому DLC AWS, або можливість самостійного встановлення через мудрець-тренінг-інструментарій, щоб безпосередньо запускати код точки входу N разів на машині. Це має перевагу уникнення використання проміжних сценаріїв запуску, специфічних для фреймворку, у вашому власному коді.
- Розподілені бібліотеки SageMaker – Якщо ви використовуєте розподілені бібліотеки SageMaker, ви можете зосередитися на навчальному коді й взагалі не повинні писати код запуску! Код розповсюдженого засобу запуску SageMaker вбудовано в SDK SageMaker.
Міжробоча оркестровка
LLM-проекти часто складаються з кількох робіт: пошук параметрів, експерименти з масштабуванням, відновлення після помилок тощо. Щоб запускати, зупиняти та розпаралелювати навчальні завдання, важливо використовувати оркестратор завдань. SageMaker Training — це безсерверний оркестратор завдань МЛ, який надає тимчасові екземпляри обчислень одразу за запитом. Ви платите лише за те, що використовуєте, а кластери виводяться з експлуатації, щойно ваш код завершується. с Навчання SageMaker Теплі басейни, у вас є можливість визначити час життя на навчальних кластерах, щоб повторно використовувати ту саму інфраструктуру на різних роботах. Це зменшує час ітерації та варіативність між посадами. Завдання SageMaker можна запускати з різних мов програмування, в т.ч Python та CLI.
Існує специфічний для SageMaker Python SDK під назвою SageMaker Python SDK і реалізовано через мудрець Бібліотека Python, але її використання необов’язкове.
Збільшення квот на навчальні роботи з великим і тривалим навчальним кластером
SageMaker має стандартні квоти на ресурси, призначені для запобігання ненавмисному використанню та витратам. Щоб навчити LLM за допомогою великого кластера високоякісних екземплярів, які працюють протягом тривалого часу, вам, імовірно, потрібно буде збільшити квоти в наведеній нижче таблиці.
Назва квоти | Значення за замовчуванням |
Найдовший час роботи для навчальної роботи | 432,000 секунд: |
Кількість екземплярів у всіх навчальних роботах | 4 |
Максимальна кількість екземплярів на навчальну роботу | 20 |
ml.p4d.24xlarge для використання в навчанні | 0 |
ml.p4d.24xlarge для навчання користуванню теплим басейном | 0 |
Читати Квоти обслуговування AWS як переглянути значення квоти та подати запит на збільшення квоти. Квоти On-Demand, Spot Instance і тренувальних гарячих пулів відстежуються та змінюються окремо.
Якщо ви вирішите залишити SageMaker Profiler активованим, майте на увазі, що кожне навчальне завдання запускає завдання обробки SageMaker, кожне з яких споживає один екземпляр ml.m5.2xlarge. Переконайтеся, що ваші квоти SageMaker Processing достатньо високі, щоб забезпечити очікувану паралельність завдань навчання. Наприклад, якщо ви хочете запустити 50 навчальних завдань із підтримкою Profiler, що виконуються одночасно, вам потрібно підвищити ліміт використання ml.m5.2xlarge для завдань обробки до 50.
Крім того, щоб запустити довгострокове завдання, вам потрібно буде явно встановити Оцінювач max_run
параметра до бажаної максимальної тривалості для навчального завдання в секундах, до значення квоти найдовшого часу виконання для навчального завдання.
Моніторинг і стійкість
Апаратні збої надзвичайно рідкісні в масштабі одного екземпляра та стають все більш частими, оскільки кількість одночасно використовуваних екземплярів збільшується. У типовому масштабі LLM — від сотень до тисяч графічних процесорів, які використовуються в режимі 24/7 протягом тижнів або місяців — збої апаратного забезпечення майже напевні. Таким чином, робоче навантаження LLM має впроваджувати відповідні механізми моніторингу та стійкості. По-перше, важливо ретельно стежити за інфраструктурою LLM, щоб обмежити вплив збоїв і оптимізувати використання обчислювальних ресурсів. SageMaker Training пропонує кілька функцій для цієї мети:
- Журнали автоматично надсилаються в журнали CloudWatch. Журнали містять ваш навчальний сценарій
stdout
таstderr
. У розподіленому навчанні на основі MPI всі працівники MPI надсилають свої журнали процесу-лідеру. - Показники використання системних ресурсів, як-от використання пам’яті, процесора та графічного процесора, автоматично надсилаються до CloudWatch.
- Ти можеш визначати спеціальні навчальні метрики які будуть надіслані до CloudWatch. Показники збираються з журналів на основі встановлених вами регулярних виразів. Пакети сторонніх експериментів, такі як Партнер AWS пропозицію Weights & Biases можна використовувати з навчанням SageMaker (для прикладу див Оптимізація гіперпараметрів CIFAR-10 за допомогою W&B і SageMaker).
- Профайлер SageMaker дозволяє перевіряти використання інфраструктури та отримувати рекомендації щодо оптимізації.
- Amazon EventBridge та AWS Lambda дозволяють створювати автоматизовану клієнтську логіку, яка реагує на такі події, як збої в роботі, успіхи, завантаження файлів S3 тощо.
- Помічник SSH SageMaker це бібліотека з відкритим вихідним кодом, яка підтримується спільнотою і дозволяє вам підключатися до хостів навчальних завдань через SSH. Це може бути корисним для перевірки та усунення несправностей, які запускаються на певних вузлах.
Окрім моніторингу, SageMaker також пропонує обладнання для стійкості роботи:
- Перевірки справності кластера – Перед початком роботи SageMaker запускає перевірку працездатності графічного процесора та перевіряє зв’язок NCCL на екземплярах графічного процесора, замінюючи будь-які несправні екземпляри, якщо необхідно, щоб забезпечити запуск вашого сценарію навчання на справному кластері екземплярів. Перевірки працездатності наразі ввімкнено для типів екземплярів на основі GPU P і G.
- Вбудовані повторні спроби та оновлення кластера – Ви можете налаштувати SageMaker на автоматичне повторити спробу навчальні завдання, які завершуються помилкою SageMaker внутрішньої помилки сервера (ISE). Під час повторної спроби завдання SageMaker замінить усі екземпляри, у яких виникли невиправні помилки графічного процесора, новими екземплярами, перезавантажить усі справні екземпляри та запустить завдання знову. Це призводить до швидшого перезапуску та завершення робочого навантаження. Оновлення кластера наразі ввімкнено для типів екземплярів на основі GPU P і G. Ви можете додати свої власні аплікативний механізм повторної спроби навколо коду клієнта, який надсилає завдання, для обробки інших типів помилок запуску, як-от перевищення квоти вашого облікового запису.
- Автоматизований контрольний пункт до Amazon S3 – це вам допоможе КПП ваш прогрес і перезавантажте минулий стан на нових роботах.
Щоб скористатися перевагами заміни на рівні вузла, ваш код повинен мати помилку. Коли вузол виходить з ладу, колективи можуть зависати замість помилок. Тому, щоб мати швидке виправлення, правильно встановіть тайм-аут для своїх колективів і нехай код видає помилку, коли його досягнуто.
Деякі клієнти встановлюють клієнт моніторингу для моніторингу та реагування у разі зависання завдань або зупинки аплікативної конвергенції, відстежуючи журнали та показники CloudWatch на наявність ненормальних шаблонів, наприклад відсутність запису журналів або 0% використання графічного процесора, щоб натякнути на зависання, зупинку конвергенції та авто зупинити/повторити завдання.
Глибоке занурення на контрольних точках
Команда Контрольна точка SageMaker Функція копіює все, на чому ви пишете /opt/ml/checkpoints
назад до Amazon S3 як URI, указаний у checkpoint_s3_uri
Параметр SDK. Коли завдання починається або перезапускається, все, що записане в цьому URI, надсилається назад на всі машини, на /opt/ml/checkpoints
. Це зручно, якщо ви хочете, щоб усі вузли мали доступ до всіх контрольних точок, але в масштабі — коли у вас багато машин або багато історичних контрольних точок, це може призвести до тривалого часу завантаження та занадто високого трафіку на Amazon S3. Крім того, у тензорному та конвеєрному паралелізмі воркерам потрібна лише частина моделі з контрольними точками, а не вся. Якщо ви зіткнулися з цими обмеженнями, ми рекомендуємо такі варіанти:
- Контрольні точки до FSx для Lustre – Завдяки високопродуктивному випадковому вводу-виводу ви можете визначити шардинг і схему атрибуції файлів на свій вибір
- Самокерована контрольна точка Amazon S3 – Приклади функцій Python, які можна використовувати для збереження та читання контрольних точок без блокування, див. Збереження контрольних точок
Ми наполегливо рекомендуємо перевіряти вашу модель кожні кілька годин, наприклад, 1–3 години, залежно від пов’язаних накладних витрат і витрат.
Інтерфейс і керування користувачами
Керування користувачами є ключовою сильною стороною SageMaker у порівнянні зі старою спільною інфраструктурою HPC. Дозволи SageMaker Training регулюються кількома Управління ідентифікацією та доступом AWS (IAM) абстракції:
- Принципали — користувачі та системи — отримують дозвіл на запуск ресурсів
- Навчальні завдання самі по собі виконують ролі, які дозволяють їм мати власні дозволи, наприклад щодо доступу до даних і виклику служби
Крім того, у 2022 році ми додали Менеджер ролей SageMaker для полегшення створення дозволів, керованих особами.
Висновок
За допомогою SageMaker Training ви можете скоротити витрати та збільшити швидкість ітерацій під час тренувального навантаження з великою моделлю. Ми задокументували історії успіху в численних публікаціях і тематичних дослідженнях, зокрема:
Якщо ви прагнете покращити час виходу на ринок свого LLM, одночасно зменшуючи витрати, подивіться на SageMaker Training API і повідомте нам, що ви створюєте!
Особлива подяка Амру Рагабу, Рашіці Кхерії, Змнако Аврахману, Аруну Нагараджану, Гал Ошрі за їхні корисні огляди та навчання.
Про авторів
Анастасія Цевелека є архітектором рішень з машинного навчання та штучного інтелекту в AWS. Вона працює з клієнтами в регіоні EMEA та допомагає їм розробляти масштабні рішення машинного навчання за допомогою сервісів AWS. Вона працювала над проектами в різних областях, включаючи обробку природної мови (NLP), MLOps і інструменти Low Code No Code.
Гілі Нахум є старшим архітектором рішень спеціаліста зі штучного інтелекту/ML, який працює в команді Amazon Machine Learning у регіоні EMEA. Джілі захоплюється проблемами навчання моделей глибокого навчання та тим, як машинне навчання змінює світ, яким ми його знаємо. У вільний час Гілі любить грати в настільний теніс.
Олів'є Крюшан є головним архітектором рішень спеціаліста з машинного навчання в AWS, розташованому у Франції. Olivier допомагає клієнтам AWS – від невеликих стартапів до великих підприємств – розробляти та розгортати програми машинного навчання виробничого рівня. У вільний час він любить читати наукові статті та досліджувати дику природу з друзями та родиною.
Бруно Пістоне є архітектором спеціалізованих рішень AI/ML для AWS у Мілані. Він працює з клієнтами будь-якого розміру, допомагаючи їм глибше зрозуміти їхні технічні потреби та розробляти рішення штучного інтелекту та машинного навчання, які найкращим чином використовують AWS Cloud і стек Amazon Machine Learning. Сферою його знань є наскрізне машинне навчання, індустріалізація машинного навчання та MLOps. Йому подобається проводити час зі своїми друзями та досліджувати нові місця, а також подорожувати в нові місця.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/training-large-language-models-on-amazon-sagemaker-best-practices/
- :є
- ][стор
- $UP
- 000
- 1
- 100
- 2022
- 7
- 8
- a
- здібності
- Здатний
- МЕНЮ
- вище
- прискорювати
- прискорений
- доступ
- розмістити
- рахунки
- Achieve
- досягнення
- через
- Діяти
- Активація
- активний
- пристосовувати
- доданий
- доповнення
- Додатково
- доповнення
- Перевага
- AI
- AI / ML
- AL
- алгоритм
- алгоритми
- ВСІ
- Дозволити
- дозволяє
- Amazon
- Amazon EC2
- Amazon FSx
- Амазонське машинне навчання
- Amazon SageMaker
- кількість
- та
- API
- Інтерфейси
- застосовно
- додаток
- застосування
- прикладної
- відповідний
- ЕСТЬ
- ПЛОЩА
- навколо
- AS
- асоційований
- At
- Атрибути
- автоматичний
- Автоматизований
- автоматично
- доступний
- уникає
- AWS
- назад
- Backend
- Balance
- заснований
- BE
- оскільки
- стає
- перед тим
- буття
- користь
- КРАЩЕ
- передового досвіду
- За
- Великий
- Мільярд
- мільярди
- Блокувати
- приносити
- Приносить
- будувати
- побудований
- бізнес
- by
- call
- званий
- Виклики
- CAN
- здатний
- потужність
- карта
- Cards
- нести
- випадок
- Приклади з практики
- каталізаторів
- проблеми
- заміна
- Канал
- перевірка
- Перевірки
- вибір
- вибір
- Вибирати
- класів
- клієнт
- тісно
- хмара
- кластер
- код
- Collective
- комбінований
- Приходити
- загальний
- зазвичай
- Комунікація
- зв'язку
- порівняний
- сумісний
- завершення
- обчислення
- обчислення
- комп'ютер
- Комп'ютерне бачення
- обчислення
- укладає
- проводиться
- конфігурація
- підтвердити
- З'єднуватися
- Отже
- містити
- Контейнер
- Контейнери
- містить
- зміст
- внесок
- контроль
- контроль
- Зручний
- Зближення
- Корупція
- Коштувати
- витрати
- може
- Курс
- обкладинка
- Обкладинки
- створювати
- створення
- Креатив
- критичний
- вирішальне значення
- курація
- В даний час
- виготовлений на замовлення
- Клієнти
- налаштувати
- дані
- доступ до даних
- Підготовка даних
- набори даних
- вирішувати
- присвячених
- глибокий
- глибоке навчання
- дефолт
- Ступінь
- Залежно
- залежить
- розгортання
- дизайн
- призначений
- бажаний
- напрямки
- Визначати
- визначення
- розвивати
- розвиненою
- Розробник
- розробників
- розробка
- розвивається
- пристрій
- прилади
- різний
- радіомовлення
- безпосередньо
- обговорювати
- обговорювалися
- розподілений
- розподілені обчислення
- розподілене навчання
- розподіл
- Docker
- Ні
- домени
- Не знаю
- вниз
- скачати
- безліч
- під час
- кожен
- легко
- Ефективний
- або
- в регіоні EMEA
- включіть
- включений
- дозволяє
- дозволяє
- заохочувати
- закінчується
- підвищена
- користуватися
- досить
- забезпечувати
- підприємство
- підприємств
- запис
- Навколишнє середовище
- середовищах
- обладнання
- обладнаний
- помилка
- помилки
- встановити
- Навіть
- Події
- евентуально
- Кожен
- все
- еволюціонували
- приклад
- Приклади
- перевершувати
- існуючий
- очікувати
- очікуваний
- досвід
- експеримент
- Дослідження
- піддаватися
- вирази
- розширення
- Розширення
- зовнішній
- надзвичайно
- тканину
- Face
- фасилітувати
- сприяння
- фактори
- не вдалося
- зазнає невдачі
- Провал
- сімей
- сім'я
- мода
- ШВИДКО
- швидше
- несправний
- реально
- особливість
- риси
- кілька
- поле
- філе
- Файли
- Перший
- відповідати
- ФЛЕТ
- Гнучкість
- Сфокусувати
- фокусується
- потім
- після
- для
- фракція
- Рамки
- каркаси
- Франція
- Freedom
- частий
- свіжий
- друзі
- від
- Повний
- повністю
- функціональний
- функціональність
- Функції
- далі
- GAL
- генерується
- генеративний
- отримати
- отримання
- GitHub
- даний
- GPU
- Графічні процесори
- графік
- великий
- найбільший
- Group
- Зростає
- обробляти
- Обробка
- Вішати
- траплятися
- апаратні засоби
- Мати
- має
- здоров'я
- здоровий
- корисний
- допомогу
- допомагає
- Високий
- Висока частота
- висока продуктивність
- історичний
- капот
- хостів
- ГОДИННИК
- Як
- How To
- Однак
- к.с.
- HTML
- HTTP
- HTTPS
- Сотні
- сотні мільйонів
- i
- однаковий
- Особистість
- зображення
- зображень
- негайно
- Impact
- здійснювати
- реалізовані
- реалізації
- важливо
- удосконалювати
- поліпшений
- поліпшення
- in
- В інших
- включати
- У тому числі
- Augmenter
- збільшений
- Збільшує
- все більше і більше
- індивідуальний
- промисловість
- інформація
- інформація
- Інфраструктура
- інновація
- натхненний
- встановлювати
- екземпляр
- замість
- інтегрований
- інтеграція
- Розумний
- взаємодія
- інтерфейс
- посередник
- внутрішній
- вводити
- введені
- IT
- ітерація
- ЙОГО
- сам
- робота
- Джобс
- JPG
- тримати
- ключ
- Дитина
- Знати
- мова
- мови
- великий
- масштабний
- більше
- останній
- запуск
- запущений
- запуски
- шар
- шарів
- вести
- лідер
- вивчення
- Legacy
- рівень
- libraries
- бібліотека
- Життєвий цикл
- як
- Ймовірно
- МЕЖА
- недоліки
- обмеженою
- трохи
- LLM
- погрузка
- місцевий
- Довго
- багато часу
- подивитися
- шукати
- низький
- машина
- навчання за допомогою машини
- Машинки для перманенту
- підтримувати
- Підтримка
- підтримує
- зробити
- РОБОТИ
- Робить
- управляти
- вдалося
- управління
- багато
- карти
- максимальний
- пам'ять
- метадані
- методика
- Метрика
- міграція
- MILAN
- мільйони
- ML
- MLOps
- режим
- модель
- Моделі
- модифікований
- монітор
- моніторинг
- більше
- найбільш
- рухатися
- множинний
- а саме
- рідний
- Природний
- Обробка природних мов
- природа
- обов'язково
- необхідно
- Необхідність
- потреби
- мережу
- на основі мережі
- мереж
- нейронної мережі
- Нові
- nlp
- вузол
- вузли
- номер
- численний
- Nvidia
- об'єкти
- of
- пропонувати
- пропонує
- Олівія
- on
- On-Demand
- ONE
- відкрити
- з відкритим вихідним кодом
- відкритий код
- відкритий
- Можливості
- оптимізація
- Оптимізувати
- оптимізований
- варіант
- Опції
- оркестровка
- порядок
- Інше
- власний
- пакет
- пакети
- Папір
- документи
- парадигма
- Паралельні
- параметр
- параметри
- частина
- приватність
- особливо
- пристрасний
- Минуле
- шлях
- моделі
- Платити
- Peak
- продуктивність
- виступи
- дозвіл
- Дозволи
- Фізично
- трубопровід
- місця
- plato
- Інформація про дані Платона
- PlatoData
- ігри
- точка
- басейн
- Басейни
- популярний
- пошта
- Пости
- практика
- практики
- прогнозування
- переваги
- переважним
- представити
- подарунки
- запобігати
- раніше
- Головний
- процес
- процеси
- обробка
- виробляти
- програма
- Програмування
- мови програмування
- прогрес
- проектів
- правильно
- пропонувати
- пропонує
- власником
- протокол
- протоколи
- забезпечувати
- за умови
- Постачальник
- забезпечення
- громадськість
- публікаціям
- мета
- put
- Python
- піторх
- якість
- підвищення
- випадковий
- РІДНІ
- ставка
- ставки
- досяг
- Читати
- читання
- реалізувати
- розумний
- Причини
- отримати
- останній
- рекомендувати
- рекомендації
- запис
- облік
- відновлення
- зменшити
- знижує
- зниження
- про
- регіон
- райони
- регулярний
- регулярно
- пов'язаний
- доречний
- надійний
- віддалений
- замінювати
- представляє
- запросити
- запитів
- вимагати
- вимога
- Вимагається
- дослідження
- дослідження та інновації
- ресурс
- ресурси
- результати
- Відгуки
- Роль
- ролі
- прогін
- біг
- мудрець
- то ж
- зберегти
- масштабованість
- масштабовані
- шкала
- ваги
- Масштабування
- схема
- науковий
- Вчені
- сфера
- scripts
- Sdk
- Пошук
- другий
- seconds
- розділ
- пошук
- обраний
- вибір
- старший
- Без сервера
- Сервери
- обслуговування
- Послуги
- комплект
- налаштування
- кілька
- загострений
- заточування
- загальні
- Повинен
- істотно
- простий
- простота
- одночасно
- один
- Розмір
- розміри
- навички
- сповільнювати
- невеликий
- So
- Софтвер
- Рішення
- деякі
- Source
- Джерела
- спеціаліст
- конкретний
- конкретно
- зазначений
- швидкість
- Витрати
- Розколи
- Spot
- стабільний
- стек
- старт
- Починаючи
- починається
- Стартапи
- стан
- статистичний
- заходи
- Стоп
- зупинка
- зберігання
- зберігати
- історії
- Стратегія
- потік
- потоки
- сила
- знімання
- сильно
- Дослідження
- успіх
- Історії успіху
- успішний
- такі
- підтримка
- Підтриманий
- Опори
- синхронізація
- синтаксис
- система
- таблиця
- Приймати
- Завдання
- завдання
- команда
- технічний
- тензорний потік
- Дякую
- Що
- Команда
- світ
- їх
- Їх
- самі
- теоретичний
- отже
- Ці
- третя сторона
- тисячі
- три
- через
- пропускна здатність
- час
- times
- Поради
- до
- сьогодні
- Жетони
- занадто
- інструмент
- інструменти
- топ
- Усього:
- трек
- трафік
- поїзд
- навчений
- Навчання
- Переклад
- перевезення
- трильйон
- Типи
- типовий
- при
- що лежить в основі
- розуміти
- створеного
- одиниць
- Оновити
- us
- юзабіліті
- Використання
- використання
- користувач
- зазвичай
- значення
- Цінності
- різноманітність
- різний
- перевірити
- версія
- через
- Відео
- вид
- бачення
- теплий
- шлях..
- способи
- тижня
- ДОБРЕ
- Що
- який
- в той час як
- ВООЗ
- всі
- волі
- з
- в
- без
- слова
- Work
- працював
- робочі
- робочий
- працює
- світ
- запис
- письмовий
- років
- Ти
- вашу
- себе
- YouTube
- зефірнет