Модель обучалась офлайн в чистом режиме supervised learning. Но никто не запрещает попробовать то же в online/offline RL.
Чтобы модель различала задачи, решили использовать не идентификаторы задач, а prompt conditioning. При обучении для 25% последовательностей в батче добавляется последовательность prompt’а, сгенерированная этим же агентом на этой же задаче. В половине из этих случаев последовательность берётся из конца эпизода (получается goal conditioning), в другой половине рандомно сэмплится из эпизода.
Обучалось всё это на конфигурации из 16x16 TPU v3 на 1M шагов и батче в 512, с длиной последовательности в 1024 токена. Обучение шло 4 дня.
Во время оценки в промпте даётся пример выполнения задачи и далее идёт наблюдение из среды. Модель авторегрессионно генерит токены, отвечающие за action (их может быть несколько, это определяется задачей и модель останавливают, когда сгенерено нужное количество токенов), эти токены конвертируются в action через инверсию токенизационной процедуры. Действие отправляется в среду, и из среды приходит новое наблюдение. Процесс повторяется. Модель видит все предыдущие токены (наблюдений и действий) в окошке длины 1024. Во время оценки используют механизм памяти из Transformer-XL, во время обучения его не было.
Использовалось много разных датасетов из управления (596 разных задач), а также зрительные и языковые задачи.
На 450 из 604 задач управления модель превысила 50% скора от эксперта. Есть отдельная радужная картинка с разбивкой по типам задач. В задаче укладывания кубиков в определённые формы сравнима с бейзлайном. В тексте и картинках, как сказано в работе “demonstrates rudimentary dialogue and image captioning capabilities”.
Ну то есть модель глобально не SoTA и человечество не захватит, но цели и не было. Была цель продемонстрировать работоспособность подхода, что вполне удалось. Интересно, что даст скейлинг в эту модель, а также если, например, применить рецепты из Шиншиллы и задействовать весь другой передовой опыт.
Для оценки скейлинга дополнительно обучили более мелкие модели на 79М и 364М параметров в дополнение к основной на 1.18B. На графиках видно, что больший масштаб существенно и консистентно поднимает перформанс.
Попробовали на задачах out-of-distribution. Идеально было бы давать информацию о новой задаче через prompt conditioning, но длина контекста ограничена и всё ценное впихнуть не получается. Поэтому зашли через fine-tuning модели на новую задачу. Пробовали это на средней модели с 364М параметров. В зависимости от задачи и от абляций есть разный профит кроме задачи на бокс, там случайно инициализированная модель обучилась лучше.
На задачах укладывания кубиков модель при файнтюнинге восстанавливает качество сравнимое с экспертом за 10 демонстраций. И более тяжёлая модель делает это намного лучше.
Из интересного ещё есть два эксперимента со специализированными моделями, не генералистами. Специалисты обучались на данных только одного домена.
На 50 задачах из Meta-World обучили по эксперту на задачу, сохранили траектории во время обучения, а затем отдистиллировали всех в одного агента и он достиг успеха с 96.6% результатом и, по информации авторов, никакая мультитаск архитектура не приближалась к 100% до этого. Здесь взяли минимальный Gato с 79М параметров и это демонстрация того, что архитектура работает и на малом масштабе.
Также обучили 1.2B модель на 51 игре Атари. Специалист Gato обошёл генералиста Gato, но при скейлинге возможно ситуация изменится.
Движуха интересная. Всё идёт к так называемым “single-brain”-style models, за которые довольно много аргументов из нейробиологии — и универсальный кортикальный алгоритм, и sensory substitution, когда слепые люди с помощью специальных камер начинают видеть языком. Да и интеллектуальные (хочется верить) существа вокруг — это тоже некий proof of existence. В целом недалёкое будущее таких моделей поднимает целый пласт вопросов вокруг AI safety. Отдельный прекрасный пассаж из карточки модели: “Not intended for commercial or production use. Military uses are strictly prohibited.”
Чтобы модель различала задачи, решили использовать не идентификаторы задач, а prompt conditioning. При обучении для 25% последовательностей в батче добавляется последовательность prompt’а, сгенерированная этим же агентом на этой же задаче. В половине из этих случаев последовательность берётся из конца эпизода (получается goal conditioning), в другой половине рандомно сэмплится из эпизода.
Обучалось всё это на конфигурации из 16x16 TPU v3 на 1M шагов и батче в 512, с длиной последовательности в 1024 токена. Обучение шло 4 дня.
Во время оценки в промпте даётся пример выполнения задачи и далее идёт наблюдение из среды. Модель авторегрессионно генерит токены, отвечающие за action (их может быть несколько, это определяется задачей и модель останавливают, когда сгенерено нужное количество токенов), эти токены конвертируются в action через инверсию токенизационной процедуры. Действие отправляется в среду, и из среды приходит новое наблюдение. Процесс повторяется. Модель видит все предыдущие токены (наблюдений и действий) в окошке длины 1024. Во время оценки используют механизм памяти из Transformer-XL, во время обучения его не было.
Использовалось много разных датасетов из управления (596 разных задач), а также зрительные и языковые задачи.
На 450 из 604 задач управления модель превысила 50% скора от эксперта. Есть отдельная радужная картинка с разбивкой по типам задач. В задаче укладывания кубиков в определённые формы сравнима с бейзлайном. В тексте и картинках, как сказано в работе “demonstrates rudimentary dialogue and image captioning capabilities”.
Ну то есть модель глобально не SoTA и человечество не захватит, но цели и не было. Была цель продемонстрировать работоспособность подхода, что вполне удалось. Интересно, что даст скейлинг в эту модель, а также если, например, применить рецепты из Шиншиллы и задействовать весь другой передовой опыт.
Для оценки скейлинга дополнительно обучили более мелкие модели на 79М и 364М параметров в дополнение к основной на 1.18B. На графиках видно, что больший масштаб существенно и консистентно поднимает перформанс.
Попробовали на задачах out-of-distribution. Идеально было бы давать информацию о новой задаче через prompt conditioning, но длина контекста ограничена и всё ценное впихнуть не получается. Поэтому зашли через fine-tuning модели на новую задачу. Пробовали это на средней модели с 364М параметров. В зависимости от задачи и от абляций есть разный профит кроме задачи на бокс, там случайно инициализированная модель обучилась лучше.
На задачах укладывания кубиков модель при файнтюнинге восстанавливает качество сравнимое с экспертом за 10 демонстраций. И более тяжёлая модель делает это намного лучше.
Из интересного ещё есть два эксперимента со специализированными моделями, не генералистами. Специалисты обучались на данных только одного домена.
На 50 задачах из Meta-World обучили по эксперту на задачу, сохранили траектории во время обучения, а затем отдистиллировали всех в одного агента и он достиг успеха с 96.6% результатом и, по информации авторов, никакая мультитаск архитектура не приближалась к 100% до этого. Здесь взяли минимальный Gato с 79М параметров и это демонстрация того, что архитектура работает и на малом масштабе.
Также обучили 1.2B модель на 51 игре Атари. Специалист Gato обошёл генералиста Gato, но при скейлинге возможно ситуация изменится.
Движуха интересная. Всё идёт к так называемым “single-brain”-style models, за которые довольно много аргументов из нейробиологии — и универсальный кортикальный алгоритм, и sensory substitution, когда слепые люди с помощью специальных камер начинают видеть языком. Да и интеллектуальные (хочется верить) существа вокруг — это тоже некий proof of existence. В целом недалёкое будущее таких моделей поднимает целый пласт вопросов вокруг AI safety. Отдельный прекрасный пассаж из карточки модели: “Not intended for commercial or production use. Military uses are strictly prohibited.”
🔥11👍8
[Google Imagen] Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding
Chitwan Saharia, William Chan, Saurabh Saxena, Lala Li, Jay Whang, Emily Denton, Seyed Kamyar Seyed Ghasemipour, Burcu Karagol Ayan, S. Sara Mahdavi, Rapha Gontijo Lopes, Tim Salimans, Jonathan Ho, David J Fleet, Mohammad Norouzi
Статья: https://arxiv.org/abs/2205.11487
Демо: https://imagen.research.google/
Код: нет
API: нет
Google сделали свою систему по типу DALL·E 2 под названием Imagen. Тоже диффузионная модель для генерации картинки и апсемплинга, тоже предобученная языковая модель (только другого типа). Качество генерации лучше, чем у DALL·E 2. Заодно собрали бенчмарк для оценки генеративных картиночно-текстовых моделей.
Imagen использует замороженный энкодер T5-XXL (11B параметров всего в модели, в энкодере 4.6B, подробнее про семейство T5 здесь: https://news.1rj.ru/str/gonzo_ML/442). Что интересно, это чисто текстовая модель, натренированная на большом корпусе текстов (750Гб) для решения задач seq2seq (напомним, что все задачи сводились к генерации текстовой последовательности по текстовому входу, будь то классификация, перевод или что-то ещё). CLIP же, использовавшийся в DALL·E 2, был текстово-картиночной моделью, обученной контрастным обучением на датасете c 400М пар картинка-текст (тут правда не до конца понятно как именно обучался CLIP из DALL·E 2, он всё же побольше и датасет возможно там был на 650М пар, но из текста это недостаточно понятно). Ну то есть задачи обучения у моделей разные, датасеты разные, эмбеддинги скорее всего содержат что-то разное.
Авторы попробовали три разных предобученных текстовых энкодера: BERT (base, large), T5 и CLIP. Все с замороженными весами (то есть не обучались). BERT правда мелкий по сравнению с остальными и датасет его был ощутимо меньше. CLIP не совсем понятно какой именно взяли, если от оригинального CLIP, то там в текстовом энкодере был трансформер на 12 слоёв, а если из DALL·E 2 (что вряд ли), то там стоял более тяжёлый на 24 слоя, но вероятно это всё равно порядка 340M параметров, то есть далеко до энкодера из T5-XXL. Так что результат имхо заранее ожидаем. В работе написано ViT-L/14, но это визуальная часть CLIP, отвечающая за визуальные эмбеддинги, а не текстовые, либо я чего-то не понял.
Эта модель по входному тексту генерит последовательность эмбеддингов. Далее делается пулинг эмбеддингов (видимо, пробовали mean pooling и attention pooling) и добавляется эмбеддинг временного шага диффузии.
Архитектура диффузионной модели — U-Net (из работы https://arxiv.org/abs/2102.09672) с обусловливанием полученным из текста эмбеддингом. Интересно, что также на разных разрешениях есть обусловливание на всю последовательность токенов через cross-attention. Дефолтный вариант этой модели с 2B параметров.
В диффузионной модели используется сlassifier-free guidance, где во время обучения в 10% случаев убирается информация об обусловливании текстом, а во время сэмплинга используется микс обусловленного и необусловленного предсказания, замешанных с гиперпараметром guidance weight (w=1 отключает classifier-free guidance, а по мере увеличения w увеличивается и эффект guidance). Есть проблемы, когда при высоком значении guidance weight получаются ненатуральные или очень насыщенные картинки. Авторы обнаружили, что это происходит из-за возникновения train-test mismatch, когда генерируемые пиксели вылезают за значения диапазона, который был при обучении, и модель в итоге итеративно начинает генерить нереальные картинки или вообще расходится. Для борьбы с этим предложили два варианта thresholding, статический (по сути клиппинг значений на границе диапазона) и динамический (когда очень насыщенные пиксели “отталкивают” обратно внутрь диапазона). Динамический вариант даёт более высокое качество.
Chitwan Saharia, William Chan, Saurabh Saxena, Lala Li, Jay Whang, Emily Denton, Seyed Kamyar Seyed Ghasemipour, Burcu Karagol Ayan, S. Sara Mahdavi, Rapha Gontijo Lopes, Tim Salimans, Jonathan Ho, David J Fleet, Mohammad Norouzi
Статья: https://arxiv.org/abs/2205.11487
Демо: https://imagen.research.google/
Код: нет
API: нет
Google сделали свою систему по типу DALL·E 2 под названием Imagen. Тоже диффузионная модель для генерации картинки и апсемплинга, тоже предобученная языковая модель (только другого типа). Качество генерации лучше, чем у DALL·E 2. Заодно собрали бенчмарк для оценки генеративных картиночно-текстовых моделей.
Imagen использует замороженный энкодер T5-XXL (11B параметров всего в модели, в энкодере 4.6B, подробнее про семейство T5 здесь: https://news.1rj.ru/str/gonzo_ML/442). Что интересно, это чисто текстовая модель, натренированная на большом корпусе текстов (750Гб) для решения задач seq2seq (напомним, что все задачи сводились к генерации текстовой последовательности по текстовому входу, будь то классификация, перевод или что-то ещё). CLIP же, использовавшийся в DALL·E 2, был текстово-картиночной моделью, обученной контрастным обучением на датасете c 400М пар картинка-текст (тут правда не до конца понятно как именно обучался CLIP из DALL·E 2, он всё же побольше и датасет возможно там был на 650М пар, но из текста это недостаточно понятно). Ну то есть задачи обучения у моделей разные, датасеты разные, эмбеддинги скорее всего содержат что-то разное.
Авторы попробовали три разных предобученных текстовых энкодера: BERT (base, large), T5 и CLIP. Все с замороженными весами (то есть не обучались). BERT правда мелкий по сравнению с остальными и датасет его был ощутимо меньше. CLIP не совсем понятно какой именно взяли, если от оригинального CLIP, то там в текстовом энкодере был трансформер на 12 слоёв, а если из DALL·E 2 (что вряд ли), то там стоял более тяжёлый на 24 слоя, но вероятно это всё равно порядка 340M параметров, то есть далеко до энкодера из T5-XXL. Так что результат имхо заранее ожидаем. В работе написано ViT-L/14, но это визуальная часть CLIP, отвечающая за визуальные эмбеддинги, а не текстовые, либо я чего-то не понял.
Эта модель по входному тексту генерит последовательность эмбеддингов. Далее делается пулинг эмбеддингов (видимо, пробовали mean pooling и attention pooling) и добавляется эмбеддинг временного шага диффузии.
Архитектура диффузионной модели — U-Net (из работы https://arxiv.org/abs/2102.09672) с обусловливанием полученным из текста эмбеддингом. Интересно, что также на разных разрешениях есть обусловливание на всю последовательность токенов через cross-attention. Дефолтный вариант этой модели с 2B параметров.
В диффузионной модели используется сlassifier-free guidance, где во время обучения в 10% случаев убирается информация об обусловливании текстом, а во время сэмплинга используется микс обусловленного и необусловленного предсказания, замешанных с гиперпараметром guidance weight (w=1 отключает classifier-free guidance, а по мере увеличения w увеличивается и эффект guidance). Есть проблемы, когда при высоком значении guidance weight получаются ненатуральные или очень насыщенные картинки. Авторы обнаружили, что это происходит из-за возникновения train-test mismatch, когда генерируемые пиксели вылезают за значения диапазона, который был при обучении, и модель в итоге итеративно начинает генерить нереальные картинки или вообще расходится. Для борьбы с этим предложили два варианта thresholding, статический (по сути клиппинг значений на границе диапазона) и динамический (когда очень насыщенные пиксели “отталкивают” обратно внутрь диапазона). Динамический вариант даёт более высокое качество.
👍4❤1🤔1
Диффузионная модель генерит картинку 64x64. Затем две модели апсемплинга/super-resolution (на 600M и 400M параметров соответственно) повышают разрешение сначала до 256x256 и потом до 1024x1024. Это прям как в DALL·E 2 (там модели были по 700M и 300M). В отличие от него теперь все модели обуславливаются текстом через cross-attention (в DALL·E 2 только основная диффузионная модель). Обе модели super-resolution используют т.н. noise conditioning augmentation (когда картинка низкого разрешения аугментируется шумом и модели известно как много шума было добавлено), который существенно повышает качество.
Архитектурно модели super-resolution это Efficient U-Net с набором улучшений по памяти, скорости инференса и времени схождения. Подробности в приложении B.1, кому интересно.
Основная диффузионная модель обучалась на 256 TPUv4, апсемплеры на 128 TPUv4. Для основной модели использовали Adafactor, потому что качество оказалось примерно такое же как у Adam, зато memory footprint меньше. Для апсемплеров наоборот, потому что страдало качество.
Обучали на комбинации внутренних датасетов с ~460M пар картинка-текст, и публичном датасете Laion с 400M пар.
Один из стандартных методов оценки моделей это валидационный датасет COCO. Автоматически на нём оценивают через FID (качество изображения) или CLIP score (соответствие изображения тексту). В данной работе представили Парето-фронт между этими двумя метриками, потому что многое зависит от значения параметра guidance weight. Но поскольку скоры это неполная картина, результаты также оценивались людьми по качеству изображения и на соответствие тексту.
Также для более сложного оценивания авторы предложили свой бенчмарк DrawBench с коллекцией в 200 сложных промптов (https://docs.google.com/spreadsheets/d/1y7nAbmR4FREi6npB1u-Bo3GFdwdOPYJc617rBOxIRHY/htmlview?pru=AAABgRlmt-c*6FeL6cHU75qZUKNakVqB3A#) с разбивкой на 11 категорий, сфокусированных на различных типичных проблемах таких моделей. Отдельная прекрасная категория “Gary Marcus et al.” :)
На COCO Imagen установил новую SoTA по zero-shot FID, побив DALL·E 2, а также модели, обучавшиеся на COCO. По человеческим оценкам добились 39.5% (или 39.2%? В разных местах статьи по-разному) предпочтения по фотореалистичности относительно оригинальных изображений. На отфильтрованном датасете без фотографий людей получили 43.6% (43.9%?). По соответствию текстовому описанию Imagen наравне с оригинальными парами.
На DrawBench сравнили с DALL·E 2, GLIDE, Latent Diffusion и CLIP-guided VQ-GAN. Imagen заметно лучше всех.
Из находок:
1. Более тяжёлый текстовый энкодер стабильно рулит. Кажется, это не предел.
2. Скейлинг текстового энкодера рулит сильнее, чем скейлинг U-Net’а.
3. Динамический thresholding лучше статического.
4. На простых бенчмарках текстовые энкодеры T5-XXL и CLIP работали примерно одинаково, а на более сложных задачах из DrawBench человеки предпочитали T5.
5. Аугментация с noise conditioning рулит.
6. Обусловливание полной последовательностью текста через cross-attention рулит по сравнению с пулингом эмбеддингов. Кажется, это сходная история с появлением attention внутри encoder-decoder RNN’ок, там по сути ведь то же самое произошло с отказом от узкого места в виде единого эмбеддинга.
7. Efficient U-Net рулит. Он быстрее, выше, сильнее.
Такие в общем дела.
Я бы сказал, в сухом остатке:
* Качество генерации выше, чем у недавнего лидера DALL·E 2. И примеры действительно супер. Но! Поскольку здесь вход чисто текстовый, а у DALL·E 2 был по сути unCLIP, то у DALL·E 2 из коробки есть сильная способность в виде принятия на вход других картинок и генерации их модификаций. Что само по себе сильный юскейс, не поддерживаемый Imagen.
Архитектурно модели super-resolution это Efficient U-Net с набором улучшений по памяти, скорости инференса и времени схождения. Подробности в приложении B.1, кому интересно.
Основная диффузионная модель обучалась на 256 TPUv4, апсемплеры на 128 TPUv4. Для основной модели использовали Adafactor, потому что качество оказалось примерно такое же как у Adam, зато memory footprint меньше. Для апсемплеров наоборот, потому что страдало качество.
Обучали на комбинации внутренних датасетов с ~460M пар картинка-текст, и публичном датасете Laion с 400M пар.
Один из стандартных методов оценки моделей это валидационный датасет COCO. Автоматически на нём оценивают через FID (качество изображения) или CLIP score (соответствие изображения тексту). В данной работе представили Парето-фронт между этими двумя метриками, потому что многое зависит от значения параметра guidance weight. Но поскольку скоры это неполная картина, результаты также оценивались людьми по качеству изображения и на соответствие тексту.
Также для более сложного оценивания авторы предложили свой бенчмарк DrawBench с коллекцией в 200 сложных промптов (https://docs.google.com/spreadsheets/d/1y7nAbmR4FREi6npB1u-Bo3GFdwdOPYJc617rBOxIRHY/htmlview?pru=AAABgRlmt-c*6FeL6cHU75qZUKNakVqB3A#) с разбивкой на 11 категорий, сфокусированных на различных типичных проблемах таких моделей. Отдельная прекрасная категория “Gary Marcus et al.” :)
На COCO Imagen установил новую SoTA по zero-shot FID, побив DALL·E 2, а также модели, обучавшиеся на COCO. По человеческим оценкам добились 39.5% (или 39.2%? В разных местах статьи по-разному) предпочтения по фотореалистичности относительно оригинальных изображений. На отфильтрованном датасете без фотографий людей получили 43.6% (43.9%?). По соответствию текстовому описанию Imagen наравне с оригинальными парами.
На DrawBench сравнили с DALL·E 2, GLIDE, Latent Diffusion и CLIP-guided VQ-GAN. Imagen заметно лучше всех.
Из находок:
1. Более тяжёлый текстовый энкодер стабильно рулит. Кажется, это не предел.
2. Скейлинг текстового энкодера рулит сильнее, чем скейлинг U-Net’а.
3. Динамический thresholding лучше статического.
4. На простых бенчмарках текстовые энкодеры T5-XXL и CLIP работали примерно одинаково, а на более сложных задачах из DrawBench человеки предпочитали T5.
5. Аугментация с noise conditioning рулит.
6. Обусловливание полной последовательностью текста через cross-attention рулит по сравнению с пулингом эмбеддингов. Кажется, это сходная история с появлением attention внутри encoder-decoder RNN’ок, там по сути ведь то же самое произошло с отказом от узкого места в виде единого эмбеддинга.
7. Efficient U-Net рулит. Он быстрее, выше, сильнее.
Такие в общем дела.
Я бы сказал, в сухом остатке:
* Качество генерации выше, чем у недавнего лидера DALL·E 2. И примеры действительно супер. Но! Поскольку здесь вход чисто текстовый, а у DALL·E 2 был по сути unCLIP, то у DALL·E 2 из коробки есть сильная способность в виде принятия на вход других картинок и генерации их модификаций. Что само по себе сильный юскейс, не поддерживаемый Imagen.
👍9❤1
* Хорошие предобученные модели рулят и их отлично использовать как готовые строительные блоки. Также это довольно простой способ устранения обнаруженных в имеющихся моделях проблем. Не умеет, скажем, CLIP считать объекты или привязывать признаки к объектам, ок, делаем модель, которая умеет, и собираем на ней. Не проходят примеры Гэри Маркуса на одной модели, делаем другую, на которой проходят. Так и до модульного AGI недалеко :)
* По имеющимся примерам есть ощущение, что Imagen лучше работает с запросами, где надо сгенерить картинку с текстом. Возможно, T5 в этом смысле даёт эмбеддинги получше. Но может и другие факторы играют.
* Теперь было бы интересно отскейлить на какую-нибудь гигантскую модель (PaLM https://arxiv.org/abs/2204.02311, GLaM https://news.1rj.ru/str/gonzo_ML/840, …) обученную по последнему слову техники (aka Chinchilla https://arxiv.org/abs/2203.15556). Там, правда, в основном декодеры, но наверное это не помеха. Скейлить точно есть куда, и даже не важно, is scaling all what you need or not.
* Интересно, что было бы, если бы получилось обучить сильно больший CLIP с большой текстовой частью, хоть как-то сравнимой по размеру с энкодером T5. Или взять какой-нибудь CoCa (https://arxiv.org/abs/2205.01917, хотя он меньше, но тоже можно обучить…), или тот же мультимодальный Flamingo (https://news.1rj.ru/str/gonzo_ML/941). Если бы отдельные блоки были доступны, было бы проще попробовать.
* По имеющимся примерам есть ощущение, что Imagen лучше работает с запросами, где надо сгенерить картинку с текстом. Возможно, T5 в этом смысле даёт эмбеддинги получше. Но может и другие факторы играют.
* Теперь было бы интересно отскейлить на какую-нибудь гигантскую модель (PaLM https://arxiv.org/abs/2204.02311, GLaM https://news.1rj.ru/str/gonzo_ML/840, …) обученную по последнему слову техники (aka Chinchilla https://arxiv.org/abs/2203.15556). Там, правда, в основном декодеры, но наверное это не помеха. Скейлить точно есть куда, и даже не важно, is scaling all what you need or not.
* Интересно, что было бы, если бы получилось обучить сильно больший CLIP с большой текстовой частью, хоть как-то сравнимой по размеру с энкодером T5. Или взять какой-нибудь CoCa (https://arxiv.org/abs/2205.01917, хотя он меньше, но тоже можно обучить…), или тот же мультимодальный Flamingo (https://news.1rj.ru/str/gonzo_ML/941). Если бы отдельные блоки были доступны, было бы проще попробовать.
👍6