2021 год в машинном обучении ознаменовался мультимодальностью — активно развиваются нейросети, работающие одновременно с изображениями, текстами, речью, музыкой. Правит балом, как обычно, OpenAI, но, несмотря на слово «open» в своём названии, не спешит выкладывать модели в открытый доступ. В начале года компания представила нейросеть DALL-E, генерирующую любые изображения размером 256×256 пикселей по текстовому описанию. В качестве опорного материала для сообщества были доступны статья на arxiv и примеры в блоге.

С момента выхода DALL-E к проблеме активно подключились китайские исследователи: открытый код нейросети CogView позволяет решать ту же задачу — получать изображения из текстов. Но что в России? Разобрать, понять, обучить — уже, можно сказать, наш инженерный девиз. Мы нырнули с головой в новый проект и сегодня рассказываем, как создали с нуля полный пайплайн для генерации изображений по описаниям на русском языке.

В проекте активно участвовали команды Sber AI, SberDevices, Самарского университета, AIRI и SberCloud.

Мы обучили две версии модели разного размера и дали им имена великих российских абстракционистов — Василия Кандинского и Казимира Малевича:

  1. ruDALL-E Kandinsky (XXL) с 12 миллиардами параметров;

  2. ruDALL-E Malevich (XL) c 1.3 миллиардами параметров.

Некоторые версии наших моделей доступны в open source уже сейчас:

  1. ruDALL-E Malevich (XL) [GitHub, HuggingFace, Kaggle]

  2. Sber VQ-GAN [GitHub, HuggingFace]

  3. ruCLIP Small [GitHub, HuggingFace]

  4. Super Resolution (Real ESRGAN) [GitHub, HuggingFace]

Две последние модели встроены в пайплайн генерации изображений по тексту (об этом расскажем ниже).

Потестировать ruDALL-E Malevich (XL) или посмотреть на результаты генерации можно здесь:

Версии моделей ruDALL-E Malevich (XL), ruDALL-E Kandinsky (XXL), ruCLIP Small уже доступны в DataHub. Модели ruCLIP Large и Super Resolution (Real ESRGAN) скоро будут доступны там же.

Обучение нейросети ruDALL-E на кластере Christofari стало самой большой вычислительной задачей в России: 

  1. Модель ruDALL-E Kandinsky (XXL) обучалась 37 дней на 512 GPU TESLA V100, а затем ещё 11 дней на 128 GPU TESLA V100 — всего 20 352 GPU-дней;

  2. Модель ruDALL-E Malevich (XL) обучалась 8 дней на 128 GPU TESLA V100, а затем еще 15 дней на 192  GPU TESLA V100 — всего 3 904 GPU-дня.

Таким образом, суммарно обучение обеих моделей заняло 24 256 GPU-дней.

Разберём возможности наших генеративных моделей.

«Озеро в горах, а рядом красивый олень пьёт воду» — генерация ruDALL-E Malevich (XL)
«Озеро в горах, а рядом красивый олень пьёт воду» — генерация ruDALL-E Malevich (XL)

Почему Big Tech изучает генерацию изображений 

Долгосрочная цель нового направления — создание «мультимодальных» нейронных сетей, которые выучивают концепции в нескольких модальностях, в первую очередь в текстовой и визуальной областях, чтобы «лучше понимать мир». 

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

  1. Возможность точно описать желаемое — и получить персонализированное изображение, которое раньше не существовало.

  2. В любой момент создавать необходимое количество licence-free иллюстраций в неограниченном объеме.

Первые очевидные применения генерации изображений:

  • Фото-иллюстрации для статей, копирайтинга, рекламы. Можно автоматически (а значит — быстрее и дешевле) создавать иллюстрации к статьям, генерировать концепты для рекламы по описанию:

«Лиса в лесу»
«Лиса в лесу»
«Орел сидит на дереве, вид сбоку»
«Орел сидит на дереве, вид сбоку»
«Автомобиль на дороге среди красивых гор»
«Автомобиль на дороге среди красивых гор»
  • Иллюстрации, свободные от лицензии фотостоков, тоже можно генерировать бесконечно:

    «Векторная иллюстрация с розовыми цветами»
    «Векторная иллюстрация с розовыми цветами»
  • Визуализации дизайна интерьеров — можно проверять свои идеи для ремонта, играть с цветовыми решениями, формами и светом:

    «Шикарная гостиная с зелеными креслами»
    «Шикарная гостиная с зелеными креслами»
    «Современное кресло фиолетового цвета»
    «Современное кресло фиолетового цвета»
  • Visual Art — источник визуальных концепций, соединений различных признаков и абстракций:

    «Темная энергия»
    «Темная энергия»
«Кот на Луне»
«Кот на Луне»
«Кошка, которая сделана из белого облака»
«Кошка, которая сделана из белого облака»
«Енот с пушкой»
«Енот с пушкой»
«Красивое озеро на закате»
«Красивое озеро на закате»
«Радужная сова»
«Радужная сова»
«Ждун с авокадо»
«Ждун с авокадо»

Более подробно о самой модели и процессе обучения

В основе архитектуры DALL-E — так называемый трансформер, он состоит из энкодера и декодера. Общая идея состоит в том, чтобы вычислить embedding по входным данным с помощью энкодера, а затем с учетом известного выхода правильным образом декодировать этот embedding.

Совсем верхнеуровневая схема «ванильного» трансформера
Совсем верхнеуровневая схема «ванильного» трансформера

В трансформере энкодер и декодер состоят из ряда идентичных блоков.

Чуть более подробная схема «ванильного» трансформера
Чуть более подробная схема «ванильного» трансформера

Основу архитектуры трансформера составляет механизм Self-attention. Он позволяет модели понять, какие фрагменты входных данных важны и насколько важен каждый фрагмент входных данных для других фрагментов. Как и LSTM-модели, трансформер позволяет естественным образом моделировать связи «вдолгую». Однако, в отличие от LSTM-моделей, он подходит для распараллеливания и, следовательно, эффективных реализаций.

Первым шагом при вычислении Self-attention является создание трёх векторов для каждого входного вектора энкодера (для каждого элемента входной последовательности). То есть для каждого элемента создаются векторы Query, Key и Value. Эти векторы получаются путем перемножения embedding’а и трех матриц, которые мы получаем в процессе обучения. Далее мы используем полученные векторы для формирования Self-attention-представления каждого embedding’а, что дает возможность оценить возможные связи в элементах входных данных, а также определить степень «полезности» каждого элемента.

Трансформер также характеризует наличие словаря. Каждый элемент словаря — это токен. В зависимости от модели размер словаря может меняться. Таким образом, входные данные сначала превращаются в последовательность токенов, которая далее конвертируется в embedding с помощью энкодера. Для текста используется свой токенизатор, для изображения сначала вычисляются low-level-фичи, а затем в скользящем окне вычисляются визуальные токены. Применение механизма Self-attention позволяет извлечь контекст из входной последовательности токенов в ходе обучения. Следует отметить, что для обучения трансформера требуются большие объёмы (желательно «чистых») данных, о которых мы расскажем ниже.

Как устроен ruDALL-E

Глобальная идея состоит в том, чтобы обучить трансформер авторегрессивно моделировать токены текста и изображения как единый поток данных. Однако использование пикселей непосредственно в качестве признаков изображений потребует чрезмерного количества памяти, особенно для изображений с высоким разрешением. Чтобы не учить только краткосрочные зависимости между пикселями и текстами, а делать это более высокоуровнево, обучение модели проходит в 2 этапа:

  1. Предварительно сжатые изображения с разрешением 256х256 поступают на вход автоэнкодера (мы обучили свой SBER VQ-GAN, улучшив метрики для генерации по некоторым доменам, и об этом как раз рассказывали тут, причем также поделились кодом), который учится сжимать изображение в матрицу токенов 32х32. Фактор сжатия 8 позволяет восстанавливать изображение с небольшой потерей качества: см. котика ниже.

  2. Трансформер учится сопоставлять токены текста (у ruDALL-E их 128) и 32×32=1024 токена изображения (токены конкатенируются построчно в последовательность). Для токенизации текстов использовался токенизатор YTTM.

    Исходный и восстановленный котик
    Исходный и восстановленный котик

Важные аспекты обучения

  1. На данный момент в открытом доступе нет кода модели DALL-E от OpenAI. Публикация описывает её общими словами, но обходит вниманием некоторые важные нюансы реализации. Мы взяли наш собственный код для обучения ruGPT-моделей и, опираясь на оригинальную статью, а также попытки воспроизведения кода DALL-E мировым ds-сообществом, написали свой код DALL-E-модели. Он включает такие детали, как позиционное кодирование блоков картинки, свёрточные и координатные маски Attention-слоёв, общее представление эмбеддингов текста и картинок, взвешенные лоссы для текстов и изображений, dropout-токенизатор.

  2. Из-за огромных вычислительных требований эффективно обучать модель можно только в режиме точности fp16. Это в 5-7 раз быстрее, чем обучение в классическом fp32. Кроме того, модель с таким подходом занимает меньше места. Но ограничение точности представления чисел повлекло за собой множество сложностей для такой глубокой архитектуры:

    a) иногда встречающиеся очень большие значения внутри сети приводят к вырождению лосса в Nan и прекращению обучения;

    b) при малых значениях learning rate, помогающих избежать проблемы а), сеть перестает улучшаться и расходится из-за большого числа нулей в градиентах.

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

    Для распределенного обучения на нескольких DGX мы используем DeepSpeed, как и в случае с ruGPT-3.

  3.  Сбор данных и их фильтрация: безусловно, когда мы говорим об архитектуре, нововведениях и других технических тонкостях, нельзя не упомянуть такой важный аспект как данные. Как известно, для обучения трансформеров их должно быть много, причем «чистых». Под «чистотой» мы понимали в первую очередь хорошие описания, которые потом нам придётся переводить на русский язык, и изображения с отношением сторон не хуже 1:2 или 2:1, чтобы при кропах не потерять содержательный контент изображений.

    Первым делом мы взялись за те данные, которые использовали OpenAI (в статье указаны 250 млн. пар) и создатели CogView (30 млн пар): Conceptual Captions, YFCC100m, данные русской Википедии, ImageNet. Затем мы добавили датасеты OpenImages, LAION-400m, WIT, Web2M и HowTo как источник данных о деятельности людей, и другие датасеты, которые покрывали бы интересующие нас домены. Ключевыми доменами стали люди, животные, знаменитости, интерьеры, достопримечательности и пейзажи, различные виды техники, деятельность людей, эмоции.

    После сбора и фильтрации данных от слишком коротких описаний, маленьких изображений и изображений с непригодным отношением сторон, а также изображений, слабо соответствующих описаниям (мы использовали для этого англоязычную модель CLIP), перевода всех английских описаний на русский язык, был сформирован широкий спектр данных для обучения — около 120 млн. пар изображение-описание.

  4. Кривая обучения ruDALL-E Kandinsky (XXL): как видно, обучение несколько раз приходилось возобновлять после ошибок и уходов в Nan.

    Обучение модели ruDALL-E Kandinsky (XXL) происходило в 2 фазы: 37 дней на 512 GPU TESLA V100, а затем ещё 11 дней на 128 GPU TESLA V100.

  5. Подробная информация об обучении ruDALL-E Malevich (XL):

    Динамика loss на train-выборке
    Динамика loss на train-выборке
    Динамика loss на valid-выборке
    Динамика loss на valid-выборке
    Динамика learning rate
    Динамика learning rate

    Обучение модели ruDALL-E Malevich (XL) происходило в 3 фазы: 8 дней на 128 GPU TESLA V100, а затем еще 6.5 и 8.5 дней на 192  GPU TESLA V100, но с немного отличающимися обучающими выборками.

  6. Хочется отдельно упомянуть сложность выбора оптимальных режимов генерации для разных объектов и доменов. В ходе исследования генерации объектов мы начали с доказавших свою полезность в NLP-задачах подходов Nucleus Sampling и Top-K sampling, которые ограничивают пространство токенов, доступных для генерации. Эта тема хорошо исследована в применении к задачам создания текстов, но для изображений общепринятые настройки генерации оказались не самыми удачными. Серия экспериментов помогла нам определить приемлемые диапазоны параметров, но также указала на то, что для разных типов желаемых объектов эти диапазоны могут очень существенно отличаться. И неправильный их выбор может привести к существенной деградации качества получившегося изображения. Вопрос автоматического выбора диапазона параметров по теме генерации остаётся предметом будущих исследований.

Вот не совсем удачные генерации объектов на примере котиков, сгенерированные по запросу «Котик с красной лентой»

Картинка 1 — у кота 3 уха; второй не вышел формой; третий немного не в фокусе. 
Картинка 1 — у кота 3 уха; второй не вышел формой; третий немного не в фокусе. 

А вот «Автомобиль на дороге среди красивых гор». Автомобиль слева въехал в какую-то трубу, а справа — странноватой формы.

«Автомобиль на дороге среди красивых гор»
«Автомобиль на дороге среди красивых гор»

Пайплайн генерации изображений

Сейчас генерация изображений представляет из себя пайплайн из 3 частей: генерация при помощи ruDALL-E — ранжирование результатов с помощью ruCLIP — и увеличение качества и разрешения картинок с помощью SuperResolution.

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

Пайплайн генерации изображений по тексту
Пайплайн генерации изображений по тексту

В Colab можно запускать инференс модели ruDALL-E Malevich (XL) с полным пайплайном: генерацией изображений, их автоматическим ранжированием и увеличением.

Рассмотрим его на примере с оленями выше.

Шаг 1. Сначала делаем импорт необходимых библиотек

git clone https://github.com/sberbank-ai/ru-dalle

pip install -r ru-dalle/requirements.txt > /dev/null

from rudalle import get_rudalle_model, get_tokenizer, get_vae, get_realesrgan, get_ruclip

from rudalle.pipelines import generate_images, show, super_resolution, cherry_pick_by_clip

from rudalle.utils import seed_everything
seed_everything(42)

device = 'cuda'

Шаг 2. Теперь генерируем необходимое количество изображений по тексту

text = 'озеро в горах, а рядом красивый олень пьет воду'

tokenizer = get_tokenizer()
dalle = get_rudalle_model('Malevich', pretrained=True, fp16=True, device=device)
vae = get_vae().to(device)

pil_images, _ = generate_images(text, tokenizer, dalle, vae, top_k=1024, top_p=0.99, images_num=24)

show(pil_images, 24)

Результат:

Генерация изображений по тексту
Генерация изображений по тексту

Шаг 3. Далее производим автоматическое ранжирование изображений и выбор лучших изображений

ruclip, ruclip_processor = get_ruclip('ruclip-vit-base-patch32-v5')
ruclip = ruclip.to(device)

top_images, _ = cherry_pick_by_clip(pil_images, text, ruclip, ruclip_processor, device=device, count=24)

show(top_images, 6)

Результат ранжирование ruCLIP-ом (топ6)
Результат ранжирование ruCLIP-ом (топ6)

Можно заметить, что один из оленей получился достаточно «улиточным». На этапе генерации можно делать перебор гиперпараметров для получения наиболее удачного результата именно под ваш домен. Опытным путем мы установили, что параметры top_p и top_k контролируют степень абстрактности изображения. Их общие рекомендуемые значения:

  • top_k=2048, top_p=0.995

  • top_k=1536, top_p=0.99

  • top_k=1024, top_p=0.99

Шаг 4. Делаем Super Resolution

realesrgan = get_realesrgan('x4', device=device)
sr_images = super_resolution(top_images, realesrgan)
show(sr_images, 6)

Super Resolution версии генерации
Super Resolution версии генерации

Для запуска пайплайна с моделью ruDALL-E Kandinsky (XXL) или Malevich (XL) можно также использовать каталог моделей DataHub (ML Space Christofari).

Будущее мультимодальных моделей

Мультимодальные исследования становятся всё более популярны для самых разных задач: прежде всего, это задачи на стыке CV и NLP (о первой такой модели для русского языка, ruCLIP, мы рассказали ранее), а также на стыке NLP и Code. Хотя последнее время становятся популярными архитектуры, которые умеют обрабатывать много модальностей одновременно, например, AudioCLIP. Представляет отдельный интерес Foundation Model, которая совсем недавно была анонсирована исследователями из Стэнфордского университета.

И Сбер не остается в стороне - так в соревновании Fusion Brain Challenge конференции AI Journey предлагается создать единую архитектуру, с помощью которой можно решить 4 задачи:

  • С2С — перевод с Java на Python; 

  • HTR — распознавание рукописного текста на фотографиях;

  • Zero-shot Object Detection — детекция на изображениях объектов, заданных на естественном языке; 

  • VQA — ответы на вопросы по картинкам. 

По условиям соревнования (которое продлится до 5 ноября) на общие веса нейросети должно приходиться как минимум 25% параметров! Совместное использование весов для разных задач делает модели более экономичными в сравнении с их мономодальными аналогами. Организаторами также был предоставлен бейзлайн решения, который можно найти на официальном GitHub соревнования. 

И пока команды соревнуются за первые места, а компании наращивают вычислительные мощности для обучения закрытых моделей, нашим интересом остается open source и расширение сообщества. Будем рады вашим прототипам, неожиданным находкам, тестам и предложениям по улучшению моделей!

Самые важные ссылки:

Коллектив авторов: @rybolos, @shonenkov, @ollmer, @kuznetsoff87, @alexander-shustanov, @oulenspeigel, @mboyarkin, @achertok, @da0c, @boomb0om

Комментарии (182)


  1. oulenspiegel
    02.11.2021 14:44
    +11

    Немного ещё примеров генерации)


  1. oulenspiegel
    02.11.2021 14:45
    +14

    Немного ещё примеров генерации)


    1. Dirac
      02.11.2021 14:54
      +2

      Сергей, крутые генерации! И сама модель!


      1. oulenspiegel
        02.11.2021 15:51

        Спасибо!


  1. oulenspiegel
    02.11.2021 14:46
    +13

    Немного ещё примеров генерации)


    1. iShrimp
      02.11.2021 18:45
      +27

      Картинки и тексты как будто взяты из сна. На первый взгляд выглядят реалистично, но если присмотреться к деталям - это жуткий майндфак. Сон на этом этапе обычно "ломается". А картинки - нет, их можно продолжать разглядывать. Любопытный феномен :)


      1. VPryadchenko
        02.11.2021 18:54
        +7

        Ага, причем, тексты во снах примерно так и выглядят.


        1. Anhal
          03.11.2021 14:27

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

          Удивительно.

          Да и про картинки как из снов тоже согласен.

          Еще одно подтверждение, что наш мозг в принципе не уникален, и когда-нибудь ИИ его догонит и, увы, перегонит.


          1. JediPhilosopher
            03.11.2021 14:46
            +5

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

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

            В принципе, тест на "дважды прочитать один и тот же текст и сравнить, вышло ли одно и то же" - хороший тест для проверки что ты во сне, для любителей практиковать осознанные сны.


            1. dmbreaker
              03.11.2021 23:35

              Но это только во сне все кажется прекрасным
              Однажды во сне я сочинил короткий стих и он был такой классный, что я очень захотел его запомнить и от того проснулся...
              А текст в голове остался... Короче я разочаровался на яву :)


              1. nibb13
                05.11.2021 08:29

                А мне, вот, наоборот приснилось как-то четверостишие, которое я тут же записал в лежащий рядом планшет "на автомате" и снова вырубился. Утром прочёл - весьма неплохо!


            1. perfect_genius
              04.11.2021 11:23

              У всех так.

              Похоже, не у всех. Удивлён, что кто-то видел во сне текст и слышал музыку.


              1. kr12
                05.11.2021 17:31
                +2

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


                1. perfect_genius
                  05.11.2021 18:56

                  Занимаетесь музыкой что ли?


                  1. kr12
                    06.11.2021 04:27

                    На любительском уровне, вроде сыграть опенинг к любимому мультфильму. И генераторы, вроде тех, что на shadertoy интересно пробовать делать. Я написал это к тому, что вникнув в некоторую область творчества, смотришь на вещи совсем другими глазами. Те же аудиофилы отлавливают характерные недостатки сжатия при mp3 192kbps, которые не тренированный человек не поймёт. Чуть научившись рисовать, смотришь, где и как свет идёт, как это изобразить удачнее. Ещё интересное наблюдение: если не учится писать рукой, то освоив основы языка после нескольких месяцев обучения и умея узнавать сотню иероглифов на вид, попытка нарисовать их по памяти полностью проваливается, выдавая результат как у сабжевых нейросетей.


        1. Sonikelf
          10.11.2021 15:52

          //offtop on

          За книги, тексты и вывески - да, есть такое.

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

          Феномен описан в книге "Практики Осознанных Сновидений" Стивена Лаберж. Это устойчивое явление, в числе прочего, используется как маячок понимания того, что Вы находитесь во сне в целях достижения осознанности.

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

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

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

          Так меня что-то понесло.

          //offtop off


          1. VPryadchenko
            10.11.2021 16:22
            +1

            К слову сказать, я использую руку (кисть) в качестве маркера сна - во сне у меня не бывает константного количества пальцев, их, во-первых, почти никогда не пять, а во вторых их вообще не посчитать, потому что их число меняется все время. Может, у Вас тоже так?

            Рука, в отличае от часов и вывесок, как правило, есть всегда, вне зависимости от конекста)


            1. Sonikelf
              10.11.2021 18:49

              С количеством пальцев не обращал внимания никогда специально - но вроде всегда было нормально, насколько я могу припомнить. Скорее всего такая техника ближе к индивидуальной и вопрос тренировки. Насколько я помню тот же мануал Лабержа - у каждого могут быть свои маркеры, общие приводятся как наиболее часто выделенное и совпадающее множество - те же часы или текст и тд и тп.

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

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


          1. copperfox777
            12.11.2021 12:18
            +1

            Случайно прочитал ваш комментарий. Сегодня пытался прочитать надпись на упаковке с лекарством. Сначала оно показалось адекватным, но почему то я решил вчитаться и вдруг понял что только что надпись была другой, попытался вглядеться еще раз и опять что-то новое и тогда я точно понял, что во сне.
            А тема с "сон во сне" раньше была вообще постоянно, когда сны были ярче. Думаешь что проснулся. Радуешься, ан нет - это опять сон.


            1. Sonikelf
              14.11.2021 11:50

              Ну да, оно как-то так и работает. Нюанс в том, что по сути всё во сне кажется нормальным, хотя зачастую какие-то элементы переходят грань абсурдности (для меня это чаще всего люди, которых я не видел 100 лет и/или которые в принципе в моем кругу друг с другом никогда не пересекались, за умерших вообще молчу), а понимаешь это только, когда просыпаешься (если запомнилось).

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

              За сны во сне как у большинства сказать не могу - судя по Вашему комментарию бывают и может даже не редко. Но когда я практиковал ОСы попадал пару раз в цикл максимум в 6 (шесть) просыпаний внутри сна и каждый раз мне приходилось проверять сплю или нет и искать проснулся я или нет в собственной же комнате и каждый раз какой-то новый неочевидный момент не совпадал. Честно говоря, я не очень понимаю чем и зачем вызван такой феномен работы мозга, но игры в поиск реальности с одной стороны тогда вызывали интерес - с другой стороны несколько пугали.


    1. iShrimp
      02.11.2021 19:13
      +4

      А ведь некоторые из этих "мемов", если их удачно запостить, вполне могут составить конкуренцию реальным мемам! Это даже может стать темой для исследования - как нейросеть может хакнуть массовое сознание :)


      1. Sber
        03.11.2021 15:13
        +1

        Звучит как описание новой серии «Черного зеркала» ????


    1. czz
      02.11.2021 23:36

      И ведь знаете, почти на каждой видится мат :)


    1. quartz64
      03.11.2021 11:00
      +2

      Я проиграл с картинки «Пяп» (четвёртая в нижнем ряду).


    1. Alex_ME
      03.11.2021 12:26

      Все картинки несуществующие, но картинка с Дауни младшим (второй ряд, четвертая картинка) неотличима от оригинала.


      1. perfect_genius
        04.11.2021 11:25

        Видимо, попалось много картинок с ним, где менялся лишь текст.


  1. oulenspiegel
    02.11.2021 14:47
    +16

    Немного ещё примеров генерации)


    1. MVN63
      03.11.2021 15:14

      Вероятно, Имаджинариум уже первый в очереди на генерацию )))


  1. oulenspiegel
    02.11.2021 14:47
    +5

    Немного ещё примеров генерации)


  1. oulenspiegel
    02.11.2021 14:48
    +5


  1. oulenspiegel
    02.11.2021 14:49
    +5

    Немного ещё примеров генерации)


    1. da0c
      02.11.2021 15:43
      +2

      Ну все равно модель больше в стилистику Брейгеля и голландцев тянет, чем к Репину)))


      1. oulenspiegel
        02.11.2021 15:50

        Мне кажется, что это отчасти из-за особенностей сетки для SuperResolution.


        1. da0c
          02.11.2021 21:36

          Можно кстати нашу попробовать...


    1. un7ikc
      03.11.2021 13:33

      мне кажется, или на второй картинке персонаж очень похож на Шварценеггера?


  1. oulenspiegel
    02.11.2021 14:54
    +4

    Ещё немного)


  1. skleg
    02.11.2021 14:55
    +1

    Это топ. Качество невероятное! Как тебе такое, Илон Маск?


  1. oulenspiegel
    02.11.2021 15:25
    +2

    Котики, куда же без них?


  1. oulenspiegel
    02.11.2021 15:25
    +1

    Собаченьки


    1. perfect_genius
      04.11.2021 11:27

      Похоже, нейросеть больше любит собак — вон какие качественные.


      1. z0ic
        10.11.2021 16:57

        Синий кот тоже норм ;-)


  1. thegriglat
    02.11.2021 15:35
    +5

    ожидаемо


  1. oulenspiegel
    02.11.2021 15:39

    Типа фото


  1. oulenspiegel
    02.11.2021 15:40

    Пейзажи


    1. VPryadchenko
      02.11.2021 17:22
      +1

      А если запрашивать "некрасивое" всякое?)


      1. oulenspiegel
        02.11.2021 18:08
        +2

        Порно из датасетов постарались вычистить, но, конечно, совсем идеально это не получилось. Но вообще самый страшный крип это не порно, а то, что моделька генерирует на запросы типа «элитный педикюр». Потому что считать-то (что пальцы, что другие предметы) она особо не умеет, разве что до трёх...


        1. VPryadchenko
          02.11.2021 18:15

          Оу, я как-то и не подумал про порно - просто заметил, что во многих примерах есть эпитет "красивый/ое/ая"... Но я Вас понял :)


          1. oulenspiegel
            02.11.2021 18:35

            А, ну да, эти модификаторы влияют, конечно)


        1. Alexey2005
          03.11.2021 14:08

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


        1. perfect_genius
          04.11.2021 11:29

          Порно для вас ассоциируется с "некрасивым"?
          Или нейросеть его выдавала, и вам пришлось вычищать?


        1. AlexPancho
          09.11.2021 10:12

          не получилось

          спойлер


      1. Vilgelm
        07.11.2021 00:15

        Я попробовал:

        Красивая кошка
        image

        Некрасивая кошка
        image


        Мне лысые кошки конечно тоже не очень нравятся, но что на первой картинке вообще? Наверное не стоило включать в датасет фото с ватермарками.


        1. PereslavlFoto
          07.11.2021 00:43
          +1

          На первой картинке можно разобрать слова koska и hvost. Словно бы намекают, что при изготовлении фотоснимка использованы части кошек.


          1. Wesha
            07.11.2021 01:03
            +2

            ....идентичные натуральным!


  1. BelBES
    02.11.2021 15:52
    +4

    Судя по семплам из комментариев и моих экспериментов с этой сеткой, складывается ощущение, что сеть серьезно страдает проблемой меморизации...Есть ли какой-то анализ полученной модели? Какие значения FID оно показывает на валидационной выборке, как соотносится с DALL-E, CogView на COCO etc.?


    1. northzen
      03.11.2021 02:26
      +4

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


      1. etoropov
        03.11.2021 04:48

        Я так понимаю, это общая проблема автоэнкодеров. Интересно, как с этим можно бороться, если можно вообще.


        1. northzen
          03.11.2021 05:02
          +5

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


        1. BelBES
          03.11.2021 12:38
          +1

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

          Тут скорей вопрос в том, насколько конкретная модель заучила трейн и является ли это проблемой конкретного пайплайна, или другие large scale сети для text-to-image (в частности CogView, который публично доступен и с которым можно как-то сравниваться) тоже склонны к меморизаци в +/- той-же степени. Ну т.е. очень круто, что Сбер тратит ресурсы на тренировку гигантских сетей и выкладывает это в паблик под свободной лицензией, но хотелось бы, чтобы модели были действительно полезными, а не только "самыми большими") А без хоть каких-то метрик и анализа не понятно, насколько оно полезно.


          1. Alexey2005
            03.11.2021 14:52

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

            То есть, как видим, если ёмкости сети не хватает для заучивания, то вполне очевидно происходит обобщение. Но вопреки тому, что подсказывает нам интуиция, когда ёмкость сети в несколько раз (в 4 и выше) больше «интерполяционного порога», то сеть тоже склонна к обобщению, а не запоминанию. Хотя памяти вроде бы многократный избыток.


            1. Nehc
              03.11.2021 15:28

              >>> Но вопреки тому, что подсказывает нам интуиция, когда ёмкость сети в несколько раз (в 4 и выше) больше «интерполяционного порога», то сеть тоже склонна к обобщению, а не запоминанию

              А есть какое-то внятное объяснение, как это может работать? Чет ничего в голову не приходит… Разве что за счет именно глубоких архитектур, когда сеть все-таки не может выделить внутри себя отдельные «подсети», и в любом случае что-то как-то обобщает на входных слоях, что бы уже дальше разобраться в нюансах…


              1. Alexey2005
                03.11.2021 18:01
                +3

                Существует несколько гипотез, но общепринятой среди них нет. Наиболее часто упоминается гипотеза лотерейного билета (Lottery Ticket Hypothesis). Суть которой в том, что когда сетка обладает многократным избытком ёмкости, то во время обучения там образуется несколько конкурирующих участков небольшого размера. Те из них, которые выдают лучшие результаты, побеждают в конкурентной борьбе, подавляя неудачные варианты, которые в итоге разваливаются, а их веса либо поглощаются удачными, либо переходят в «мёртвый» субстрат, сигнал от которого просто не доходит до верха.
                Гипотеза подтверждается экспериментами по прореживанию таких избыточных сеток. Если ранжировать все их веса по вкладу в выходной сигнал и начать обнулять наименее значимые, то оказывается возможным занулить до 90% всех весов тренированной сетки, прежде чем начнётся заметное просаживание качества. Т.е. всю реальную работу выполняет «выигрышный лотерейный билет» — небольшой участок (или пара-тройка таких), победивший в жёсткой конкурентной борьбе на этапе тренировки.


            1. BelBES
              03.11.2021 15:29

              Согласен, я умышленно загрубил свое высказывание, чтобы не вдаваться в подробности ;) На графике, на самом деле, можно предположить и корреляцию между трейн/тест как один из факторов, благодаря которому точность в ноль не падает на тесте и другие причины такого поведения.


  1. logran
    02.11.2021 16:18
    +2

    Апскейл, как мне кажется, только портит и мылит изображения. И на примерах из статьи видно (растительность, текстуры земли и гор — в кашу), и на собственном примере с пушистыми объектами проверил.

    Пример



    P.S. На Tesla P100 в колабе оно конечно жесть как долго генерирует в сравнении с Clip+VQGAN.


    1. BelBES
      02.11.2021 16:54

      Там время линейно скейлится относительно числа параллельно генерируемых картинок, если использовать images_num=1, то на 1x1080Ti выходит вполне терпимые ~4 минуты на запрос


  1. Nehc
    02.11.2021 17:03
    +10

    >>> Векторные иллюстрации, свободные от лицензии фотостоков, тоже можно генерировать бесконечно

    Только они будут растровые по определению. ;)

    А еще встречаются очень интересные экземпляры генерации, содержащие надписи, природу которых я не понимал, пока не прочитал вашу реплику про «свободные от лицензии фотостоков»: image

    Видимо в обучающих выборках были и не совсем свободные? ;)


    1. oulenspiegel
      02.11.2021 17:57
      +1

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


      1. Alexey2005
        04.11.2021 01:51
        +1

        Обычно нейронки сами успешно отсеивают «редкую» информацию. Если на 200 миллионов картинок данный копирайт встретился только однажды, нейронка его никак не запомнит. Если у каждой картинки свой уникальный копирайт, запоминания тоже не будет. Поэтому когда к примеру StyleGAN обучается на картинках с имиджбордов и deviantart'а, копирайты в результаты генерации не «протекают» — они слишком разнообразны, чтоб запомниться. Слишком мало повторов.
        А вот когда в выборке картинки с одинаковым копирайтом составляют заметный процент, вот тогда нейронка этот копирайт успешно ухватит.


  1. ginbor
    02.11.2021 17:21

    Почему так важно создавать изображения на основе именно русского языка? Сегодня уже довольно хорошо работают переводчики. Ведь можно перевести фразу на английский и пользоваться обычной DALL-E. Согласен, наверно будут проблемы с генерацией типа "лучшая картина Васи Ложкина", но тем не менее, зачем бороться за язык исходной фразы?


    1. oulenspiegel
      02.11.2021 17:58
      +4

      Любая дополнительная модель in the middle снижает качество всего пайплайна. Ну и, конечно, нам важно иметь модель, которая учитывает отечественные реалии — она всё-таки для русскоязычных сервисов, в первую очередь.


    1. peterpro
      05.11.2021 11:47
      +1

      А вот зачем. Понятно, почему это "большие сиськи"? :) Если нет - переведите "tit" на английский.


  1. Sincous
    02.11.2021 18:17
    +1

    Просто похлопаю. Я ещё не отошёл от вашего прошлого мегауспешного проекта https://habr.com/ru/company/sberbank/blog/584068/

    Я так и не понял, зачем мне генератор воображаемых характеристик (указываю название реальных товаров и мне в тексте вписывают несуществующие характеристики).


  1. Alexey_mosc
    02.11.2021 20:05
    +3

    Ждал этого 30 минут.


    1. oulenspiegel
      02.11.2021 20:29
      +1

      :( Не всегда получается хорошо, увы. А сейчас 5000 запросов в очереди на генерацию, и даже 150 карт Nvidia V100 не вывозят быстрее...


      1. victoriously
        02.11.2021 20:57
        +1

        Хотел уже попробовать запустить локально, но увы — на windows у меня(и судя по issue на гитхабе — не только у меня) падает компиляция youtokentome :(


        1. DistortNeo
          02.11.2021 21:00
          +1

          У меня под Linux успешно запустилось, но в самом конце упало по причине нехватки видеопамяти (GTX 1080 8 GB).


          1. KiddingBanana
            03.11.2021 03:09
            +1

            А подтюнить там ничего нельзя? У самого 8ГБ видеопамяти, дико хотелось бы поиграться


            1. DistortNeo
              03.11.2021 12:48

              Можно. Например, выгрузить KDE и браузер. Тогда влезает и ждёт чуть больше 7 гигов. Но считает охренительно долго: порядка 10-15 минут на 1 картинку. Отсутствие tensor cores даёт о себе знать.


          1. Nehc
            03.11.2021 11:43

            на 3060 работает. Выедает 10+ Gb.


        1. Nehc
          03.11.2021 11:42

          Это лечится. Там часть пакетов надо проставить отдельно…

          youtokentome, кажется, падает из-за cython.

          В общем, я на винде запустил.


          1. victoriously
            03.11.2021 11:50

            Да, Cython я поставил отдельно, после этого пропала ошибка невозможности разрешения зависимостей, но теперь оно падает из-за visual c++ 14, который у меня стоит. Здесь и здесь описано подробнее.


            1. victoriously
              03.11.2021 12:23

              fix: первый issue не совсем то, имел ввиду этот


              1. Nehc
                03.11.2021 15:15

                Ну я «сварщик не настоящий»(с), поэтому дальше уже не подскажу… ) У меня после фикса с cython — завелось…


        1. Aniro
          03.11.2021 20:15

          У меня нормально запустилось на win10, просто часть зависимостей, включая cython для youtokentome пришлось ставить вручную. Но проблем в этот раз значительно меньше чем обычно.

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


      1. Earthsea
        03.11.2021 10:32

        :( Не всегда получается хорошо, увы. А сейчас 5000 запросов в очереди на генерацию, и даже 150 карт Nvidia V100 не вывозят быстрее...

        Хабраэффект в 2021 году


  1. tmin10
    02.11.2021 20:29

    Умный дом
    image

    Домашняя автоматизация
    image


  1. VPryadchenko
    02.11.2021 20:35
    +2


    1. olsowolso
      03.11.2021 16:06

      А вот это интересный запрос.

      Возникают фантазии на тему самоосознания алгоритмов :)


  1. Alexey_mosc
    02.11.2021 20:57
    +2

    Слава богу, Хэмингуэй это не увидел.

    Мда.


    1. alan008
      03.11.2021 00:56
      +4

      Зато понятно, с какого стока брались картинки для обучения :-D


  1. zamboga
    02.11.2021 21:29
    +14

    image


    1. oulenspiegel
      02.11.2021 23:18
      +1

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


    1. ITMatika
      03.11.2021 11:26
      +1

      сиськи -> siskin -> чиж




  1. makondo
    03.11.2021 01:38

    "Пурпурная пульсирующая сущность в пространстве". Что-то я не вкурил, что он хотел сказать этим..


    1. id_potassium_chloride
      03.11.2021 03:16

      Кстати, текстоквадраты она часто выдаёт на просьбу нарисовать "нечто" и "пространство"


  1. redf1sh
    03.11.2021 02:39
    +1

    Больше похоже на обложку альбома для пост-рока

    Негры ночью уголь воровали


  1. romancelover
    03.11.2021 03:01

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

    Певица с очень большой грудью

    На певицу она похожа, вот только грудь у неё не очень-то и большая.


  1. etoropov
    03.11.2021 04:57

    Я так понял, что на графике training loss. Видно, что loss меняется с 5.25 до 5.0 ооооочень долго. Интересно, как различаются качество картинок при loss=5.25 и при loss=5. Вообще, насколько в принципе (не)возможно, чтобы loss упал до нуля в этой модели?


  1. Kaputmaher
    03.11.2021 05:29
    +2

    Как когда-то заметил Денис Ширяев, добавление к тексту запроса слов unreal engine и/или rtx mode on делает результат немного качественнее


  1. maxlilt
    03.11.2021 09:24

    Простейший вопрос для ИИ "зеленый цилиндр стоит на двух серых кубиках" выдал 2 зеленых квадрата. Печаль...


  1. alex_dow
    03.11.2021 09:27
    +7


    1. VPryadchenko
      03.11.2021 10:01
      +2

      А это вот очень даже ничего.


  1. RiseOfDeath
    03.11.2021 09:42
    +4

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


    1. Aldrog
      03.11.2021 11:03
      +1

      Это другая статья была.


    1. Sber
      10.11.2021 13:56

      Здравствуйте! Удалить опубликованный комментарий могут только модераторы и только в случае выявления факта нарушения правил сайта.


  1. Aldrog
    03.11.2021 11:07
    +3

    У вас Malevich не может чёрный квадрат нарисовать.


    image


    1. un7ikc
      03.11.2021 13:48


      а у меня вполне ожидаемо:


  1. plm
    03.11.2021 11:47
    -1

    ...переводчик поверх модели OpenAI...

    Если я использую прилагательное "кошачий", тупо получаю кошку во всю картинку. Несолидно.

    Опытным путем мы установили, что параметры top_p и top_k контролируют степень абстрактности изображения

    А вот это вообще меня убило. "...большая машина "воин-купол" пришла в движение от пальца в отверстии пятом и от пальца в отверстии сорок седьмом, и движение было неодолимое, быстрое и прямое."

    Короче, общее впечатление - дети дорвались до мощной техники.


  1. Andrey2007
    03.11.2021 12:06
    +3


  1. HellWalk
    03.11.2021 12:16
    +4

    Как пет-проект сделанный по фану, чисто по приколу - было бы вполне неплохо.

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

    P.S. Сама идея интересная, и думаю лет через 10-20 появятся вполне хорошие генераторы изображений. Но пока - это больше похоже на генератор треша.


    1. Nehc
      03.11.2021 16:03
      +5

      А мне кажется наоборот — это очень правильно!

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

      Было бы гораздо хуже, если бы выкатывались только однозначно выверенные готовые пойти в прод модели. Да и где помпа-то? Ну да — по телеграм-каналам и разным лентам новостным разошлось, но так… Стиль подачи скорее именно как у пэт-проекта (правда с нефиговым техническим ресурсом!).

      Я двумя руками за то, что в сбере есть такая команда, что они это делают, что выкладывают — пусть и дальше продолжают в том же духе! Я использую их GPT2/3 модель и скрипты для фантюнинга для своих изысканий — до них это было бы сильно сложнее.


  1. koshi
    03.11.2021 12:32

    Ещё немного треша с rsdn


  1. tmplts
    03.11.2021 12:38

    У вас на сайте при нажатии на кнопку "Обновить" браузер переходит в полноэкранный режим...


    1. Sber
      10.11.2021 13:53

      Здравствуйте! Проверили, у нас все работает нормально) Попробуйте сменить браузер.


  1. AmigoRRR
    03.11.2021 13:14
    +2

    Спасибо за отличную нейросеть и статью! Вы молодцы! Продолжайте в том же духе


    1. Sber
      10.11.2021 13:54

      Спасибо! Рады, что статья вам понравилась ????


  1. un7ikc
    03.11.2021 13:53

    попадание только в 2 слова, а по смыслу вообще попадания нет


  1. dlinyj
    03.11.2021 14:02
    +6

    Это невероятно круто! Просто фантастика, я бы сидел и сидел, экспериментировал. Есть прям суровая наркомания, но есть и крутые картинки.


    «Зелёные бутылки на красном фоне»

    Остальная наркомания

    «Мультфильм Крокодил гена и Черномырдин»


    «Бог»


    «Бутылка вина, бокал с вином, на зелёном фоне картина маслом»


    «Айвазовский, мазки квадрата Малевича»


    1. Wesha
      10.11.2021 18:13

      У меня скорее впечатление, что у Вас синдром посетителя музея абстракционизма: нейросеть сгенерила нечто, а уже Вы рационализируете, как это нечто в принципе может ну хоть как-то соотноситься с тем, что Вы вообще-то заказывали.


      1. dlinyj
        12.11.2021 16:38

        Мне кажется, что вы вы нашли подтекст в моих словах, сами же на него ответили.

        Я сказал, что меня позабавило то что выдала нейронка. И вот изображения, которые я привёл, они мне понравились и позабавили меня.


  1. Anhal
    03.11.2021 14:10
    +6

    Очень круто.

    В комментах пишут типа "проект с таким количеством треша в результатах".

    Но в этом же и крутость! Конкретную картинку по тексту легко найти в любом поисковике. А тут такой полет фантазии! Столько материала для вдохновения собственных нейронных сетей (которые, как его там, мозг)!

    Работало бы только побыстрее, но это, очевидно, дело наживное.

    Ребята, понятно, что со временем вы научитесь генерить картинки без такого количества нелепицы и абсурда, но, пожалуйста, оставьте возможность синтеза таких вот странных изображений. Или сделайте "регулятор абсурдности", от 0 до 100%.


    1. Sber
      10.11.2021 13:55

      Спасибо! Над скоростью генерации уже работаем. Про "регулятор абсурдности" интересная идея, подумаем ????


  1. Anhal
    03.11.2021 14:18

    А Николай Иронов - родственник Далли? По такому же принципу работает?

    Просто не понятно, как удалось Артемию Лебедеву, при всем уважении, создать собственного (?) ИИ-дизайнера, очевидно не обладая такими колоссальными технологическими и финансовыми ресурсами, как у Сбера.


    1. Nehc
      03.11.2021 15:32

      У Николая Иронова довольно простенькая, насколько я понимаю, архитектура, но при этом довольно неплохой нишевый датасет. ;) Он не умеет визуализировать слова по семантическому признаку — только создавать графические паттерны. Это тоже хорошо и правильно в прикладном смысле, но вот прям совсем другое.

      Это как говорить, если цепи Маркова тоже синтезируют текст, то зачем нужны GPT2/3?


    1. wadeg
      22.11.2021 02:41

      Кандидаты и джуны на испытательном сроке за еду вообще нахаляву — чудовищно эффективное и при этом масштабируемое решение.


  1. tigreavecdesailes
    03.11.2021 14:37
    +3

    Так вот ты какой...


    1. Wesha
      06.11.2021 02:33

      Так вот он какой,
      серверный олень
      серверный олень


    1. Wesha
      06.11.2021 02:34

      И до кучи
      скрипка-лиса
      скрипка-лиса


    1. Wesha
      06.11.2021 02:37

      А он ведь обещал, что покажет
      Кузькина мать
      Кузькина мать


  1. Babaen
    03.11.2021 14:38

    Ночевала тучка золотая

    На груди утеса-великана;

    Утром в путь она умчалась рано,

    По лазури весело играя;


    1. Eklykti
      03.11.2021 21:10
      +2

      Кажется, тучка решила отбомбиться


    1. Yokushiro
      09.11.2021 10:29

      Написано по-эльфийски!)


  1. toshi_uk
    03.11.2021 14:38

    Азбука по версии нейронки


  1. Loki3000
    03.11.2021 14:40
    +16

    Мифический человеко-месяц
    image


    1. K0styan
      03.11.2021 15:28
      +1

      А вот это прям хорошо вышло!


  1. sswwssww
    03.11.2021 14:55

    У кого-нибудь получилось запустить на 6gb vram карточке?


    1. Nehc
      03.11.2021 15:33

      Запускайте тогда уж в Collab… Там хоть 12. Только ОООчень долго.


      1. sswwssww
        03.11.2021 16:08

        В этом и суть, что в Collab ОООчень долго. Хотел узнать смог ли кто-то оптимизировать потребление памяти в угоду скорости. У меня GTX 1660 SUPER, а тут вижу что ребята запускают на более слабых картах, но с большими VRAM.


        1. victoriously
          03.11.2021 16:37

          Сами авторы на гитхабе обещают выпустить уменьшенную модель к новому году


          1. sswwssww
            03.11.2021 17:09

            Ага, видел. Но там кто-то уже пулл реквест создал на оптимизацию, пойду пробовать.

            p.s.: Действительно, с этим форком стало генерировать в РАЗЫ(10x) быстрее, но проблема с памятью у меня все еще актуальна.


            1. sswwssww
              03.11.2021 17:46
              +2

              Таки смог сгенерить, ток на cpu :), форк парня на ускорение + fp16=False + device = 'cpu' + в generate_images(images_num=1) - итог:
              8 минут генерации 1 картинки на intel core i5 10400f. Без форка ушел бы примерно час на cpu.


            1. Alexey2005
              03.11.2021 17:48

              Похоже, спецам из Сбера проще подключить к расчётам дополнительную тысячу GPU, чем потратить пару дней на оптимизацию кода.


              1. order227
                07.11.2021 01:11
                +1

                Зачем? В опен сорс выкладывают как раз для того, чтобы комьюнити допилило все за тебя. Взаимовыгода такая)


  1. tester12
    03.11.2021 16:15
    +1

    "Светлое будущее". Что-то как-то мрачновато...


    1. Wesha
      06.11.2021 00:02

      Ты куда меня завёз?



  1. arthin
    03.11.2021 20:10
    +1

    Ривенделл
    Ривенделл


    А вот "Имладрис" уже явно не понимает. Корпус богатый, но не на столько.
    На каггле ругается на зависимости: "allennlp 2.7.0 requires transformers<4.10,>=4.1, but you have transformers 4.10.3 which is incompatible". Но работает.


  1. Metotron0
    03.11.2021 20:56
    +1

    Какой же интернет без этого персонажа…


  1. shinkei
    04.11.2021 00:10

    Ей богу. Лучше бы Бетховенов намайнили и всем хабровчанам раздали )


  1. Panzerschrek
    04.11.2021 10:06

    "Мем про парня и двух девушек"
    Я имел в виду этот:

    и композиционно оно даже как-то похоже.


  1. un7ikc
    04.11.2021 10:57
    +2

    Осталось сделать нейросеть переводчик:


    1. Alexey2005
      04.11.2021 12:30
      +1

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


      1. K0styan
        05.11.2021 12:52

        Точно нейронки. Только белковой)


  1. SilverFerrum
    04.11.2021 12:42

    большое желтое колесо
    большое желтое колесо

    ¯_(ツ)_/¯


  1. PereslavlFoto
    04.11.2021 18:45
    +1

    ddimitrov Вы писали, что «векторные иллюстрации, свободные от лицензии фотостоков, тоже можно генерировать бесконечно».

    Ваша программа выдаёт мне файл. Эта программа работает без моей власти, по вашей воле. Следовательно, результат её работы является вашим произведением. Эти иллюстрации закрыты вашим авторским правом. И отсюда вопрос.

    Скажите пожалуйста, по какой лицензии вы разрешаете использовать произведения, созданные этим сайтом, этой нейросетью?

    Спасибо.


    1. oulenspiegel
      05.11.2021 04:03

      Если следовать этой логике, то молоток работает по воле создавшего его мастера, MS Word по воле Microsoft. Нейронка это просто инструмент — сложный, но и только. Все лицензии указаны и в github'е и на сайте rudalle.ru


      1. rPman
        05.11.2021 07:25

        я думаю что лицензия на результат как минимум должна зависеть от лицензии на исходные данные (обучающую выборку)

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


        1. Alexey2005
          05.11.2021 10:21
          +2

          В таком случае и любой результат работы художника принадлежит тому, на чьих картинах этот художник учился.
          А то понаберут рефов, прокрутят в своей межушной нейросети и на их основе делают новый рисунок.
          Ну, а если серьёзно, то нейронки — это потенциально огромный вызов всей системе авторских прав. Даже больший, чем распространение Интернета. Потому что при простом копировании контента хотя бы можно понять, что перед вами копия, а когда контент пропущен через нейронки, то в большинстве случаев совершенно невозможно доказать, что использовались закопирайченные данные, причём принадлежащие именно данному правообладателю.


  1. zamboga
    05.11.2021 00:09

    1. Wesha
      06.11.2021 02:49
      +1

      Вот как надо
      сферический конь в вакууме
      сферический конь в вакууме


      1. zamboga
        07.11.2021 16:16

        Точно. Конь, а не рояль)


  1. rrust
    05.11.2021 22:38

    страшная грета тунберг

    Заголовок спойлера
    image

    а идея была примерно такая
    Заголовок спойлера
    image


  1. Wesha
    06.11.2021 02:41

    И ещё
    Взрыв на макронной фабрике
    Взрыв на макронной фабрике


  1. Wesha
    06.11.2021 02:48
    +1

    Его здесь все знают
    @zelenyikot
    @zelenyikot


  1. Wesha
    06.11.2021 02:54

    Учись, Петров-Водкин
    купание красного коня
    купание красного коня


  1. kr12
    06.11.2021 03:25

    наиболее удачные из около 20 попыток
    Столкновение повозки о пяти колёсах с поездом 2ТЭ10
    Столкновение повозки о пяти колёсах с поездом 2ТЭ10
    Открылась бездна звезд полна; Звездам числа нет, бездне дна.
    Открылась бездна звезд полна; Звездам числа нет, бездне дна.
    Бездны черные, бездны чужие, Звезды – капли сверкающих слез... Где просторы пустынь ледяные... – Там теперь задымил паровоз
    Бездны черные, бездны чужие, Звезды – капли сверкающих слез... Где просторы пустынь ледяные... – Там теперь задымил паровоз

    Сперва попытки получить что-то релевантное провалились. "Мику играет на пианино", "Рин и Лен седлают коня", "девочка на коте в осенних джунглях" - выдают мусор, грубую мазню. Очень не хватает ускоренного промежуточного результата, чтоб оценить примерно, что там оно наколдовало и продолжить или отвергнуть/переделать, ведь каждый раз оно генерирует по-разному. Ночью считает быстро 2-3 мин.


  1. kr12
    06.11.2021 18:30
    +1

    Подведём итоги темы:


  1. isNikita
    07.11.2021 14:50

    Мне напомнило Гугл начало 00х. Когда нужно было правильный запрос писать, что бы найти нужный ответ. Так и тут, при правильном тексте может выдать просто жемчужину. Но все же это криповые, психоделические, фантазийные картинки. Неплохо кстати эмитирует работы Пикассо, Мунка, Малевича и др. Достаточно написать "картина пикассо" например.


  1. Stendarr
    08.11.2021 10:11

    Что-то в этом есть.


  1. Kitsuny
    08.11.2021 10:11
    +1

    Не знаю почему, но это мне нравится СЛИШКОМ сильно...


  1. GypsyBluesMan
    08.11.2021 10:11

    Хочу спросить, а кто-нибудь пробовал подкрутить параметры в коде?
    Например, в ячейке Generation, seed_everything(42) - на что-нибудь влияет это число?


  1. MrMait
    08.11.2021 10:13

    Киберпанк девяностых


  1. vivatrici
    08.11.2021 10:14

    За безусловный технологический прорыв - РЕСПЕКТ! Одна из единиц интегрального парсинга стала вполне годной иллюстрацией к околотехническому контенту. Кстати, лицензия на использование уже определена?

    За ответственность исследователя мысли обратные. Кто-то думал на ответом на вопрос: готово ли не самое передовое в плане психологической устойчивости общество к потоку образов, смелости которых позавидовал бы сам Генрих Роршар?

    Будущее покажет.


    1. kr12
      08.11.2021 19:35

      Запретные и неполиткорректные картинки и описания в базу же не попадают, так что напротив это будет рафинированное искусство, не знающее альтернативных точек зрения


  1. chatter
    09.11.2021 10:06
    +2

    Очень неплохо работает с запросом "шарж".
    Например по запросу "Весёлый "Иосиф Виссарионович Сталин шарж карандашный рисунок" - получился весьма обаятельный Виссарионыч.


  1. chatter
    09.11.2021 10:23
    +1

    Так-же сеть умеет работать с логотипами (разумеется при правильном запросе). Это уже прямая конкуренция Лебедевскому Н.Иронову за сто тысяч рублей. Причём нужно конечно посидеть, погенерить. Но результаты не хуже Лебедевских. А порой и интересней.


    1. Wesha
      10.11.2021 18:16

      сеть умеет работать с логотипами

      Но подписывать их она почему-то предпочитает на эльфийском.


      1. chatter
        10.11.2021 18:35

        Да и слава богу. Загнать эльфийский в распознавание текста в яндекс-картинки и можно вызывать демона!


  1. ddsl
    13.11.2021 18:04

    Я видимо где-то туплю но при попытке установить себе на винду (pip install -r ru-dalle/requirements.txt) выдает конфликт версий в исходниках:

    ERROR: Cannot install -r ru-dalle/requirements.txt (line 1), -r ru-dalle/require ments.txt (line 3) and -r ru-dalle/requirements.txt (line 9) because these packa ge versions have conflicting dependencies.

    The conflict is caused by:

    taming-transformers 0.0.1 depends on tqdm

    transformers 4.10.2 depends on tqdm>=4.27

    torchvision 0.2.2 depends on tqdm==4.19.9

    To fix this you could try to:

    1. loosen the range of package versions you've specified

    2. remove package versions to allow pip attempt to solve the dependency conflict

    ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_g uide/#fixing-conflicting-dependencies

    Подскажите как поправить.


  1. Kovot
    15.11.2021 07:49
    +1

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