Автоматичне перенавчання нейронних мереж за допомогою Renate PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Автоматичне перенавчання нейронних мереж за допомогою Renate

Сьогодні ми оголошуємо про загальну доступність Ренате, бібліотека Python з відкритим кодом для автоматичного перенавчання моделей. Бібліотека надає алгоритми постійного навчання, здатні поступово навчати нейронну мережу в міру того, як стає доступним більше даних.

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

Модельне перенавчання і катастрофічне забуття

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

Коли можливе зберігання невеликої частини даних, методи, засновані на повторному використанні старих даних під час повторного навчання, можуть частково полегшити катастрофічну проблему забування. На основі цієї ідеї було розроблено кілька методів. Деякі з них зберігають лише необроблені дані, тоді як більш просунуті також зберігають додаткові метадані (наприклад, проміжне представлення точок даних у пам’яті). Зберігання невеликої кількості даних (наприклад, тисяч точок даних) і їх обережне використання призвело до чудової продуктивності, показаної на малюнку нижче.

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

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

Крім того, усі функції, включаючи визначення моделі, дуже гнучкі. Насправді функція визначення моделі дозволяє користувачам створювати нейронні мережі з нуля відповідно до власних потреб або створювати екземпляри добре відомих моделей із відкритих бібліотек, таких як Трансформатори or смолоскипне бачення. Просто потрібно додати необхідні залежності до файлу вимог.

Посібник щодо написання файлу конфігурації доступний за адресою Як написати файл конфігурації.

Перевага оптимізації гіперпараметрів

Як це часто буває в машинному навчанні, алгоритми безперервного навчання мають ряд гіперпараметрів. Його налаштування можуть значно змінити загальну продуктивність, а ретельне налаштування може позитивно вплинути на ефективність прогнозування. Під час навчання нової моделі Renate може ввімкнути оптимізацію за гіперпараметрами (HPO) за допомогою найсучасніших алгоритмів, таких як ASHA, щоб використовувати можливість запускати кілька паралельних завдань на Amazon SageMaker. Приклад результатів показано на малюнку нижче.

Автоматичне перенавчання нейронних мереж за допомогою Renate PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Щоб увімкнути 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. Вертикальний пошук. Ai.

У CloudWatch також можна буде стежити за навчальним завданням і читати журнали:

Автоматичне перенавчання нейронних мереж за допомогою Renate PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Усе це без додаткового коду чи зусиль.

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

Висновок

У цій публікації ми описали проблеми, пов’язані з перенавчанням нейронних мереж, і основні переваги бібліотеки Renate у цьому процесі. Щоб дізнатися більше про бібліотеку, перегляньте GitHub сховище, де ви знайдете огляд високого рівня бібліотека і її алгоритми, інструкції до установка та Приклади це може допомогти вам розпочати роботу.

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


Про авторів

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

Автоматичне перенавчання нейронних мереж за допомогою Renate PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Мартін Вістуба є прикладним науковцем у довгостроковій науковій команді AWS Sagemaker. Його дослідження зосереджені на автоматичному машинному навчанні.

Автоматичне перенавчання нейронних мереж за допомогою Renate PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.  Лукас Баллес є прикладним науковцем в AWS. Він працює над постійним навчанням і темами, пов’язаними з моніторингом моделей.

Автоматичне перенавчання нейронних мереж за допомогою Renate PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Седрік Арчамбо є головним прикладним науковцем в AWS і членом Європейської лабораторії навчання та інтелектуальних систем.

Часова мітка:

Більше від AWS Машинне навчання