Как стать автором
Обновить

Как учиться с помощью машинного обучения у экспертов в Dota 2

Время на прочтение6 мин
Количество просмотров14K
Всего голосов 31: ↑27 и ↓4+23
Комментарии4

Комментарии 4

Можно больше деталей по подсчетам стоимости серверов в Azure? А то ценник впечатляет.
Да конечно.
В блоге по ссылке из поста выше они упоминали, что использовали 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 наверняка виртуалки забронированы на несколько лет, и там скидки есть.
Я могу ошибаться, но Azure может спонсировать образовательные программы или «пиар акции», поэтому если очень сильно попросить (в обмен на рекламу), можно получить бесплатные ресурсы.

Я не эксперт в машинном обучении, но мне меня удивило то, что подсчет идет по ядрам CPU, а не GPU?

А ваше решение может учится распределено, те используя кластер? Мне интересен вопрос распараллеливания среды, как понимаю tensorflow из коробки делает распределенную обработку?

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

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

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

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

У меня решение пока не адаптировано для обучения на кластере. Ведь хотелось не сразиться с OpenAI, а лишь проверить насколько «легко» можно обучить бота, используя демонстрации. (:
Зарегистрируйтесь на Хабре, чтобы оставить комментарий