stringtranslate.com

BERT (языковая модель)

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

BERT обучается с помощью маскированного предсказания токенов и предсказания следующего предложения. В результате этого процесса обучения BERT изучает контекстные, скрытые представления токенов в их контексте, подобно ELMo и GPT-2 . [4] Он нашел применение во многих задачах обработки естественного языка, таких как разрешение кореферентности и разрешение полисемии . [5] Это эволюционный шаг по сравнению с ELMo , и он породил исследование «BERTology», которое пытается интерпретировать то, что изучает BERT. [3]

BERT изначально был реализован на английском языке в двух размерах моделей: BERT BASE (110 миллионов параметров) и BERT LARGE (340 миллионов параметров). Оба были обучены на Toronto BookCorpus [6] (800 миллионов слов) и английской Wikipedia (2500 миллионов слов). Веса были опубликованы на GitHub . [7] 11 марта 2020 года было выпущено 24 меньших модели, самой маленькой из которых была BERT TINY с всего 4 миллионами параметров. [7]

Архитектура

Схематическая диаграмма высокого уровня BERT. Он берет текст, разбивает его на последовательности токенов, добавляет необязательные специальные токены и применяет кодировщик Transformer. Скрытые состояния последнего слоя затем могут использоваться как контекстные вложения слов.

BERT — это архитектура преобразователя «только кодер» . На высоком уровне BERT состоит из 4 модулей:

Заголовок задачи необходим для предварительной подготовки, но он часто не нужен для так называемых «нисходящих задач», таких как ответы на вопросы или классификация настроений . Вместо этого удаляют заголовок задачи и заменяют его новым инициализированным модулем, подходящим для задачи, и настраивают новый модуль. Скрытое векторное представление модели напрямую подается в этот новый модуль, что позволяет эффективное по выборке обучение переносу . [1] [8]

Внимание кодера направлено только на всех.

Встраивание

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

Токенизатором BERT является WordPiece, представляющий собой стратегию подслов, подобную кодированию пар байтов . Размер его словаря составляет 30 000, и любой токен, не встречающийся в его словаре, заменяется на [UNK](«неизвестно»).

BERT использует три типа встраивания: тип токена, позиция и тип сегмента.

Первый слой — это слой внедрения, который содержит три компонента: внедрения типа токена, внедрения положения и внедрения типа сегмента.

Три вектора встраивания складываются, представляя начальное представление токена как функцию этих трех частей информации. После встраивания векторное представление нормализуется с помощью операции LayerNorm , выводя 768-мерный вектор для каждого входного токена. После этого векторы представления передаются вперед через 12 блоков кодировщика Transformer и декодируются обратно в 30 000-мерное словарное пространство с помощью базового слоя аффинного преобразования.

Архитектурная семья

Стек кодировщика BERT имеет 2 свободных параметра: , количество слоев, и , скрытый размер . Всегда есть головки самовнимания, а размер прямой связи/фильтра всегда равен . Изменяя эти два числа, можно получить целое семейство моделей BERT. [9]

Для БЕРТ

Обозначение стека кодировщика записывается как L/H. Например, BERT BASE записывается как 12L/768H, BERT LARGE как 24L/1024H, а BERT TINY как 2L/128H.

Обучение

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

BERT был предварительно обучен одновременно двум задачам. [10]

Моделирование замаскированного языка

Задача моделирования замаскированного языка.

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

Причина, по которой не все выбранные токены маскируются, заключается в том, чтобы избежать проблемы сдвига набора данных. Проблема сдвига набора данных возникает, когда распределение входных данных, наблюдаемых во время обучения, значительно отличается от распределения, встречающегося во время вывода. Обученная модель BERT может быть применена к представлению слов (например, Word2Vec ), где она будет запущена по предложениям, не содержащим никаких [MASK]токенов. Позже было обнаружено, что более разнообразные цели обучения, как правило, лучше. [11]

В качестве наглядного примера рассмотрим предложение "моя собака милая". Сначала оно будет разделено на токены типа "моя 1 собака 2 милая 3 4 ". Затем будет выбран случайный токен в предложении. Пусть это будет 4-й токен "милый 4 " . Далее, будет три возможности:

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

Прогнозирование следующего предложения

Задача на предсказание следующего предложения.

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

Тонкая настройка

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

В оригинальной статье BERT были опубликованы результаты, демонстрирующие, что небольшая тонкая настройка (для BERT LARGE , 1 час на 1 Cloud TPU) позволила достичь передовой производительности в ряде задач по пониманию естественного языка : [1]

В оригинальной статье все параметры BERT были точно настроены, и рекомендовалось, чтобы для последующих приложений, которые являются классификациями текста, выходной токен на [CLS]входном токене подавался в линейный слой softmax для создания выходных меток. [1]

Исходная кодовая база определяла конечный линейный слой как «слой пулера», по аналогии с глобальным пулом в компьютерном зрении, хотя он просто отбрасывает все выходные токены, за исключением одного, соответствующего [CLS]. [15]

Расходы

BERT обучался на BookCorpus (800 млн слов) и отфильтрованной версии английской Википедии (2500 млн слов) без списков, таблиц и заголовков.

Обучение BERT BASE на 4 облачных TPU (всего 16 чипов TPU) заняло 4 дня, ориентировочная стоимость составила 500 долларов США. [7] Обучение BERT LARGE на 16 облачных TPU (всего 64 чипа TPU) заняло 4 дня. [1]

Интерпретация

Такие языковые модели, как ELMo, GPT-2 и BERT, породили исследование «BERTology», которое пытается интерпретировать то, что узнают эти модели. Их производительность в этих задачах понимания естественного языка пока не очень хорошо изучена. [3] [16] [17] Несколько исследовательских публикаций в 2018 и 2019 годах были сосредоточены на изучении взаимосвязи, лежащей в основе выходных данных BERT в результате тщательно выбранных входных последовательностей, [18] [19] анализа внутренних векторных представлений с помощью классификаторов зондирования, [20] [21] и взаимосвязей, представленных весами внимания . [16] [17]

Высокая производительность модели BERT также может быть связана [ требуется цитата ] с тем фактом, что она двунаправленно обучается. Это означает, что BERT, основанный на архитектуре модели Transformer, применяет свой механизм внутреннего внимания для изучения информации из текста с левой и правой стороны во время обучения и, следовательно, получает глубокое понимание контекста. Например, слово fine может иметь два разных значения в зависимости от контекста ( I feel fine today , She has fine blonde hair ). BERT рассматривает слова, окружающие целевое слово fine с левой и правой стороны.

Однако это имеет свою цену: из-за архитектуры только с кодером , не имеющей декодера, BERT не может быть подсказан и не может генерировать текст , в то время как двунаправленные модели в целом не работают эффективно без правой стороны, поэтому их трудно подсказать. В качестве иллюстративного примера, если кто-то хочет использовать BERT для продолжения фрагмента предложения «Сегодня я пошел в», то наивно можно было бы замаскировать все токены как «Сегодня я пошел в [MASK] [MASK] [MASK]... [MASK]», где число [MASK] — это длина предложения, на которое нужно расширить. Однако это представляет собой сдвиг набора данных, так как во время обучения BERT никогда не видел предложений с таким количеством замаскированных токенов. Следовательно, его производительность ухудшается. Более сложные методы позволяют генерировать текст, но с высокой вычислительной стоимостью. [22]

История

BERT был первоначально опубликован исследователями Google Джейкобом Девлином, Мин-Вей Чангом, Кентоном Ли и Кристиной Тутановой. Проект берет свое начало от предобучения контекстных представлений, включая полуконтролируемое последовательное обучение , [23] генеративное предварительное обучение, ELMo , [24] и ULMFit. [25] В отличие от предыдущих моделей, BERT является глубоко двунаправленным, неконтролируемым языковым представлением, предварительно обученным с использованием только корпуса обычного текста . Контекстно-свободные модели, такие как word2vec или GloVe, генерируют однословное представление встраивания для каждого слова в словаре, тогда как BERT учитывает контекст для каждого вхождения данного слова. Например, в то время как вектор для «running» будет иметь одинаковое векторное представление word2vec для обоих его вхождений в предложениях «He is manage a company» и «He is running a marathon», BERT предоставит контекстуализированное встраивание, которое будет отличаться в зависимости от предложения. [4]

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

Варианты

Модели BERT оказали влияние и вдохновили на создание множества вариантов.

RoBERTa (2019) [30] был инженерным усовершенствованием. Он сохраняет архитектуру BERT (немного больше, с 355M параметрами), но улучшает его обучение, изменяя ключевые гиперпараметры, удаляя задачу предсказания следующего предложения и используя гораздо большие размеры мини-пакетов .

DistilBERT (2019) преобразует BERT BASE в модель, содержащую всего 60% ее параметров (66M), сохраняя при этом 95% ее контрольных показателей. [31] [32] Аналогично, TinyBERT (2019) [33] представляет собой очищенную модель, содержащую всего 28% ее параметров.

ALBERT (2019) [34] использовал общий параметр между слоями и экспериментировал с независимым изменением скрытого размера и выходного размера слоя встраивания слов как двух гиперпараметров. Они также заменили задачу предсказания следующего предложения на задачу предсказания порядка предложений (SOP), где модель должна отличать правильный порядок двух последовательных текстовых сегментов от их обратного порядка.

ELECTRA (2020) [35] применила идею генеративно-состязательных сетей к задаче MLM. Вместо того, чтобы маскировать токены, небольшая языковая модель генерирует случайные правдоподобные замены, а более крупная сеть идентифицирует эти замененные токены. Малая модель стремится обмануть большую модель.

ДеБЕРТа

DeBERTa (2020) [36] — это значительный архитектурный вариант с распутанным вниманием . Его ключевая идея заключается в том, чтобы обрабатывать позиционное и токеновое кодирование отдельно во всем механизме внимания. Вместо того чтобы объединять позиционное кодирование ( ) и токеновое кодирование ( ) в один входной вектор ( ), DeBERTa сохраняет их отдельно как кортеж: ( ). Затем на каждом слое собственного внимания DeBERTa вычисляет три отдельные матрицы внимания, а не одну матрицу внимания, используемую в BERT: [примечание 1]

Три матрицы внимания поэлементно суммируются, затем пропускаются через слой softmax и умножаются на матрицу проекции.

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

Примечания

  1. ^ Тип «позиция-позиция» был опущен авторами ввиду его бесполезности.

Ссылки

  1. ^ abcde Девлин, Джейкоб; Чанг, Мин-Вэй; Ли, Кентон; Тутанова, Кристина (11 октября 2018 г.). «BERT: Предварительное обучение глубоких двунаправленных преобразователей для понимания языка». arXiv : 1810.04805v2 [cs.CL].
  2. ^ "Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processing". Блог Google AI . 2 ноября 2018 г. Получено 27 ноября 2019 г.
  3. ^ abc Роджерс, Анна; Ковалева, Ольга; Румшиски, Анна (2020). «Учебник по BERTology: что мы знаем о том, как работает BERT». Труды Ассоциации компьютерной лингвистики . 8 : 842–866. arXiv : 2002.12327 . doi : 10.1162/tacl_a_00349. S2CID  211532403.
  4. ^ ab Ethayarajh, Kawin (1 сентября 2019 г.), Насколько контекстуальны контекстуализированные представления слов? Сравнение геометрии вложений BERT, ELMo и GPT-2 , arXiv : 1909.00512
  5. ^ Андерсон, Дон (5 ноября 2019 г.). «Глубокое погружение в BERT: как BERT запустил ракету в понимание естественного языка». Search Engine Land . Получено 6 августа 2024 г.
  6. ^ Чжу, Юкун; Кирос, Райан; Земель, Рич; Салахутдинов Руслан; Уртасун, Ракель; Торральба, Антонио; Фидлер, Саня (2015). «Согласование книг и фильмов: к сюжетным визуальным объяснениям путем просмотра фильмов и чтения книг». стр. 19–27. arXiv : 1506.06724 [cs.CV].
  7. ^ abc "BERT". GitHub . Получено 28 марта 2023 г. .
  8. ^ Чжан, Тяньи; У, Феликс; Катияр, Арзу; Вайнбергер, Килиан К.; Арци, Йоав (11 марта 2021 г.), Пересмотр тонкой настройки BERT с малым количеством выборок , arXiv : 2006.05987
  9. ^ Турк, Юлия; Чанг, Мин-Вэй; Ли, Кентон; Тутанова, Кристина (25 сентября 2019 г.), Начитанные студенты учатся лучше: о важности компактных моделей предварительной подготовки , arXiv : 1908.08962
  10. ^ "Краткое изложение моделей — документация transformers 3.4.0". huggingface.co . Получено 16 февраля 2023 г. .
  11. ^ Тай, Йи; Дехгани, Мостафа; Тран, Винь К.; Гарсия, Ксавье; Вэй, Джейсон; Ван, Сюэчжи; Чунг, Хён Вон; Шакери, Сиамак; Бахри, Дара (28 февраля 2023 г.), UL2: Объединение парадигм изучения языка , arXiv : 2205.05131
  12. ^ ab Zhang, Aston; Lipton, Zachary; Li, Mu; Smola, Alexander J. (2024). "11.9. Крупномасштабное предварительное обучение с помощью трансформаторов". Погружение в глубокое обучение . Кембридж, Нью-Йорк, Порт Мельбурн, Нью-Дели, Сингапур: Cambridge University Press. ISBN 978-1-009-38943-3.
  13. ^ Раджпуркар, Пранав; Чжан, Цзянь; Лопырев, Константин; Лян, Перси (10 октября 2016 г.). «SQuAD: 100 000+ вопросов для машинного понимания текста». arXiv : 1606.05250 [cs.CL].
  14. ^ Зеллерс, Роуэн; Биск, Йонатан; Шварц, Рой; Чхве, Еджин (15 августа 2018 г.). «SWAG: крупномасштабный состязательный набор данных для обоснованных выводов на основе здравого смысла». arXiv : 1808.05326 [cs.CL].
  15. ^ "bert/modeling.py at master · google-research/bert". GitHub . Получено 16 сентября 2024 г. .
  16. ^ ab Ковалева, Ольга; Романов, Алексей; Роджерс, Анна; Румшиский, Анна (ноябрь 2019 г.). «Раскрытие темных секретов BERT». Труды конференции 2019 г. по эмпирическим методам обработки естественного языка и 9-й Международной совместной конференции по обработке естественного языка (EMNLP-IJCNLP) . стр. 4364–4373. doi :10.18653/v1/D19-1445. S2CID  201645145.
  17. ^ ab Кларк, Кевин; Ханделвал, Урваши; Леви, Омер; Мэннинг, Кристофер Д. (2019). «На что смотрит BERT? Анализ внимания BERT». Труды семинара ACL 2019 года BlackboxNLP: Анализ и интерпретация нейронных сетей для обработки естественного языка . Страудсбург, Пенсильвания, США: Ассоциация компьютерной лингвистики: 276–286. arXiv : 1906.04341 . doi : 10.18653/v1/w19-4828 .
  18. ^ Ханделвал, Урваши; Хе, Хе; Ци, Пэн; Джурафски, Дэн (2018). «Резкое рядом, размытое далеко: как нейронные языковые модели используют контекст». Труды 56-го ежегодного собрания Ассоциации компьютерной лингвистики (том 1: длинные статьи) . Страудсбург, Пенсильвания, США: Ассоциация компьютерной лингвистики: 284–294. arXiv : 1805.04623 . doi : 10.18653/v1/p18-1027. S2CID  21700944.
  19. ^ Гулордава, Кристина; Бояновски, Петр; Грейв, Эдуард; Линзен, Тал; Барони, Марко (2018). «Бесцветные зеленые рекуррентные сети видят сны иерархически». Труды конференции 2018 года Североамериканского отделения Ассоциации компьютерной лингвистики: Технологии человеческого языка, том 1 (длинные статьи) . Страудсбург, Пенсильвания, США: Ассоциация компьютерной лингвистики. стр. 1195–1205. arXiv : 1803.11138 . doi :10.18653/v1/n18-1108. S2CID  4460159.
  20. ^ Giulianelli, Mario; Harding, Jack; Mohnert, Florian; Hupkes, Dieuwke; Zuidema, Willem (2018). «Под капотом: использование диагностических классификаторов для исследования и улучшения того, как языковые модели отслеживают информацию о согласии». Труды семинара EMNLP 2018 года BlackboxNLP: Анализ и интерпретация нейронных сетей для обработки естественного языка . Страудсбург, Пенсильвания, США: Ассоциация компьютерной лингвистики: 240–248. arXiv : 1808.08079 . doi :10.18653/v1/w18-5426. S2CID  52090220.
  21. ^ Чжан, Келли; Боуман, Сэмюэл (2018). «Моделирование языка учит вас большему, чем перевод: уроки, извлеченные из анализа вспомогательных синтаксических задач». Труды семинара EMNLP 2018 года BlackboxNLP: Анализ и интерпретация нейронных сетей для обработки естественного языка . Страудсбург, Пенсильвания, США: Ассоциация компьютерной лингвистики: 359–361. doi : 10.18653/v1/w18-5448 .
  22. ^ Патель, Аджай; Ли, Брайан; Мохаммад Садег Расули; Констант, Ноа; Раффель, Колин; Каллисон-Берч, Крис (2022). «Двунаправленные языковые модели также являются маломощными обучаемыми». arXiv : 2209.14500 [cs.LG].
  23. ^ Дай, Эндрю; Ле, Куок (4 ноября 2015 г.). «Полуконтролируемое обучение последовательностям». arXiv : 1511.01432 [cs.LG].
  24. ^ Питерс, Мэтью; Нойманн, Марк; Айер, Мохит; Гарднер, Мэтт; Кларк, Кристофер; Ли, Кентон; Люк, Зеттлмойер (15 февраля 2018 г.). «Глубоко контекстуализированные представления слов». arXiv : 1802.05365v2 [cs.CL].
  25. ^ Ховард, Джереми; Рудер, Себастьян (18 января 2018 г.). «Точная настройка универсальной языковой модели для классификации текста». arXiv : 1801.06146v5 [cs.CL].
  26. ^ Наяк, Панду (25 октября 2019 г.). «Понимание поиска лучше, чем когда-либо прежде». Блог Google . Получено 10 декабря 2019 г.
  27. ^ «Понимание поиска лучше, чем когда-либо прежде». Google . 25 октября 2019 г. . Получено 6 августа 2024 г. .
  28. ^ Монтти, Роджер (10 декабря 2019 г.). «BERT от Google выходит на мировой уровень». Search Engine Journal . Получено 10 декабря 2019 г.
  29. ^ "Google: BERT теперь используется почти в каждом английском запросе". Search Engine Land . 15 октября 2020 г. Получено 24 ноября 2020 г.
  30. ^ Лю, Иньхань; Отт, Майл; Гойал, Наман; Ду, Цзинфэй; Джоши, Мандар; Чэнь, Даньци; Леви, Омер; Льюис, Майк; Цеттлемойер, Люк; Стоянов, Веселин (2019). «RoBERTa: надежно оптимизированный подход к предварительной подготовке BERT». arXiv : 1907.11692 [cs.CL].
  31. ^ Сан, Виктор; Дебют, Лисандр; Шомон, Жюльен; Вольф, Томас (29 февраля 2020 г.), DistilBERT, дистиллированная версия BERT: меньше, быстрее, дешевле и легче , arXiv : 1910.01108
  32. ^ "DistilBERT". huggingface.co . Получено 5 августа 2024 г. .
  33. ^ Цзяо, Сяоци; Инь, Ичунь; Шан, Лифэн; Цзян, Синь; Чен, Сяо; Ли, Линлин; Ван, Фанг; Лю, Цюнь (15 октября 2020 г.), TinyBERT: дистилляция BERT для понимания естественного языка , arXiv : 1909.10351
  34. ^ Лан, Чжэньчжун; Чэнь, Мингда; Гудман, Себастьян; Гимпель, Кевин; Шарма, Пиюш; Сорикут, Раду (8 февраля 2020 г.), ALBERT: облегченный BERT для самостоятельного обучения языковым представлениям , arXiv : 1909.11942
  35. ^ Кларк, Кевин; Луонг, Минь-Тханг; Ле, Куок В.; Мэннинг, Кристофер Д. (23 марта 2020 г.), ELECTRA: Предварительное обучение текстовых кодеров как дискриминаторов, а не генераторов , arXiv : 2003.10555
  36. ^ Он, Пэнчэн; Лю, Сяодун; Гао, Цзяньфэн; Чен, Вэйчжу (6 октября 2021 г.), DeBERTa: BERT с улучшенным декодированием и распутанным вниманием , arXiv : 2006.03654

Дальнейшее чтение

Внешние ссылки