Deep learning for NLP (RU)
545 subscribers
42 photos
4 files
65 links
Применение методов машинного обучения и глубокого обучения (ML/DL) к обработке естественного языка (NLP).

Конспекты к избранным статьям, описание концепций и основ ML/DL, а также последние новости в этой области.

Контакт: @edwardnlp
Download Telegram
Learning multiple visual domains with residual adapters

На изображении показана стандартная остаточная нейронная сеть (residual network), в которую встроены модули-адаптеры (отмечены синим)

Источник: https://arxiv.org/pdf/1705.08045.pdf

Заметки:
- Современные ResNets (и другие ANN) огромны. Настройка (fine-tuning) всей сети под какие-то конкретные задачи очень неэффективна и дорогая;
- В статье предлагаются остаточные модули-адаптеры (residual adapter modules), которые будут обучаться определенным шаблонам, формам и т. д.;
- Эти адаптеры обучаются под конкретные задачи;
- Настройка нейронной сети имеет тенденцию быстро забывать исходные задачи. При использовании адаптеров исходная сеть остается неизменной, поэтому задача не забывается.

Преимущества подхода:
- Можно подключать и отключать адаптеры, чтобы приспособить сеть к конкретным задачам;
- Обучение адаптеров для небольших задач обеспечивает простой способ управления переобучением модели (overfitting).
#публикация #adapters #resnet #convolutions
image.png
54.9 KB
Parameter-Efficient Transfer Learning for NLP

Модули-адаптеры встраиваются в модель Трансформера дважды, после каждого слоя Трансформера (отмечены желтым). Целью этих модулей является понимание как нужно преобразовать выход исходной языковой модели, чтобы настроить её под конкретную задачу.

Источник: http://proceedings.mlr.press/v97/houlsby19a/houlsby19a.pdf

Заметки:
- Авторы приспосабливают модель BERT Transformer на 26 разнообразных задач классификации текста, включая бенчмарк GLUE;
- Адаптеры достигают почти state-of-the-art производительности, добавляя лишь небольшое количество параметров для каждой задачи. В GLUE они почти достигают fine-tune производительности, уступая лишь на 0,4%, при этом добавляя и тренируя только 3,6% параметров всей сети;
- Для ограничения количества параметров авторы предлагают архитектуру горловины (bottleneck) для модулей-адаптеров (делается проекция на меньшую размерность);
- Адаптер всегда применяется непосредственно к выходу подслоя.
#публикация #adapters #transformer
image.png
78.6 KB
MAD-X: An Adapter-Based Framework for Multi-Task Cross-Lingual Transfer

Фреймворк MAD-X внутри модели Transformer.

Источник: https://aclanthology.org/2020.emnlp-main.617.pdf
Сайт: https://AdapterHub.ml
Метод:
На немаркированных данных целевого языка, происходит fine-tune пред-обученной многоязычной модели с помощью задания masked language modelling (MLM). Затем модель будет снова дообучена под конкретную задачу на целевом языке.
Заметки:
- Фреймворк MAD-X включает в себя 3 типа адаптеров: языковые, задаче-специфичные и инверсивные;
- Языковые адаптеры, обучены на неразмеченных данных с использованием MLM. Эти адаптеры изучают преобразования, которые делают пред-обученные многоязычные модели подходящими для работы с определенным языком;
- Задаче-специфичные адаптеры предназначены для понимания специфики задач, вне зависимости от языка;
- Инвертируемый адаптер имеет функцию, аналогичную языковому адаптеру, но предназначен для понимания преобразований на уровне токенов.
#публикация #adapters #transformer
Towards a unified view of parameter-efficient transfer learning

https://telegra.ph/file/b49e565a2377494be57ee.png

Источник: https://arxiv.org/pdf/2110.04366.pdf
Код: https://github.com/jxhe/unify-parameter-efficient-tuning

Заметки:
- В статье авторы пытаются сравнить разные методы переноса обучения модели (transfer learning) и попытаться понять, есть ли что-то общее во всех методах;
- Для проведения экспериментов создан фреймворк, который обобщает существующие методы. Код доступен на GitHub;
- Сравнение проводится между следующими методами: адаптер, префиксное обучение, LoRa (внедрение низкоранговых матриц), параллельный адаптер, масштабированный параллельный адаптер и параллельный адаптер с несколькими головами;
- Архитектура параллельного адаптера предложена авторами публикации;
- Все методы дают сопоставимые результаты с полным fine-tune даже при обучении всего 1% параметров модели;
- Сравнивая префиксное обучение и адаптеры, при небольшом количестве обучаемых параметров (<5%) префиксное обучение превосходит адаптеры, но с увеличением количества обучаемых параметров адаптеры превосходят префиксное обучение;
- Масштабируемый параллельный адаптер - лучший и самый эффективный вариант модификации FFN.

#публикация #adapters #transformer #transfer_learning
Prefix-Tuning: Optimizing Continuous Prompts for Generation

📝Публикация
⌨️Код
💡Метод:
Добавить в начало каждого слоя языковой модели (LM) обучаемые параметры. Вход и выход также имеют дополнительные токены, описывающие задачу. Идея пришла из метода подсказывания задачи для GPT-3, где вы можете ввести текст и добавить инструкцию задачи (например, TL; DR для обобщения текста). Модель выдаст краткое изложение текста.
🗒️Примечания:
- Метод превосходит fine-tuning в условиях малого объема данных;
- Изменяя только 0,1% параметров, prefix-tuning обеспечивает сравнимую производительность с полным fine-tune;
- Простая подсказка задания, как для GPT-3, не работает на моделях среднего размера, таких как GPT-2 или BART;
- Метод пытается перенаправить LM на задачу генерации естественного языка (NLG);
- Prefix-tuning (с использованием 0,1% параметров) сравнима с adapter-tuning (с использованием 3% параметров), но использует меньше параметров.
#публикация #adapters #prefix_tuning #transformer #transfer_learning
1👍1
AdapterFusion: Non-Destructive Task Composition for Transfer Learning

🔗 Ссылка: https://doi.org/10.48550/arXiv.2005.00247
🧠 Авторы: Jonas Pfeiffer et al
Год: 2020
⌨️ Код: https://adapterhub.ml

Новый 2-этапный алгоритм обучения для моделей на основе адаптеров. Вначале извлечение знаний: обучение модулей-адаптеров для конкретных задач. Затем композиция знаний: объединение нескольких адаптеров и обучение слоя слияния (fusion layer).

🧪 Эксперименты:
- Во время экспериментов в качестве базовой модели используется BERT-base-uncased model (всего 110M обучаемых параметров);
- Метод оценивается на 16 наборах данных и на различных задачах понимания естественного языка (NLU);
- Результаты метода сравнимы с полным fine-tune и даже превосходят его на некоторых наборах данных.

🗒 Заметки:
- В новые слои встраиваются в архитектуру трансформера;
- Метод решает проблемы катастрофического забывания и уравновешивания различных задач;
- Слой слияния позволяет обмениваться информацией между задачами;
- Модули-адаптеры используют архитектуру свёрточных сетей;
- Слой слияния использует архитектуру внимания (attention);

https://telegra.ph/file/5884ff9f3e73bbdd2fb88.png

#публикация #adapters #transformer #transfer_learning
👍3
Адаптивные адаптеры

📷 Рисунок
🔗 Ссылка
⌨️ Код
🧠 Авторы: Nafise Sadat Moosavi et al
Год: 2022

Новая модификация модулей-адаптеров. Авторы используют Rational Activation функцию, которая меняет функцию активации в зависимости от входных данных и слоев адаптера. Затем каждый выход с каждого слоя адаптера передается на слой softmax для выбора только значимой информации.

🧪 Эксперименты:
- В качестве базовой модели используется BERT-large, у которого 340 миллионов обучаемых параметров;
- В экспериментах используются несколько режимов. Режим с полными данными, и с малым количеством данных;
- Для экспериментов использовались различные наборы данных для классификации текстов;
- Авторы сравнивают модели адаптивных адаптеров со стандартной конфигурацией модуля-адаптера Pfeiffer из AdapterHub;
- Адаптируемые адаптеры работают на уровне или даже лучше, чем базовые адаптеры, но используют почти в 2 раза меньше обучаемых параметров. Разница более существенна в экспериментах с малым объемом данных;
- Эксперименты с различными архитектурами показывают, что наибольший прирост производительности происходит из-за замены стандартной функции активации на рациональную активацию.

🗒 Заметки:
- Функции из семейства ReLU обычно используются для визуальных вычислений на основе нейронных сетей, Tanh используется в алгоритмах Proximal Policy Optimization (PPO) для обучения с подкреплением (reinforcement learning), а GeLU постепенно внедряются в трансформеры.
- Для ускорения работы сети используются многие подходы к дистилляции и сокращению модели или уменьшению размера сети по требованию. Авторы предлагают более систематический подход к выбору полезных слоев адаптера с использованием функции оценивания Gumbel Softmax.

#публикация #adapters #transformer #transfer_learning
👍2
Хотите знать, как начать использовать адаптеры? Очень просто! Просто добавьте несколько строк кода в существующий обучающий код HuggingFace:

```
from transformers import ParallelConfig

# Загрузите модель из HuggingFace.
model = AutoModelForTokenClassification.from_pretrained(model_checkpoint)

# Выберите тип адаптера. Больше конфигураций адаптеров можно найти здесь
# Не уверен в чем разница между адаптерами? Можешь использовать тег #adapters для поиска по каналу и найти особенности многих типов адаптеров.
adapter_config = ParallelConfig()

model.add_adapter("any_name_of_the_task", config=adapter_config)
model.set_active_adapters("any_name_of_the_task")
model.train_adapter("any_name_of_the_task")

# Дальше тренируй модель HuggingFace как обычно.
```

Полностью работающий пример использования адаптера можно найти здесь. В примере используется задание Part-of-speach tagging (#pos)

#adapters #tutorial
👍8
Не уверены, как использовать адаптеры в ваших экспериментах? Основное преимущество заключается в вычислениях с малым объемом вычислительных ресурсов, т. е. когда у вас ограниченны физические ресурсы или бюджет.

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

На изображении результаты экспериментов с использованием адаптеров для определения частей речи.
Примечание: Эксперименты проводились с использованием Tesla V100, 16 ГБ.

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

#adapters #pos #experiments
👍3👎1
🔗 Публикация
🔗 Руководство
🧠 Авторы: Sebastian Ruder, Jonas Pfeiffer, Ivan Vulić и Edoardo M. Ponti
Year: Февраль 2023

Авторы выпустили новое руководство, которое предлагает общую классификацию фундаментальных компонентов модульных нейронных сетей.

Ожидается, что в нынешнюю эпоху крупномасштабных языковых моделей (large-scale language models) модульность будет играть ключевую роль. Это связано с тем, что разбивая нейронные сети на независимые компоненты, можно создавать более устойчивые модели, которые устраняют текущие ограничения и могут использоваться в различных архитектурах.

Таксономия модульных подходов основывается на четырех аспектах обучения моделей:
1. Вычислительная функция: как реализован модуль.
2. Функция маршрутизации: как выбираются активные модули.
3. Функция агрегирования: каким методом выходные данные активных модулей складываются вместе.
4. Настройка тренировки: как обучаются модули.

#tutorial #transfer_learning #adapters

@deep_learning_nlp_ru
👍7