Входная точка в HuggingFace

Начало пути в HuggingFace

Пошаговое руководство основ для начинающих

Изображение с unsplash

Работа с HuggingFace может быть сложной и запутанной, если вы не знаете, с чего начать. Одной из точек входа в репозиторий HuggingFace являются скрипты run_mlm.py и run_clm.py.

В этой статье мы рассмотрим скрипт run_mlm.py. Этот скрипт выбирает маскированную модель языка из HuggingFace и подстраивает ее под набор данных (или тренирует ее с нуля). Если вы начинающий и у вас очень мало опыта работы с кодами HuggingFace, эта статья поможет вам понять основы.

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

Приступим.

Несколько слов о тонкой настройке

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

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

При тонкой настройке вы берете модель, предварительно обученную на большом источнике данных (например, ImageNet для изображений или BooksCorpus для NLP), а затем продолжаете обучать ее на своем наборе данных, чтобы адаптировать модель для вашей задачи. Этот процесс требует намного меньше данных и эпох, чем обучение с случайными весами.

Тонкая настройка в HuggingFace

В HuggingFace (HF) есть много встроенных функций, которые позволяют нам выполнить тонкую настройку предварительно обученной модели всего за несколько строк кода. Основные шаги выглядят следующим образом:

  1. загрузка предварительно обученной модели
  2. загрузка предварительно обученного токенизатора
  3. загрузка набора данных для тонкой настройки
  4. токенизация указанного набора данных с использованием токенизатора
  5. использование объекта Trainer для обучения предварительно обученной модели на токенизированном наборе данных

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