gonzo-обзоры ML статей – Telegram
gonzo-обзоры ML статей
24.1K subscribers
2.72K photos
2 videos
3 files
1.34K links
Авторы:
Гриша Сапунов, ранее руководитель разработки Яндекс-Новостей, ныне CTO Intento. Области интересов: AI/ML/DL, биоинформатика.
Лёша Тихонов, ранее аналитик в Яндексе, автор Автопоэта, Нейронной Обороны... Области интересов: discrete domain, NLP, RL.
Download Telegram
Not All Memories are Created Equal: Learning to Forget by Expiring
Sainbayar Sukhbaatar, Da Ju, Spencer Poff, Stephen Roller, Arthur Szlam, Jason Weston, Angela Fan
Статья: https://arxiv.org/abs/2105.06548
Code: https://github.com/facebookresearch/transformer-sequential (плюс там же код для недавно обсуждавшегося Feedback Transformer)

Прикольная работа от хороших авторов в тему трансформеров с памятью.

Много свежей движухи в стане трансформеров направлено на увеличение attention span (все эти Big Bird, Longformer, Reformer и т.п.) и/или добавление памяти (Compressive Transformer и другая экзотика). Но, как известно, не все йогурты одинаково полезны. Мало увеличивать span и добавлять больше памяти, надо уметь и забывать ненужное и освобождать память.

Данная работа посвящена именно этому и идейно во многом является продолжением линий Adaptive Attention Span (тех же авторов, https://news.1rj.ru/str/gonzo_ML/99) и Compressive Transformer (DeepMind, https://news.1rj.ru/str/gonzo_ML/165).

Adaptive Attention Span позволял адаптивно определять этот самый span для каждой головы внимания независимо и не считать внимание по большим окнам, где это не надо. Compressive transformer перегонял в долгую память репрезентации, уходящие из обычного поля зрения, но делал это довольно топорно.

Суть текущей работы, Expire-Span, в том, что давайте считать внимание не по всем элементам какого-то окна (attention span), а только по тем, которые “не забылись”. Тогда и окно можно сделать сильно больше, если в нём не так много ключевой информации, которую надо помнить. В данной работе attention span доходит до 128К токенов, что, кажется, рекорд. Фокусируются на декодерах.

Технически это работает так. Для каждой репрезентации токена (hidden state) мы имеем предиктор (по сути однослойная сетка с сигмоидой), дающий значение expiration value — как долго (сколько шагов по времени) эту репрезентацию нужно помнить. Как только элемент выходит из этого окошка, он “забывается” и не участвует далее в вычислении весов внимания. Количество элементов, участвующих в этом вычислении, называется размером памяти (C).

Окошко памяти сделано по аналогии с работой про adaptive attention span без резкого перепада, а как soft mask, в нём есть участок длины R (гиперпараметр), где вес элемента линейно спадает от единицы до нуля. Это чтобы был нормальный участок, откуда бы поступали градиенты на обучение этого механизма.

Лосс функция содержит дополнительный терм, уменьшающий средний размер используемой памяти C.

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

В работе указано много тонкостей имплементации. Среди них, например, есть абзац про регуляризацию памяти, когда при обучении для каждого батча случайным образом определяется число l<L (максимальный span) и память дальше этого l зануляется. Это чтобы модель не рассчитывала, что память всегда будет содержать специфическую информацию. Есть чувство, что это можно было бы назвать memory dropout и посвятить ему отдельную статью. А тут скромно абзац внутри текста.

Для сравнения бейзлайнами взяты Transformer-XL, Adaptive-Span и Compressive Transformer. Expire-Span демонстрирует очень хорошие результаты.

На задачке с коридором (когда в начале коридора есть цветное пятно, говорящее, в каком из поворотов в конце коридора будет награда, а коридор может быть длинным, так что помнить надо долго) ощутимо бьёт XL даже при малом объёме памяти (что логично, для такой задачи её как раз нужно мало). Есть задача навигации по нескольким комнатам с порталами (надо помнить, какой портал где правильный) и задача про длинные текстовые инструкции для игры, которые надо запоминать и в нужном месте использовать. Тут тоже лучше, чём XL.

Есть задача копирования последовательности, когда идёт сколько-то символов A, потом много B, и потом надо скопировать то самое количество A. Чем больше span, тем лучше работает (до 128К).
Языковое моделирование на Enwik8 дало новую SoTA, побив в том числе и Compressive Transformer.

На PG-19 качество сравнимое с Compressive Transformer, но существенно быстрее.

Есть и другие задачи, где модель ведёт себя достойно.

Что ценно, кроме высокого качества, модель ест меньше памяти, чем Adaptive-Span или Compressive Transformer, а также стабильно быстрее их на обучении, иногда в 2-3 раза.

Есть интересный анализ expiration value в зависимости от конкретных позиций в разных текстах. Показывают, что разные слои модели специализируются на разных объектах: какие-то хранят именованные сущности, другие отмечают пробелы, ещё одни смотрят на заголовки секций в документах.

Мне кажется, и adaptive span раньше был хороший и незаслуженно малоизвестный, а эта штука бьёт его везде. Плюс, она вполне ортогональна многим другим улучшениям трансформеров. Было бы интересно собрать новый GPT с этим механизмом плюс ещё несколькими многообещающими. И также было бы интересно применить его к окологеномным задачам, там длинный контекст часто важен. 128К это прям уже хорошо!
Во вторник я (Лёша Тихонов) буду рассказывать на онлайн семинаре Sberlogа про нашу статью на ICML 2021, кому интересно, приходите послушать.
Forwarded from Sberloga (Alexander C)
🚀 Онлайн DS доклад от @SBERLOGA
👨‍🔬 Алексей Тихонов (Яндекс) "Систематический анализ метрик кластерной близости"
⌚️ Вторник 22 июня, 19.00 по Москве

Доклад основан на работе https://arxiv.org/abs/1911.04773 недавно принятой на ICML 2021. Существует много метрик (индексов) для сравнения различных кластеризаций одного датасета, и выбор лучшей из них для конкретной задачи остается открытой проблемой. Мы демонстрируем, что эта проблема имеет решающее значение: имеется много разногласий между метриками (индексами), эти разногласия действительно влияют на то, какие алгоритмы предпочтительнее в приложениях, и это может привести к снижению производительности в реальных системах. Мы предлагаем теоретическую основу для решения этой проблемы: разрабатываем список желаемых свойств и проводим обширный теоретический анализ, чтобы проверить, какие индексы им удовлетворяют. Это позволяет сделать осознанный выбор: для конкретного приложения можно сначала выбрать свойства, которые желательны для задачи, а затем определить удовлетворяющие им индексы. Наша работа объединяет и значительно расширяет существующие попытки анализа индексов сходства кластеров: мы вводим новые свойства, формализуем существующие и математически подтверждаем или опровергаем каждое свойство для обширного списка индексов валидации. Этот более широкий и более строгий подход приводит к рекомендациям, которые значительно отличаются от того, как индексы валидации в настоящее время выбираются практиками. Показано, что в некоторых из самых популярных индексов даже преобладают индексы, на которые ранее не обращали внимания.

PS
Также Алексей является автором одного из наиболее популярных каналов в тг по анализу данных "Жалкие низкочастотники" и соавтором лучшего канала с разбором МЛ-статей "gonzo-обзоры ML статей".

Ссылка на зум будет доступна через тг чат t.me/sberlogadataclub ближе к началу доклада.
Biological structure and function emerge from scaling unsupervised learning to 250 million protein sequences
Alexander Rives, Joshua Meier, Tom Sercu, Siddharth Goyal, Zeming Lin, Jason Liu, Demi Guo, Myle Ott, C. Lawrence Zitnick, Jerry Ma, and Rob Fergus
Статья: https://www.pnas.org/content/118/15/e2016239118
Модель: https://github.com/facebookresearch/esm

Чего мы всё про NLP, да про NLP, давайте про биологию. Там уже тоже как и в NLP пару лет назад происходит свой “ImageNet moment”, который я бы скорее назвал “BERT moment”, ибо как раз NLP сильнее на него повлиял. Да и DeepMind вот-вот уже обещает заопенсорсить свой AlphaFold2 (https://t.co/uP7uzgGMSf), так что самое время. Вот недавно в PNAS вышла статья по уже древнему препринту.

Идея классическая: давайте возьмём все белковые последовательности (для незнакомых с биологией, белки состоят из последовательности аминокислот, здесь их 20 стандартных и 5 нестандартных) и обучим языковую модель по типу BERT’а (энкодер трансформера, восстанавливающий замаскированные токены — конкретные аминокислоты, лосс обычный MLM). Прелесть такого обучения, что оно целиком self-supervised, то есть не требует никаких размеченных данных и выучивает закономерности, наблюдаемые в самих данных. И как полагается возьмём всего побольше — трансформер поглубже, датасет побольше.

Датасет это 250M последовательностей из UniParc (UniProt Archive содержит большинство опубликованных в мире последовательносей, https://www.uniprot.org/help/uniparc), которые суммарно состоят из 86B аминокислот (ну то есть как бы 86Гб текста). Из него набирают три разных датасета, 1) low-diversity UR100 (последовательности UniRef100 получены кластеризацией идентичных последовательностей из UniParc), 2) high-diversity sparse UR50/S (репрезентативные последовательности кластеров из UniRef50, который кластеризован по 50% sequence identity), и 3) high-diversity dense UR50/D (делается равномерная выборка по кластерам из UniRef50). Для оценки модели рандомно спрятаны 10% кластеров из UniRef50 и все последовательности этих кластеров не участвуют в обучении.

Моделей в итоге обучено несколько разных (6, 12, 34 слоя), и дополнительно самая глубокая (в 652.4М параметров) потом ещё оптимизирована по своим гиперпараметрам, она называется ESM-1b.

Главный интерес в этом, выучит ли модель чисто из данных одиночных последовательностей (но зато в огромном количестве) какие-то полезные биологически релевантные фичи. И она выучивает!

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

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

Можно получить эмбеддинги для целого белка — например, усреднив эмбеддинги всех аминокислот (хотя по идее <cls> токен в модели вроде как тоже есть). Ортологичные (с общим происхождением у разных видов) группы белков при этом кластеризуются. По расстоянию в пространстве эмбеддингов также неплохо определяются дальние гомологи. Плюс для позиций, которые совпали бы после множественного выравнивания, эмбеддинги после обучения оказываются сильно более близкими. То есть модель неявно выучивает и что-то про выравнивание (в обучении никакого выравнивания не было, работа идёт на индивидуальных последовательностях).

Отдельный пул задач про предсказание вторичной (спирали, листы и т.п.) и третичной структуры (контактов между аминокислотами в цепочке белка). Проверяют это традиционными методами: выучивают линейные проекции фич или строят глубокую сетку поверх них, и далее решают задачи предсказания вторичной структуры (по восьми классам) или вероятность контакта для любых пар аминокислот. Неплохо работает, не хуже более классических альтернатив.
1
Трансформеры всегда бьют LSTM бэйзлайны, даже с тем же количеством параметров. Из интересного, авторы также показали, что перплексия по сути выступает отличной прокси метрикой для качества предсказания вторичной структуры и контактов. Прям линейная зависимость. И даже самая большая в статье модель явно не насыщается, так что можно спокойно делать ещё более тяжёлые модели и они наверняка будут ещё лучше.

Авторы также показали, что фичи ESM-1b неплохо обогащают другие классические фичи, улучшая предыдущие SoTA, то есть они содержат какую-то новую ценную информацию. Также эти фичи работают для предсказания эффекта ненаблюдавшихся мутаций, что полезно в генеративной биологии.

В общем классный пример торжества unsupervised learning на больших датасетах. Теперь в биологии. И да, модель опубликована, можно юзать в своих пайплайнах как BERT.