Зменште час і вартість глибокого навчання за допомогою MosaicML Composer на AWS PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Зменште час і вартість глибокого навчання за допомогою MosaicML Composer на AWS

За останнє десятиліття ми бачили Наука про глибоке навчання (DL) засвоюється клієнтами AWS надзвичайно швидко. Численні параметри DL-моделей, які спільно тренуються, мають велику репрезентативну здатність, яка покращила численні випадки використання клієнтами, включаючи аналіз зображень і мови, обробку природної мови (NLP), обробку часових рядів тощо. У цій публікації ми висвітлюємо проблеми, про які зазвичай повідомляють саме під час навчання DL, і як бібліотека з відкритим кодом Композитор MosaicML допомагає їх вирішити.

Виклик навчання DL

DL-моделі навчаються ітеративно, у вкладеному циклі for. Цикл повторює навчальний набір даних фрагмент за фрагментом і, якщо необхідно, цей цикл повторюється кілька разів для всього набору даних. Практики ML, які працюють над навчанням DL, стикаються з кількома проблемами:

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

За останні кілька років кілька бібліотек з відкритим кодом, як-от Керас, Блискавка PyTorch, Обійми трансформатори обличчя та Рей Потяг намагалися зробити навчання DL більш доступним, зокрема, зменшивши багатослівність коду, тим самим спростивши програмування нейронних мереж. Більшість цих бібліотек зосереджено на досвіді розробників і компактності коду.

У цій публікації ми представляємо нову бібліотеку з відкритим кодом, яка займає іншу позицію щодо навчання DL: Композитор MosaicML це бібліотека, орієнтована на швидкість, основною метою якої є зробити сценарії навчання нейронних мереж швидшими за допомогою алгоритмічних інновацій. У хмарному світі DL доцільно зосередитися на швидкості, оскільки обчислювальна інфраструктура часто оплачується за використання — навіть аж до другого Навчання Amazon SageMaker— і підвищення швидкості може призвести до економії грошей.

Історично прискорення навчання DL здебільшого досягалося шляхом збільшення кількості машин, які обчислюють ітерації моделі паралельно, метод, який називається паралелізм даних. Хоча паралелізм даних іноді прискорює навчання (не гарантується, оскільки це порушує конвергенцію, як зазначено в Goyal та ін.), це не зменшує загальну вартість роботи. На практиці він має тенденцію до збільшення через накладні витрати на зв’язок між машинами та вищу вартість одиниці машини, оскільки розподілені машини DL оснащені мережею високого класу та внутрішньосерверним з’єднанням GPU.

Хоча MosaicML Composer підтримує паралелізм даних, його основна філософія відрізняється від руху за паралелізм даних. Його мета полягає в тому, щоб прискорити навчання, не вимагаючи додаткової кількості машин, шляхом впровадження інновацій на рівні наукового впровадження. Таким чином, він прагне досягти економії часу, яка призведе до економії коштів завдяки структурі плати за використання AWS.

Представляємо бібліотеку з відкритим кодом MosaicML Composer

MosaicML Composer — це навчальна бібліотека DL із відкритим вихідним кодом, створена спеціально для того, щоб спростити впровадження найновіших алгоритмів і компонувати їх у нові рецепти, які пришвидшують навчання моделі та допомагають покращити якість моделі. На момент написання цієї статті він підтримує PyTorch і містить 25 технік, які називаються методика у світі MosaicML — разом зі стандартними моделями, наборами даних і контрольними тестами

Композитор є доступний через pip:

pip install mosaicml

До методів прискорення, реалізованих у Composer, можна отримати доступ за допомогою його функціонального API. Наприклад, наведений нижче фрагмент застосовує BlurPool техніки до TorchVision ResNet:

import logging

from composer import functional as CF
import torchvision.models as models
logging.basicConfig(level=logging.INFO)

model = models.resnet50()
CF.apply_blurpool(model)

За бажанням ви також можете використовувати a тренер скласти власну комбінацію прийомів:

from composer import Trainer
from composer.algorithms import LabelSmoothing, CutMix, ChannelsLast

trainer = Trainer(
    model=.. # must be a composer.ComposerModel
    train_dataloader=...,
    max_duration="2ep",  # can be a time, a number of epochs or batches
    algorithms=[
        LabelSmoothing(smoothing=0.1),
        CutMix(alpha=1.0),
        ChannelsLast(),
    ]
)

trainer.fit()

Приклади методів, реалізованих у Composer

Деякі з методів, доступних у Composer, є специфічними для комп’ютерного зору, наприклад методи збільшення зображення ColOut, Вирізатиабо Прогресивна зміна розміру зображення. Інші специфічні для моделювання послідовності, наприклад Розминка довжини послідовності or АЛіБі. Цікаво, що деякі з них не залежать від варіанту використання та можуть бути застосовані до різноманітних нейронних мереж PyTorch за межами комп’ютерного зору та НЛП. Ці загальні методи прискорення навчання нейронної мережі включають Згладжування міток, Вибіркова опора, Стохастичне усереднення ваги, Заморожування шару та Мінімізація з урахуванням різкості (SAM).

Давайте детально зануримося в деякі з них, які команда MosaicML визнала особливо ефективними:

  • Мінімізація з урахуванням різкості (SAM) є оптимізатором, ніж мінімізує як функцію втрат моделі, так і її різкість, обчислюючи градієнт двічі для кожного кроку оптимізації. Щоб обмежити додаткове обчислення для зниження пропускної здатності, SAM можна запускати періодично.
  • Увага з лінійними зміщеннями (ALiBi), натхненний Прес та ін., характерний для моделей Transformers. Це усуває потребу в позиційних вбудованостях, замінюючи їх невивченим упередженням до ваг уваги.
  • Вибіркова опора, натхненний Jiang та ін., дозволяє запускати зворотне розповсюдження (алгоритми, які покращують ваги моделі, дотримуючись нахилу її помилки) лише для записів із функцією великих втрат. Цей метод допомагає уникнути непотрібних обчислень і покращити пропускну здатність.

Наявність цих методів у єдиній компактній системі навчання є значною доданою перевагою для практиків ML. Що також є цінним, так це дієвий зворотний зв’язок, який команда MosaicML створює для кожної техніки, перевіреної та оціненої. Однак, враховуючи такий багатий інструментарій, ви можете задатися питанням: який метод мені використовувати? Чи безпечно поєднувати використання кількох методів? Увійдіть у MosaicML Explorer.

Провідник MosaicML

Щоб кількісно оцінити цінність і сумісність методів навчання DL, команда MosaicML підтримує дослідник, перша у своєму роді інформаційна панель у реальному часі, яка відображає десятки навчальних експериментів DL на п’яти наборах даних і семи моделях. На панелі приладів зображено оптимальний кордон Парето у компромісі вартість/час/якість і дозволяє переглядати та знаходити найефективніші комбінації методів, які називаються рецепти у світі MosaicML — для даної моделі та набору даних. Наприклад, на наведених нижче графіках показано, що для навчання GPT125 параметрів 2M найдешевше навчання з підтримкою здивування 24.11 досягається шляхом поєднання AliBi, розігріву довжини послідовності та розкладу шкали, що досягає вартості приблизно 145.83 доларів США в хмарі AWS! Однак зауважте, що цей розрахунок вартості та наступні в цьому дописі ґрунтуються лише на обчисленнях EC2 на вимогу, можуть бути застосовані інші міркування щодо вартості, залежно від вашого середовища та бізнес-потреб.

Знімок екрана MosaicML Explorer для навчання GPT-2

Помітні досягнення з Composer на AWS

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

Висновок

Ви можете розпочати роботу з Composer на будь-якій сумісній платформі, від ноутбука до великих хмарних серверів із графічним процесором. Функції бібліотеки інтуїтивно зрозумілі Привітальний тур та Приступаючи до роботи сторінки документації. Використання Composer в AWS дозволяє об’єднувати науку про оптимізацію витрат Composer із послугами та програмами AWS з оптимізації витрат, включаючи Spot compute (Amazon EC2, Amazon SageMaker), План заощаджень, Автоматичне налаштування моделі SageMaker, і більше. Команда MosaicML підтримує a підручник Composer на AWS. Він надає покрокову демонстрацію того, як можна відтворити результати MLPerf і навчити ResNet-50 на AWS до стандартної точності 76.6% топ-1 лише за 27 хвилин.

Якщо ви маєте проблеми з нейронними мережами, які навчаються надто повільно, або якщо ви прагнете контролювати свої витрати на навчання DL, спробуйте MosaicML на AWS і повідомте нам, що ви створюєте!


Про авторів

Зменште час і вартість глибокого навчання за допомогою MosaicML Composer на AWS PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Бандиш Шах є менеджером з розробки в MosaicML, який працює над поєднанням ефективного глибинного навчання з великомасштабними розподіленими системами та продуктивними обчисленнями. Bandish має понад десятиліття досвіду створення систем для машинного навчання та корпоративних програм. Йому подобається проводити час з друзями та сім’єю, готувати їжу та переглядати «Зоряний шлях» для натхнення.

Зменште час і вартість глибокого навчання за допомогою MosaicML Composer на AWS PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Олів'є Крюшан є спеціалістом з машинного навчання архітектором рішень у AWS, що базується у Франції. Олів’є допомагає клієнтам AWS – від невеликих стартапів до великих підприємств – розробляти та впроваджувати програми машинного навчання виробничого рівня. У вільний час він любить читати наукові роботи та досліджувати пустелю з друзями та родиною.

Часова мітка:

Більше від AWS Машинне навчання