Optimizing Distributed Training on Frontier for Large Language Models
Sajal Dash, Isaac Lyngaas, Junqi Yin, Xiao Wang, Romain Egele, Guojing Cong, Feiyi Wang, Prasanna Balaprakash
Статья: https://arxiv.org/abs/2312.12705
Интересная статья про то, как обучали большие LLM на суперкомпьютере Frontier (https://www.olcf.ornl.gov/frontier/), номер 1 в рейтинге TOP500 (https://www.top500.org/lists/top500/list/2023/11/).
Frontier интересен тем, что он построен на процессорах и GPU от AMD, EPYC и MI250X (https://www.amd.com/en/products/accelerators/instinct/mi200/mi250x.html) соответственно. Второй суперкомпьютер в TOP500, Aurora, кстати, построен целиком на Интеле (тоже процы и GPU). И только третий, Eagle, на NVIDIA H100 и Xeon.
Обучали модели 22B, 175B (размер GPT-3) и 1T. Две последние на 1024 и 3072 MI250X (из 37,888).
Самое интересное для меня в этой истории -- это как именно обучали на этих карточках, потому что долгое время пользоваться ничем кроме Нвидии и CUDA было невозможно, а тут пошли валом работы про обучение больших сеток на AMD. Можно вспомнить финский суперкомпьютер LUMI (https://news.1rj.ru/str/gonzo_ML/2084), поддержку в HF Transformers (https://news.1rj.ru/str/gonzo_ML/2167), обучение RetNet в MS (https://news.1rj.ru/str/gonzo_ML/1754). Наконец какая-то реальная конкуренция, кажется. Ну и большой масштаб и возникающие там проблемы тоже интересны, конечно.
В mixed precision обучении нужно 6 байт на каждый параметр модели (4 для модели в fp32, 2 для вычислений в fp16), 4 байта на параметр оптимизатора (для сохранения момента в Adam в fp32), и 4 байта на градиент каждого параметра (fp32). Итого, для 1T модели надо 14T параметров. Каждый узел Frontier содержит 8 MI250X каждый с 64 GB HBM, так что без model parallelism не обойтись.
Возможны варианты. В Tensor parallelism большие матрицы весов разбивается по строкам или столбцам. В Pipeline Parallelism модель разбивается по слоям на несколько живущих на одном GPU этапов, в каждом из которых несколько слоёв. Sharded Data Parallelism похож на классический Data Parallelism, но вместо того, чтобы хостить копии целой модели на каждом устройстве (анрил), на каждом устройстве размещается только вычисляемый в данный момент слой. Разные методы можно смешивать, получая гибрид (минутка рекламы, в моей книге про JAX (https://www.manning.com/books/deep-learning-with-jax) есть пример смешивания data + tensor parallelism при обучении, ну и вообще про параллелизацию получились самые большие главы, и их целых три). В текущей работе для лучшей утилизации ресурсов используют 3D parallelism включающий tensor, pipeline, и data (обычный и sharded) parallelism.
Взяли фреймворк Megatron-DeepSpeed с поддержкой разных видов параллелизма (tensor, pipeline, data, sharded data parallelism). В оригинале он заточен на NVIDIA (и является форком их Megatron-LM с добавленными фичами), в работе его адаптировали под AMD ROCm.
Адаптация включала:
1) Конвертацию CUDA кода в HIP код через утилиту hipify, компилирование so через hipcc и привязку к питону через pybind.
2) Подготовку DeepSpeed Ops (расширений CUDA, полученных в оригинале JIT компиляцией) под ROCm и отключение JIT на всякий пожарный.
3) Инициализацию PyTorch Distributed Environment хостом из SLURM.
4) Работу с AMD над получением ROCm версий нужных библиотек, типа APEX для mixed precision, FlashAttention и FlashAttention2 (для этих использовали Composable Kernel library, https://github.com/ROCm/composable_kernel).
Экспериментировали с разными стратегиями распараллеливания и их параметрами, а также с гиперпараметрами обучения, подобрали оптимум. За деталями и наблюдениями вэлкам в статью.
В итоге получили рабочую конфигурацию, достигающую 32-38% от пиковых FLOPS. Через Roofline Analysis (писал про это когда-то тут https://moocaholic.medium.com/hardware-for-deep-learning-part-3-gpu-8906c1644664#8dd5) показали, что обучение не memory-bound. Потестировали скейлинг, получили 100% weak scaling и 87.05% strong scaling efficiency на 1T модели.
Sajal Dash, Isaac Lyngaas, Junqi Yin, Xiao Wang, Romain Egele, Guojing Cong, Feiyi Wang, Prasanna Balaprakash
Статья: https://arxiv.org/abs/2312.12705
Интересная статья про то, как обучали большие LLM на суперкомпьютере Frontier (https://www.olcf.ornl.gov/frontier/), номер 1 в рейтинге TOP500 (https://www.top500.org/lists/top500/list/2023/11/).
Frontier интересен тем, что он построен на процессорах и GPU от AMD, EPYC и MI250X (https://www.amd.com/en/products/accelerators/instinct/mi200/mi250x.html) соответственно. Второй суперкомпьютер в TOP500, Aurora, кстати, построен целиком на Интеле (тоже процы и GPU). И только третий, Eagle, на NVIDIA H100 и Xeon.
Обучали модели 22B, 175B (размер GPT-3) и 1T. Две последние на 1024 и 3072 MI250X (из 37,888).
Самое интересное для меня в этой истории -- это как именно обучали на этих карточках, потому что долгое время пользоваться ничем кроме Нвидии и CUDA было невозможно, а тут пошли валом работы про обучение больших сеток на AMD. Можно вспомнить финский суперкомпьютер LUMI (https://news.1rj.ru/str/gonzo_ML/2084), поддержку в HF Transformers (https://news.1rj.ru/str/gonzo_ML/2167), обучение RetNet в MS (https://news.1rj.ru/str/gonzo_ML/1754). Наконец какая-то реальная конкуренция, кажется. Ну и большой масштаб и возникающие там проблемы тоже интересны, конечно.
В mixed precision обучении нужно 6 байт на каждый параметр модели (4 для модели в fp32, 2 для вычислений в fp16), 4 байта на параметр оптимизатора (для сохранения момента в Adam в fp32), и 4 байта на градиент каждого параметра (fp32). Итого, для 1T модели надо 14T параметров. Каждый узел Frontier содержит 8 MI250X каждый с 64 GB HBM, так что без model parallelism не обойтись.
Возможны варианты. В Tensor parallelism большие матрицы весов разбивается по строкам или столбцам. В Pipeline Parallelism модель разбивается по слоям на несколько живущих на одном GPU этапов, в каждом из которых несколько слоёв. Sharded Data Parallelism похож на классический Data Parallelism, но вместо того, чтобы хостить копии целой модели на каждом устройстве (анрил), на каждом устройстве размещается только вычисляемый в данный момент слой. Разные методы можно смешивать, получая гибрид (минутка рекламы, в моей книге про JAX (https://www.manning.com/books/deep-learning-with-jax) есть пример смешивания data + tensor parallelism при обучении, ну и вообще про параллелизацию получились самые большие главы, и их целых три). В текущей работе для лучшей утилизации ресурсов используют 3D parallelism включающий tensor, pipeline, и data (обычный и sharded) parallelism.
Взяли фреймворк Megatron-DeepSpeed с поддержкой разных видов параллелизма (tensor, pipeline, data, sharded data parallelism). В оригинале он заточен на NVIDIA (и является форком их Megatron-LM с добавленными фичами), в работе его адаптировали под AMD ROCm.
Адаптация включала:
1) Конвертацию CUDA кода в HIP код через утилиту hipify, компилирование so через hipcc и привязку к питону через pybind.
2) Подготовку DeepSpeed Ops (расширений CUDA, полученных в оригинале JIT компиляцией) под ROCm и отключение JIT на всякий пожарный.
3) Инициализацию PyTorch Distributed Environment хостом из SLURM.
4) Работу с AMD над получением ROCm версий нужных библиотек, типа APEX для mixed precision, FlashAttention и FlashAttention2 (для этих использовали Composable Kernel library, https://github.com/ROCm/composable_kernel).
Экспериментировали с разными стратегиями распараллеливания и их параметрами, а также с гиперпараметрами обучения, подобрали оптимум. За деталями и наблюдениями вэлкам в статью.
В итоге получили рабочую конфигурацию, достигающую 32-38% от пиковых FLOPS. Через Roofline Analysis (писал про это когда-то тут https://moocaholic.medium.com/hardware-for-deep-learning-part-3-gpu-8906c1644664#8dd5) показали, что обучение не memory-bound. Потестировали скейлинг, получили 100% weak scaling и 87.05% strong scaling efficiency на 1T модели.
🔥14👍9✍3❤1🤔1
Каких-то обученных моделей не выкладывали, цель была не в этом. Надеюсь, это всё дойдёт до опенсорса и поддержка AMD в итоге везде выйдет на достойный уровень. Ждём, надеемся.
Пользуясь случаем, хочу напомнить, что у канала теперь есть Патреон (https://patreon.com/GonzoML). Вступайте в ряды Фурье!
Пользуясь случаем, хочу напомнить, что у канала теперь есть Патреон (https://patreon.com/GonzoML). Вступайте в ряды Фурье!
arXiv.org
Optimizing Distributed Training on Frontier for Large Language Models
Large language models (LLMs) have demonstrated remarkable success as foundational models, benefiting various downstream applications through fine-tuning. Recent studies on loss scaling have...
👍13😁1
Пока просто новость
https://deepmind.google/discover/blog/alphageometry-an-olympiad-level-ai-system-for-geometry/
Результат между серебряной и золотой медалями на одимпиадных геометрических задачах.
С открытым кодом: https://github.com/google-deepmind/alphageometry
AlphaGeometry is a neuro-symbolic system made up of a neural language model and a symbolic deduction engine, which work together to find proofs for complex geometry theorems.
https://deepmind.google/discover/blog/alphageometry-an-olympiad-level-ai-system-for-geometry/
Результат между серебряной и золотой медалями на одимпиадных геометрических задачах.
С открытым кодом: https://github.com/google-deepmind/alphageometry
AlphaGeometry is a neuro-symbolic system made up of a neural language model and a symbolic deduction engine, which work together to find proofs for complex geometry theorems.
Google DeepMind
AlphaGeometry: An Olympiad-level AI system for geometry
Our AI system surpasses the state-of-the-art approach for geometry problems, advancing AI reasoning in mathematics
👍12🔥6👏6❤3
Сегодня в Давосе было интервью с Сэмом Альтманом и Сатьей Наделлой (https://www.economist.com/subscriber-events/a-conversation-with-openais-sam-altman-and-microsofts-satya-nadella-hub).
В целом никаких откровений вообще. GPT-5 будет more general и умнее в целом. Но когда -- не сказали. OpenAI в партнёрстве с MS будут делать так, чтобы на платформе можно было заработать больше денег, чем зарабатывает сама платформа. Регуляция в конечном счёте какая-то нужна и к моменту появления AGI хорошо чтобы она была, но преждевременно она может много чего загубить. Опенсорс важен. Когда AGI и что это такое непонятно.
У OpenAI вроде как есть в договоре с MS что-то про когда борд решит, что они достигли AGI, то коммерческие дела с MS здесь закончатся. Но они всё равно хотят продолжать коммерциализацию технологий, может только на других условиях, это и надо будет в тот момент пересмотреть.
Альтман за technological prosperity. Intelligence costs will fall, energy will be widely available and clean.
На безопасность обращают внимание. "We delay things or decide not to ship things all the time." Так, GPT-4 открыли только через 7-8 месяцев после её обучения.
В общем можно было не смотреть.
В целом никаких откровений вообще. GPT-5 будет more general и умнее в целом. Но когда -- не сказали. OpenAI в партнёрстве с MS будут делать так, чтобы на платформе можно было заработать больше денег, чем зарабатывает сама платформа. Регуляция в конечном счёте какая-то нужна и к моменту появления AGI хорошо чтобы она была, но преждевременно она может много чего загубить. Опенсорс важен. Когда AGI и что это такое непонятно.
У OpenAI вроде как есть в договоре с MS что-то про когда борд решит, что они достигли AGI, то коммерческие дела с MS здесь закончатся. Но они всё равно хотят продолжать коммерциализацию технологий, может только на других условиях, это и надо будет в тот момент пересмотреть.
Альтман за technological prosperity. Intelligence costs will fall, energy will be widely available and clean.
На безопасность обращают внимание. "We delay things or decide not to ship things all the time." Так, GPT-4 открыли только через 7-8 месяцев после её обучения.
В общем можно было не смотреть.
😁22👍18❤1
gonzo-обзоры ML статей
Meta закупила какое-то безумное количество GPU H100. Интересно, для чего именно. https://www.tomshardware.com/tech-industry/nvidia-ai-and-hpc-gpu-sales-reportedly-approached-half-a-million-units-in-q3-thanks-to-meta-facebook
Продолжение темы.
“We’ve come to this view that, in order to build the products that we want to build, we need to build for general intelligence,” Zuckerberg tells me in an exclusive interview. “I think that’s important to convey because a lot of the best researchers want to work on the more ambitious problems.”
https://www.theverge.com/2024/1/18/24042354/mark-zuckerberg-meta-agi-reorg-interview
“We’ve come to this view that, in order to build the products that we want to build, we need to build for general intelligence,” Zuckerberg tells me in an exclusive interview. “I think that’s important to convey because a lot of the best researchers want to work on the more ambitious problems.”
https://www.theverge.com/2024/1/18/24042354/mark-zuckerberg-meta-agi-reorg-interview
The Verge
Mark Zuckerberg’s new goal is creating artificial general intelligence
“We have built up the capacity to do this at a scale that may be larger than any other individual company.”
🥱7🔥5❤2👍1
"Meta is training Llama 3 now, and it will have code-generating capabilities, he says. Like Google’s new Gemini model, another focus is on more advanced reasoning and planning abilities.
“Llama 2 wasn’t an industry-leading model, but it was the best open-source model,” he says. “With Llama 3 and beyond, our ambition is to build things that are at the state of the art and eventually the leading models in the industry.”
“Llama 2 wasn’t an industry-leading model, but it was the best open-source model,” he says. “With Llama 3 and beyond, our ambition is to build things that are at the state of the art and eventually the leading models in the industry.”
🔥41❤3🤔2
В продолжение темы про CETI (https://news.1rj.ru/str/gonzo_ML/2182) классная интерактивная статья про слонов и китов:
https://ig.ft.com/ai-animals/
https://ig.ft.com/ai-animals/
🎉7🥱2👍1
Ещё про амдшное железо.
"AMD has begun to ship its Instinct MI300X GPUs for artificial intelligence (AI) and high-performance computing (HPC) applications."
"Meanwhile, an Instinct MI300X carries 192 GB of HBM3 memory (at a peak bandwidth of 5.3 TB/s)."
192 гига... Ням-ням...
"Based on performance numbers demonstrated by AMD, the Instinct MI300X outperforms Nvidia's H100 80GB, which is available already and is massively deployed by hyperscalers like Google, Meta (Facebook), and Microsoft. The Instinct MI300X is probably also a formidable competitor to Nvidia's H200 141GB GPU, which is yet to hit the market."
https://www.tomshardware.com/tech-industry/supercomputers/amds-customers-begin-receiving-the-first-instinct-mi300x-ai-gpus-companys-toughest-competitor-to-nvidias-ai-dominance-is-now-shipping
"AMD has begun to ship its Instinct MI300X GPUs for artificial intelligence (AI) and high-performance computing (HPC) applications."
"Meanwhile, an Instinct MI300X carries 192 GB of HBM3 memory (at a peak bandwidth of 5.3 TB/s)."
192 гига... Ням-ням...
"Based on performance numbers demonstrated by AMD, the Instinct MI300X outperforms Nvidia's H100 80GB, which is available already and is massively deployed by hyperscalers like Google, Meta (Facebook), and Microsoft. The Instinct MI300X is probably also a formidable competitor to Nvidia's H200 141GB GPU, which is yet to hit the market."
https://www.tomshardware.com/tech-industry/supercomputers/amds-customers-begin-receiving-the-first-instinct-mi300x-ai-gpus-companys-toughest-competitor-to-nvidias-ai-dominance-is-now-shipping
Tom's Hardware
AMD's customers begin receiving the first Instinct MI300X AI GPUs — the company's toughest competitor to Nvidia's AI dominance…
An important milestone for AMD.
🔥40👍7🤩1