Unsolicited Disclosures
1.58K subscribers
14 photos
24 links
AI, Tech, иногда шитпостинг
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Сегодня Aydao (aydao.ai) выпустил апдейт своей модели, котрая генерирует аниме. Можно посмотреть здесь: https://thisanimedoesnotexist.ai #AI
Есть такая команда - EleutherAI. Они работают над репликацией модели GPT-3, которую OpenAI не выпустил (и не планирует выпускать) в открытый доступ. Их цель - сделать публично доступную модель размеров в 100 миллиардов параметров. С первым этапом - собрать большой и качественный датасет - они уже справились. Для репликации GPT-3 будет использоваться The Pile (https://github.com/EleutherAI/the-pile) объемом 1.25Tb (для сравнения, OpenWebText, на котором тренировали GPT-2, был всего 50Gb). Вторая задача - найти способ тренировать модель большого размера (100B) на большом количестве процессоров (GPU или TPU), каждый с 16..32Gb памяти. Задача была решена с использованием Mesh TensorFlow. Они выпустили GPT-Neo (https://github.com/EleutherAI/gpt-neo), который был протестирован на TPUv3-32 (это кластер из 32 процессоров с 32Gb памяти каждый).

Однако использовать Mesh TensorFlow на GPU было всегда проблематично (это разработка Google Brain и поэтому он сделан больше под TPU). И буквально несколько дней назад эта же команда выпустила GPT-Neox (https://github.com/EleutherAI/gpt-neox), который использует фреймворк Deepspeed by Microsoft для тех же целей, что и Mesh TensorFlow (не только паралеллизовать вычисления, но и распределить большую модель между многими процессорами с ограниченной памятью).

GPT-Neox еще не готов полностью к использованию, однако вполне функционален - у меня ушла пара часов, чтобы поставить все необходимое и запустить тренировку модели размером 8.6B на четырех GPU с 32Gb каждый.

(Стоит отметить, что известная российская команда в настоящее время тоже тренирует русскоязычную GPT-3 точно такого же масштаба, как и самая большая модель OpenAI - 175B) #AI
(К написанному выше: долгое время не было простого способа распределить модель по нескольким GPU. Фреймворки наподобие Horovod и Distributed Tensorflow решали задачу параллелизации вычислений, когда в процессе тренировки в каждом GPU размещалась полная копия модели. Это ускоряло обучение модели, однако никак не помогало в случае, если памяти одного GPU не хватало для размещения переменных модели, оптимизатора и пр. Необходимость использовать GPU с большим объемом памяти приводила к дополнительным расходам; такие алгоритмы, как gradient checkpointing, отчасти помогали решать эту проблему, экономя память, зачастую за счет производительности. И сейчас наконец-то появились более-менее универсальные решения (Deepspeed), которые за счет распределения компонентов одной копии модели по всем доступным устройствам, позволяют тренировать очень большие модели, не требуя узкоспециализированного железа) #AI #Hardware
В январе OpenAI выпустили новую модель - CLIP - которая оценивает степень соответствия между произвольной фразой и изображением. CLIP - кульминация ряда свежих работ по обучению моделей визуальным представлениям текстовых описаний. Новизна CLIP заключается в том, что: 1) модель воспринимает текст на естественном языке, в произвольной форме 2) высокая гибкость модели, ее representational capacity, позволяет достигать очень хороших результатов в совершенно разных областях данных, в то время, как существующие модели зачастую хорошо работают с одними наборами данных и намного хуже с другими.

Типовой случай использования CLIP - оценка сходства изображения с одним из нескольких текстовых описаний ("a photo of a dog", "a photo of a cat"). При этом, CLIP позволяет не просто классифицировать объекты по категориям ("a banana", "an apple"), или работать по описанию сцены ("small boat with lake sunset in background"; я поэкспериментировал с CLIP на наборах синтезированных портретов, и обнаружил, что она умеет ранжировать изображения по более абстрактным критериям ("a person resembling Tom Cruise", "a cute girl photo"), а также, например, по качеству самого изображения ("blurry, noisy photo", "high quality photo").

По утверждениям авторов, CLIP избавляет от необходимости использовать для тренировки огромные датасеты из изображений, которые нужно категоризировать и маркировать вручную (например, тот же ImageNet). Для тренировки CLUP были использованы пары из изображений и описаний (заголовков), собранные с веб-страниц, подобно тому, как несколько десятков гигабайт текста с веб-страниц былb использован для тренировки GPT-2. Объем датасета, впрочем, не раскрывается. В результате, модели типа CLIP можно использовать практически для любых задач, связанных с классификацией визуальной информации. С другой стороны, возможности CLIP все еще имеют ряд ограничений, например, CLIP не очень справляется с задачами, требующими системного понимания структуры изображения, например, считать объекты ("three cups on a table"); также CLIP довольно чувствительна к стуктуре фразы описания и порядку слов - в этом она, опять-таки, схожа с GPT-2/3, которые требуют prompt engineering (что на мой взгляд чем-то напоминает составление магических заклинаний =)

https://openai.com/blog/clip/

#AI
NVIDIA выпустила официальную pytorch имплементацию StyleGAN2-ADA. Идеи:

1) попробовать обернуть её в DeepSpeed, и тренировать большую модель (150-300M параметров), возможно, в разрешении 2048px, и возможно с self-attention блоками в слоях 128px и выше (раньше мне это не удавалось, был OOM даже на 32Gb VRAM)
2) попробовать скрестить её с CLIP

https://github.com/NVlabs/stylegan2-ada-pytorch #AI
Вышеупомянутая модель CLIP может быть использована в сочетании с генеративными моделями (GANs). В первом сценарии можно сгенерировать большое количество изображений и просто ранжировать их с помощью CLIP, отобрав топовые результаты по категориям. Попробуйте, например, сделать это с StyleGAN2 FFHQ, и тремя категорями ("a blonde", "a redhead", "a brunette"). А потом попрбуйте ("a cute girl", "an ordinary person") - это тоже работает!

Второй сценарий основан на том, что "функция сходства" CLIP является дифференцируемой относительно параметров GAN, и мы можем получить вектор направления изменения параметров, который будет максимизировать сходство сгенерированных изображений с текстовым описанием. Мы делаем композитный дискриминатор, который будет возвращать оценку и градиенты, используя существующий дискриминатор GAN и функцию сходства (CLIP + текстовое описание), с настраиваемыми коэффициентами, и проходимся этим композитным дискриминатором по латентному пространству GAN, оптимизируя выводы генератора. Это напоминает то, как работает проецирование изображения на латентное пространство (GAN back-projection), только вместо классификатора сходства с изображением (типа VGG16) мы используем CLIP в качестве классификатора сходства с произвольным текстовым описанием.

Здесь http://www.counterengineer.com/art/what_clip_sees/ есть несколько примеров, сгенерированных Anime StyleGAN2 (TANDE) по фразам. А вот ноутбук для Colab, где можно попробовать самому https://colab.research.google.com/github/nagolinc/notebooks/blob/main/CLIP_%2B_TADNE_(pytorch)_v2.ipynb

#AI
Очень интересная работа: "Brain2Pix: Fully convolutional naturalistic video reconstruction from brain activity" (https://www.biorxiv.org/content/10.1101/2021.02.02.429430v1.full.pdf). Авторы (Le et al.) взяли данные из сканов функциональной МРТ (фМРТ) головного мозга и реконструировали из них изображения и кадры видео. Это было достигнуто путем представления регионов активности мозга как тензоров в пространстве пикселей (вокселей), и последующей генерации изображений на основе этих представлений.

Это напоминает предыдущую работу двухлетней давности "End-to-end deep image reconstruction from human brain activity" (https://www.biorxiv.org/content/10.1101/272518v1.full.pdf), где авторы (Shen et al.), добивались похожих результатов, используя, грубо говоря, данные из fMRI в качестве входных данных для генератора GAN.

Успехи таких работ свидетельствуют о быстром прогрессе в области интерфейсов "мозг-компьютер" (brain-machine interface, BMI). На мой взгляд, это вполне ожидаемо. Техническое обеспечение непрервыно прогрессирует - от примитивных средств наподобие полиграфа (детектора лжи), который косвенно и с ограниченной точностью фиксирует реакцию мозга в ответ на стимулы, мы перешли к фМРТ, позволяющей непосредственно визуализировать активность мозга, с разрешением до единиц миллиметров и долей секунд; прототипы инвазивных интерфейсов наподобие Neuralink (https://www.biorxiv.org/content/10.1101/703801v2.full.pdf) дают еще большую полосу пропускания между мозгом и компьютером. С другой стороны, ML алгоритмы, развивающиеся последние 10 лет, позволяют обрабатывать эти данные. Так что эти успехи - неизбежное следствие конвергенции развивающихся технологий.

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

#AI #BMI
Пару недель назад вышла статья (https://www.sciencedaily.com/releases/2021/02/210208161927.htm), где утверждается, что авторы (Hussain et al) впервые (!) научились обманывать детекторы дипфейков ("DF"). Меня заинтересовала такая подача; оказалось, что работе Hussain et al ("Adversarial Deepfakes: Evaluating Vulnerability of Deepfake Detectors to Adversarial Examples", https://arxiv.org/abs/2002.12749) уже год, и никакого "впервые" там нет, просто авторы обращают внимание на то, что в предыдущих работах, посвященным состязательным (adversarial) атакам на дискриминативные сети, конкретно DF внимание не уделялось.

Статья довольно интересная; помимо прочего, там описано построение whitebox и blackbox атак на дискриминативные сети (whitebox - это сценарий, когда в распоряжении атакущего есть сама модель (веса); blackbox - когда модели нет, и добавить ее как классификатор в loss функцию для тренировки adversarial сети невозможно, но есть доступ например через API, по результатам запросов в который можно примерно оценивать градиенты). Похожие техники подойдут и для манипуляции другими дискриминативными сетями, например, используемых при распознавании лиц и тд.

Вообще тема состязательных атак на дискриминативные сети достаточно популярная. Просматривая, например, материалы прошлогодней CVPR я обратил внимание на работу Xu et al "Adversarial T-shirt! Evading Person Detectors in A Physical World" (https://arxiv.org/abs/1910.11099), в которой авторы успешно продемонстрировали, что человек, который носит майку со специально сгенерированным изображением, в 75% случае перестает опознаваться как человек такими популярными детекторами объектов, как YOLO и R-CNN.

Ожидаемо, что эти методики были опробованы против детекторов DF, и продемонстировали некоторый успех. Можно ожидать, что помимо состязательных атак, генеративные сети сами по себе будут становиться более совершенными, и будут создавать более качественные DF, которые будут обходить детекторы. Вспоминается странная работа Hu et al "Exposing GAN-generated faces using incosistent corneal specular highlights" (https://arxiv.org/abs/2009.11924), авторы которой демонстрируют, что можно успешно идентифицировать синтезированные изображения лиц, сравнивая искажения бликов от света (фотовспышки) в левом и правом глазах - однако они делают эти заключения на основе анализа изображений, сгенерированных StyleGAN2 FFHQ, в то время как известно, что использование более совершенных сетей (хотя бы той же StyleGAN2, но с большей емкостью), значительно улучшает симметрию этих бликов, делая их абсолютно реалистичными.

В целом уязвимость детекторов DF представляется довольно важной темой, принимая во внимание усилия, направленные на автоматизацию борьбы с "fake news"

(продолжение следует)

#AI #DeepFakes
Касательно совершенстования алгоритмов обнаружения DF: Das et al улучшили результаты классификатора, используя процесс динамеческой аугментацию датасета для тренировки - подход, который был успешно применен в ряде работ в прошлом году на тему совершенствования GANs, в частности Adaptive Discriminator Augmentation (ADA) в StyleGAN2.

https://deepai.org/publication/improving-deepfake-detection-using-dynamic-face-augmentation

#AI #DeepFakes
OpenAI выложили еще несколько моделей CLIP, а также опубликовали статью (https://distill.pub/2021/multimodal-neurons/), в которой, помимо прочего, делается смелое утверждение "In 2005, a letter published in Nature described human neurons responding to specific people. We report the existence of similar multimodal neurons in artificial neural networks" и приводятся наглядные визуализации "искуственных нейронов" (sic). В статье есть ссылки на какой-то невероятный инструмент визуализации - OpenAI Microscope (например, https://microscope.openai.com/models/contrastive_4x/image_block_4_5_Add_6_0/34)

#AI
Пара обращающих на себя внимание вещей из области brain-machine interfaces:

1. Обезьяна, которая играет в пинг понг через Neuralink https://neuralink.com/blog/

"We are pleased to reveal the Link’s capability to enable a macaque monkey, named Pager, to move a cursor on a computer screen with neural activity using a 1,024 electrode fully-implanted neural recording and data transmission device, termed the N1 Link"

2. Подход к декодированию активности мозга, регистрируемой при помощи магнитоэнцефалографии: Deep Recurrent Encoder: A scalable end-to-end network to model brain signals https://arxiv.org/abs/2103.02339

"We propose an end-to-end deep conv net, trained to predict brain responses from the experimental conditions and using *all* the data (continuous recordings and multiple subjects)"

Твиттер-тред https://twitter.com/jrking0/status/1379775034579947520 и код на GitHib https://github.com/facebookresearch/deepmeg-recurrent-encoder

#AI #BMI
На днях команда Huawei анонсировала создание языковой модели ("PanGu-α: Large-scale Autoregressive Pretrained Chinese Language Models with Auto-parallel Computation", https://arxiv.org/abs/2104.12369), превосходящей по количеству параметров известный OpenAI GPT-3 в 2 раза ("up to 200 billion parameters"). Архитектура модели - вариация на тему привычных трансформаторов (sparse attention не применялся), авторы использовали датасет на китайском языке размером в 1.1Tb (и довольно подробно описали детали сборки в статье).

На первый взгляд, ничего необычного. За исключением того, что тренировка модели такого размера была выполнена полностью на специализированном железе Huawei, без задействования привычных акселераторов NVidia Tesla, Google TPU и т.д. Авторы использовали 2048 акселераторов Huawei Ascend 910, каждый из которых внешне напоминает Tesla V100 - с похожим энергопотреблением (350W), HBM2 памятью на чипе, и двойной (по сравнению с V100) заявленной производительностью при вычислениях с половинной точностью. (В статье это не указно, но из кода видно, что модель считалась в FP16). Силикон для Ascend 910 разработан Huawei вместе с HiSilicon, архитектура фигурирует под названием Davinci, и производится по технологии 7nm (TSMC N7+). Единственным существенным импортным компонентом платформы остаются процессоры Intel Xeon. Поскольку существующие фрэймворки (Tensorflow, Pytorch, JAX) не поддерживают Ascend/Davinci, Huawei сделал свой, чем-то походий на Pytorch - Mindspore, который поддерживает CPU, GPU (NVidia CUDA) и Ascend/Davinci.

Создание полного стэка - выглядищих конкурентноспособными акселераторов и собственного ML фрэймворка - который работает настолько неплохо, что с его использованием можно выполнить тренировку модели в 200B параметров - это, конечно, замечательные результаты. Это примерно как Google со своим стэком TF+TPU. Остается заменить процессоры Xeon и можно это называть примером успешного импортозамещения.

код и релизы моделей (пока самая большая из выложенных - 13B): https://git.openi.org.cn/PCL-Platform.Intelligence/PanGu-Alpha
про DaVinci: https://www.anandtech.com/show/14756/hot-chips-live-blogs-huawei-da-vinci-architecture
Mindspore: https://www.mindspore.cn/doc/note/en/master/design/mindspore/architecture.html
некоторые детали по Ascend: https://www.servethehome.com/huawei-ascend-910-provides-a-nvidia-ai-training-alternative/

#AI