Конкурентная модель Microsoft для обучения огромных моделей (по сравнению с Google Switch Transformers и OpenAI GPT-3)

Он может обучать модели с более чем 13 миллиардами параметров на одном графическом процессоре, что в 10 раз больше по сравнению с популярным фреймворком, таким как PyTorch, и делает это без каких-либо изменений модели со стороны специалистов по данным или в ущерб вычислительной эффективности.

Источник: Jie Ren et al. в arxiv

Оптимизация процесса обучения огромных моделей становится большим трендом в машинном обучении. С Switch Transformers от Google и GPT-3 OpenAI пришло время взглянуть на ZeRO-Offload от Microsoft. Модель [1] в основном ориентирована на минимизацию затрат на разгрузку от / до графических процессоров / процессоров с помощью новых приемов оптимизации. Он способен обучать модели с 70 миллиардами параметров, что абсолютно безумно.

Одним из основных преимуществ этой модели является то, что она оптимизирована для обучения на одном графическом процессоре, так что буквально каждый может использовать ее (для ее использования не нужно иметь тонны дорогостоящего оборудования). В основном они делают это с помощью гетерогенного глубокого обучения, оптимизируя использование CPU-GPU.

Предварительные условия:

Прежде чем мы начнем углубляться в модель, нам нужно понять природу проблемы. Модели машинного обучения обычно потребляют огромный объем памяти. Почему? Потому что их параметры, градиенты и состояния оптимизатора [1] должны сохраняться в памяти во время обучения. Распространенным решением этой проблемы является разделение этих состояний модели на несколько графических процессоров, однако это не слишком полезно, поскольку у большинства специалистов по обработке данных нет нескольких графических процессоров.

Другие подходы включают сохранение состояний на жесткий диск и его повторное использование или их сжатие каким-либо образом. Подход, который мы здесь обсудим, заключается в использовании памяти ЦП. Возможно, это не новый подход, однако до этого момента он не был столь успешным, поскольку связь между графическим процессором и процессором требует больших затрат.

Одна из уникальных идей этой статьи - их подход к решению. Они решили смоделировать эту коммуникационную проблему, используя графы потоков данных и анализ из первых принципов. Большая часть работы выполняется для эффективного разделения графиков между процессорами и графическими процессорами.

Давайте углубимся в нюансы этой модели

Кроме того, наш анализ первого принципа показывает, что ZeRO-Offload обеспечивает оптимальное и единственное оптимальное решение для максимальной экономии памяти при минимизации накладных расходов на связь и вычислительные ресурсы ЦП для обучения больших моделей. ZeRO-Offload построен на трех основных принципах: i) эффективность, ii) масштабируемость и iii) удобство использования.

Источник: Jie Ren et al. в arxiv

Графики становятся все более актуальной темой в машинном обучении. Они также являются фундаментальной частью решения сложных задач информатики (если интересно, предлагаю проверить алгоритм Дейкстры). Используемые здесь графические модели представляют поток данных между узлами как граничные, а объем данных как веса этих граней.

Одним из основных моментов здесь является то, что авторам статьи нужно было осознать основные сильные стороны GPU и CPU. Хотя вычислительная мощность процессора обычно ниже, если вы перенесете на него соответствующие вычисления, процесс обучения станет более плавным. И это именно то, что они сделали: они перемещают прямое и обратное распространение на графический процессор и выгружают оставшиеся вычисления на центральный процессор. Они называют узел прямого и обратного распространения «суперузлом». Всегда приятно видеть, как хитрости компьютерных систем используются для оптимизации машинного обучения (я большой поклонник операционных систем и ядра Linux!). Напоминает, что машинное обучение - это не только математика и анализ данных.

Следующая часть посвящена минимизации объема связи между процессором и графическим процессором. Для этого вам нужно подумать о том, как лучше разрезать график, потому что, если вы не разделите его правильно, вам придется продолжать отправлять данные вперед и назад. Они предлагают решение, в котором граф имеет 4 узла: суперузел (распространение), 1 узел данных параметра (p16), 1 узел данных градиента (g16) и 1 узел для обновления суперузла. Они предполагают, что суперузл должен располагаться с узлом данных параметров (на графическом процессоре), что имеет смысл.

Они проводят несколько экспериментов, чтобы доказать это, и сокращение использования памяти просто поразительно! Это одна из моих любимых частей этой статьи, в которой проблема представлена ​​в виде графа, назначаются правильные узлы и анализируется проблема.

Уловка одноэтапного обновления параметров с задержкой

Даже после оптимизации связи между ЦП и ГП вычислительные ограничения ЦП по-прежнему создают большие накладные расходы. Чтобы решить эту проблему, они вводят новый трюк с задержкой параметра:

Мы разрабатываем одноэтапное обновление параметров с задержкой (DPU), которое перекрывает вычисления CPU и GPU, чтобы скрыть накладные расходы на вычисления CPU, задерживая обновление параметра на один шаг. Мы проверяем, что DPU не влияет на окончательную точность обучения при оценке.

Источник: Jie Ren et al. в arxiv

Для дальнейшей оптимизации вычислений CPU они предлагают оптимизированный алгоритм Adam. Если вы не знакомы с Адамом (оценка адаптивного момента), это один из наиболее часто используемых алгоритмов оптимизации в машинном обучении. Их оптимизированный для ЦП Адам полагается на помещение параметра [1], градиента, импульса и дисперсии в векторные регистры. Эти регистры, по сути, являются областями хранения в ЦП, которые содержат операнды, специально разработанные для вычислений векторов данных с одной командой и несколькими данными. Они также выполняют стандартные арифметические операции в векторном режиме и перемещают необходимые данные в графический процессор мозаичным способом. По сути, это означает, что они перемещают данные в открытые окна, которые не перекрываются.

Есть еще немало других оптимизаций, но я не хочу останавливаться на одной детали документа, я хочу только показать уловки, которые я считал наиболее полезными и инновационными.

Заключительные мысли и вывод

Появление огромных объемов работ по оптимизации моделей в основном [1] связано с огромным увеличением использования гигантских преобразователей. Более того, размер этих преобразователей продолжает увеличиваться, и специалистам по обработке данных не придется полагаться на дорогие графические процессоры и оборудование. Вскоре я напишу еще одну статью, чтобы сравнить некоторые из этих огромных моделей, так как в настоящее время меня это интересует. А пока вы можете ознакомиться с моими статьями, если вам интересно:







Если вы хотите получать регулярные обзоры последних статей в области искусственного интеллекта и машинного обучения, добавьте сюда свой адрес электронной почты и подпишитесь!

Https://artisanal-motivator-8249.ck.page/5524b8f934

Ссылки:

[1] ZeRO-Offload: демократизация обучения моделям в миллиардном масштабе. Джи Рен и Самьям Раджбхандари, Реза Яздани Аминабади, Олатунджи Рувасе и Шуангян Ян, Минцзя Чжан, Донг Ли и Юйсюн Хэ. 2021. В arxiv