Ответы на вопросы по тексту

Урок 82 из 104 курса «HuggingFace: курс по Transformers»: официальный курс Hugging Face Learn (Хаггинг Фейс) на русском языке. Урок входит в платный доступ; первые уроки курса бесплатно.

О чём урок

{#if fw === 'pt'} {:else} {/if} Пришло время взглянуть на ответы на вопросы! Эта задача имеет множество разновидностей, но та, на которой мы сосредоточимся в этом разделе, называется экстрактивным ответом на вопросы. Она включает в себя постановку вопросов о документе и определение ответов в виде участков текста в самом документе. Мы проведем дообучение BERT-модели на датасете SQuAD, состоящем из вопросов, заданных краудворкерами по набору статей Википедии. В результате мы получим модель, способную вычислять прогнозы, подобные этому: На самом деле это демонстрация модели, которая была обучена и загружена на Hub с помощью кода, показанного в этом разделе. Вы можете найти ее и перепроверить прогнозы здесь. [!TIP] 💡 Модели, основанные только на энкодере, такие как BERT, как правило, отлично справляются с извлечением ответов на фактоидные вопросы типа "Кто изобрел архитектуру трансформера?", но плохо справляются с открытыми вопросами типа "Почему небо голубое?". В таких сложных случаях для синтеза информации обычно используются модели энкодеров-декодеров, такие как T5 и BART, что очень похоже на сумризацию текста. Если вам интересен этот тип генеративных ответов на вопросы, рекомендуем ознакомиться с нашим демо основанным на датасете ELI5. В качестве академического бенчмарка для экстрактивных ответов на вопросы чаще всего используется датасет SQuAD, поэтому мы будем использовать именно его. Существует также более сложный датасет SQuAD v2, который включает вопросы, не имеющие ответа. Если ваш собственный датасет содержит столбец контекстов, столбец вопросов и столбец ответов, вы сможете адаптировать описанные ниже шаги. Как обычно, мы можем загрузить и кэшировать датасет всего за один шаг благодаря функции load_dataset(): Мы можем взглянуть на этот объект, чтобы узнать больше о датасете SQuAD: Похоже, у нас есть все необходимое в полях context, question и answers, так что давайте выведем их для первого элемента нашего обучающего набора: Поля context и question очень просты в использовании.

План урока

  1. Подготовка данных
  2. Датасет SQuAD
  3. Подготовка обучающих данных
  4. Подготовка валидационных данных
  5. Дообучение модели с API Trainer
  6. Дообучение модели с Keras
  7. Постобработка
  8. Дообучение модели

Урок входит в полный доступ. Полный текст и видео открываются после оплаты. Первые уроки каждого курса бесплатны.

Полезные гиды