Найкращі хмарні GPU для навчання моделей ШІ
Навчання моделей ШІ — від класифікаторів комп’ютерного зору до мовних моделей з мільярдами параметрів — вимагає постійного доступу до високопродуктивних GPU з швидкими інтерконекторами та великою VRAM. Правильний постачальник хмарних GPU для навчання пропонує мульти-GPU інстанси, підключення NVLink або InfiniBand та конкурентні погодинні тарифи. Цей посібник відбирає постачальників, найкраще підходящих для навчальних навантажень, на основі їхнього обладнання, інтерконекторів та підтримки мульти-вузлів.
Поки що не знайдено провайдерів GPU, що відповідають цьому гіду. Перевірте пізніше.
Що насправді вимагає тренування моделей ШІ від орендованої GPU
Тренування — це найбільш ресурсомістка фаза життєвого циклу машинного навчання. На відміну від інференсу, який запускає готову модель один раз на запит, тренування багаторазово пропускає пакети даних вперед і назад через мережу, обчислюючи градієнти та оновлюючи мільйони або мільярди параметрів протягом багатьох епох. Цей ітеративний, тривалий, пам’яткоємний процес відрізняє хорошу оренду для тренування від просто дешевої. Порівняння вище відфільтроване для інстансів, придатних для цієї роботи, але розуміння чому вони підходять допоможе вам правильно його прочитати.
Під час тренування GPU має зберігати значно більше, ніж ваги моделі. Він одночасно зберігає активації для зворотного проходу, градієнти та стан оптимізатора. З поширеними оптимізаторами, такими як Adam, сам стан оптимізатора приблизно втричі збільшує обсяг пам’яті, зайнятий вагами, оскільки відслідковує моменти та дисперсії додатково до параметрів. Це найбільша причина, чому карта, що комфортно виконує інференс для певної моделі, може вичерпати пам’ять, щойно ви спробуєте її донавчити або попередньо натренувати.
Специфікації, що мають найбільше значення для тренування
- Обсяг VRAM — це жорсткий бар’єр. Він визначає найбільшу модель і розмір пакету, які ви можете розмістити, перш ніж доведеться застосовувати збереження градієнтів, вивантаження або розподіл між кількома GPU. Центрові прискорювачі з високошвидкісною пам’яттю (HBM) мають значно більше VRAM, ніж споживчі карти, тому серйозне тренування тяжіє до них.
- Пропускна здатність пам’яті підтримує живлення обчислювальних блоків. Тренування часто обмежене пам’яттю, тому пропускна здатність класу HBM часто важливіша для реальної продуктивності, ніж пікові FLOPS. Карта, позбавлена пропускної здатності, залишає свої тензорні ядра бездіяльними.
- Підтримка низької точності безпосередньо впливає на швидкість. Тензорні ядра прискорюють FP16 і BF16, а новіші архітектури додають FP8. BF16 особливо цінують для тренування, оскільки його ширший діапазон експоненти протистоїть переповненню та недоповненню, які турбують FP16, роблячи змішану точність більш стабільною.
- Інтерконект визначає, наскільки добре ви масштабуєтеся за межі однієї GPU. NVLink між картами в одному вузлі та високошвидкісна мережа, така як InfiniBand між вузлами, визначають, чи не стане синхронізація градієнтів вузьким місцем. Налаштування з кількома GPU лише через PCIe можуть затримуватися на комунікації під час розподіленого тренування.
Тренування на одній GPU, кількох GPU та кількох вузлах
Не кожна задача тренування потребує кластера. Підбирайте масштаб оренди відповідно до масштабу роботи:
- Одна GPU достатня для менших моделей, параметрично ефективного донавчання (наприклад, адаптери стилю LoRA) і більшості експериментів. Тут бажано мати найбільший VRAM, який ви можете собі дозволити, щоб уникнути мікропакетної обробки.
- Кілька GPU в одному вузлі підходять для повного донавчання та моделей середнього розміру. Паралелізм по даних реплікує модель і розбиває пакет; саме тут NVLink виправдовує себе, прискорюючи крок all-reduce, що усереднює градієнти між картами.
- Кластери з кількох вузлів потрібні для великого попереднього тренування, де сама модель розподілена за допомогою тензорного, конвеєрного або повністю розподіленого паралелізму по даних. На цьому рівні пропускна здатність мережі між вузлами та топологія стають настільки ж важливими, як і GPU, і повільна мережа може знівелювати перевагу додавання апаратного забезпечення.
Особливості провайдера, що визначають успіх тренування
Обладнання — це лише половина рішення. Тривалі тренування виявляють операційні деталі, яких короткі завдання інференсу не торкаються:
- Пропускна здатність сховища важлива, бо конвеєр даних має постачати GPU без затримок. Великі набори даних потребують швидкого, постійного сховища поруч із обчислювальним вузлом; повільний диск або віддалене сховище можуть обмежити потенціал навіть потужної GPU.
- Spot-інстанси проти on-demand — це справжній компроміс для тренування. Переривні інстанси суттєво знижують вартість, але переривання під час роботи марнує прогрес, якщо ви не робите часті контрольні точки і не можете чисто відновитися. On-demand або зарезервовані ресурси забезпечують надійність для завдань, які не можна втратити.
- Підтримка контрольних точок і постійних томів дозволяє пережити переривання, зупинитися для перевірки результатів і перезапуститися без повторного завантаження всього. Це необхідно для багатоденних запусків.
- Гранулярність білінгу впливає на загальну вартість. Оплата за секунди або хвилини заохочує короткі, ітеративні експерименти, тоді як грубе округлення по годинах карає за часті цикли запуск-стоп під час розробки.
- Доступність кількох GPU та кількох вузлів слід перевірити заздалегідь. Забезпечити вісім карт в одному вузлі або кілька з’єднаних вузлів складніше, ніж орендувати одну GPU, і наявність варіюється.
Як читати наведене вище порівняння для робочого навантаження тренування
Починайте з розміру моделі та набору даних, потім рухайтеся далі. Оцініть пам’ять, потрібну для ваг, градієнтів і стану оптимізатора, і відфільтруйте інстанси, у яких VRAM перевищує цю потребу з запасом. Далі вирішіть, чи достатньо однієї GPU, чи потрібні NVLink-з’єднані кілька GPU або мережевий кластер, і перевірте, чи пропонують кандидати таку топологію. Лише потім враховуйте ціну та модель білінгу. Трохи дорожчий інстанс із більшим VRAM і швидшим інтерконектом часто завершує роботу швидше і коштує менше загалом, ніж дешевша карта, що змушує вас використовувати повільні обхідні шляхи. Оскільки тарифи оренди постійно змінюються і відрізняються між провайдерами, сприймайте актуальні дані в таблиці вище як істину, а не будь-які числа, наведені в тексті.
Часті запитання
Скільки пам’яті GPU мені потрібно для тренування моделі?
Плануйте значно більше, ніж кількість параметрів моделі. Окрім ваг, потрібно зберігати активації для зворотного проходу, градієнти та стан оптимізатора, що з оптимізаторами типу Adam приблизно втричі збільшує обсяг пам’яті, зайнятий вагами. Змішана точність і техніки, такі як збереження градієнтів або вивантаження, зменшують потребу, але безпечніше вибирати VRAM із запасом, а не точно під модель.
Чи безпечні spot- або переривні інстанси для тренувальних завдань?
Вони можуть бути безпечними, якщо ви часто робите контрольні точки і ваш код чисто відновлюється з останнього збереженого стану. Spot-ресурси суттєво знижують вартість, але їх можуть забрати в будь-який момент, тому вони краще підходять для стійких до збоїв або експериментальних запусків, ніж для єдиного незамінного тривалого завдання. Для тренування, яке не можна перезапустити, безпечнішим вибором є on-demand або зарезервовані ресурси.
Чи потрібні мені кілька GPU для тренування, чи вистачить однієї?
Це залежить від розміру моделі та набору даних. Менші моделі, донавчання та параметрично ефективні методи часто добре працюють на одній GPU з великим VRAM. Повне донавчання та більші моделі виграють від кількох GPU в одному вузлі з швидким інтерконектом, а лише найбільші завдання попереднього тренування справді потребують кластерів із кількох вузлів із високошвидкісним мережевим з’єднанням між машинами.
Чому інтерконект так важливий для тренування?
Розподілене тренування постійно синхронізує градієнти між GPU. Якщо зв’язок між картами або вузлами повільний, ця комунікація затримує кожен крок, і GPU простоюють у очікуванні один одного. Швидкий інтерконект, такий як NVLink у вузлі та InfiniBand між вузлами, не дає синхронізації стати вузьким місцем, тому додавання апаратного забезпечення справді прискорює роботу, а не лише додає накладні витрати.