БЕРТ (языковая модель)

Из Википедии, бесплатной энциклопедии

Двунаправленные представления кодировщиков от трансформаторов ( BERT ) — языковая модель , основанная на архитектуре преобразователя , отличающаяся значительным улучшением по сравнению с предыдущими современными моделями. Он был представлен в октябре 2018 года исследователями Google . [1] [2] Обзор литературы 2020 года пришел к выводу, что «чуть больше года BERT стал повсеместной базой в экспериментах по обработке естественного языка (НЛП), насчитывая более 150 исследовательских публикаций, анализирующих и улучшающих модель». [3]

Первоначально BERT был реализован на английском языке в двух размерах модели: [1] (1) BERT BASE : 12 энкодеров с 12 двунаправленными головками самообслуживания, всего 110 миллионов параметров, и (2) BERT LARGE : 24 энкодера с 16 двунаправленными головками самообслуживания, всего 340 миллионов параметров. Обе модели прошли предварительное обучение на BookCorpus Торонто. [4] (800 миллионов слов) и английская Википедия (2500 миллионов слов).

Дизайн [ править ]

«только для энкодера» BERT — это архитектура преобразователя .

На высоком уровне BERT состоит из трех модулей:

  • встраивание. Этот модуль преобразует массив токенов с горячим кодированием в массив векторов, представляющих токены.
  • стек кодировщиков. Эти энкодеры являются энкодерами-трансформерами. Они выполняют преобразования над массивом векторов представления.
  • девстраивание. Этот модуль снова преобразует окончательные векторы представления в токены с горячим кодированием.

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

BERT использует WordPiece для преобразования каждого английского слова в целочисленный код. Его словарный запас имеет размер 30 000. Любой токен, не встречающийся в его словаре, заменяется на [UNK] для «неизвестно».

Предварительная подготовка [ править ]

BERT предварительно обучался одновременно двум задачам: [5]

языковое моделирование : для прогнозирования было выбрано 15% токенов, а целью обучения было предсказать выбранный токен с учетом его контекста. Выбранный токен

  • заменен токеном [MASK] с вероятностью 80%,
  • заменен случайным словом с вероятностью 10%,
  • не заменяется с вероятностью 10%.

Например, в предложении «моя собака милая» для предсказания может быть выбран 4-й токен. Модель будет иметь входной текст

  • «моя собака [МАСК]» с вероятностью 80%,
  • «моя собака счастлива» с вероятностью 10%,
  • «Моя собака милая» с вероятностью 10%.

После обработки входного текста четвертый выходной вектор модели передается в отдельную нейронную сеть, которая выводит распределение вероятностей по своему словарю объемом в 30 000 единиц.

предсказание следующего предложения : учитывая два фрагмента текста, модель прогнозирует, появятся ли эти два фрагмента последовательно в обучающем корпусе, выдавая либо [IsNext], либо [NotNext]. Первый диапазон начинается со специального токена [CLS] (для «классификации»). Два промежутка разделены специальным токеном [SEP] (от слова «отдельный»). После обработки двух промежутков первый выходной вектор (векторное кодирование для [CLS]) передается в отдельную нейронную сеть для бинарной классификации на [IsNext] и [NotNext].

  • Например, учитывая «[CLS] моя собака милая [SEP] он любит играть», модель должна вывести токен [IsNext].
  • Учитывая «[CLS] моя собака милая [SEP], как работают магниты», модель должна вывести токен [NotNext].

В результате этого процесса обучения BERT изучает скрытые представления слов и предложений в контексте. После предварительного обучения BERT можно точно настроить с использованием меньшего количества ресурсов на небольших наборах данных, чтобы оптимизировать его производительность при выполнении конкретных задач, таких как задачи НЛП (вывод языка, классификация текста) и задачи генерации языка на основе последовательностей (ответы на вопросы, формирование разговорного ответа). [1] [6] Этап предварительного обучения значительно дороже в вычислительном отношении , чем точная настройка.

Детали архитектуры [ править ]

В этом разделе описывается BERT BASE . Другой, BERT LARGE , похож, только больше.

Самый нижний уровень — это уровень внедрения, который содержит три компонента: word_embeddings, Position_embeddings, token_type_embeddings.

  • word_embeddings принимает горячий вектор входного токена. Входной векторный вектор имеет размерность 30 000, потому что BERT имеет такой большой размер словаря.
  • Position_embeddings выполняет встраивание абсолютной позиции. Это похоже на word_embeddings, но в словаре, состоящем только из меток времени от 0 до 511, поскольку BERT имеет контекстное окно 512.
  • token_type_embeddings похож на word_embeddings, но использует словарь, состоящий только из 0 и 1. Единственными токенами типа 1 являются те, которые появляются после [SEP]. Все остальные токены имеют тип 0.

Три выхода суммируются, затем пропускаются через LayerNorm (нормализация слоев), получая массив векторов представления, каждый из которых имеет 768 измерений.

После этого векторы представления проходят через 12 кодировщиков Transformer, затем они удаляются с помощью affine-Add & LayerNorm-linear.

Производительность [ править ]

Когда BERT был опубликован, он достиг самых современных результатов в ряде задач по распознаванию естественного языка : [1]

  • Набор заданий GLUE ( Оценка общего понимания языка ) (состоит из 9 заданий)
  • SQuAD (Стэнфордский набор данных для ответов на вопросы [7] ) v1.1 и v2.0
  • SWAG (Ситуации с враждебными поколениями) [8] )

Анализ [ править ]

Причины современной производительности BERT в решении этих задач по распознаванию естественного языка еще не до конца понятны. [9] [10] Текущие исследования сосредоточены на изучении взаимосвязи выходных данных BERT в результате тщательно выбранных входных последовательностей. [11] [12] анализ внутренних векторных представлений с помощью пробных классификаторов, [13] [14] и отношения, представленные весами внимания . [9] [10] Высокую производительность модели BERT также можно объяснить тем, что она обучается в двух направлениях. Это означает, что BERT, основанный на архитектуре модели Transformer, применяет свой механизм самообслуживания для изучения информации из текста с левой и правой стороны во время обучения и, следовательно, достигает глубокого понимания контекста. Например, слово «хорошо» может иметь два разных значения в зависимости от контекста (« Я чувствую себя хорошо» сегодня , «У нее прекрасные светлые волосы »). BERT рассматривает слова, окружающие целевое слово , с левой и правой стороны.

Однако за это приходится платить: из-за отсутствия декодера в архитектуре, использующей только кодировщик, BERT не может быть вызван и не может генерировать текст , в то время как двунаправленные модели в целом не работают эффективно без правой стороны. [ нужны разъяснения ] таким образом, его трудно подсказать, поскольку даже генерация короткого текста требует сложных вычислительно затратных методов. [15]

В отличие от нейронных сетей глубокого обучения, которые требуют очень больших объемов данных, BERT уже предварительно обучен, что означает, что он изучил представления слов и предложений, а также основные семантические отношения, с которыми они связаны. Затем BERT можно точно настроить на небольших наборах данных для конкретных задач, таких как классификация настроений. Предварительно обученные модели выбираются в соответствии с содержанием используемого набора данных, а также в соответствии с целью задачи. Например, если задача представляет собой задачу классификации тональности финансовых данных, следует выбрать предварительно обученную модель для анализа тональности финансового текста. Веса оригинальных предварительно обученных моделей были опубликованы на GitHub . [16]

История [ править ]

Первоначально BERT был опубликован исследователями Google Джейкобом Девлином , Минг-Вей Чангом , Кентоном Ли и Кристиной Тутановой . Дизайн основан на предварительном обучении контекстных представлений, включая полуконтролируемое последовательное обучение . [17] генеративная предварительная тренировка, ELMo , [18] и УЛМФит. [19] В отличие от предыдущих моделей, BERT представляет собой глубоко двунаправленное неконтролируемое языковое представление, предварительно обученное с использованием только корпуса простого текста . Контекстно-свободные модели, такие как word2vec или GloVe, генерируют представление встраивания одного слова для каждого слова в словаре, тогда как BERT учитывает контекст для каждого появления данного слова. Например, в то время как вектор для «бега» будет иметь одно и то же векторное представление word2vec для обоих его вхождений в предложениях «Он управляет компанией» и «Он бежит марафон», BERT обеспечит контекстуализированное встраивание, которое будет разные в зависимости от предложения. [ нужна цитата ]

25 октября 2019 года Google объявила, что начала применять модели BERT для на английском языке поисковых запросов в США . [20] 9 декабря 2019 года сообщалось, что BERT был принят поиском Google для более чем 70 языков. [21] В октябре 2020 года почти каждый запрос на английском языке обрабатывался с помощью модели BERT. [22]

В более поздней статье предлагается RoBERTa, который сохраняет архитектуру BERT, но улучшает его обучение, изменяя ключевые гиперпараметры, удаляя задачу прогнозирования следующего предложения и используя гораздо большие размеры мини-пакетов. [23]

Признание [ править ]

Исследовательская статья, описывающая BERT, получила награду за лучшую длинную статью на ежегодной конференции Североамериканского отделения Ассоциации компьютерной лингвистики (NAACL) в 2019 году. [24]

Ссылки [ править ]

  1. ^ Перейти обратно: а б с д Девлин, Джейкоб; Чанг, Мин-Вэй; Ли, Кентон; Тутанова Кристина (11 октября 2018 г.). «BERT: Предварительная подготовка глубоких двунаправленных преобразователей для понимания языка». arXiv : 1810.04805v2 [ cs.CL ].
  2. ^ «BERT с открытым исходным кодом: современная предварительная подготовка по обработке естественного языка» . Блог Google AI . 2 ноября 2018 г. Проверено 27 ноября 2019 г.
  3. ^ Роджерс, Анна; Ковалева, Ольга; Румшиский, Анна (2020). «Букварь по BERTологии: что мы знаем о том, как работает BERT» . Труды Ассоциации компьютерной лингвистики . 8 : 842–866. arXiv : 2002.12327 . дои : 10.1162/tacl_a_00349 . S2CID   211532403 .
  4. ^ Чжу, Юкунь; Кирос, Райан; Земель, Рич; Салахутдинов Руслан; Уртасун, Ракель; Торральба, Антонио; Фидлер, Саня (2015). «Согласование книг и фильмов: к сюжетным визуальным объяснениям путем просмотра фильмов и чтения книг». стр. 19–27. arXiv : 1506.06724 [ cs.CV ].
  5. ^ «Краткое описание моделей — трансформеров 3.4.0, документация» . Huggingface.co . Проверено 16 февраля 2023 г.
  6. ^ Хорев, Рани (2018). «Объяснение BERT: современная языковая модель для НЛП» . На пути к науке о данных . Проверено 27 сентября 2021 г.
  7. ^ Раджпуркар, Пранав; Чжан, Цзянь; Лопырев Константин; Лян, Перси (10 октября 2016 г.). «SQuAD: более 100 000 вопросов для машинного понимания текста». arXiv : 1606.05250 [ cs.CL ].
  8. ^ Зеллерс, Роуэн; Биск, Йонатан; Шварц, Рой; Чхве, Еджин (15 августа 2018 г.). «SWAG: крупномасштабный состязательный набор данных для обоснованных выводов на основе здравого смысла». arXiv : 1808.05326 [ cs.CL ].
  9. ^ Перейти обратно: а б Ковалева, Ольга; Романов, Алексей; Роджерс, Анна; Румшиский, Анна (ноябрь 2019 г.). «Раскрытие темных секретов BERT» . Материалы конференции 2019 года по эмпирическим методам обработки естественного языка и 9-й Международной совместной конференции по обработке естественного языка (EMNLP-IJCNLP) . стр. 4364–4373. дои : 10.18653/v1/D19-1445 . S2CID   201645145 .
  10. ^ Перейти обратно: а б Кларк, Кевин; Хандельвал, Урваши; Леви, Омер; Мэннинг, Кристофер Д. (2019). «На что смотрит BERT? Анализ внимания BERT» . Материалы семинара ACL Workshop BlackboxNLP 2019: анализ и интерпретация нейронных сетей для НЛП . Страудсбург, Пенсильвания, США: Ассоциация компьютерной лингвистики: 276–286. arXiv : 1906.04341 . дои : 10.18653/v1/w19-4828 .
  11. ^ Хандельвал, Урваши; Он, Он; Ци, Пэн; Юрафски, Дэн (2018). «Четкое рядом, нечеткое далеко: как модели нейронного языка используют контекст». Материалы 56-го ежегодного собрания Ассоциации компьютерной лингвистики (Том 1: Длинные статьи) . Страудсбург, Пенсильвания, США: Ассоциация компьютерной лингвистики: 284–294. arXiv : 1805.04623 . дои : 10.18653/v1/p18-1027 . S2CID   21700944 .
  12. ^ Гулордава, Кристина; Бояновский, Петр; Грейв, Эдуард; Линцен, Таль; Барони, Марко (2018). «Бесцветные зеленые рекуррентные сети мечтают иерархически». Материалы конференции Североамериканского отделения Ассоциации компьютерной лингвистики 2018 года: технологии человеческого языка, том 1 (длинные статьи) . Страудсбург, Пенсильвания, США: Ассоциация компьютерной лингвистики. стр. 1195–1205. arXiv : 1803.11138 . дои : 10.18653/v1/n18-1108 . S2CID   4460159 .
  13. ^ Джулианелли, Марио; Хардинг, Джек; Монерт, Флориан; Хупкес, Дьюк; Зуйдема, Виллем (2018). «Под капотом: использование диагностических классификаторов для исследования и улучшения того, как языковые модели отслеживают информацию о соглашении». Материалы семинара EMNLP 2018 BlackboxNLP: анализ и интерпретация нейронных сетей для НЛП . Страудсбург, Пенсильвания, США: Ассоциация компьютерной лингвистики: 240–248. arXiv : 1808.08079 . дои : 10.18653/v1/w18-5426 . S2CID   52090220 .
  14. ^ Чжан, Келли; Боуман, Сэмюэл (2018). «Языковое моделирование учит больше, чем перевод: уроки, извлеченные посредством анализа вспомогательных синтаксических задач» . Материалы семинара EMNLP 2018 BlackboxNLP: анализ и интерпретация нейронных сетей для НЛП . Страудсбург, Пенсильвания, США: Ассоциация компьютерной лингвистики: 359–361. дои : 10.18653/v1/w18-5448 .
  15. ^ Патель, Аджай; Ли, Брайан; Мохаммад Садег Расули; Констант, Ной; Раффель, Колин; Каллисон-Берч, Крис (2022). «Двунаправленные языковые модели также мало учатся». arXiv : 2209.14500 [ cs.LG ].
  16. ^ «БЕРТ» . Гитхаб . Проверено 28 марта 2023 г.
  17. ^ Дай, Эндрю; Ле, Куок (4 ноября 2015 г.). «Полуконтролируемое последовательное обучение». arXiv : 1511.01432 [ cs.LG ].
  18. ^ Питерс, Мэтью; Нойманн, Марк; Айер, Мохит; Гарднер, Мэтт; Кларк, Кристофер; Ли, Кентон; Люк, Зеттлмойер (15 февраля 2018 г.). «Глубокие контекстуализированные представления слов». arXiv : 1802.05365v2 [ cs.CL ].
  19. ^ Ховард, Джереми; Рудер, Себастьян (18 января 2018 г.). «Точная настройка универсальной языковой модели для классификации текста». arXiv : 1801.06146v5 [ cs.CL ].
  20. ^ Наяк, Панду (25 октября 2019 г.). «Понимание поисковых запросов лучше, чем когда-либо прежде» . Гугл-блог . Проверено 10 декабря 2019 г.
  21. ^ Монтти, Роджер (10 декабря 2019 г.). «Google BERT внедряется по всему миру» . Журнал поисковых систем . Проверено 10 декабря 2019 г.
  22. ^ «Google: BERT теперь используется почти во всех английских запросах» . Земля поисковых систем . 15 октября 2020 г. Проверено 24 ноября 2020 г.
  23. ^ Лю, Иньхан; Отт, Гоял, Наман; Джоши, Мандар; Леви, Омер; Зеттлмойер, Люк, Веселин (2019). Подход к предварительному обучению». arXiv : 1907.11692 [ cs.CL ].
  24. ^ «Лучшая бумага» . НААКЛ . 2019 . Проверено 28 марта 2020 г.

Дальнейшее чтение [ править ]

  • Роджерс, Анна; Ковалева, Ольга; Румшиский, Анна (2020). «Букварь по BERTологии: что мы знаем о том, как работает BERT». arXiv : 2002.12327 [ cs.CL ].

Внешние ссылки [ править ]