Как стать автором
Обновить
4
0
Никита Сазанович @miksaz

Магистр ВШЭ СПб

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

В рассказе я не углублялся во все baseline-ы, но они включали и упомянутый Вами hyperopt пакет. Baseline-ами были: random search, nevergrad, opentuner, hyperopt, skopt, turbo и pysot. Мы сравнивались на 108 экспериментах из bayesmark со всеми из них. Их средними оценками в том же порядке были: 91.658, 92.765, 93.693, 95.881, 96.670, 97.765, 98.200, а наш алгоритм набирал 98.960.

То есть на тех экспериментах разница между hyperopt и random search (95.881-91.658) была приблизительно того же порядка, что и разница между нашим алгоритмом и hyperopt (98.960-95.881).

На наборе задач из финала наш алгоритм набрал 92.509, а baseline-ы, как поделились организаторы, набирали в районе 88.
Спасибо за вопрос! Вы правы, что данный проект рассматривался только в рамках задач GLUE, и в результатах может быть к ним предвзятость. Сравнение маршртиузирующих сетей с моделью x10 также имеет место быть, и результаты заранее не очевидны.


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

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

С точки зрения производительности, использование x10 скажется на скорости вычисления: 10 машин последовательно должны вычислять результат, вместо одной. Использование маршрутизации позволяет этого избежать, что может быть более важно чем небольшое улучшение качества.


Идейно, продолжение данного проекта подразумевает маршрутизацию через гетерогенных экспертов, а именно когда в наборе экспертов у нас такие текстовые эксперты как BERT, ALBERT, RoBERTa (где каждый способен следить за разными по структуре зависимостями), которые могут быть еще и обучены на различных датасетах (к примеру, BioBERT). Провести какую-то аналогию с масштабированием модели тут уже сложнее. В то же время, после обучения каждая команда (от каждой задачи) забирает себе только нужных ей экспертов, и это не приводит к значительным изменениям по сравнению с одним BERT-ом, что не так в случае модели x10.
Не знал об этом, но вы правы насчет стоимости серверов, и они действительно сотрудничают в этом деле. Приведенная цена больше подходит под стоимость для «обособленного пользователя».

А про ядра и параллельности я вот как понимаю: большинство ml framework-ов (tensorflow, pytorch) поддерживают распределенную обработку, и проблем с этим не должно возникать. Среды же обычно, из моего опыта, просто независимо запускают на машинах.

К примеру, в другой задаче по RL мы использовали 72 ЦПУ и 1 V100 GPU. И расстановка была такая: на 72 ЦПУ мы запустили разные конфигурации сред, которые работали независимо друг от друга, и отправляли данные на GPU. А сервер с видеокартой обучал сеть из полученных со всех сред данных (ведь большинство RL алгоритмов не требуют однородного опыта). Эти среды зачастую очень CPU-intensive. Ведь считается только логика (обновление позиций, пересечения), без прорисовки, и там нет особого простора для каких-то однородных вычислений (с чем помогает GPU).

Поэтому я полагаю, что в OpenAI посчитали, что для 256 GPU нужно X опыта, и получили его, играя независимо несколько десятков тысяч Dota игр на всех ЦПУ.

У меня решение пока не адаптировано для обучения на кластере. Ведь хотелось не сразиться с OpenAI, а лишь проверить насколько «легко» можно обучить бота, используя демонстрации. (:
Да конечно.
В блоге по ссылке из поста выше они упоминали, что использовали 60000 ЦПУ и 256 K80 GPU. В другом блоге про их инфраструктуру они рассказывали, как им помогает Kubernetes в управлении их виртуалками с Azure моделей D15 v2 и NC24.
На сайте с ценами Azure можно глянуть, что D15 v2 имеет 20 ЦПУ и стоит $1.495/час, а NC24 включает 4X K80 и стоит $3.60/час.
Получается, что все это стоит 60000/20*$1.495/час+256/4*$3.60/час=$4715.4/час. Но это такая беглая оценка на случай, если кто-то вдруг захочет это повторить прямо сейчас. У OpenAI наверняка виртуалки забронированы на несколько лет, и там скидки есть.

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность