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) неявно подразумевается, что каждая пара картинка-текст имеет уникальное описание, и все остальные описания рассматриваются как негативные примеры.
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) неявно подразумевается, что каждая пара картинка-текст имеет уникальное описание, и все остальные описания рассматриваются как негативные примеры.
Telegram
gonzo-обзоры ML статей
[OpenAI CLIP] Learning Transferable Visual Models From Natural Language Supervision
Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, Gretchen Krueger, Ilya…
Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, Gretchen Krueger, Ilya…
👍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. Я не уловил, было ли какое-то дообучение здесь или уже дальше сразу файнтюнинг на задачу.
В архитектуре есть картиночный энкодер и текстовый энкодер. Векторы фич с выходов энкодеров нормализуются и заводятся в двунаправленную целевую функцию, где один компонент отвечает за 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. Я не уловил, было ли какое-то дообучение здесь или уже дальше сразу файнтюнинг на задачу.
arXiv.org
Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
This paper presents a new vision Transformer, called Swin Transformer, that capably serves as a general-purpose backbone for computer vision. Challenges in adapting Transformer from language to...
👍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 массово будут находиться другими моделями. Человек в этом месте не самое сильное звено.
Ну и дальше идут эксперименты. В 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 массово будут находиться другими моделями. Человек в этом месте не самое сильное звено.
arXiv.org
ZeRO: Memory Optimizations Toward Training Trillion Parameter Models
Large deep learning models offer significant accuracy gains, but training billions to trillions of parameters is challenging. Existing solutions such as data and model parallelisms exhibit...
Всем привет!
Как-то постепенно из моих выступлений про трансформеры набрался почти уже мини-курс :)
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
Ссылки на слайды во всех выступлениях есть либо в комментариях, либо в описании.
Как-то постепенно из моих выступлений про трансформеры набрался почти уже мини-курс :)
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
Ссылки на слайды во всех выступлениях есть либо в комментариях, либо в описании.
GitHub
GitHub - che-shr-cat/deep-learning-for-biology-hse-2019-course: Deep Learning for Biology course materials / Higher School of Economics…
Deep Learning for Biology course materials / Higher School of Economics, 2019 - che-shr-cat/deep-learning-for-biology-hse-2019-course
❤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://news.1rj.ru/str/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).
Авторы: 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://news.1rj.ru/str/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://news.1rj.ru/str/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 не получится, останется в закромах. Хотя всё про масштабы скейлинга всё равно ценно.
В работе большая секция про токсичность и bias’ы. В целом токсичность сгенерированного текста хорошо коррелирует с токсичностью промпта, который в неё подали, и большие модели реагируют сильнее. Но при отсутствии токсичности на входе, она низка и на выходе и не увеличивается с ростом модели.
Bias’ы ожидаемо присутствуют, рост модели их не устраняет. Из интересного, качество модели на малопредставленных в датасете диалектах (African American) хуже на всех размерах модели.
Также модель попробовали в диалоге. Хоть она на такие задачи и не обучалась, есть примеры прям хорошие. Но и плохие она тоже умеет генерить.
Отдельный большой блок экспериментов в работе посвящён эффективным архитектурам. Это, конечно, логично и важно. И так уже дошли до точки, когда единицы компаний в мире могут такое делать. И то не помногу раз.
Попробовали разные варианты файнтюнинга: полный, верхние 40% слоёв или только смещения. Для заданного вычислительного бюджета файнтюнинг полной модели работает лучше.
Попробовали дистилляцию, для начала классическую, предсказывающую выходы модели и из большой модели в меньшую. Модель-студент получалась лучше, чем если её обучать с нуля, но всё равно далеко до оригинальной более тяжёлой модели. Также пробовали добавлять в дистилляцию внимание, было чуть получше, но возни очень много, процедуру сильно усложняло.
Сделали прунинг, классический на основе магнитуды весов, но особого профита не получили. Также попробовали динамическое разреженное обучение RigL (https://news.1rj.ru/str/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 не получится, останется в закромах. Хотя всё про масштабы скейлинга всё равно ценно.
Telegram
gonzo-обзоры ML статей
Rigging the Lottery: Making All Tickets Winners
Utku Evci, Trevor Gale, Jacob Menick, Pablo Samuel Castro, Erich Elsen
Статья: https://arxiv.org/abs/1911.11134
Код: http://github.com/google-research/rigl
Статья гугловцев про новый метод обучения разреженных…
Utku Evci, Trevor Gale, Jacob Menick, Pablo Samuel Castro, Erich Elsen
Статья: https://arxiv.org/abs/1911.11134
Код: http://github.com/google-research/rigl
Статья гугловцев про новый метод обучения разреженных…
👍1