ACL 2023 | Модели языковых основ в непрерывном развитии

Хотя сегодняшние модели ИИ уже способны понимать естественный язык, исследователи не прекращают совершенствовать модели и изучать теории. Технологии в области обработки естественного языка (NLP) всегда быстро меняются и развиваются, назревают новые тренды и прорывы.

Ежегодное собрание Ассоциации компьютерной лингвистики (ACL), ведущая научная конференция в области НЛП, является ключевым окном для исследователей, занимающихся НЛП, для наблюдения за тенденциями. На ACL 2023, проходившем в Торонто, Канада, 9-14 июля 2023 г., Microsoft Research Asia представила несколько документов по базовым моделям, включенным в ACL 2023. Темы документов включают механизмы контекстного обучения крупномасштабных моделей, методы обучения и коды моделей. , Выполнение и экстраполяция длины модельной задачи. Давайте сегодня посмотрим на 4 родственные пограничные работы.

Архитектура Transformer, поддерживающая экстраполяцию длины

Ссылка на документ: https://arxiv.org/abs/2212.10554

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

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

Во-вторых, чтобы повысить эффективность логического вывода, исследователи внедрили технику блочного маскирования. Разделив входную последовательность на фрагменты и применив маску к каждому фрагменту, исследователи смогли снизить вычислительную сложность и, таким образом, увеличить скорость обработки. Такой подход значительно снижает требования к вычислительным ресурсам при сохранении производительности модели. Объединив эти две конструкции, получается новая архитектура — Экстраполируемый по длине трансформатор (Length-Extrapolatable Transformer).

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

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

На основе предварительно обученной модели выполнения кода

Ссылка на статью: https://arxiv.org/abs/2305.05383

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

Исследователи вводят код в модель, позволяют модели шаг за шагом «выполнять» программу и выводят текущий номер выполняемой строки и значения всех локальных переменных, как показано на рисунке ниже:

Рисунок 1: Образец данных. (a) — это фрагмент кода Python. (b) — это соответствующая трассировка выполнения кода, включая строку с номером строки, выполняемую в данный момент, и состояние значений всех локальных переменных после выполнения.

Чтобы модель шаг за шагом изучала выполнение кода, изучаемые наборы данных варьируются от однострочных кодов до примеров кода официального руководства Python до кодов вопросов алгоритма, что позволяет модели учиться от простого к сложному. Основываясь на мутационном тесте в области разработки программного обеспечения, исследователи также использовали более десяти видов мутаций для улучшения данных в коде, надеясь более полно обучить модель, и в итоге получили в общей сложности 13 миллионов кодов и путей их выполнения. в трех наборах данных.

На основе модели предварительного обучения кода SOTA UniXcoder исследователи использовали стратегию обучения по курсу, чтобы продолжить обучение задачам выполнения кода. По сравнению с моделью Codex, которая имеет в 100 раз больше параметров, но не обучена выполнению кода, CodeExecutor достиг высокой степени точности выполнения задачи выполнения простых программ и имеет возможность «выполнять» более сложные коды алгоритмов. . Результаты обученной модели CodeExecutor на трех наборах тестов показаны в таблице 2.

Таблица 2: Экспериментальные результаты, SingleLine, Tutorial и CodeNetMut — три набора данных от простого к сложному, CEL-Si — это модель, обученная на i-м наборе данных соответственно, без CL не использует обучение по курсу в трех обученных моделях вместе в наборе данных.

Исследователи вручную проанализировали 50 фрагментов данных в CodeNetMut и обнаружили, что модель в основном понимает поток управления в коде, а предсказание траектории выполнения циклов и ветвей относительно точное, но сложно выполнять сложные структуры данных, например, массивы и символы.Операции со строками.

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

PICL: Изучение того, как проводить контекстное обучение перед обучением

Ссылка на статью: https://arxiv.org/abs/2305.09137

С развитием крупномасштабных моделей предварительного обучения контекстное обучение постепенно привлекало внимание, поскольку оно не требует тонкой настройки модели и может достигать лучших результатов только с небольшим количеством образцов. Предыдущие работы в основном пытались выполнить метаобучение на последующих наборах данных, чтобы улучшить возможности контекстного обучения, но этот метод часто ограничен количеством и разнообразием искусственных данных и вносит предвзятость в форме ввода/вывода. Поэтому в этой статье предлагается напрямую расширить возможности контекстного обучения модели на этапе предварительного обучения и предлагается новая структура предварительного обучения: PICL.

Структура PICL основана на естественном наблюдении: отрывки естественного текста естественным образом содержат «внутренние задачи». Например: «Сегодня я очень счастлив, потому что Аргентина выиграла чемпионат мира». Если абзацы с одинаковыми «внутренними задачами» сгруппированы вместе, модель может использовать эти задачи для «метаобучения» контекстуального обучения. Преимущество в том, что образцы «внутренней задачи» берутся из естественных текстовых пассажей с меньшим уклоном в виде ввода/вывода и достаточно разнообразны. Чтобы собрать отрывки с одной и той же «внутренней задачей», исследователи обучили средство извлечения, используя различные последующие задачи, для извлечения текста, относящегося к одной и той же задаче, а затем применили средство извлечения к предварительно обученному корпусу для любого естественного ввода текста, извлекая абзацы, содержащие одну и ту же «внутреннюю задачу». Наконец, извлеченные абзацы объединяются в форму контекстного обучения, а простая цель языковой модели используется для предварительного обучения на объединенных образцах.

Рис. 2. Слева — пример «внутренних задач» в крупномасштабном текстовом корпусе OpenWebText. Справа схематическая диаграмма PICL framework.

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

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

Ссылка на статью: https://arxiv.org/abs/2212.10559

Ссылка на код: https://aka.ms/icl

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

Несмотря на большой успех с точки зрения производительности, как работает контекстное обучение, остается неразгаданной загадкой. В этой статье исследователи интерпретируют языковую модель как метаоптимизатор и понимают контекстное обучение как неявный процесс тонкой настройки. Исследователи впервые обнаружили, что механизм внимания и оптимизация на основе градиентного спуска в Transformer имеют двойную форму. Исходя из этого, исследователи понимают контекстное обучение как процесс: GPT сначала генерирует метаградиенты на основе демонстрационных образцов, а затем применяет эти метаградиенты к исходному рабочему процессу модели GPT с помощью механизма внимания, таким образом, чтобы достичь цели контекстного обучения. . Исследователи предоставляют эмпирические доказательства этого понимания, всесторонне сравнивая поведение контекстного обучения и явной тонкой настройки на реальных задачах НЛП.

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

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

Supongo que te gusta

Origin blog.csdn.net/helendemeng/article/details/131706267
Recomendado
Clasificación