В Jupyter Notebook ячеистая структура — можно запустить в произвольном порядке куски кода из любой ячейки
Четыре основных продукта для обучения ML-специалистов
Узнали, какие сервисы и курсы используют вузы и EdTech-проекты для подготовки специалистов по машинному обучению.
Мы опросили восемь представителей разных учебных заведений. Сервисов для практических занятий много, но среди них нет универсальных и всеобъемлющих. Поэтому преподаватели комбинируют разные решения, и у каждого свой рецепт.
Программный директор профессии «Аналитик данных» Skillbox Максим Кулаев рассказал, что особую роль в обучении будущих IT-специалистов играют опенсорс-решения. «Все они требуют от учащихся разной предварительной подготовки. Благодаря разнообразию удаётся плавно переходить от простого к более сложному», — отметил он.
Авторам курсов по ML важно, чтобы студенты учились в тех же средах, в которых им предстоит работать, — это учитывается при выборе инструментов. Собеседники назвали около десятка разных сервисов, которыми они пользуются, но самыми популярными оказались четыре.
Мы стараемся, чтобы студенты могли без потери качества увидеть достоинства и недостатки той или иной архитектуры. Часто задания выполняются на бесплатных или условно бесплатных сервисах. Их минус — ограничение по времени. Мы конфигурируем домашние задания таким образом, чтобы укладываться в лимиты.
1. Jupyter Notebook
Это по-прежнему базовый инструмент для дата-сайентистов. Его полюбили за саму концепцию ноутбуков — формата работы с исходным кодом. Он позволяет запускать разные фрагменты кода без компиляции и деплоя, то есть без развёртывания на доступной для пользователя платформе.
Это оказалось особенно полезно для специалистов по ML. Jupyter позволяет им проводить эксперименты быстро и без лишних этапов. Можно обучить модель на небольшой выборке и сразу посмотреть результат, затем поменять параметры и провести новый эксперимент — и так до оптимального итога.
Но у такого подхода есть и обратная сторона.
Jupyter может быть не очень удобен для разработки крупных проектов, так как сложно поддерживать код чистым и хорошо читаемым. Но он делает процесс обучения более доступным и понятным для студентов.
Jupyter, как правило, работает локально, то есть его устанавливают на лабораторные компьютеры и ноутбуки или студенты загружают его на свои машины.
2. Google Сolab и Kaggle
Google Сolab — это облачная среда для работы с кодом. Она поддерживает актуальные версии библиотек и окружений, так что подходит практически для любых действий по обучению моделей.
Главный плюс этого инструмента — он бесплатный. Также его хвалят за заранее собранное окружение, которое подойдёт для большинства задач. Среди минусов — отсутствие файловой системы (вместо неё Google предлагает Диск) и ограниченная функциональность.
Пакет решений от Google слабее, чем его аналог от Microsoft. Однако его преимущество в том, что он бесплатный и облачный.
Интерфейс Google Сolab
Всё нормально, если вычисления не слишком долгие. Но всегда есть риски, что машинку отключат и ты потеряешь все промежуточные состояния. Использование сохранений на Google Диске помогает, но всё равно многое приходится перезапускать.
В паре с Сolab часто используют другую часть экосистемы Google — сервис Kaggle. Это платформа для соревнований между дата-сайентистами. Там организуют конкурсы по исследованию данных. Также это своего рода социальная сеть для специалистов по обработке данных и машинному обучению.
Например, в Институте информационных технологий и интеллектуальных систем Казанского федерального университета (ИТИС КФУ) на Kaggle разбирают материалы образовательных курсов. По словам преподавателей, там собраны отличные практики решения задач в рамках ML-проектов и методы объяснения моделей.
При работе с табличными данными ресурсов Google Colab и Kaggle, как правило, хватает. Но при работе с нейронными сетями ограничения вычислительных ресурсов не позволяют выполнить на занятиях интересные для нас эксперименты.
Раздел с конкурсами на платформе Kaggle, в которых участвуют студенты ИТИС КФУ
О той же проблеме говорят и в других вузах.
Привлекает простота и функциональность Google Colab и Kaggle. Производительности хватает для большинства учебных задач. Однако в сервисах существуют жёсткие квоты, и это ограничивает процесс обучения.
3. Dataproc и Apache Spark™
Для машинного обучения специалистам нужно обрабатывать большие объёмы данных — до десятков терабайт. Чтобы прогнать их все через одну машину, нужно несколько дней.
Всё меняет модель MapReduce, когда объём данных делится между кластером машин и все они выполняют свой кусок работы параллельно с другими. Тогда на всё уйдёт пара часов. Сделать это можно в сервисах Dataproc и Spark™.
Лог задач, которые в Dataproc выполнили студенты ЛЭТИ
Мы посмотрели трансляцию Yandex Cloud про сервис Yandex Data Proc и решили подготовить курс для анализа больших данных на кластере Apache Spark™. Хотели, чтобы студенты поработали с распределёнными данными и вычислениями, используя распространённые в индустрии инструменты.
Инструменты типа Dataproc и Apache Spark™ считаются продвинутыми — часто для машинного обучения просто не требуется такой большой объём данных. Но профи, конечно, такими инструментами владеть должны.
4. Yandex DataSphere
Мы в Yandex Cloud тоже создаём собственные сервисы для ML-разработки. Основная особенность Yandex DataSphere в том, что сервис работает по serverless-технологии: он обеспечивает близкую к 100% утилизацию железа. То есть пользователь платит только за время вычислений, а оборудование никогда не стоит без дела.
Другой плюс — интеграция с другими инструментами, важными для ML-разработки. В частности, с тем же Yandex Data Proc.
Кроме того, в Yandex DataSphere удобно работать командам: гибкая модель сущностей позволяет настроить контекст как для команды разработки, так и для студенческой группы. Дальше можно настраивать видимость ещё детализированнее, например выкладывать общие задания для всех студентов, но скрыть их проекты друг от друга.
Антон Наумов из ШАДа отметил, что большой плюс Yandex DataSphere — собственная файловая система. Благодаря этому можно сохранять результаты вычислений и проект в целом. Так что не приходится каждый раз настраивать окружение — в отличие, например, от Colab, где проект нужно всегда разворачивать на новом железе.
Есть и недостатки. Антон рассказал, что иногда в сервис сложно добавить необходимые для работы пакеты, — приходится придумывать обходные пути. По его словам, бывали и проблемы с доступом к виртуальным машинам, когда много людей одновременно выполняли задание. Мы уже работаем над тем, чтобы новые машины выделялись быстрее, а ещё упрощаем сборку среды.
Загрузка датасета
В Yandex DataSphere студенты могут создавать пользовательские Livy-сессии и устанавливать вычислительные параметры посылаемых ими ячеек с программами. Это было важно для нас, так как в рамках практики студенты должны были оценить, как масштабирование ресурсов кластера влияет на анализ данных.
Комментарии от команды Yandex Cloud
По мнению наших специалистов, получившийся набор из четырёх сервисов выглядит логичным и сбалансированным.
Российский рынок ML-разработки разделился на две части: одни компании держат собственный стек железа и используют решения on-premise, установленные на локальные компьютеры, другие же переезжают в облако. Нередко возникают и гибридные варианты.
В такой ситуации ML-специалист должен уметь работать и с облачными решениями, и с on-premise. Поэтому важно, чтобы студентам давали возможность освоить и те, и другие. Перечисленные выше инструменты и их аналоги как раз обеспечивают нужную практику.
Представитель МФТИ и ШАДа Никита Волков рассказывал, что в его вузе хотели воспользоваться Yandex DataSphere, чтобы предоставить студентам доступ к GPU, но инструмент был слишком дорогим. С такой проблемой столкнулись не только в МФТИ, и мы придумали, как её решить.
Два года назад мы в Yandex Cloud запустили грантовую программу поддержки учебных курсов и научных проектов в области Computer Science. За это время мы успели поддержать более 100 университетов и научных центров, познакомить учёных, преподавателей и студентов с нашими сервисами.
На старте работы с вузами мы проводим вводное обучение и вебинары, делимся полезными скриптами и кейсами. По некоторым нашим сервисам у нас есть готовый обучающий контент, который уже используют в своих программах более 50 университетов.
Также у нас можно получить грант на тестирование облачных сервисов при соблюдении определённых условий. Например, мы запустили новую программу для образовательных организаций, которая позволит им бесплатно пользоваться сервисом Yandex DataSphere.