Возможен ли анализ данных на GPU? Как организовать работу CV-проекта и почему для сотрудников mail.ru group совсем не страшен дождь?
На эти и другие вопросы постараюсь ответить в публикации, на которую меня натолкнуло посещение PyData Moscow Meetup.
Знакомство с Mail.ru
1 февраля 2020 года в офисе Mail.ru Group прошел Meetup для разработчиков и интересующихся языком программирования Python - себя скорее отношу к последним, потому что программировал и изучал этот язык только в качестве учебы и личного интереса.
Офис Mail.ru находится в Москве рядом с метро Аэропорт в башнях-близнецах, в той, которая ближе к Ленинградскому проспекту. В этой ситуации можно сказать, что здание соответствует статусу одной из крупнейших ИТ-компаний в России. На входе встречаются «зеленые человечки» из Delivery Club, которые, как я понимаю, проходят первичную аттестацию на территории основного офиса, получают свою экипировку и слушают наставления от работодателя.
Знакомство с Meetup
Немного про расписание прошедшей конференции. Она была разделена на 2 части: доклады спикеров и воркшопы (командная встреча и разбор задач по программированию). Так как я слабо знаком с таким форматом встреч как Meetup, то мне было интересно хотя бы придти и послушать доклады, а идеальным раскладом могло бы стать знакомство с кем-либо из этой сферы.
RAPIDS: ускоряем Pandas и scikit-learn на GPU
Первый доклад был от Павла Клеменкова из компании NVIDIA - думаю, что многие знакомы с этой компанией.
Мое знакомство началось еще давно, когда стоял выбор видео-карты для одного из первых стационарных ПК. Графика должна была тянуть достойные игры и видео-карта от NVIDIA считалась достойной для GTA Vice City.
Основной посыл Павла - это анализ данных на GPU при помощи их библиотеки RAPIDS. Перед ним стояла задача убедить слушателей в совершенстве разработки NVIDIA, и, в целом, у него это почти получилось.
Сравнение с Pandas (рассмотрим + и -):
- многопоточность (+)
- слабое развитие и поддержка библиотеки на текущий момент (-)
Из выступления было понятно, что с такой презентацией Павел или его коллеги выступали уже неоднократно и за пределами России. Мне понравилась одна картинка из презентации, где показано устройство CPU и GPU - тут становится очевидно преимущество анализа данных при простых вычислительных операций с использованием АЛУ.
Cравнение стоимости CPU и GPU: сопоставление Intel Xeon и NVIDIA за 3000$, также была реплика из зала про отсутствие в сравнении AMD (якобы их CPU дешевле). По вычислительной мощности равноценных устройств NVIDIA была в выигрыше.
Итого: для меня было интересно, что в принципе анализ данных на GPU возможен как одна из альтернатив. Тем более с многопоточностью, что стоит за гранью для Pandas. Всему есть своё объяснение, но мне кажется, что и то, и другое применимо - только в разных задачах.
CV в пайплайне распознавания ценников товаров: трюки и хитрости
Второй доклад был от Николая Масловича из компании, которая занимается CV. Нет, не curriculum vitae (резюме). CV - это computer vision (компьютерное зрение). Тема довольно интересная, но её применение мне показалось довольно сомнительным в такой бизнес-модели.
Основная идея Николая со своей командой: анализ данных по фотографиям ценников из магазинов. Они выявляют в них названия товаров, цены, штрихкоды и qr-коды - в целом, довольно интересная и нестандартная задача, требующая кропотливой работы. Все это собирает большие объемы данных из различных источников, самим сбором они не занимаются, но как я понимаю - это открытые источники (социальные сети). Было интересно послушать Николая, потому что он поделился своим достойным опытом по решению задач для CV и построения Data Science команды: используемый стек технологий, "набитые шишки" и решение возникших проблем.
Интересное из доклада:
- vast.ai - сервер для анализа данных по аналогии с Google Cloud или Amazon Web Services. Николай говорит, что ему выходит дешевле, но если пользовать ресурсы не на долгий срок. (Интересная тема - лямбда функции, насколько будет применимо к анализу данных);
- ujson - технология, которая по заявлениям быстрее json;
- parquet - формат для хранения и анализа данных удобнее и быстрее CSV;
- sharding - стоит использовать для хранения большого числа файлов.
Немного офиса Mail.ru
Во время перерыва успел посетил второй этаж и посмотрел организацию офисного пространства Mail.ru.
Бесплатный кофе/чай/газировка/печенье, удобные места для переговоров и просто для отдыха, зал для занятий спортом и наверняка еще много чего интересного, что не успел сразу заметить.
На выходе из офиса заметил приятные мелочи: конфеты и жвачки в зоне Reception, а также зонтики с логотипами Mail.ru. Если ты сотрудник, то можешь воспользоваться зонтом в дождливую погоду, а потом вернёшь его на следующий день как станет не нужен. Здоровская вещь, основанная на доверии к своим гостям и сотрудникам.
Подведем итоги
- Узнал про интересные технологии по развитию Python.
- Приобщился к сфере анализа данных и науке о данных.
- Получил немного полезного опыта от коллег по Python и Data Analysis.
- Не хватило специалистов из Mail, потому что наслышан про их серьезные экспертные компетенции в области Data Science и анализа данных.
Спасибо коллегам за полезный опыт и интересные доклады! До новых встреч, Mail.ru Group!