Machine Learning, NLP

Использование модели ruGPT-3 в облачном сервисе ML Space

Время прочтения: 4 мин.

ML Space — сервис для командной работы DS-специалистов полного цикла для построения и деплоя ML&DL-моделей. Площадка ML Space — ссылка

Среди преимуществ платформы выделяются следующие:

  • 1000+ GPU. Обучение на множестве GPU, базирующихся на суперкомпьютере Cristofari
  • Масштабируемость и гибкость. Вычислительные ресурсы подбираются в зависимости от необходимости DS-специалистов
  • Привычная среда разработки. Jupyter Lab — знакомый и удобный интерфейс
  • Популярные библиотеки и фреймворки. Предустановлены необходимые библиотеки и фреймворки для разработки
  • Обработка персональных данных. Для работы с ПДн обеспечена защита, соответствующая российскому законодательству (ФЗ-152)

Данный сервис предоставляет свои услуги пока только для юридических лиц, поэтому ваша организация может заключить соответствующий договор со Sber Cloud и вы можете протестировать их инструмент. В рамках тестового периода предоставляется депозит на сумму 5000 руб., что примерно равняется 27 часам вычислений на 1 GPU Tesla V100, однако есть возможность выбора конфигурации с несколькими GPU и проведения обучения на кластере.

После заключения договора у вас появляется личный кабинет в Sber Cloud, где вы выбираете услугу ML Space. Для начала работы вам необходимо создать свой workspace — свое рабочее пространство в рамках проекта. Создав workspace, перед вами появляется меню с доступными модулями и сервисами:

  • Data Catalog. Хранение, передача, анализ данных и результатов обучения
  • Environments. Разработка и обучение моделей, препроцессинг данных (Spark), в качестве IDE используется Jupyter Notebook/Lab
  • Deployments. Тестирование, развертывание, контроль состояния и внедрение созданных моделей
  • AutoML. Автоматическое создание и обучение моделей на базе LightAutoML

Подробнее можно ознакомиться в документации ML Space(ссылка).

Для решения задачи связанной с обработкой естественного языка (NLP) возникла потребность в нейронной сети для генерации текстового контента. Выбор пал на крупнейшую русскоязычную модель ruGPT-3.

GPT-3 (Generative Pre-trained Transformer) — промышленная языковая модель для работы с английскими текстами, созданная компанией OpenAI и используемая во всем мире, ruGPT-3 — адаптация данной модели с учетом специфики русского языка, разработанная и представленная в открытый доступ компанией SberCloud. Данная модель, кроме создания текстов любого профиля, может также исправлять грамматические ошибки и вести диалоги.

Подробнее можно ознакомится с моделью в репозитории sberbank-ai (ссылка).

Для дообучения самой меньшей из версий модели ruGPT-3 Small с 125 миллионами параметров необходимы ресурсы мощных графических ускорителей памятью не менее 14 Gb. При дообучении данной тяжеловесной модели мы воспользовались сервисом ML Space, о котором было сказано выше.

Приведем пример задачи с применением ruGPT-3.

Мы дообучили модель ruGPT-3 Small на датасете из более чем 300 эссе, модель должна была генерировать эссе на заданную тему.

Код для использования:

import numpy as np
import torch
np.random.seed(42)
torch.manual_seed(42)
from transformers import GPT2LMHeadModel, GPT2Tokenizer
tok = GPT2Tokenizer.from_pretrained("models/essays")

model = GPT2LMHeadModel.from_pretrained("models/essays")
model.cuda()
text = "<s>Тема: Имею право или обязан?\nСочинение: "
inpt = tok.encode(text, return_tensors="pt")
out = model.generate(inpt.cuda(), max_length=500, repetition_penalty=5.0, do_sample=True, top_k=5, top_p=0.95, temperature=1)
tok.decode(out[0])

Выполнение и результат модели:

Также представим результаты дообучения модели на конфигурациях с различным количеством GPU:

  • Время дообучения на 1 GPU Nvidia Tesla составило 2 мин. 15 сек.
  • Время дообучения на 4 GPU Nvidia Tesla составило 1 мин. 4 сек.

Таким образом, платформа ML Space позволяет сократить время на поиск решения в DS-задачах, что особенно актуально в задачах Deep Learning, где обучение модели может занимать на стандартных вычислительных ресурсах ПК от нескольких дней. Предлагаем использовать данный инструмент в ситуациях с ограниченными временными ресурсами в рамках DS-проектов.

Советуем почитать