Обучение с использованием Amazon SageMaker

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

Возможности

Управление и отслеживание для экспериментов

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

Amazon SageMaker Experiments поможет отслеживать, оценивать и упорядочивать обучающие эксперименты в простой и масштабируемой форме. SageMaker Experiments входит в комплект Amazon SageMaker Studio, наряду с пакетом Python SDK, который глубоко интегрируется с Jupyter.

В Amazon SageMaker Experiments вы сможете отслеживать в упорядоченном виде тысячи обучающих экспериментов, вести журнал артефактов для этих экспериментов, таких как наборы данных, гиперпараметы и метрики, а также воспроизводить эксперименты. Благодаря интеграции SageMaker Experiments с SageMaker Studio вы сможете визуализировать модели, быстро и легко оценивать и ранжировать их. Также вы получите записи и актуальный журнал любых замечаний и комментариев по процессу экспериментирования, и сможете одним кликом предоставить эксперименты в совместное пользование другим сотрудникам. Кроме того, SageMaker Experiments сохраняет полную историю экспериментов, а значит при любом отклонении модели от поставленных задач вы сможете вернуться назад и проверить все артефакты.

Эксперименты

Анализ и отладка с полным пониманием ситуации

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

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

SageMaker Debugger автоматически отслеживает наиболее распространенные ошибки (например, слишком высокие или слишком низкие значения градиента) и оповещает о них. Кроме того, пакет Debugger SDK позволяет автоматически обнаруживать новые классы ошибок, характерные для конкретной модели, и (или) интерактивно анализировать выполнения обучений в блокноте SageMaker Notebook. Все это снижает длительность отладки для моделей машинного обучения с нескольких дней до нескольких минут. Собранные в SageMaker Debugger данные всегда остаются в вашем аккаунте, что позволяет использовать его даже в приложениях с высокими требованиями к конфиденциальности.

SageMaker Debugger создает метрики производительности ваших моделей в режиме реального времени. Сюда входят потери при обучении и проверке (которые обозначают ошибки модели, то есть должны быть минимально возможными), матрицы путаницы (для моделей классификации сюда заносятся ложноположительные и ложноотрицательные прогнозы и изменение их характера по ходу обучения), а также градиенты обучения (изучение кривых обучения для моделей используется для диагностики проблем с процессом обучения, таких как недостаточная или чрезмерная подгонка модели, а также репрезентативность обучающих и тестовых наборов данных). Все эти метрики можно просматривать и визуализировать в блокнотах через Amazon SageMaker Studio.

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

Debugger

Обучение одним нажатием

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

Когда вы укажете местоположение данных в Amazon S3, SageMaker запустит предоставленный алгоритм в кластере обучения в виртуальной сети, изолированной и настроенной в соответствии с требованиями. SageMaker создаст для вас в автомасштабируемой группе кластер с выбранным типом инстансов, включая самый мощный из доступных облачных инстансов Amazon EC2 P3dn с поддержкой графических процессоров. SageMaker подключит к каждому узлу тома EBS, настроит конвейеры данных и начнет обучение с применением скрипта с пользовательским алгоритмом для TensorFlow, MXNet, Pytorch, Chainer или другой указанной вами платформы. Результаты завершенного задания сохраняются в S3, а кластер автоматически расформировывается.

Чтобы упростить проведение обучения в нужном масштабе, мы оптимизировали потоковую передачу данных для обучения из Amazon S3. Через интерфейс API можно указать, нужно ли отправлять все данные каждому узлу кластера или позволить SageMaker управлять распределением данных по узлам в зависимости от потребностей алгоритма. В сочетании со встроенными алгоритмами масштабируемость обучения, которую обеспечивает Amazon SageMaker, может значительно сократить время и стоимость обучения.

Автоматическая настройка модели

Amazon SageMaker может автоматически настроить модель, корректируя тысячи разных сочетаний для параметров алгоритма, благодаря чему модель выдаст прогноз максимально возможной точности.

При настройке точности модели существует два эффективных метода воздействия: первый – модификация данных, которые подаются на вход модели (например, вычисление логарифмов чисел), второй – уточнение параметров для определения поведения модели. Иначе их называют гиперпараметрами, и поиск правильных значений бывает затруднительным. Как правило, для поиска выбирают случайные числа и многократно выполняют вычисления, а в процессе становится понятно, как изменения влияют на результат. В зависимости от числа гиперпараметров модели такой цикл может оказаться очень длительным.

SageMaker упрощает этот процесс, предлагая автоматическую настройку модели в качестве дополнительной опции при обучении. Автоматическая настройка модели использует машинное обучение для быстрой и максимально точной настройки модели. Эта возможность позволяет избежать трудоемкого процесса настройки гиперпараметров вручную методом проб и ошибок. Вместо этого компонент Automatic Model Tuning выполняет оптимизацию гиперпараметров множеством обучающих прогонов, обнаруживая интересные закономерности в ваших данных и анализируя, как совокупность этих закономерностей влияет на точность модели. Вы экономите дни и даже недели, затрачиваемые на повышение качество обученной модели.

Достаточно лишь указать в консоли или запросе к API количество обучающих заданий, а SageMaker сделает всю работу самостоятельно, применяя машинное обучение для настройки модели. Суть метода заключается в изучении влияния различных типов данных на модель и применении этих знаний ко множеству копий модели, что позволяет быстро найти наилучшее возможное решение. Это означает, что разработчику или специалисту по обработке данных придется думать только об изменениях, которые можно внести в данные, подаваемые на вход модели, что значительно сокращает число вопросов, о которых нужно беспокоиться во время обучения.

Управляемое спотовое обучение

Затраты на обучение моделей машинного обучения можно снизить на 90% с помощью управляемого спотового обучения. Управляемое спотовое обучение использует спотовые инстансы Amazon EC2 — свободные ресурсы EC2, поэтому затраты на задания обучения гораздо меньше, чем затраты на инстансы Amazon EC2, выделяемые по требованию. Amazon SageMaker управляет заданиями обучения, и запускает их, когда доступны вычислительные мощности. В результате вам не нужно постоянно запрашивать ресурсы, и нет необходимости в дополнительных инструментах для управления прерываниями. Управляемое спотовое обучение сочетается с автоматической настройкой модели, встроенными алгоритмами и платформами, поставляемыми вместе с Amazon SageMaker, и настраиваемыми алгоритмами.

Автоматическая настройка точных моделей машинного обучения с помощью Amazon SageMaker

Получите практический опыт работы с примерами автоматической настройки моделей, размещенными на GitHub.

Обучайте и настраивайте свои модели машинного обучения с помощью Amazon SageMaker  

Прослушайте обсуждение технических вопросов, чтобы обучить свои модели МО с высочайшей точностью с помощью Amazon SageMaker.

Выполняйте задания по обучению быстрее, ускорив загрузку больших наборов данных

Прочтите эту публикацию в блоге, чтобы использовать постоянную файловую систему Amazon FSx for Lustre с Amazon SageMaker для обучения модели МО.