Учебное пособие по тонкой настройке модели контроля качества 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 простых шага!
- Загрузите URL-адрес или вставьте текст и нажмите кнопку поиска
- Задайте вопрос, относящийся к контексту, и нажмите на запрос
- Получите ответ!
Не стесняйтесь использовать и дайте мне знать ваши отзывы и любые предложения в комментариях!
Ссылки:
- https://huggingface.co/docs/transformers/tasks/question_answering
- https://github.com/megagonlabs/SubjQA/tree/master/SubjQA
Если вы еще не являетесь участником Medium и хотите поддержать таких писателей, как я, зарегистрируйтесь по моей реферальной ссылке: https://skanda-vivek.medium.com/membership
Чтобы получать еженедельные обзоры данных, подпишитесь здесь!