Навчання та доопрацювання; трансформатори 4
Класи моделей у 🤗 Трансформери розроблені для сумісності з рідними PyTorch та TensorFlow 2 і можуть бути бездоганно використані з будь-якими. У цьому швидкому старті ми покажемо, як правильно налаштувати (або навчити з нуля) модель, використовуючи стандартні інструменти навчання, доступні в будь-якій структурі. Ми також покажемо, як використовувати наш включений клас Trainer (), який виконує більшу частину складності навчання для вас.

Цей посібник припускає, що ви вже знайомі з завантаженням і використовуєте наші моделі для висновку; в іншому випадку дивіться підсумок завдання. Ми також припускаємо, що ви знайомі з навчанням глибоких нейронних мереж в PyTorch або TF2, і зосереджуєтесь особливо на нюансах та інструментах для навчальних моделей у 🤗 Трансформери.
Точне налаштування в рідній PyTorch
Точне налаштування в рідному TensorFlow 2
Тренер
Додаткові ресурси
Точне налаштування в рідній PyTorch¶
Класи моделей у 🤗 Трансформери, які не починаються з TF, є модулями PyTorch, тобто ви можете використовувати їх так само, як і будь-яку модель у PyTorch як для умовиводу, так і для оптимізації.
Давайте розглянемо загальне завдання тонкої настройки маскованої мовної моделі, такої як BERT, на наборі даних класифікації послідовностей. Коли ми створюємо екземпляр моделі за допомогою from_pretrained (), для ініціалізації моделі використовуються конфігурація моделі та попередньо навчені ваги зазначеної моделі. Бібліотека також включає в себе ряд конкретних завершальних шарів або "голів", ваги яких випадково інстанціюються, якщо відсутні у вказаній попередньо навченій моделі. Наприклад, створення екземпляра моделі за допомогою BertForSequenceClassification.from_pretrained ('bert-base-uncased', num_labels = 2) створить екземпляр моделі BERT з вагами кодера, скопійованими з моделі bert-base-uncased, і зверху рандомізованою головою класифікації послідовностей зверху кодера з вихідним розміром 2. Моделі за замовчуванням ініціалізуються в режимі eval. Ми можемо викликати model.train (), щоб перевести його в режим поїзда.
Це корисно, оскільки дозволяє нам використовувати попередньо навчений кодер BERT і легко навчати його на будь-якому вибраному наборі даних класифікації послідовностей. Ми можемо використовувати будь-який оптимізатор PyTorch, але наша бібліотека також пропонує оптимізатор AdamW (), який реалізує корекцію градієнтного зміщення, а також зменшення ваги.
Оптимізатор дозволяє застосовувати різні гіперпіметри для певних груп параметрів. Наприклад, ми можемо застосувати зменшення ваги до всіх параметрів, крім зміщення та умов нормалізації шару:
Тепер ми можемо встановити просту фіктивну навчальну партію за допомогою __call __ (). Це повертає екземпляр BatchEncoding (), який готує все, що нам може знадобитися для передачі моделі.