Учебное пособие по тонкой настройке модели контроля качества RoBERTa Hugging Face на пользовательских данных и получению значительного повышения производительности.

Ответы на вопросы и трансформеры

BERT — это модель-трансформер, которая покорила мир в 2019 году. BERT обучался на неразмеченных данных, маскируя слова и обучая модель прогнозировать эти маскированные слова на основе контекста. Позже BERT был настроен на несколько задач и достиг современной производительности во многих конкретных языковых задачах. В частности, BERT был настроен на более чем 100 000 пар вопросов-ответов из набора данных SQUAD, состоящего из вопросов, заданных в статьях Википедии, где ответом на каждый вопрос является сегмент текста или span из соответствующий проход.

Модель RoBERTa, выпущенная вскоре после того, как была построена на BERT, путем изменения ключевых гиперпараметров и улучшения обучения. Интересующая нас модель — это доработанная модель RoBERTA на Huggingface, выпущенная Deepset, которая была загружена более 1 миллиона раз в прошлом месяце.

В качестве примера возьмем данные из набора данных SubjQA, содержащего 10 000 вопросов по отзывам из 6 разных доменов: книги, фильмы, бакалея, электроника, TripAdvisor (например, отели) и рестораны.



В частности, поскольку я иллюстрирую силу тонкой настройки, я собираюсь перейти к вопросам и ответам, полученным из обзоров фильмов. Они удобно разделены на 2 CSV-файла для обучения (train.csv) и тестирования (test.csv).

Предварительная обработка данных

Есть 4 основных столбца — идентификатор, вопрос, контекст и ответ.

В этом случае идентификатор может быть фиктивным индексом, контекст относится к фрагменту текста, из которого вы хотите извлечь вопрос. Я узнал на собственном горьком опыте, что ответы здесь относятся не только к ответу, но также должны содержать индекс начального символа. Например здесь:

После того, как у вас есть кадр данных pandas в этом формате, другие шаги будут одинаковыми, независимо от того, какой набор данных QA — в основном предварительная обработка данных в формате для тренера модели HuggingFace. Я дам ссылку на блокнот для скрипта ниже.

Обучение модели

Единственное, что я действительно изменил, так это количество эпох. Настройка модели занимает несколько минут. Другие трудоемкие шаги включают загрузку модели и отправку в хаб HuggingFace.

Оценка и развертывание модели

Наиболее распространенной метрикой, используемой для оценки эффективности модели вопрос-ответ, является оценка F1. По данным проверки старая модель

Как видите, точная настройка повышает производительность более чем на 50 % — это огромный скачок производительности!

Чтобы развернуть модель, вы просто запускаете:

trainer.push_to_hub(commit_message=”Training complete”)

Вывод модели

Теперь самая захватывающая часть — после того, как вы разместите свою модель на Huggingfacehub, вы сможете получить к ней доступ из своего браузера!



Вы также можете вызвать его в своей записной книжке следующим образом:

# Replace this with your own checkpoint 
model_checkpoint2 = “skandavivek2/roberta-finetuned-subjqa-movies_2”
question_answerer = pipeline(“question-answering”, model=model_checkpoint2)

В качестве проверки работоспособности вы можете увидеть, получает ли точно настроенный преобразователь правильный результат от записи в наборе обучающих данных.

Выводы

Мир НЛП и ИИ в целом постоянно развивается, и кажется, что каждый месяц происходит новый прорыв. За последние несколько недель ChatGPT от OpenAI покорил мир. Однако недавний отчет McKinsey показывает, что даже среди компаний, использующих ИИ, только 11% активно используют трансформеры.

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

Hugging Face снизил входные барьеры, и теперь стало возможным не только создавать свои собственные точно настроенные модели трансформеров, но и упростить их развертывание и масштабирование.

Вы можете найти код в этом репозитории GitHub:



ОБНОВЛЕНИЕ: https://www.answerchatai.com/ — наша система контроля качества, использующая генеративный ИИ для ответов на вопросы и извлечения ключевых знаний из пользовательского текста, теперь работает! Ответьте на вопросы, относящиеся к домену, за 3 простых шага!

  1. Загрузите URL-адрес или вставьте текст и нажмите кнопку поиска
  2. Задайте вопрос, относящийся к контексту, и нажмите на запрос
  3. Получите ответ!

Не стесняйтесь использовать и дайте мне знать ваши отзывы и любые предложения в комментариях!

Ссылки:

  1. https://huggingface.co/docs/transformers/tasks/question_answering
  2. https://github.com/megagonlabs/SubjQA/tree/master/SubjQA

Если вы еще не являетесь участником Medium и хотите поддержать таких писателей, как я, зарегистрируйтесь по моей реферальной ссылке: https://skanda-vivek.medium.com/membership

Чтобы получать еженедельные обзоры данных, подпишитесь здесь!