«Это 27-й день моего участия в ноябрьском испытании обновлений. Подробную информацию об этом событии см.:Вызов последнего обновления 2021 г."
Давайте вместе изучим технологию подготовки к тренировкам bert
Часть 1 Модель BERT и механизм внимания
Bert Model
Краткая история Берта
- В 2018 году Google открыл исходный код модели Берта.
- Модель Берта является важной вехой в области НЛП.С тех пор появились различные варианты Берта, и модель Берта начала убивать список.SuperGlue Benchmark (самая модель SOTA, должна быть над стеной)
Рисунок НЛП Развитие
- Новая парадигма: две конвергенции (модель {трансформатор} конвергенция, предварительно обучение-тонкоустройство конвергенции)
Берт — Обзор сетевой архитектуры
Проще говоря: структура сети BERT: сетевое наложение многослойных трансформаторов
Трансформаторная сетевая архитектура
Рекомендуется смотреть Ли Му напрямую, чтобы читать газету.
Основные элементы сети на уровне Transformer:
- Многоголовое внимание
- FFN (полностью подключенный уровень)
- LayerNorm (нормализация слоя)
- остаточная ссылка
Рисунок модели берта (слева) модуля трансформатора (справа)
Механизм внимания
Развитие механизма внимания.
2014: В эпоху машинного перевода речь идет о механизме внимания
2017: Рождение Трансформера, внимание к себе привлекает внимание
【Внимание, новаторская работа】«НЕЙРНО-МАШИННЫЙ ПЕРЕВОД ПУТЕМ СОВМЕСТНОГО ОБУЧЕНИЯ ВЫРАВНИВАТЬ И ПЕРЕВОДИТЬ» ICLR2015 --- Йошуа Бенжио (Большая тройка)
Как реализовать Внимание в пионерской работе
Относительно расчета источника внимания:
Шаг 1:Что касается расчета оценки внимания, то это просто векторное представление, состоящее из представления предложения и вычисления сходства каждого h (с использованием формы скалярного произведения для выражения сходства).
Относительно расчета распределения внимания:
Шаг 2:Что касается расчета распределения внимания, то есть использования softmax для преобразования источника внимания в новое представление с суммой вероятностей 1, что является весом внимания.
Расчет выхода внимания:
Шаг 3:Что касается выхода внимания, то есть веса, вычисленные на каждом шаге h и шаге 2, взвешиваются и суммируются.
Приведенные выше три изображения представляют собой механизм внимания в Seq2Seq.
Общая формулировка механизма внимания
Внимание в новаторской работе находится в модели seq2seq, поэтому как извлечь механизм внимания и использовать математический язык для более общего выражения механизма внимания. В настоящее время нам нужно найти общую форму реализации, чтобы мы могли лучше понять Принцип механизма внимания, и он применим к другим формам.
[Определение]: Учитывая набор векторных (ключ, значение) пар ключ-значение и векторный запрос, механизм внимания представляет собой
Модуль, вычисляющий средневзвешенное значение по ключу. {запрос обращает внимание на ключи --> запрос заметил, что ключи можно рассматривать как своего рода поиск в базе данных, и использовать запрос для сравнения корреляции с ключами, полученными в базе данных}
Мы используем метод заполнения холодильников слонами для аналогии процесса реализации механизма внимания.
Шаг 1 Откройте дверцу холодильника:Оцените корреляцию между запросом и ключом, чтобы получить оценку корреляции.
- Существует множество методов оценки корреляции. Форма скалярного произведения была введена ранее, существуют и другие формы. Введены три наиболее часто используемые формы:
- Механизм скалярного произведения внимания:【Самый примитивный】
- Мультипликативное внимание:[После трансформатора в основном используется форма умножения, и можно изучить матрицу параметров]
- Дополнительное внимание:[Самый популярный способ в сфере машинного перевода в 2014-2015 гг.]
Шаг 2. Начините слона:Нормируйте оценку ассоциации к распределению
Шаг 3 Закройте дверцу холодильника:Средневзвешенное значение по значениям и распределению
Механизм самоконтроля
Можем ли мы использовать механизм внимания, чтобы получить представление о предложении?
Представление предложения моделирования внимания
- С точки зрения отдельного слова: например, векторного представления «it_» и всех слов в предложении, внимание вычисляется, тем самым обновляя его векторное представление:
- Операция внимания полностью распараллеливает взаимодействие между словами в предложении;
\
[Матричная форма]: проверьте размер матрицы
Самостоятельное внимание всего предложения: существующий указатель предложения записывается как, то есть:
[Инструмент с открытым исходным кодом] BERTVIZ визуализирует представление bert
Модели НЛП до Берта
До 2017 года в области NLP доминировали сети LSTM, так почему же этот тип RNN презирают?
Модель РНН:
- Требуется сложность O (L) для всех слов в предложении для взаимодействия: семантические зависимости дальнего действия трудно выучить (исчезающие градиенты исчезают).
- Плохой параллелизм: прямой проход и обратный проход привязаны к O(L).
Модель CNN:
- Модели CNN очень эффективны
- Однако зависимости между междугородними текстами трудно смоделировать с помощью CNN: необходимо наложить очень много слоев CNN;
Вспомогательные детали, необходимые для самоконтроля
Конечно, одним лишь вниманием к себе нельзя завершить построение модели, поэтому нужны вспомогательные построения.
Вспомогательный 1: Порядок приговора
- кодирование положения
-
- Куда добавляется код местоположения? Слой встраивания / также может быть добавлен к каждому слою
-
- Конкретная форма позиционного кодирования: синусно-косинусное позиционное кодирование (в статье) / позиционное кодирование, управляемое обучением (в реальном bert) PiСлучайная инициализация и обучение вместе с моделью.
Вспомогательный 2: Нелинейное преобразование
- Присоединитесь к полносвязному слою:
-
- формула:
- Обратите внимание, что операция здесь поточечная:только по решению, не принимая другую информацию в предложении.
-
- Улучшение функции активации: более плавная функция Relu (когда ваш вывод отрицательный, частная производная не равна нулю)
Вспомогательный 3: Мультиголовка:
- Многоголовочный механизм:
-
- Разные головы обращают внимание на разные контекстные зависимости
- Эффект ансамбля моделей (аналогичный начальной модели Google)
Вспомогательный 4: Масштабирование
- Scaled dot-product attenrion:
-
- Удалить фактор при расчете оценки внимания(Это значение обычно равно 64):
-
- Функция: когда размер модели высок, результат векторного скалярного произведения будет относительно большим.В это время из-за softmax градиент станет меньше, и обучение станет нестабильным.
Можно ли доказать эффект масштабирования?
Вспомогательный 5: Остаточные ссылки
- И уровень внимания с несколькими головками, и FFN имеют уровень остаточных соединений.
- Смысл остаточных ссылок: решить проблему исчезновения градиента глубоких сетей (оригинал), изменить форму функции потерь и сделать функцию потерь более гладкой.
Вспомогательный 6: Нормализация слоя (LayerNormalization)
- Нормализация слоя: найти среднее значение и дисперсию каждого вектора;
- BatchNom обычно используется в CV, а LayerNom используется в NLP, потому что длина предложения не фиксирована.
- Значение нормализации слоя: аналогично роли остаточной связи -> ландшафт функции потерь становится более гладким (2018 г.), а дисперсия градиента становится меньше (2019 г.)
На рисунке показаны сходства и различия BatchNormalization и LayerNormalization.
- Положение нормализации слоя важно:
-
- Для пост-ЛН градиент параметров последнего слоя удовлетворяет:
-
- Для pre-LN это (2020, Microsoft Research Asia):
Верхняя граница градиента становится меньше, и обучение становится стабильным. Но статья лишь доказывает, что важна позиция, а действие различных комбинаций проверяется одна за другой.Теоретически существует более 70 комбинаций, которые можно использовать в разных позициях.
- Положение нормализации слоя:
-
- AutoTrans предлагает использовать метод автоматического машинного обучения для поиска оптимального сочетания layerNorm;
- Например, новая конструкция трансформатора, изученная на Mutli-30k.
Советы по оптимизации сети
- многоголовый механизм внимания
- scaling
- остаточная ссылка
- Нормализация слоя
\
обзор
Конечно, одним лишь вниманием к себе нельзя завершить построение модели, поэтому нужны вспомогательные построения.
Вывод масштабирования
Часть 2 Предварительная подготовка и тонкая настройка
Предварительно обученное дерево знаний
Эпоха предварительно обученных моделей
Берт, предложенный группой Google по модели предварительного обучения, становится все больше и больше, а количество параметров уже превысило уровень 100 млн. Последний GTP3 имеет параметры уровня 10 млрд. Последний коммутатор Google Transformer является крупнейшей моделью предварительного обучения с параметры триллионного уровня.
- Предварительно обученные модели действительно способствовали развитию научных кругов и промышленности, привнеся новую парадигму НЛП (устранение проблем с маркировкой данных).
Предтренировочные задачи
Обзор Word Vectors (Word2Vec)
You shall know a word by the company it keeps! -- J.R.Firth (1957)
- Pre-BERT предварительное обучение: векторы слов
-
- Глоссарий;: Каждому слову соответствует число;
- каждое словоПри этом соответствующий один вектор;
-
- Тренируйтесь, предсказывая словарный запас соседа;
-
-
- skip-gram
- CBOW;
-
-
- Skip-gram: Формально, если,ноза словоВероятность:
s
Ограничения векторов слов:
полное значение слова всегда зависит от контекста, и ни одно исследование значения вне полного контекста нельзя воспринимать всерьез» (Дж. Р. Ферт, 1957).
- Сложность решения полиномиальных задач
- Исправлено, невозможно выразить контекст:
-
- Муравей скоро появится в списке!
- Муравьи на дереве - это вкусно!
-
- Муравьи живут группами.
\
модели на основе word2vec
- В 2017 году и ранее распространенная форма модели НЛП:
-
- Вектор слова + кодировщик (как показано ниже):
-
-
- Модель LSTM или Transformer учится извлекать контекстную информацию с помощью обучающего набора;
-
-
- Что не так с узором?
-
-
- Случайная инициализация части кодировщика сталкивается с большим давлением на оптимизатор;
- Набор данных должен быть достаточно хорошим и достаточно большим, чтобы кодировщик научился извлекать контекстную информацию;
-
\
Вызывать предтренировочные задачи
Теперь нам нужны эффективные предварительно обученные встраивания + кодировщики. Как? На что?
- Во-первых, исключить помеченные задачи и использовать большое количество неразмеченных текстовых данных;
- Неконтролируемый --> Самостоятельный контроль:
Самоконтролируемое обучение — это тёмная материя глубокого обучения (тёмную материю трудно наблюдать, но она составляет основную часть 80-95% материи во Вселенной) — Янн ЛеКун (один из большой тройки глубокого обучения )
Предварительная задача BERT — задача прогнозирования маски
Masked language modeling (MLM)
Задача предсказания маски:
(1) Замаскируйте слово (замените исходное слово символом «[MASK]»);
(2) Сеть BERT ввода предложений;
(3) Предсказать слово.
Что может быть не так с задачами предсказания маски?
- Следующая задача, например, предсказание эмоции предложения, не будет иметь [MASK];
Требуются улучшения при реализации задачи предсказания маски:
- Скрытые слова составляют лишь небольшую часть (15%) от общего количества слов в корпусе;
- В разделенных 15% ожиданиях:
-
- Небольшая часть маскируется, то есть заменяется на [MASK];
- Часть его случайным образом заменяется другими словами (еще нужно предугадать, какой здесь должен быть токен);
-
- Часть исходного слова зарезервирована (токен здесь еще нужно предсказать);
Можно обнаружить, что после обучения с этой языковой моделью bert, естественно, может выполнять некоторые задачи, такие как исправление ошибок в предложениях.
Предтренировочная задача BERT — предсказание следующего предложения
Предсказание следующего предложения (NSP)
Определите, является ли предложение B контекстом предложения A.
Таким образом, ввод предложения BERT будет иметь формат [CLS] A, отправленный [SEP], B, отправленный [SEP];
Контекстная связь сохраняется во входной нотации [CLS], а BertPooler используется для извлечения представления всей входной последовательности во время прогнозирования:
- Здесь следует отметить: не брать векторную таблицу [ ] напрямую, а пройти через модуль BertPooler, который содержит MLP, операцию tanh для получения векторного представления, а затем ввести его в слой двоичной классификации;
Токенизатор подслов Токенизация подслов
BERT tokenizer
Пример
- Предложение «включи песню, маленькая малиновка, красная грудь» становится «[CLS] включи песню, маленькая малиновка, красная ##bre ##ast [SEP]» при вводе в модель.
Зачем использовать токенизатор подслов:
- Традиционная лексика основана на английских словах, которые, как правило, велики, а обучение хвостовым словам недостаточно.
- Традиционные методы представления словарного запаса не могут обрабатывать слова с редкими позициями (проблема OOV).
- Традиционный метод токенизации слов не способствует модели, изучающей отношения между аффиксами.
-
- Например, отношения между «старым», «старшим» и «самым старым», полученные моделью, не могут быть обобщены на «умный», «умнее» и «самый умный».
- Встраивание символов слишком тонкое для решения OOV, а накладные расходы памяти высоки во время логического вывода.
- Сила подслова находится между символами слова, что может лучше сбалансировать проблему OOV.
Общие модели подслов: кодирование пар байтов (BPE), WordPiece.
Алгоритм BPE (2016):
Сформировать словарный запас:
(1) Подготовить корпус, определить ожидаемый размер словаря подслов;
(2) Разделите слова на самые маленькие единицы. Например, 26 букв английского языка плюс различные символы используются в качестве начального словарного запаса;
(3) Подсчитайте частоту пар соседних единиц в слове в корпусе и выберите пару единиц с наибольшей частотой для объединения в новую единицу подслова;
(4) Повторяйте шаг 3 до тех пор, пока: не будет достигнут размер словаря подслов, установленный на шаге 1, или максимальная частота токенов в следующей итерации не будет равна 1.
После получения словаря Subword для каждого слова мы можем использовать следующие методы для кодирования:
- Отсортировать все подслова в словаре по убыванию длины;
- Для слова w пройдитесь по отсортированному словарю по очереди. Проверить, является ли текущее подслово подстрокой слова (жадное самое длинное совпадение), если да, вывести текущее подслово и продолжить поиск оставшейся строки слова;
- Если после обхода словаря совпадений по-прежнему нет, замените оставшуюся строку выводом специального символа, например "" ;
Например:
- Предположим, что теперь в корпусе есть следующие слова (и их частоты):
- Посмотрите, как меняется размер словарного запаса на каждом этапе
Алгоритм WordPiece (метод, принятый Бертом)
Шаги для создания словаря аналогичны BPE: добавление префикса «##» означает, что токен не используется в качестве начала полного слова;
Самое большое отличие от BPE заключается в том, как выбрать два подслова для слияния: BPE выбирает для слияния соседние подслова с наибольшей частотой, а WordPiece выбирает соседние подслова, которые могут повысить вероятность присоединения языковой модели к словарю;
- Предположим, что гипотетическое предложение S = (t1, t2...tn) состоит из n токенов, и предположим, что каждое подслово существует независимо
- Языковая модель вероятности предложения: logP(S)= 21=1 P(t;)
- Если предположить, что два подслова в соседних позициях объединены, а результирующее подслово обозначено как z, изменение значения логарифмического правдоподобия в этот момент равно:
- Легко обнаружить, что изменение значения правдоподобия является взаимной информацией между двумя подсловами.
Пример WordPiece:
- Русский: Использование токенизатора без регистра на базе BERT
-
- 30522 слова; английский переведен в нижний регистр
- Например, предложение «играть песню, маленькая малиновка, красная грудь» становится [«играть», «the», «песня», «маленький», «робин», «красный», «##bre» после токенизатора слова BERT. "##аст"];
- Китайский: Google Chinese BERT-base-uncased
-
- 21128 слов;
- нечувствительный к регистру;
-
- Разделить китайский иероглиф (разделить китайский иероглиф);
- Например, предложение «Мне очень нравится песня: вчера еще раз» обрабатывается как [«Я», «очень», «счастлив», «счастлив», «один», «первый», «песня», « :" ,"yes","##ter","##day","on","##ce","more","."];
Слой встраивания Берта
- Встраиваемый слой
-
- встраивание токена;
- Встраивание сегментации;
-
- Вложение позиции;
Распространенные версии BERT
- Google открыл исходный код двух версий BERT на английском языке и одной версии BERT на китайском языке:
-
- База BERT: 12 слоев, 768 скрытых состояний, 12 головок внимания, 110 миллионов параметров.
- BERT-большой: 12 слоев, 1024 тусклых скрытых состояния, 16 головок внимания, 340 миллионов параметров.
-
- Китайский БЕРТ:
- Предтренировочный корпус:
-
- Английская модель: BooksCorpus (800 млн слов), английская Википедия (2 500 млн слов)
- Китайская Википедия: одна десятая часть английской Википедии;
- Сколько стоит предварительная подготовка?
-
- 64 TPUchips for a total of 4 days.
- Тонкая настройка выполняется относительно быстро!
задачи тонкой настройки
Тонкая настройка Дерева знаний
СОТА, принесенная БЕРТом
Нужно решить две задачи?
Q1: Как настроить?
Q2: Как сделать FineTurn лучше?
Тонкая настройка BERT: задача классификации предложений
Sentence Classification
Задача классификации:
- Классифицировать тексты на категории по определенным правилам;
- Задача классификации текста имеет широкий спектр сценариев применения:
-
- Анализ настроений: комментарий, мнение/диалог, понимание
- Тематическая категория: Новости, общественное мнение/научные статьи
-
- Распознавание намерений: сценарии поиска/сценарии диалога
- Управление контентом: идентификация дискриминационного контента/идентификация нарушающего контента/дискриминация, идентификация насилия и другого контента
-
- ...
- Задача классификации — тонкая настройка:
-
- Как сделать? Это в основном согласуется с предсказанием верхних и нижних предложений.
- Ввод для предложения: [CLS]A send[SEP].
-
- Как представление предложения преобразуется в вектор?
-
-
- BertPlooler: векторное представление [CLS] через MLP, операцию tanh для получения векторного представления, а затем ввод на уровень множественной классификации;
- Другие операции объединения; [макс., среднее, внимание, капсула]
-
Классификация пар предложений
- сцена переписывания предложения
- Вопросы и ответы/Сценарии поиска
Тонкая настройка для задач классификации:
- Функция потерь:
-
- Функция кросс-энтропийных потерь (CE)
- Принцип тонкой настройки ничем не отличается от общего обучения сети;
Огромные дивиденды от тонкой настройки задач классификации текста:
Тонкая настройка BERT: задача маркировки последовательности
Sequence labeling
Задача маркировки последовательности:
- Чтобы последовательность была помеченамы должны дать каждомуПредсказание - тег (тег);
- Сначала определите набор тегов как;
- Сегментация китайских слов: определяется как {Начало, Середина, Конец, Одиночное};
-
- Например, «Синергический нейробиологический эффект генов риска» подразделяется на: синергетический нейробиологический эффект генов риска, который трансформируется в задачу маркировки последовательности: риск/В риск/Е ген/В причина/Е синергия/В Тонг/Е /S Бог/B Сутра/E Здоровье/B Материал/M Наука/E Работа/B Использование/E.
- Распознавание именованных сущностей: маркируйте сущности в предложениях; используйте режим аннотаций BIO; типы сущностей включают {PER, ORG}
-
- Например, Joe/B-PER Cloth/I-PER S/I-PER Job/O Job/O In/O Apple/B-ORG Fruit/I-ORG Company/I-ORG Company/I-ORG;
- Тегирование части речи, POS: выделение частей речи слов, использование режима тегирования BIO;
-
- Дано E.g..jieba: I/B-r в/B-p север/B-ns пекин/-ns дней/B-ns ан/-ns ворота/l-ns
задача маркировки последовательности
- Формат ввода: [CLS] A отправлено [SEP]
- Метод 1: векторное представление каждого токена проходит через линейный слой + softmax;
- Метод 2: Уровень CRF позволяет избежать проблемы «B-PER, I-ORG», изучая режим передачи между тегами;
Тонкая настройка BERT: задача классификации отношений
relation classification
Задача классификации отношений:
- Извлекать структурированные знания из неструктурированного текста, в частности различать семантические отношения между головными и хвостовыми элементами;
- Значение: построение графа знаний.
- метод первый:
-
- BERT представляет предложения;
- Получите векторное представление двух объектов: представление нескольких слов объекта получается путем объединения;
-
- Векторы сущностей головы и хвоста соединяются, а затем классифицируются по линейному слою;
- Способ второй:
-
- Добавьте реляционное кодирование позиции на уровень внедрения BERT.
Способ 3: добавьте в предложение новый определенный символ, чтобы указать положение объектов головы и хвоста; символ использует [unused1]
Предварительное исследование проблемы несбалансированных проб
Sentence label task
Пример несбалансированного сценария:
- Закон Зипа: в корпусе естественного языка частота слова обратно пропорциональна его рангу в частотной таблице.
- В сценарии с двумя категориями количество положительных случаев невелико: например, в тесте на нуклеиновые кислоты всех сотрудников количество положительных случаев чрезвычайно мало.
- Повторная выборка: если предположить, что C — это количество классов в наборе данных, а n — это количество выборок в классе i, то вероятность выборки выборки из класса i:
-
- выборка, сбалансированная по экземплярам: каждая выборка отбирается с равной вероятностью, т. е.
-
- Выборка, сбалансированная по классам: вероятность того, что будет выбран каждый класс, равна
-
- Общая передискретизация (resampling), предполагающая,
- Повторное взвешивание: в качестве примера возьмем бинарную классификацию.
-
- Нормальная кросс-энтропийная потеря:
- Управляйте вкладом выборок класса меньшинства в общую потерю, добавляя разреженность:
-
- Фокусная потеря [CV 2017, обнаружение цели] + повторное взвешивание категорий: