АННОТАЦИОННЫЙ ВОПРОС ОТВЕТЫ НА НАБОРЫ ДАННЫХ

Маркировка данных с помощью инструмента аннотации Haystack

Без аннотированных наборов данных не было бы машинного обучения с учителем. Будь то ответы на вопросы, автоматическое обобщение или машинный перевод: контролируемые модели зависят от размеченных данных как для обучения, так и для оценки. Но создание высококачественных наборов данных с нуля - утомительный и дорогостоящий процесс.

Haystack предоставляет бесплатный инструмент аннотации, который поможет вам в создании ваших собственных наборов данных с ответами на вопросы (QA), что сделает процесс более быстрым и простым. Читайте дальше, чтобы узнать больше об инструменте аннотации Haystack и о том, как его использовать.

Аннотирование естественного языка

Аннотация звучит как достаточно простая задача: просто назначьте метку предложению, абзацу или документу. Но любой, кто комментировал, сказал бы иначе. Сложности реального мира часто не позволяют аккуратно разделить на отдельные ярлыки. При аннотации вы столкнетесь со случаями, когда в один пример может уместиться несколько ярлыков или вообще ни одного. Четкие и подробные инструкции по аннотации облегчают работу аннотатора.

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

Мы разработали инструмент аннотации Haystack, чтобы помочь вам в процессе аннотации. Его можно использовать бесплатно, и вы можете легко координировать работу между членами команды. Просто загрузите свои документы, добавьте вопросы и отметьте интервалы ответов. Сделанный! После этого ваш набор данных готов к экспорту в формате SQuAD, который можно использовать непосредственно для точной настройки или оценки модели ответов на вопросы.

Создайте свои собственные наборы данных

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

Хорошей новостью является то, что вы можете использовать метод, называемый «адаптация предметной области»: вы берете модель, которая была предварительно обучена на большом общем наборе данных QA, таком как SQuAD (стандартный набор данных для ответов на вопросы), и настраиваете ее с помощью ваших собственных данных. . К счастью, объем данных, необходимых для точной настройки, намного меньше, чем данных, необходимых для обучения модели с нуля.

Помимо обучения, индивидуальные наборы данных также полезны для оценки ваших систем. Как вы можете определить, будет ли ваш конвейер контроля качества должным образом отвечать на вопросы ваших клиентов, если вы оцениваете его только на готовом наборе данных? Чтобы лучше всего измерить производительность вашей системы для вашего варианта использования, вам понадобится набор данных, который максимально похож на ваши реальные данные.

Инструмент аннотации стога сена

Вы можете использовать инструмент аннотации Haystack локально через Docker или в браузере Chrome. Чтобы использовать размещенную версию, зарегистрируйтесь здесь. После того, как вы зарегистрируетесь в качестве администратора, вы сможете создавать проекты, загружать документы и приглашать членов команды. Этот инструмент помогает вам координировать работу вашей команды, задавая стандартные вопросы и распределяя участникам наборы документов. Хотите увидеть инструмент в действии? Давайте посмотрим поближе!

Использование инструмента аннотации: пример пошагового руководства

После входа в систему создайте новый проект, нажав кнопку «Создать проект». Затем перейдите в раскрывающееся меню «Импорт» и выберите «Документы», чтобы загрузить файлы. Файлы должны быть в формате .txt и не содержать ничего, кроме текста. В нашем примере мы импортировали пару очищенных статей из Википедии о различных западноафриканских блюдах.

После того, как вы загрузили свои тексты, вы можете увидеть их в разделе «Документы»:

Чтобы перейти в режим просмотра документа, щелкните стрелку рядом с документом. Вы увидите весь текст и меню «Вопросы». Теперь мы наконец можем создавать пары вопрос-ответ! Прежде чем перейти к стандартным вопросам, давайте сначала рассмотрим концепцию уникальных вопросов.

Уникальные вопросы

Чтобы добавить уникальный вопрос, мы следуем несколько обратному процессу: после нажатия кнопки «Добавить собственный вопрос» мы будем использовать курсор, чтобы отметить фрагмент текста. Это откроет небольшое окно, в котором мы можем ввести вопрос, соответствующий этому диапазону ответов:

Пройдя этот процесс несколько раз, мы получаем организованное отображение пар вопросов и ответов.

Вопросы помещены под буквой «U», что означает «уникальный», что означает, что аннотатор придумал их на месте. Но это всего лишь один из методов аннотирования пар вопрос-ответ; второй задается стандартными вопросами.

Стандартные вопросы

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

Вместо этого вы можете настроить блок «стандартных вопросов», где вы можете заранее задать вопросы. Тогда комментатор просто должен найти правильные ответы во всех назначенных ему документах.

В нашем примере проекта мы создали два стандартных вопроса и отнесли их к новому блоку («G» - общий):

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

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

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

Экспорт аннотированного набора данных

Чтобы использовать новый набор данных для обучения и оценки ваших систем, он должен быть в формате SQuAD, а вопросы и интервалы ответов на них должны храниться в файле JSON. Вы можете легко экспортировать аннотированные данные в этот формат. Просто перейдите в «Экспорт этикеток» и нажмите кнопку «Экспорт ответов». Затем вы можете выбрать между форматом CSV и SQuAD JSON.

Вот пример экспортированного файла JSON:

Разработка ваших вопросов и ответов

Итак, как вы могли бы придумать адекватные вопросы и ответы? Вот несколько быстрых советов (адаптированных из нашего руководства по парам вопрос-ответ):

Вопросы

Как правило, формулируйте вопросы так, как если бы они были сформулированы на естественном языке. Не пытайтесь подогнать их под ответы, используя те же слова или порядок слов, что и в тексте. Напротив, вам лучше использовать синонимы и изменить порядок слов в вопросе, что обеспечит больше лексического и синтаксического разнообразия модели, на которой можно учиться. Например, в нашем документе о фуфу мы спрашиваем: «Какова текстура фуфу?» и пометил ответ «консистенция как тесто».

Хороший вопрос - это поиск фактов с целью восполнить пробел в знаниях человека, задающего вопрос. На него должен быть дан ответ из имеющегося документа, и ни вопрос, ни ответ не должны требовать дополнительного контекста для их понимания. На вопрос типа «Насколько аутентично фуфу из ресторана« Бука »?» не лучший выбор, потому что он субъективен и зависит от внешних знаний.

Полярные вопросы («да-нет») возможны, но они не должны составлять более 20 процентов от всего набора данных. Обратите внимание, что ответом все равно будет отрывок из текста, а не «да» или «нет». Например, возможный ответ на вопрос «Вы едите фуфу руками?» может быть: «Фуфу съедают, взяв его в пальцы маленьким шариком».

Ответы

Модели с ответами на вопросы предпочитают более короткие ответы более длинным. Вот почему на наш первый вопрос «Что такое фуфу?» мы отметили «основной продукт питания Западной и Центральной Африки» как подходящий ответ, а не все содержащее предложение.

Интервалы ответов могут совпадать или совпадать, но каждый вопрос может сочетаться только с одним ответом. Если в тексте вашего вопроса содержится несколько вариантов ответа, вы можете задавать один и тот же вопрос несколько раз. То же самое верно и для стандартных вопросов - если в документе есть несколько вариантов ответа, просто создайте уникальный вопрос, используя ту же формулировку.

Используйте свои собственные наборы данных для создания специализированного конвейера ответов на вопросы

Имея аннотированные наборы данных, вы можете попробовать обучить систему ответов на вопросы. Фреймворк Haystack предлагает все инструменты, необходимые для настройки конвейера контроля качества. Загляните в наш репозиторий GitHub - и если вам нравится то, что вы можете построить с его помощью, мы будем благодарны вам за звезду :)