Рабочее окружение для ML-специалиста
Грубо говоря, оно делится на две большие категории:
- Железо и вычислительные ресурсы для обучения моделей;
- Программы и библиотеки для работы с данными.
Начнём со второй категории.
Чтобы начать работу, нужно установить Python — именно этот язык программирования доминирует в индустрии, благодаря большому количеству библиотек и фреймворкам, предназначенным именно для машинного обучения — TensorFlow или PyTorch.
Фреймворк — слой абстракции над языком программирования, который облегчает разработку. Например — нам нужно сделать отверстие в доске. Эту задачу можно решить разными способами: закрутить и выкрутить шуруп, забить и вытащить гвоздь и так далее. А можно взять дрель и сверло. Дрель в этом примере и есть фреймворк.
PyTorch чаще выбирают для академических исследований — он более гибкий и больше подходит для экспериментов. TensorFlow — для продакшен-решений, поскольку он более подходит для масштабирования моделей.
Далее нужно установить библиотеки для Python. Продолжая строительную аналогию: библиотека — это насадка для дрели. То есть инструмент для конкретной задачи: можно установить сверло для дерева, для бетона, для металла, а можно коронку или щётку — зависит от задачи.
Чаще всего применяют:
- Scikit-learn — библиотека машинного обучения для классических алгоритмов: классификации, регрессии, ансамблей и других. О них мы подробнее поговорим далее в этом хендбуке.
- Pandas — библиотека для предварительной обработки данных, и работы с данными вообще. С её помощью можно загрузить датасет, обработать недостающие значения, закодировать категориальные переменные и многое другое.
- Matplotlib и Seaborn — библиотеки для создания визуализаций и графиков в Python.
После этого — выбрать IDE, то есть текстовый редактор для кода: Visual Studio Code, Jupyter, Sublime, PyCharm, и так далее.
Теоретически, всё это можно установить на домашний компьютер или ноутбук — именно так и делали ещё 15-20 лет назад. Но вам не хватит вычислительных ресурсов для обучения моделей, в первую очередь — объёма памяти GPU (видеокарты).
Даже для файнтюнинга небольших языковых моделей, таких как BERT, необходим графический процессор с минимум 16 Гб видеопамяти. Мало кто может позволить себе дома оборудование для обучения более сложных моделей.
Сейчас исследователи и студенты чаще берут вычислительные мощности в аренду. Тут есть два способа:
- арендовать устройство «в облаке» (эта модель называется IaaS),
- воспользоваться специальной платформой для ML (эта модель называется SaaS).
IaaS-сервис, грубо говоря, — очень мощный удалённый компьютер. Это значит, что прежде чем решать задачу на такой машине, её всё равно необходимо настроить: развернуть IDE, установить Python, фреймворки и библиотеки и многое другое. Это не всегда удобно: иногда хочется, чтобы всё работало «из коробки».
«Из коробки», как вы могли догадаться, работают SaaS-сервисы: они предоставляют полностью настроенные среды, готовые к немедленному использованию в решении задач.
Эти платформы обычно включают в себя:
- IDE или другие среды программирования, часто представленные в формате ноутбуков.
- Заранее настроенные рабочие окружения, оптимизированные для конкретной системы.
- Возможности для загрузки и хранения данных и файлов.
- Интеграцию с известными сервисами, такими как GitHub.
О них мы и поговорим далее. Но если вам ближе путь самурая — то вот несколько IaaS провайдеров. По ссылкам можно узнать, как развернуть окружение для ML в IaaS-сервисе.
SaaS-платформы
Как мы уже выяснили, главное преимущество SaaS – это простота входа: вы получаете доступ к необходимым ресурсам без забот о их настройке и оптимизации, что позволяет быстро приступить к работе над ML-задачами.
К популярным SaaS-плафтормам относят:
- Google Colab
- Kaggle Notebooks
- AWS SageMaker
- Azure ML Studio
- Yandex DataSphere
Ниже мы собрали в таблицу их возможности, плюсы и минусы.
Далее мы расскажем, как решать ML-задачи на примере Yandex DataSphere. Но если вас заинтересовали другие платформы, то в конце параграфа будет список ссылок на руководства по работе с ними.
Получение доступа и настройка DataSphere
Прежде чем мы начнём настройку — несколько важных моментов.
DataSphere — это платный сервис, но вы можете начать работу бесплатно, с помощью тестового гранта. Также у сервиса есть специальные гранты для учебных программ. Чтобы воспользоваться грантом, нужно попросить своего преподавателя заполнить форму, — это откроет доступ к сервису для всех студентов группы.
Отлично, теперь можем приступить к настройке. Для этого:
- Перейдите на сайт DataSphere
- Нажмите большую синюю кнопку и авторизуйтесь в Яндекс ID
- Создайте сообщество и нажмите «Привязать платежный аккаунт»
на появившемся красном дисклеймере.
В созданном сообществе вы сможете взаимодействовать со всеми важными сущностями в DataSphere. Теперь можно создать проект на вкладке «Проект».
В созданном проекте вы можете запустить JupyterLab:
После незначительного ожидания откроется выбор среды исполнения. Там вы можете выбрать любой из примеров ноутбуков с различными снипеттами кода под разные задачи. Создадим новый пустой ноутбук, нажав “DataSphere Kernel”.
Теперь, в появившемся новом ноутбуке, если мы запустим любой код в одной из ячеек, вам будет предложено выбрать конфигурацию виртуального рабочего места (более подробно о доступных конфигурациях можно почитать тут).
После выделения ресурсов, которое тоже займет небольшое количество времени, все последующие выполнения ячеек будут происходить без выбора конфигурации.
Теперь, когда у нас всё готово — DataSphere настроена, ресурсы выделены, можем выполнить тестовую лабораторную работу!
Лабораторная работа
В ней мы будем обучать генеративную трансформерную модель с помощью библиотеки transformers
.
Сама работа находится в DataSphere — переходите по ссылке, чтобы ознакомиться с заданием. А как закончите — возвращайтесь, чтобы завершить урок.
Вот и всё! Если вы читаете эти строки, и у вас всё получилось — вы большой молодец. Если не получилось — ничего страшного, с первого раза мало у кого всё получается. Советуем вступить в сообщество хендбука и попросить помощи или совета.
Полезные ссылки
- Руководство по работе с Google Colab.
- Гайд для новичков по Kaggle Notebooks.
- Руководство для AWS SageMaker.
- Документация по настройке Azure ML Studio
- Статья про то, как используется DataSphere в образовании
- Как DataSphere помогает изучать снежных барсов