О чём урок
Теперь мы посмотрим, как достичь результатов из предыдущей главы без использования класса Trainer. В этой главе мы предполагаем, что вы выполнили этапы препроцессинга раздела 2. Ниже короткая выжимка того, что вам понадобится: Перед реализацией цикла обучения необходимо задать несколько объектов. Первый: загрузчики данных (далее - dataloaders), которые мы будем использовать для итерирования по батчам данных. Перед этим нам необходимо применить несколько операций постпроцессинга к нашему tokenized_datasets. Это нужно сделать: в прошлый раз за нас это автоматически делал Trainer. Необходимо сделать следующее: Удалить колонки, соответствующие значениям, которые модель не принимает на вход (например, sentence1 и sentence2). Переименовать колонку label в labels (потому что модель ожидает аргумент, названный labels). Задать тип данных в датасете pytorch tensors вместо списков. Наш tokenized_datasets предоставляет возможность использовать встроенные методы для каждого из приведенных выше шагов: Мы можем проверить, что в результате у нас присутствуют только те поля, которые ожидает наша модель: Теперь, когда датасет готов, мы может задать dataloader: Для того, чтобы убедиться в отсутствии ошибок в сделанном нами препроцессинге, мы можем проверить один батч данных: Обратите внимание, что фактические размеры, вероятно, будут немного отличаться для в вашем случае, так как мы установили shuffle=True для обучающего загрузчика данных, также мы дополняем (padding) до максимальной длины внутри батча. Теперь мы полностью завершили этап препроцессинга (приятный, но неуловимый момент для любого специалиста по машинному обучению), перейдем к модели. Мы инициализируем ее точно так, как делали в предыдущем примере: Чтобы убедиться, что обучение пойдет гладко, вы подадим на вход модели один батч: Все модели 🤗 трансформеров возвращают значение функции потерь, если в данных были labels, а также логиты (в результате получается тензор 8 х 2). Мы почти готовы к написанию обучающего цикла! Мы пропустили только две вещи: оптимизатор и планировщик скорости обучения (learning rate scheduler).
План урока
- Подготовка к обучению
- Обучающий цикл
- Валидационный цикл
- Ускорение обучающего цикла с помощью 🤗 Accelerate
Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.