Автоматически переобучайте нейронные сети с помощью Renate PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Автоматически переобучайте нейронные сети с помощью Renate

Сегодня мы объявляем об общедоступности Ренате, библиотека Python с открытым исходным кодом для автоматического переобучения моделей. Библиотека предоставляет алгоритмы непрерывного обучения, способные постепенно обучать нейронную сеть по мере поступления большего количества данных.

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

Переобучение модели и катастрофическое забывание

Пошаговое обучение нейронных сетей — непростая задача. На практике данные, представленные в разные моменты времени, часто берутся из разных распределений. Например, в вопросно-ответных системах распределение тем в вопросах может существенно меняться во времени. В системах классификации может потребоваться добавление новых категорий, когда данные собираются в разных частях мира. Тонкая настройка ранее обученных моделей с новыми данными в этих случаях приведет к явлению, называемому «катастрофическим забыванием». На самых последних примерах будет хорошая производительность, но качество прогнозов, сделанных для данных, собранных в прошлом, значительно ухудшится. Кроме того, снижение производительности будет еще более серьезным, если операция переобучения происходит регулярно (например, ежедневно или еженедельно).

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

Принесите свою собственную модель и набор данных

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

Более того, все функции, включая определение модели, очень гибкие. Фактически, функция определения модели позволяет пользователям создавать нейронные сети с нуля в соответствии со своими потребностями или создавать экземпляры известных моделей из библиотек с открытым исходным кодом, таких как трансформеры or факельное зрение. Это просто требует добавления необходимых зависимостей в файл требований.

Учебное пособие по написанию файла конфигурации доступно по адресу Как написать файл конфигурации.

Преимущества оптимизации гиперпараметров

Как это часто бывает в машинном обучении, алгоритмы непрерывного обучения имеют ряд гиперпараметров. Его настройки могут существенно повлиять на общую производительность, а тщательная настройка может положительно повлиять на производительность прогнозирования. При обучении новой модели Renate может включить оптимизацию гиперпараметров (HPO) с использованием современных алгоритмов, таких как ASHA, чтобы использовать возможность запуска нескольких параллельных заданий в Amazon SageMaker. Пример результатов показан на рисунке ниже.

Автоматически переобучайте нейронные сети с помощью Renate PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

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

Запустите его в облаке

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

Например, при запуске задания по настройке можно запустить локально execute_tuning_job(..., backend='local') и быстро переключитесь на SageMaker, изменив код следующим образом:

execute_tuning_job(
...,
backend="sagemaker",
role=get_execution_role(),      # requires importing the function from Syne Tune
instance_type="ml.g4dn.2xlarge" # the desired instance type
job_name="name_prefix_",             # a prefix to be used to identify the job
...
)

После запуска скрипта можно будет увидеть выполнение задания из веб-интерфейса SageMaker:

Автоматически переобучайте нейронные сети с помощью Renate PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Также можно будет следить за заданием по обучению и читать логи в CloudWatch:

Автоматически переобучайте нейронные сети с помощью Renate PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Все это без какого-либо дополнительного кода или усилий.

Полный пример выполнения учебных заданий в облаке доступен по адресу Как выполнить задание по обучению.

Заключение

В этом посте мы описали проблемы, связанные с переобучением нейронных сетей, и основные преимущества библиотеки Renate в процессе. Чтобы узнать больше о библиотеке, ознакомьтесь с Репозиторий GitHub, где вы найдете общий обзор библиотека и ее алгоритмы, инструкция по установкаи Примеры которые могут помочь вам начать работу.

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


Об авторах

Автоматически переобучайте нейронные сети с помощью Renate PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Джованни Дзаппелла — старший научный сотрудник, работающий над долгосрочными научными исследованиями в AWS Sagemaker. В настоящее время он занимается непрерывным обучением, мониторингом моделей и AutoML. До этого работал над приложениями многоруких бандитов для масштабных систем рекомендаций в Amazon Music.

Автоматически переобучайте нейронные сети с помощью Renate PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Мартин Вистуба является специалистом по прикладным наукам в долгосрочной научной группе AWS Sagemaker. Его исследования сосредоточены на автоматическом машинном обучении.

Автоматически переобучайте нейронные сети с помощью Renate PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.  Лукас Баллес является прикладным ученым в AWS. Он работает над постоянным обучением и темами, связанными с мониторингом моделей.

Автоматически переобучайте нейронные сети с помощью Renate PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Седрик Аршамбо является ведущим научным сотрудником AWS и членом Европейской лаборатории обучения и интеллектуальных систем.

Отметка времени:

Больше от Машинное обучение AWS