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
Decision Transformer: Reinforcement Learning via Sequence Modeling
Lili Chen, Kevin Lu, Aravind Rajeswaran, Kimin Lee, Aditya Grover, Michael Laskin, Pieter Abbeel, Aravind Srinivas, Igor Mordatch
Статья: https://arxiv.org/abs/2106.01345
Code: https://github.com/kzl/decision-transformer
Разбор от Янника: https://www.youtube.com/watch?v=-buULmf7dec

Работа от примерно той же группы авторов, что и в предыдущем посте про “Pretrained Transformers as Universal Computation Engines” (https://news.1rj.ru/str/gonzo_ML/711). Тоже по сути про универсальность трансформеров для решения разных задач, теперь для RL.

Здесь авторы подошли к задаче offline reinforcement learning и моделируют её как задачу conditional sequence modeling, используя авторегрессионный трансформер, аналогичный GPT.

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

Трансформеры уже применялись в RL (и мы даже писали про них, например здесь: https://news.1rj.ru/str/gonzo_ML/148), но обычно они встраиваются в традиционные RL алгоритмы, например, обучая policy через TD learning (в упомянутой выше работе использовалась on-policy адаптация метода Maximum a Posteriori Policy Optimization, называющаяся V-MPO).

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

На вход GPT-like модели подаётся траектория, закодированная последовательностью троек (R, s, a), где a — это действие, s — состояние среды, а R в данном случае не полученный при этой комбинации (s,a) reward, а return-to-go (сумма будущих вознаграждений), и это сделано для того, чтобы моделировать будущие действия не на основании прошлых вознаграждений, а на основании будущего желаемого возврата.

Для получения следующего действия на вход прилетает вся прошлая траектория + текущие значения желаемого возврата R_t и текущее состояние среды s_t, и для позиции этого s_t предсказывается действие a_t. То есть для K шагов получается 3K токенов (я бы даже сказал 3K-1).

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

Также для каждого момента времени выучивается свой эмбеддинг, который добавляется к эмбеддингам токенов соответствующего момента времени. Это не совсем обычный позиционный эмбеддинг, потому что здесь каждому моменту времени соответствует 3 токена.

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

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

Оцениваются на задачах дискретного и непрерывного управления (соответственно несколько игр из бенчмарка Атари и бенчмарк D4RL в OpenAI Gym), сравнивают с model-free методами TD learning (Conservative Q-Learning, CQL, который на тот момент вроде как был SoTA, и с некоторыми другими), а также с imitation learning.

Для Атари это трансформер размерности 128 с 6 слоями и 8 головами, для Gym всего трёхслойный с одной головой.

На Атари метод сравним с CQL и бьёт более старые алгоритмы. На задачах непрерывного управления из D4RL почти на всех задачах Decision Transformer побил традиционные RL методы.

Авторы пытаются анализировать, не занимается ли Decision Transformer behaviour cloning’ом и показывают, что он более эффективен, чем просто imitation learning на подмножестве датасета.

Отдельно изучают, важна ли глубина контекста, и да, на контексте длины 1 трансформер работает существенно хуже.
👍1
И в целом метод неплохо выучивает полиси, где надо делать long-term credit assignment, даже если обучается на рандомных полиси. В ситуации с разреженными и отложенными наградами также работает достойно.

Такие вот дела. Были когда-то прикольные работы, где GPT играла в Го (https://arxiv.org/abs/2007.03500) или шахматы (https://arxiv.org/abs/2008.04057), а здесь тот же универсальный трансформер по типу GPT решает более-менее любые RL задачи. Интересно, что будет, когда обучат какую-нибудь гигантскую модель на пиллиарды параметров.
Online RL, Off-policy RL и Offline RL. Отсюда: https://arxiv.org/abs/2005.01643
[Trajectory Transformer] Offline Reinforcement Learning as One Big Sequence Modeling Problem
Michael Janner, Qiyang Li, Sergey Levine
Статья: https://arxiv.org/abs/2106.02039
Code: https://github.com/JannerM/trajectory-transformer

Ещё одна работа про замену компонентов reinforcement learning (RL) алгоритмов на стандартные решения для sequence learning, а именно трансформерные блоки декодера для авторегрессионной генерации (всё как в GPT). В предыдущей работе про Decision Transformer (DT) (https://news.1rj.ru/str/gonzo_ML/719) использовали reward conditioning, а в этой, где решение называют Trajectory Transformer (TT), делают планирование на основе beam search. Получается как бы довольно простой идейно model-based алгоритм.

В обоих решениях это довольно заметный отход от работы с MDP (Markov Decision Process), потому что марковское свойство больше не действует, генерация происходит с учётом всей предыдущей траектории, что может быть полезно.

Оцениваются также на задачах Offline RL, чтобы можно было использовать большие объёмы предыдущих накопленных интеракций.

Траектория длины T задаётся как последовательность токенов, описывающая T состояний (размерности N), действий (размерности M) и скалярных вознаграждений, получается итоговая длина T*(N+M+1).

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

Архитектура — стандартный декодер по типу GPT, 4 слоя, 4 головы внимания, 128 размерность. Beam width 256, горизонт планирования 15, контекст размера 5 (5 предыдущих кортежей (s,a,r,R)) плюс ещё несколько тонких настроек. Обучаются с обычным teacher forcing, лосс по факту стандартный авторегрессионный, только из-за многомерности состояний и действий, каждое следующее измерение авторегрессионно зависит от предыдущих.

Проверяют в трёх типах экспериментов:
1) Imitation learning, когда надо выучить распределение траекторий в обучающей выборке и оптимизируется вероятность конкретной траектории. Тут всё как в обычном sequence modeling.
2) Goal-conditioned RL, когда задаётся некий будущий контекст, но это в целом тоже сводится к предыдущей задаче, когда в начало траектории можно добавить целевое состояния. А-ля prompting такой.
3) Offline RL, где (лог)вероятности переходов заменяются на сигнал подкрепления и задача модели — максимизировать reward, а чтобы уменьшить риск близорукости beam search в такой постановке, в траектории для каждого временного отсчёта добавляется reward-to-go (как в общем и в предыдущем DT).

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

В работе сделали вариант Markovian Transformer с глубиной контекста всего 1 и он оказался примерно такого же качества на fully-observed средах (что интересно), но хуже на partially-observed.

При визуализации внимания выделяются два паттерна: 1) модель выучила марковскую стратегию (когда смотрит преимущественно на предыдущий шаг), и 2) модель смотрит на конкретные измерения множества предыдущих состояний или действий.

В задачах Offline RL выбрали несколько сред из набора в D4RL, показали, что Trajectory Transformer (TT) лучше других методов типа BRAC или CQL (которые вроде как SoTA), а также лучше недавнего Decision Transformer (DT).
Со сравнением с DT непросто. Во-первых, в работе есть два варианта TT, с равномерной и квантильной дискретизацией. Первый хуже DT, второй лучше. Во-вторых, непонятно, откуда цифры для DT, сами имплементировали или взяли из оригинальной статьи. По цифрам получается, что взяли из статьи, но при этом дропнули один из экспериментов, а может с ним DT обогнал бы? В-третьих, с какой именно архитектурой сравнивались. Здесь в работе был 4-слойный 4-головый трансформер, а в работе про DT, если они взяли цифры из неё, был использован 3-слойный 1-головый, что как бы странно сравнивать, ибо при такой небольшой разнице в цифрах почти наверняка можно дотюнить DT до более высокого качества. В общем меня лично превосходство TT над DT не убеждает и по мне такое сравнение не особо честное.

Также в работе попробовали комбинацию с Q-функцией из другого метода, чтобы заменить ею Monte Carlo оценку, которая на длинных горизонтах не очень информативна. Q-guided TT оказался лучше альтернатив.

В отдельном эксперименте попробовали goal conditioning, когда будущее целевое состояние также передаётся в модель (они это называют anti-causal conditioning) и beam search по факту используется как метод достижения цели. Работает.

Такие дела. Интересное в целом направление про замену различных классических частей RL на универсальную архитектуру и универсальную задачу (авторегрессионное моделирование). Попахивает очередным подкреплением пресловутого The Bitter Lesson Саттона (http://www.incompleteideas.net/IncIdeas/BitterLesson.html).
🔥1
Florence: A New Foundation Model for Computer Vision
Lu Yuan, Dongdong Chen, Yi-Ling Chen, Noel Codella, Xiyang Dai, Jianfeng Gao, Houdong Hu, Xuedong Huang, Boxin Li, Chunyuan Li, Ce Liu, Mengchen Liu, Zicheng Liu, Yumao Lu, Yu Shi, Lijuan Wang, Jianfeng Wang, Bin Xiao, Zhen Xiao, Jianwei Yang, Michael Zeng, Luowei Zhou, Pengchuan Zhang
Статья: https://arxiv.org/abs/2111.11432

Свежая работа от большой команды из Microsoft. Новая картиночно-текстовая модель из той же категории, что CLIP (https://news.1rj.ru/str/gonzo_ML/665) или ALIGN (https://news.1rj.ru/str/gonzo_ML/679), с богатыми возможностями кастомизации под разные задачи, ощутимо бьющая конкурентов и устанавливающая новые SoTA (на большинстве из 44 бенчмарков!).

Авторы явно называют свою модель Foundation Model, и если вы пропустили всю эту августовскую движуху про foundation models (https://arxiv.org/abs/2108.07258), то я для вас приготовил короткое (по сравнению с 200+ страничным документом) саммари тут: https://blog.inten.to/foundation-models-b89e7610057

В двух словах, foundation models это такие модели, которые предобучены на каких-то универсальных задачах (часто в режиме self-supervised, иначе невозможно найти много размеченных данных на полноценный supervised) и далее могут быть легко адаптированы под различные новые задачи (с файнтюнингом/дообучением или даже совсем без оного, как мы это видели на кейсе с in-context learning GPT-3 (https://news.1rj.ru/str/gonzo_ML/305). Foundation они потому, что являются фундаментами для множества других решений со всеми плюсами этого процесса (проще строить что-то новое) и минусами (от плохого фундамента пострадают многие, если что). В будущем я, наверное, буду называть их по-русски моделями-фундаментами, потому что другие варианты, что я видел (включая “фундаментальные”), по внутреннему ощущению хуже. И эти модели ни разу не фундаментальные для AI, AGI или чего бы то ни было такого, они не являются какой-либо основой для понимания или строительства интеллекта или сознания. Просто фундаменты. Пока что. Хотя подобный месседж периодически просачивается. Вот даже прям в этой работе.

Собственно авторы задались вопросом, что есть модель-фундамент для компьютерного зрения?

Для этого они разбили спектр задач по трём осям:
1) Пространство (классификация сцен, детекция объектов)
2) Время (статика, динамика)
3) Модальность (RGB, глубина).

И далее они определяют foundation model for computer vision как предобученную модель и адаптеры для решения всех задач в этом пространстве Space-Time-Modality и со способностью переноса типа zero/few-shot learning.

Они презентуют свою работу как новую парадигму построения vision foundation model и называют её Флоренцией (потому что это место рождения Ренессанса). И рассматривают они её как экосистему из четырёх больших направлений:
1) Data curation
2) Model pretraining
3) Task adaptations
4) Training infrastructure

По части датасета (пункт 1) они собрали свой датасет FLD-900M (FLorence Dataset) на 900М пар картинка-текст, всего на 7.5B токенов. Собрали автоматизированный пайплайн, накачали из веба, применили фильтрации по типу как в ALIGN.

C описаниями картинок есть сложности, ибо часто под одним описанием оказываются разные картинки, и в FLD-900M для 350М описаний есть более одной картинки.

Это влияет на уровне процедуры обучения (пункт 2), потому что в стандартном contrastive learning (например, в CLIP) неявно подразумевается, что каждая пара картинка-текст имеет уникальное описание, и все остальные описания рассматриваются как негативные примеры.
👍1
В работе используется unified image-text contrastive learning (UniCL, работа про который “Unified contrastive learning in image-text-label space” заявлена как готовящаяся к публикации в 2022 году). Идея UniCL в том, что для каждой пары картинка-текст мы генерим триплет (x,t,y) через хэш-таблицу, где x — это картинка, t — текстовое описание, а y — некая языковая метка (ключ в хэше), определяющая индекс уникального текстового описания. То есть одинаковые тексты мапятся в одну и ту же метку y и рассматриваются как позитивные примеры в контрастном обучении. Этот CL unified в том смысле, что в общем пространстве картинка-описание-метка он объединяет две парадигмы обучения — дискриминативную (маппинг картинки в метку, supervised learning) и предобучение на языке-картинках (маппинг описания в уникальную метку, contrastive learning).

В архитектуре есть картиночный энкодер и текстовый энкодер. Векторы фич с выходов энкодеров нормализуются и заводятся в двунаправленную целевую функцию, где один компонент отвечает за supervised image-to-language contrastive loss, а второй в обратную сторону за supervised language-to-image contrastive loss. Выглядят они одинаково, разница только в том, что в i2t мы пробегаем по всем элементам батча и для каждой картинки берём позитивные тексты, для которых метка (y) такая же, как у исходной картинки; а в t2i пробегаем по текстам и отбираем картинки с той же меткой как позитивные. Ну в общем логичная история, наконец ушли от предположения, что в батче все остальные примеры негативные и явно устраняем коллизии.

Картинки подаются размером 224*224, а максимальная длина текста выставлена в 76 (видимо токенов, как и в CLIP). Батч при этом большущий, 24576. После такого предобучения дополнительно доучивают на картинках 384*384.

Сами модели это текстовый 12-слойный стандартный трансформер для языка (256М параметров) и для изображений иерархический Vision Transformer, который есть специальная модификация Swin Transformer (https://arxiv.org/abs/2103.14030) со свёрточными эмбеддингами по типу CvT (https://arxiv.org/abs/2103.15808), то есть CoSwin-H Transformer (637М параметров). Всего в модели 893М параметров. Обучали 10 дней на 512 A100-40Gb.

После предобучения Florence дообучают всякими адаптерами (пункт 3).

Сначала дообучают на более fine-grained representations через детекцию. Для этого добавляют адаптер Dynamic Head (https://arxiv.org/abs/2106.08322), который есть специализированный механизм внимания для головы, занимающейся детекцией, в нём пирамида фич разных уровней обрабатывается тремя независимыми механизмами внимания, каждый по своему измерению этого тензора — по уровню, положению и каналу. Вроде как получается факторизация. Это обучают на датасете FLOD-9M (FLorence Object detection Dataset), в который слили несколько имеющихся, включая COCO, LVIS, OpenImages и другие, плюс нагенерили псевдо bounding boxes. Итого получилось 8.9М картинок, 25190 категорий объектов и 33.4М bounding boxes. Это обучали ещё 7 дней на 128 A100.

Другой адаптер для получения более точных картиночно-текстовых репрезентаций — это METER (Multimodal End-to-end TransformER framework, https://arxiv.org/abs/2111.02387, всё это ссылки на другие работы Microsoft), где взяли в качестве картиночного энкодера картиночный же CoSwin из Florence, а в качестве текстового RoBERTa (хотя могли и текстовый же из Florence). Далее в этом фреймворке обучаются блоки, состоящие из обычных блоков self-attention + блоков cross-attention на соседнюю модальность + feed-forward. Это обучили на image-text matching (ITM) loss и классический робертовский MLM loss. И потом ещё зафайнтюнили на задачу VQA.

И ещё один адаптер на распознавание видео, где взяли картиночный энкодер CoSwin и заменили 2D слои на 3D — свёртки, операторы слияния и т.д. При инициализации просто продублировали в новые веса предобученные веса из 2D. Я не уловил, было ли какое-то дообучение здесь или уже дальше сразу файнтюнинг на задачу.
👍1
Ну и наконец (пункт 4) это инфраструктура для обучения. Здесь задействовали оптимизатор ZeRO (чтобы есть меньше памяти, https://arxiv.org/abs/1910.02054), сделали activation checkpointing (и перерасчитывают во время бэкпропа нужные активации, избавляясь от хранения их https://arxiv.org/abs/1904.10631), используют mixed-precision training (где надо fp32, а где достаточно fp16, то его — про эти форматы подробнее есть тут https://moocaholic.medium.com/fp64-fp32-fp16-bfloat16-tf32-and-other-members-of-the-zoo-a1ca7897d407), а также gradient cache (когда можно градиенты для батча считать по частям, что даёт возможность использовать большие батчи, которые нужны для CL, https://arxiv.org/abs/2101.06983).

Ну и дальше идут эксперименты. В zero-shot classification модель в 9 из 12 задач дала новую SoTA. В linear probe классификации почти во всём круче остальных, кроме CIFAR10/100. На файнтюнинге под ImageNet Florence чуть хуже SoTA, но зато и в три раза меньше. На few-shot cross-domain classification побила лидера бенчмарка, хотя тот использовал ансамблирование и прочие ухищрения. На image-text retrieval в zero-shot соответствует или превосходит предыдущие результаты, а на файнтюнинге бьёт при существенно меньшем количестве эпох дообучения. На object detection бьёт, на VQA бьёт, на video action recognition тоже бьёт. Тут проще картинку с результатами запостить.

Короче, классный результат. Модель не опубликована, и непонятно будет ли. Может, Microsoft попробует какую-то апишку сделать, как они давно хотели это сделать под модели семейства Turing (правда воз и ныне там).

И в очередной раз ощущение, что решили дорогую комбинаторную задачу по сбору правильного набора компонент. Кажется, именно в этом инженерная и научная ценность работы. Если так, то всё-таки это явно в будущем работа для компьютера. Вот эти вот все neural architecture search, automl и подобное. Лет через пять или даже раньше такие foundation models массово будут находиться другими моделями. Человек в этом месте не самое сильное звено.