Примечание редактора. Джеймс Деммел, доктор философии, и Ян Ю, доктор философии, выступят на конференции ODSC West 2022, которая пройдет с 1 по 3 ноября. Обязательно ознакомьтесь с их докладом «Colossal-AI: унифицированная система глубокого обучения для крупномасштабного параллельного обучения» здесь!

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

  • Как повысить эффективность обучения и вывода больших моделей, чтобы снизить затраты?
  • Можем ли мы разместить более крупные модели с ограниченными ресурсами?
  • Какие усилия мы можем предпринять, чтобы предоставить большему количеству членов сообщества ИИ легкий доступ к большим моделям?

В этом блоге мы возьмем одну из самых популярных моделей ИИ в Hugging Face Hub, OPT от Meta, чтобы продемонстрировать, как обучать и настраивать большие модели ИИ с минимальными затратами и минимальными изменениями кода.

Узнайте больше о том, как вы используете Colossal-AI

Открытый исходный код: https://github.com/hpcaitech/ColossalAI

Тенденции в больших моделях ИИ

Forbes News, ведущее мировое издание, недавно объявило крупномасштабные модели ИИ одной из шести тенденций ИИ, за которыми следует следить в 2022 году. По мере того, как крупномасштабные модели ИИ продолжают показывать превосходные результаты в различных областях, появляются тенденции, ведущие к выдающимся и эффективным приложениям ИИ, которые никогда не были замечены в промышленности, например. Второй пилот, DALL-E 2 и т. д.

Изображение создано Imagen (2 столбца слева) и DALLE-2 (2 столбца справа) «Греческая статуя человека, спотыкающегося о кошку»

В последние годы выдающаяся производительность масштабирования моделей привела к увеличению размера предварительно обученных моделей. К сожалению, обучение и даже просто тонкая настройка больших моделей ИИ обычно недоступны и требуют десятков или сотен графических процессоров. На самом деле, становится так неприятно, что GPT-3, модель, содержащая 175 миллиардов параметров, использует самый современный графический процессор: NVIDIA A100, более 100 лет и 12 миллионов долларов.

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

Для решения вышеуказанных задач Prof. Джеймс Деммель из Калифорнийского университета в Беркли и Prof. Ян Ю из NUS руководил проектом Colossal-AI, единой системой глубокого обучения для эпохи больших моделей, которая объединяет множество эффективных методов, таких как многомерный тензорный параллелизм, параллелизм последовательностей, управление гетерогенной памятью и т. д. Используя Colossal- ИИ пользователи могут эффективно и быстро развертывать обучение и вывод больших моделей ИИ, сокращая бюджеты больших моделей ИИ и сокращая трудозатраты на обучение и развертывание.

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

Используйте крупногабаритную модель OPT с низкой стоимостью

Об открытом трансформаторе с предварительной подготовкой (OPT)

Meta недавно выпустила Open Pretrained Transformer (OPT), языковую модель искусственного интеллекта со 175 миллиардами параметров. Чтобы стимулировать демократизацию ИИ в сообществе, Meta выпустила как код, так и вес обученной модели, что стимулирует программистов ИИ выполнять различные последующие задачи и развертывание приложений. Теперь мы продемонстрируем тонкую настройку моделирования повседневного языка с предтренировочными весами модели OPT, предоставленной Hugging Face Hub.

Об обнимании лица

Hugging Face — это популярное сообщество ИИ, которое стремится продвигать и демократизировать ИИ с помощью открытого исходного кода и открытой науки. Hugging Face успешно объединила крупномасштабные модели в собственный центр моделей с более чем 50 000 моделей, включая модные крупные модели ИИ, такие как GPT и OPT.

Настройте с помощью Colossal-AI

Использовать мощные функции Colossal-AI очень просто. Пользователям нужен только простой файл конфигурации, и им не требуется изменять логику обучения, чтобы оснастить модели необходимыми функциями (например, обучение со смешанной точностью, накопление градиентов, многомерное параллельное обучение и избыточность памяти). устранение).

Предположим, мы намерены разработать OPT на одном GPU. Мы можем добиться этого, используя разнородное обучение от Colossal-AI, которое требует от пользователей только добавления соответствующих элементов в файлы конфигурации. Среди добавленных элементов tensor_placement_policy, который можно настроить как cuda, cpu или auto, определяет нашу гетерогенную стратегию обучения. Каждая стратегия обучения имеет свои явные преимущества:

  • cuda: передает все параметры модели на графический процессор, что подходит для сценариев, в которых обучение продолжается без разгрузки весов;
  • ЦП: помещает все параметры модели в ЦП, подходит для обучения гигантской модели, сохраняет в памяти ГП только веса, которые участвуют в текущих шагах вычислений;
  • auto: определяет количество параметров, которые должны храниться на графическом процессоре, тщательно отслеживая текущее состояние памяти. Он оптимизирует использование памяти графического процессора и сводит к минимуму дорогостоящую передачу данных между графическим процессором и процессором.

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

from colossalai.zero.shard_utils import TensorShardStrategy
zero = dict(model_config=dict(shard_strategy=TensorShardStrategy(),
                              tensor_placement_policy="auto"),
            optimizer_config=dict(gpu_margin_mem_ratio=0.8))

Запуск с Colossal-AI

Когда файл конфигурации готов, для вновь объявленных функций требуется всего несколько строк кода.

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

colossalai.launch_from_torch(config='./configs/colossalai_zero.py')

После этого пользователи могут определять свои собственные наборы данных, модели, оптимизаторы и функции потерь, как обычно, или с помощью необработанного кода PyTorch. Только их модели нужно инициализировать в ZeroInitContext. В данном примере мы принимаем модель OPTForCausalLM вместе с ее предварительно обученными весами с помощью Hugging Face и вносим коррективы в набор данных Wikitext.

With ZeroInitContext(target_device=torch.cuda.current_device(),
                    shard_strategy=shard_strategy,
                    shard_param=True):
    model = OPTForCausalLM.from_pretrained(
                'facebook/opt-1.3b'
                config=config
            )

Затем используйте colossalai.initialize, чтобы интегрировать разнородные функции памяти, определенные в файле конфигурации, в механизм обучения, чтобы включить эту функцию.

engine, train_dataloader, eval_dataloader, lr_scheduler = 
colossalai.initialize(model=model,
optimizer=optimizer,
criterion=criterion,
train_dataloader=train_dataloader,
test_dataloader=eval_dataloader,
lr_scheduler=lr_scheduler)

Замечательная производительность от Colossal-AI

На одном графическом процессоре автоматическая стратегия Colossal-AI обеспечивает значительный прирост производительности по сравнению со стратегией ZeRO Offloading от Microsoft DeepSpeed. Пользователи могут испытать ускорение до 40 % в различных масштабах моделей. Однако при использовании традиционной среды обучения глубокому обучению, такой как PyTorch, один графический процессор больше не может поддерживать обучение моделей в таком масштабе.

Принять стратегию распределенного обучения с 8 графическими процессорами так же просто, как добавить -nprocs 8 в команду обучения Colossal-AI!

За кулисами

Такие замечательные улучшения происходят благодаря эффективной системе управления гетерогенной памятью Gemini от Colossal-AI. Проще говоря, Gemini использует несколько подготовительных шагов во время обучения модели для сбора информации об использовании памяти из вычислительных графиков PyTorch. После прогрева и перед выполнением каждой операции Gemini предварительно выделяет память для оператора, эквивалентную его пиковому использованию, на основе собранных записей об использовании памяти. В то же время он перераспределяет некоторые тензоры моделей из памяти GPU в память CPU.

Встроенный диспетчер памяти Gemini прикрепляет состояние к каждому тензору, включая HOLD, COMPUTE, FREE и т. д. В зависимости от запрошенного использования памяти диспетчер постоянно преобразовывает состояния тензора и корректирует позиции тензора. По сравнению с классификацией статической памяти ZeRO Offload от DeepSpeed, Colossal-AI Gemini использует более эффективное использование памяти графического процессора и процессора, максимально увеличивает возможности модели и уравновешивает скорость обучения, и все это с небольшим количеством аппаратного оборудования.

Для представителя больших моделей GPT Colossal-AI способен обучать до 1,5 млрд параметров на игровом ноутбуке с RTX 2060 6GB. Для ПК с RTX3090 24 ГБ Colossal-AI может обучать GPT с 18 миллиардами параметров. Colossal-AI также может значительно улучшить высокопроизводительные видеокарты, такие как Tesla V100.

Если бы дальнейшее использование функции NVME позволило использовать более дешевый SSD, мы могли бы даже обучить модель с 12 миллиардами параметров на RTX 3080 10 ГБ, что в 120 раз больше, чем у PyTorch!

Кроме того: удобная и эффективная распараллеливание

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

Чтобы противостоять сложностям, возникающим одновременно из-за параллелизма данных, конвейера и 2.5D, в Colossal-AI достаточно простой строки объявления кода. Типичный системный/фреймворковый метод взлома подчеркнутой логики кода больше не нужен.

parallel = dict(
    pipeline=2,
    tensor=dict(mode='2.5d', depth = 1, size=4)
)

Для сверхбольшой модели ИИ, такой как GPT-3, Colossal-AI требуется только половина вычислительных ресурсов по сравнению с решением NVIDIA для начала обучения. Если бы использовались те же вычислительные ресурсы, скорость можно было бы увеличить еще на 11 %, что могло бы уменьшить стоимость обучения GPT-3 более чем на миллион долларов.

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

Одним из таких монументальных приложений является ускорение итеративной разработки технологии ИИ для предсказания структуры белка (например, AlphaFold от DeepMind, одного из 10 главных научных достижений 2021 года). Мы применили эффективную схему Colossal-AI для разработки модели ускоренного ИИ для предсказания структуры белков: FastFold. FastFold успешно превзошел другие схемы, в том числе предложенные Google и Колумбийским университетом. Это успешно сокращает время обучения AlphaFold с 11 дней до 67 часов, одновременно снижая общую стоимость. При этом процесс вывода длинных последовательностей ускоряется примерно в 9,3–11,6 раза.

Команда Colossal-AI дополнительно работала с BioMap для xTrimo Multimer, который может прогнозировать структуру как мономера, так и мультимера, одновременно ускоряя процесс до 11 раз!

Colossal-AI заинтересован в развитии сообщества с открытым исходным кодом. Мы предлагаем подробные учебные пособия и поддерживаем новейшие передовые приложения, такие как PaLM, OPT и AlphaFold. Colossal-AI будет регулярно выпускать новые и инновационные функции. Мы всегда приветствуем предложения и обсуждения и будем более чем готовы помочь, если у вас возникнут какие-либо проблемы. Ваши предложения высоко ценятся. Благодаря всем разработчикам Colossal-AI с открытым исходным кодом, Colossal-AI недавно заняла первое место среди популярных проектов на Github и Papers With Code вместе с проектами, получившими до 10 000 звезд.

Портал:

Адрес проекта: https://github.com/hpcaitech/ColossalAI

Ссылка:

https://arxiv.org/abs/2202.05924v2

https://arxiv.org/abs/2205.11487

https://github.com/huggingface/transformers

https://www.forbes.com/sites/forbetechcouncil/2022/03/25/six-ai-trends-to-watch-in-2022/?sh=4dc51f82be15

https://www.infoq.com/news/2022/06/meta-opt-175b/

Об авторах/спикерах ODSC West 2022:

Проф. Джеймс Деммель — заслуженный профессор компьютерных наук и математики доктора Ричарда Карла Демеля в Калифорнийском университете в Беркли и бывший председатель департамента EECS. Он также является директором по стратегии в стартапе HPC-AI Tech, цель которого - сделать крупномасштабное машинное обучение намного более эффективным, с минимальными усилиями по программированию, требуемыми от пользователей. Исследования Деммеля касаются высокопроизводительных вычислений, численной линейной алгебры и алгоритмов предотвращения связи. Он известен своей работой над широко используемыми библиотеками линейной алгебры LAPACK и ScaLAPACK. Он является членом Национальной академии наук, Национальной инженерной академии и Американской академии искусств и наук; член AAAS, ACM, AMS, IEEE и SIAM; и обладатель премии Чарльза Бэббиджа IPDPS, премии Сидни Фернбаха компьютерного общества IEEE, премии ACM Paris Kanellakis, премии Дж. Х. Уилкинсона в области численного анализа и научных вычислений, а также многочисленных призов за лучшую работу.

Проф. Ян Ю — президентский молодой профессор Национального университета Сингапура. Он получил докторскую степень. в области компьютерных наук из Калифорнийского университета в Беркли. В центре его текущего исследования находится масштабирование обучения глубоких нейронных сетей на распределенных системах или суперкомпьютерах. В 2017 году его команда побила мировой рекорд скорости обучения ImageNet, который освещался такими технологическими СМИ, как NSF, ScienceDaily, Science NewsLine и i-programmer. В 2019 году его команда побила мировой рекорд скорости обучения BERT. Методы обучения BERT использовались многими технологическими гигантами, такими как Google, Microsoft и NVIDIA. Оптимизаторы Yang You LARS и LAMB доступны в отраслевом эталонном тесте MLPerf. Он является лауреатом премии IPDPS 2015 Best Paper Award (0,8%), премии ICPP 2018 Best Paper Award (0,3%) и стипендии ACM/IEEE George Michael HPC Fellowship. Ян Ю — стипендиат Siebel и лауреат премии Лотфи А. Заде. Ян Ю был номинирован Калифорнийским университетом в Беркли на премию ACM за докторскую диссертацию (2 из 81 аспиранта Беркли EECS получили высшее образование в 2020 году). Он также вошел в список Forbes 30 Under 30 Asia (2021) для молодых лидеров и получил награду IEEE-CS TCHPC за раннюю карьеру. Твиттер | ЛинкедИн

Исходное сообщение здесь.

Читайте другие статьи по науке о данных на OpenDataScience.com, включая учебные пособия и руководства от начального до продвинутого уровня! Подпишитесь на нашу еженедельную рассылку здесь и получайте последние новости каждый четверг. Вы также можете пройти обучение по науке о данных по запросу, где бы вы ни находились, с нашей платформой Ai+ Training. Подпишитесь также на нашу быстрорастущую публикацию на Medium, ODSC Journal, и узнайте, как стать писателем.