В этой главе мы поговорим о рабочем окружении ML-специалиста — какие сервисы и библиотеки в него входят, как его развернуть, на что обратить внимание.  А кроме того, в качестве быстрой практики обучим собственную модель генерировать ответы в стиле Льва Толстого.

Рабочее окружение для 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. Теперь можно создать проект на вкладке «Проект».

3.webp

В созданном проекте вы можете запустить JupyterLab:

2.webp

После незначительного ожидания откроется выбор среды исполнения. Там вы можете выбрать любой из примеров ноутбуков с различными снипеттами кода под разные задачи. Создадим новый пустой ноутбук, нажав “DataSphere Kernel”.

1 (1).webp

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

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

Теперь, когда у нас всё готово — DataSphere настроена, ресурсы выделены, можем выполнить тестовую лабораторную работу!

Лабораторная работа

В ней мы будем обучать генеративную трансформерную модель с помощью библиотеки transformers.

Сама работа находится в DataSphere — переходите по ссылке, чтобы ознакомиться с заданием. А как закончите — возвращайтесь, чтобы завершить урок.

Вот и всё! Если вы читаете эти строки, и у вас всё получилось — вы большой молодец. Если не получилось — ничего страшного, с первого раза мало у кого всё получается. Советуем вступить в сообщество хендбука и попросить помощи или совета.

Полезные ссылки

Отмечайте параграфы как прочитанные чтобы видеть свой прогресс обучения

Вступайте в сообщество хендбука

Здесь можно найти единомышленников, экспертов и просто интересных собеседников. А ещё — получить помощь или поделиться знаниями.
Вступить
Сообщить об ошибке
Предыдущий параграф1.1. Об этой книге

Эта книга написана коллективом добрых людей, состоящим из преподавателей и выпускников Школы анализа данных

Следующий параграф1.3. Машинное обучение

Что такое машинное обучение и каким оно бывает. Основные понятия машинного обучения: признаки, таргеты, метрики, переобучение