30 миллиардов параметров: реально ли обучить русский GPT-3 в «домашних» условиях?

Автор: Денис Тарасов. Не так давно Сбер, а затем и Яндекс объявили о создании сверхбольших русских языковых моделей, похожих на GPT-3. Они не только генерируют правдоподобный текст (статьи, песни, блоги и т. п.), но и решают много разнообразных задач, причем эти задачи зачастую можно ставить на русском языке без программирования и дополнительного обучения — нечто очень близкое к «универсальному» искусственному интеллекту.

Но, как пишут авторы Сбера у себя в блоге, «подобные эксперименты доступны только компаниям, обладающим значительными вычислительными ресурсами». Обучение моделей с миллиардами параметров обходится в несколько десятков, а то сотен миллионов рублей. Получается, что индивидуальные разработчики и маленькие компании теперь исключены из процесса и могут теперь только использовать обученные кем-то модели.

В статье я попробую оспорить этот тезис, рассказав о результатах попытки обучить модель с 30 миллиардами параметров на двух картах RTX 2080Ti.

Как построена эта статья, какие части можно не читать

В первой части я кратко расскажу, что вообще такое языковая модель и что она дает. Если вы это знаете, первую часть можно без ущерба пропустить. Вторая часть объясняет, в чем проблема с обучением больших моделей и обсуждает возможности для ее решения. Третья часть рассказывает о результатах попытки обучить модель с 30 миллиардами параметров на двух картах RTX 2080Ti.

В заключении обсуждаем, зачем нужно заморачиваться самостоятельным обучением языковых моделей. Данная часть несколько субъективна и излагает мое личное мнение, если субъективное мнение вам не интересно, то можно пропустить и ее.

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

Что такое языковые модели и почему это важно

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

Во-втором приближении мы можем взять реальный текст и ставить слова с частотами, с которыми они в нем встречаются. Получится нечто более интересное: крупной работал приходится литерами насчитывали бумажная миллионов несмотря первым.

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

Тут можно уже попытаться представить некий смысл, а ведь мы особо ничего не сделали сложного.

Языковые модели на нейронных сетях работают на похожем принципе, но правила выбора слова в них не закладываются изначально — просто берется большая нейронная сеть, ставиться задача «угадать» на выходе следующее слово и производиться обучение на большом массиве текстов. После обучения такие модели создают текст, который очень сложно отличить от написанного человеком, например такой: Удача – это способность человека, обладающего ею, использовать для достижения своих целей благоприятные обстоятельства. Если вы хотите разбогатеть, то вам нужно сделать так, чтобы обстоятельства, с которыми вы столкнетесь, были благоприятными.

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

Упоминания про возможность данного явления можно найти в литературе десятилетней давности, но убедительно оно было продемонстрировано лишь недавно в работах исследователей Google Brain и OpenAI.

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

В чем проблема с обучением больших моделей

Что нужно для создания языковой модели? Исходный код нейросети сейчас не проблема, он выложен в открытом доступе в различных вариантах. Основная проблема — ресурсы. Ресурсы нужны двух видов — тексты и вычисления.

Давайте посмотрим, сколько вычислительных ресурсов нужно было Сберу и Яндексу для обучения русских языковых моделей.

Подробнее
Пожалуйста, оцените статью:
Ваша оценка: None Средняя: 4.7 (6 votes)
Источник(и):

Хабр