gonzo-обзоры ML статей
24.4K subscribers
3.03K photos
3 videos
3 files
1.49K links
Авторы:
Гриша Сапунов, ранее руководитель разработки Яндекс-Новостей, ныне CTO Intento. Области интересов: AI/ML/DL, биоинформатика.
Лёша Тихонов, ранее аналитик в Яндексе, автор Автопоэта, Нейронной Обороны... Области интересов: discrete domain, NLP, RL.
Download Telegram
Всем привет!

Как-то постепенно из моих выступлений про трансформеры набрался почти уже мини-курс :)

0. Лекция про трансформеры из курса, который я читал в магистратуре ВШЭ для биоинформатиков (https://github.com/che-shr-cat/deep-learning-for-biology-hse-2019-course).

Лекция:
https://www.youtube.com/watch?v=uP_aL_78BcY

Слайды:
https://github.com/che-shr-cat/deep-learning-for-biology-hse-2019-course/blob/master/slides/%2312.%20Transformers.pdf

1. Transformer Zoo — рассказ про разнообразие трансформеров и их применений
https://www.youtube.com/watch?v=KZ9NXYcXVBY

2. Transformer Zoo (a deeper dive) — более глубокий рассказ про архитектуру и что в ней можно варьировать
https://www.youtube.com/watch?v=7e4LxIVENZA

3. Свежий рассказ про трансформеры в 2021 году
https://www.youtube.com/watch?v=8dN6ZVnDArk

Ссылки на слайды во всех выступлениях есть либо в комментариях, либо в описании.
1
Scaling Language Models: Methods, Analysis & Insights from Training Gopher
Авторы: Jack W. Rae, и множество других
Статья: https://storage.googleapis.com/deepmind-media/research/language-research/Training%20Gopher.pdf
Пост в блоге: https://deepmind.com/blog/article/language-modelling-at-scale
Кода нет, модели нет, датасета нет :(

Мы ждали в этом году GPT-4 от OpenAI, а вместо неё вчера DeepMind опубликовала статью про Gopher, свою большую модель с той же архитектурой, что и GPT-3, но в 1.6 раза более тяжёлую. Как и GPT-3, Gopher это семейство моделей: 44M, 117M, 417M, 1.4B, 7.1B, 280B (у GPT-3 самая тяжёлая была 175B, https://t.me/gonzo_ML/305).

На самом деле модель была обучена ещё в ноябре-декабре 2020, то есть год назад, но статья вышла только сейчас.

Авторов много, но пользуясь случаем передаю привет Коле Григорьеву :)

Архитектура заявлена практически как у GPT-2, но с двумя модификациями: RMSNorm вместо LayerNorm, да относительные позиционные эмбеддинги вместо абсолютных (что по идее позволяет оцениваться на последовательностях длиннее, чем были в обучении).

Текст токенизируется SentencePiece (32К словарь, у GPT-3 было 50К) с backoff до отдельных байтов, чтобы можно было работать с любым словарём. Размер контекста 2048, обучали Adam (что интересно, пробовали Adafactor, но не взлетело, оказался менее стабильным и итоговое качество давал хуже) с ухищрениями в виде прогрева и косинусного затухания.

Код модели на JAX (ну точно уже стал фреймворком №3, а дальше имеет шансы и обойти сладкую парочку TF/PyTorch, подробнее про JAX тут https://moocaholic.medium.com/jax-a13e83f49897), обучали на TPUv3.

Активно использовали формат bfloat16 (https://moocaholic.medium.com/fp64-fp32-fp16-bfloat16-tf32-and-other-members-of-the-zoo-a1ca7897d407).

Датасет собрали свой под названием MassiveText, куда замешали разные другие датасеты (MassiveWeb, Books, C4, News, Wikipedia и GitHub -- да-да, код). Всё тщательно пофильтровали, дедуплицировали, убрали повторы текста, порнографию, всячески упирали на качество датасета (что помогло). Всего датасет получился на 2.35B документов и примерно 10.5Тб текста. Обучали на 300B токенов, что примерно 12.8% всего датасета (ну то есть полностью по датасету не прошлись и раза), для этого сабсэмплили с заданными отдельно пропорциями.

Обучили, проверили на 152 задачах, взяли бейзлайны в виде GPT-3 (175B), Jurassic-1 (178B) и Megatron-Turing NLG (530B).

На 100 из 124 задач языкового моделирования Gopher лучше всех, бьёт GPT-3 и Jurassic-1.

На reading comprehension в лице RACE-m и RACE-h, экзамены middle- и high-school с задачами на множественный выбор, Gopher существенно превзошёл GPT-3 и Megatron-Turing NLG. До человека или до ансамблированной supervised модели не дотягивает, но зато сравним с Amazon Turk. Авторы считают, что здесь заслуга и размера модели, и датасета.

На commonsense reasoning Megatron-Turing NLG несколько обходит Gopher’а, но в целом все далеки от человека. Есть ещё где улучшаться!

На датасете FEVER для факт-чекинга обошёл supervised SOTA.

На корпусе задач MMLU (57 штук, вопросы экзаменов по разным дисциплинам) Gopher с 60% обошёл GPT-3 (43.9%) и зафайнтюненный T5 (48.9%, правда в 20+ раз меньшего размера), а также среднего человека (34.5%, кто этот средний, интересно, что лишь немногим выше рандома в 25%?), но до среднего эксперта с 89.8% далеко. Что интересно, оценки попали между предсказаниями на июнь 2022 и 2023 годов, то есть прогресс быстрее, чем ожидали спецы по прогнозированию (что, кстати, уже не в первый раз, когда реальный прогресс идёт быстрее, чем думают https://bair.berkeley.edu/blog/2021/10/14/forecasting/).

Отдельно авторы померяли, что даёт именно размер модели, когда датасет и число токенов в обучении строго одинаковые, но размер меняется. При сравнении 280B модели с 7.1B хорошо видны улучшения. Они почти везде, но всё-таки не везде (на abstract algebra, temporal sequences и high school math).
👍1
Интересно, что на TruthfulQA Gopher первый, кто улучшает результат от увеличения размера модели. GPT-2, 3, J и T5 наоборот деградируют. И вообще модель с 280B первая, кто существенно превосходит случайное угадывание.

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

Bias’ы ожидаемо присутствуют, рост модели их не устраняет. Из интересного, качество модели на малопредставленных в датасете диалектах (African American) хуже на всех размерах модели.

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

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

Попробовали разные варианты файнтюнинга: полный, верхние 40% слоёв или только смещения. Для заданного вычислительного бюджета файнтюнинг полной модели работает лучше.

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

Сделали прунинг, классический на основе магнитуды весов, но особого профита не получили. Также попробовали динамическое разреженное обучение RigL (https://t.me/gonzo_ML/204), также получили минимальный профит.

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

Неплохо сработало то, что авторы называют warm starting, когда начинают с маленькой модели, а потом её расширяют, каким-то образом заполняя новые веса — лучше всего сработала процедура, когда с увеличением глубины слои реплицируют, а с увеличением ширины делают tiling (больше деталей в приложении G.3.3). Это сработало лучше, чем новая инициализация, с сохранением распределения или же очень малыми значениями для сохранения поведения модели.

Это вот интересный блок подходов, здесь ещё явно поле непаханное.

Отдельная работа (https://deepmind.com/research/publications/2021/improving-language-models-by-retrieving-from-trillions-of-tokens) посвящена другому интересному ответвлению — специальному варианту языковой модели под названием Retro (Retrieval-Enhanced Transformer), которая умеет делать conditioning на куски текста, поднятые из обучающего датасета по похожести на входную последовательность.

Короче, результат интересный, но для нас, простых смертных, до кого эта модель скорее всего ни в каком виде не долетит, ограниченно полезный. Из Gopher’а foundation model не получится, останется в закромах. Хотя всё про масштабы скейлинга всё равно ценно.
👍1
ExT5: Towards Extreme Multi-Task Scaling for Transfer Learning
Vamsi Aribandi, Yi Tay, Tal Schuster, Jinfeng Rao, Huaixiu Steven Zheng, Sanket Vaibhav Mehta, Honglei Zhuang, Vinh Q. Tran, Dara Bahri, Jianmo Ni, Jai Gupta, Kai Hui, Sebastian Ruder, Donald Metzler
Статья: https://arxiv.org/abs/2111.10952
Код: https://github.com/google-research/text-to-text-transfer-transformer
Модель: вроде как нет

В семействе трансформеров T5 пополнение. Уже были базовый T5 (и улучшенный T5.1.1, https://github.com/google-research/text-to-text-transfer-transformer/blob/main/released_checkpoints.md#t511), мультиязычный mT5 (https://t.me/gonzo_ML/442), байтовый byT5 (https://arxiv.org/abs/2105.13626), а теперь вот мультизадачный ExT5. Следующим должен стать мультиязычный мультизадачный, а там и до байтового мультизадачного мультиязычного недалеко.

Семейство T5 в целом как-то недооценено. И вообще почему-то полные encoder-decoder трансформеры недооценены, что T5, что семейство BART (https://t.me/gonzo_ML/153). Топ применений, кажется, собрали половинки трансформеров, или энкодеры (семейство BERT), или декодеры (семейство GPT, https://t.me/gonzo_ML/305). Хотя полные трансформеры в принципе более богаты, так как декодер полного трансформера имеет возможность “смотреть” на эмбеддинги энкодера через encoder-decoder self-attention (а в чистом декодере типа GPT этот блок выпилен), а это как бы увеличивает эффективный attention span и в трансформер можно загнать больше данных. И кроме того полная архитектура позволяет комбинировать разные энкодеры и декодеры, в том числе и архитектурно различные, если надо.

Мультизадачное обучение — это очень прикольная область. Из предыдущих экспериментов мы неоднократно слышали, что с одной стороны дополнительные задачи помогают улучшить качество решения имеющихся задач, причём, положительный эффект дают порой совершенно не связанные друг с другом задачи, как было, например, в любопытной работе “One Model To Learn Them All” (https://arxiv.org/abs/1706.05137, кстати, её авторами являются авторы исходной работы про трансформеры, появившейся одновременно с этой, но трансформеры эту работу затмили). В этой работе задаче парсинга, например, неожиданно помогали задача классификации картинок ImageNet, а также (более ожидаемо) задачи машинного перевода и описания картинок. С другой стороны не редкость и случай негативного трансфера, когда одни задачи мешают другим.

В текущей работе авторы заходят со стороны ещё большего мультитаскинга, чем обычно. Для этого они собрали датасет ExMix (Extreme Mixture), включающий 107 различных supervised NLP задач и 18М примеров суммарно. Это примерно в два раза больше, чем в предыдущем самом большом исследовании. Авторы считают, что несмотря на возможный негативный трансфер, большой и разнообразный датасет лучше, чем дорогой процесс курирования датасета и поиска лучшей комбинации задач.

Напомним, что для T5 все задачи (что перевод, что классификация, что регрессия) формулируются в виде seq2seq задач трансформации одной последовательности в другую с обычным кросс-энтропийным лоссом. Это позволяет избавиться от специализированных голов и лоссов под разные задачи, а также прочих ухищрений.

Задачи ExMix грубо делятся на следующие семейства: классификация одиночного сегмента, natural language inference по двум сегментам, reading comprehension, closed-book QA, commonsense reasoning, semantic parsing, dialogue, summarization, но также есть ещё по мелочи и другие типы задач, перенос стиля, например.

Собственно ExT5 предобучается на миксе из supervised задач ExMix и self-supervised задачи span denoising на датасете C4. При обучении задачи выбираются пропорционально размерам индивидуальных датасетов с отсечкой сверху, чтобы слишком тяжёлые датасеты не доминировали.