Этот репозиторий содержит реализации некоторых из наиболее важных документов для ответа на вопросы. Реализации находятся в форме учебных пособий и являются примерно аннотациями указанных документов. Этот репозиторий может быть полезным для тех, кто знает основы глубокого обучения и НЛП, хочет начать с чтения немного сложных документов и посмотреть, как они реализованы. Этот репозиторий также предполагает некоторое знакомство с основами Pytorch, хотя я старался изо всех сил разбить все в простых терминах.
Ответ на вопрос является важной задачей, основанной на том, какой интеллект систем НЛП и ИИ в целом может быть оценен. Системе QA дается короткий абзац или контекст по какой -то теме, и ей задают некоторые вопросы на основе отрывка. Ответы на эти вопросы - пролеты контекста, то есть они доступны непосредственно в отрывке. Чтобы обучить такие модели, мы используем набор данных команды.
Записная книжка с именем «Prebelocesing NLP для QA» содержит весь код предварительной обработки, который я написал. Код предварительной обработки не использует библиотеку высокого уровня, и я написал все функции с нуля. Он использует только Spacy для токенизации. Функции, реализованные здесь, являются общими для многих задач NLP и, следовательно, могут быть полезны для тех, кто только начинает. Например: создание словарей, матрицы веса для предварительных встроков, наборов данных/данных DataLoAders и т. Д. В ретроспективе, используя некоторую библиотеку высокого уровня, такую как TorchText, было бы лучшей идеей, и в настоящее время я работаю над тем же.
Все ноутбуки основаны на этом подходе. В конечном счете, строительство нейронных сетей - это работа с тензорами. Знание формы и содержания каждого тензора - это то, что я нашел очень полезным во время обучения. Следовательно, после каждой строки кода я прокомментировал форму тензора и изменения, которые происходят из -за преобразований в коде. Это делает процесс понимания того, что происходит в нейронных сетях более интуитивно понятным.
У меня нет неограниченного доступа к более быстрым графическим процессорам. Модели ниже были обучены арендой графических процессоров на Vast.ai. Я использовал GTX 1080 TI для большинства своих экспериментов.
В первой ноутбуке мы реализуем сравнительно простую модель, которая включает в себя многослойные LSTM и билинейное внимание. Детали и интуиция каждого уровня/компонента объясняются перед прыжком в код. Эта модель очень похожа на то, что обсуждается в этой статье, а также имеет одинаковых первых авторов: danqi Chen. Вторая модель также известна как «Стэн для внимательного читателя». Модель, реализованная в ноутбуке, является немного продвинутой версией этого. Результаты на полученном наборе разработчика:
| Эпохи | ЭМ | F1 |
|---|---|---|
| 5 | 56.4 | 68.2 |
Я буду обучать это больше, чтобы улучшить результаты и скоро обновлю их.
Затем мы переходим к немного более сложной бумаге. Эта статья улучшает результаты, полученные предыдущей статьей. Модель, реализованная здесь, в отличие от предыдущих, представляет собой многоэтапную иерархическую архитектуру, которая представляет контекст и запрос на нескольких уровнях гранулярности. Эта статья также включает в себя рецидив, поскольку он широко использует LSTM и механизм внимания без памяти , который носит двунаправленный характер. В этой записной книжке подробно рассказывается о некоторых важных методах НЛП, таких как вставки персонажей , шоссе сетей . Результаты на набор DEV:
| Эпохи | ЭМ | F1 |
|---|---|---|
| 5 | 60.4 | 70.1 |
Наконец, мы уходим от повторения и используем только самоутверждение и свертывание. Эта статья черпает вдохновение из «Внимание - все, что вам нужно». Ключевой мотивацией дизайна модели является: свертка захватывает локальную структуру текста, в то время как само прикрытие изучает глобальное взаимодействие между каждой парой слов. В этом уроке объясняются такие темы, как самопринятие , и глубины разделяемых сверлоков . Результаты на набор DEV:
| Эпохи | ЭМ | F1 |
|---|---|---|
| 3 | * | 36.6 |
В настоящее время я тренируюсь этой моделью. В настоящее время у меня не хватает времени, и у меня нет доступа к более быстрым графическим процессорам. Обучение этому для 1 эпохи занимает около 1 часа на GTX 1080 TI.
Я не эксперт. Моим основным мотивом этого проекта было узнать о домене НЛП. Если вы найдете какую -либо концептуальную или глупую ошибку, любезно создайте проблему, и я постараюсь изо всех сил исправить их быстро. Другие взносы также приветствуются. Если вы тренируете какую -либо модель и получите улучшенные результаты, сделайте PR. Если вы заинтересованы в внедрении большего количества документов в этом домене и хотите добавить их в этот репозиторий, я был бы рад помочь. Хотя в настоящее время у меня не хватает времени, я буду активно поддерживать этот репозиторий.