Новинки искусственного интеллекта и нейронных сетей. Разборы статей. Ну а вообще, посчу, что захочу :) Сотрудничество/предложения: @atmyre Поддержать: https://t.me/dl_stories/521
Попросили рассказать про НейроSet: это конференция по нейросетям и AI, где будут доклады на темы CV/NLP/генеративок.
Месяца два назад мне написал организатор этой конференции и пригласил на ней выступить. Выступать я отказалась (мне бы с текущими делами разобраться), но рассказать о ней в канале согласилась, потому что доклады должны быть хорошие.
Я бы выделила вот эти:
- Parameter-Efficient Fine-Tuning: тюнинг больших языковых моделей сейчас и завтра от Владислава Лялина, PhD в University of Massachussets Lowell, автора канала DL in NLP. Обещает рассказать о том, какие эффективные техники существуют для (до)обучения больших языковых моделей. Будет хорошим дополнением к секции RLHF датафеста;
- Другие приложения генеративных моделей от моего бывшего коллеги по лабе в Вышке Михаила Гущина. Миша расскажет про неочевидные применения генеративных моделей — в астрономии, физике высоких энергий и для прогноза поведения систем. Для справки — лаба, где работает Миша, занимается ML в физике высоких энергий и сотрудничает с CERN;
- Коэволюция когнитивных процессов и жизни от Ивана Хватова из Московского института психоанализа. Тут обещают рассказать о том, когда и для чего возникли базовые познавательные процессы (ощущение и восприятие) и как затем появлялись более сложные когнитивные феномены – память, внимание и мышление. Вот этот доклад послушала бы сама.
Подробная программа тут
Конференция будет 14 июля с 10 до 19 МСК.
Стоит 670р (да, знаю), и мне еще выдали промокод DLSTORIES на скидку 20%.
CoCa: Contrastive Captioners are Image-Text Foundation Models (by Google Research)
#paper
Такая изящная идея, что удивительно, почему никто не додумался до нее раньше.
Что предлагают:
Берем обычный CLIP. Напомню, что он состоит из двух энкодеров — для текста и картинок. Добавляем к нему еще одну часть: модель, которая принимает на вход эмбеддинг текста и эмбеддинг картинки из CLIP, и учится генерировать тот же самый текст, эмбеддинг которого был подан на вход (см. картинку к посту). Назовем эту часть text decoder. И теперь обучаем всю модель целиком (т.е. все три части) с помощью двух лоссов: стандартный contrastive loss от CLIP и кросс-энтропия между сгенерированным текстом и изначальным (а-ля лосс из задачи image captioning). При обучении эти лоссы просто суммируем.
В чем тут смысл:
Смотрите, чтобы модель могла сгенерировать правильный текст по входящим эмбеддингам, нужно, чтобы в этих самых эмбеддингах содержалась нужная для этого информация. Это заставляет энкодеры CLIP'а выучивать более информативные, содержательные эмбеддинги картинки и текста, чем в стандартном сеттинге обучения CLIP.
Это подтверждается экспериментами: на ImageNet фичи CoCa достигают 0.86 top-1 accuracy в zero-shot режиме (без никакого дообучения), а с supervised дообучением на трейн сете – 0.910 accuracy, что есть новая SOTA.
Кроме ImageNet'а авторы провели эксперименты еще на куче даатсетов и заадчах, где CoCa тоже показывает отличные результаты.
Еще плюшка метода: CoCa можно легко дообучить на Image Captioning. Выкидываем текстовый энкодер, и дообучаем энкодер картинок + text decoder на датасете для задачи captioning. Снова получаем новую SOTA и уверенно бьем vanilla CLIP/BLIP.
📄Статья
Инфу о статье нашла тут.
Сейчас будет реклама, текст которой я написала сама. Это реклама самого крупного в России и Европе сервиса подбора и и видео-консультаций с психологами "Ясно"
#промо
Я в личной терапии уже 3.5 года. И с полной уверенностью могу сказать, что терапия — это лучшее, что я сделала для себя в этой жизни. За годы терапии я сильно выросла эмоционально, научилась лучше коммуницировать с людьми и справляться с самыми сложными ситуациями в жизни. Я стала лучше понимать себя и что я хочу от жизни.
Еще терапия очень помогла мне не поехать кукухой в событиях последних лет. А сейчас я наблюдаю, как терапия помогает не поехать кукухой людям в моем окружении. Два близких мне человека за последние полгода говорили фразу "терапия — это очень хорошо".
Я очень рада, что тема психологов и терапии становится все более нормальной в нашем обществе. Терапия — это действительно прекрасный инструмент помощи в сложных ситуациях и работы над собой. Точно готова ее рекомендовать.
Но для того, чтобы сессии с психологом были действительно полезными, важно найти грамотного специалиста под ваш запрос. Такой специалист никому ничего не навязывает и не стремится как-то на вас повлиять. Он помогает вам самим разобраться с собой и выработать свои механизмы, свое решение вашей ситуации.
В "Ясно" строгий отбор психологов: все терапевты имеют высшее образование и регулярные супервизии. К тому же, сам сервис был основан психологами. В общем, на треш не нарветесь. А если что-то пойдёт не так, вы всегда можете обратиться в службу поддержки, где работают люди с психологическим образованием.
Вот еще несколько поинтов про терапию и "Ясно":
- в терапию можно прийти с любым запросом. Будь то тревожность, выгорание, проблемы в работе, поиск себя или личные отношения. Или даже какая-то точечная сложная ситуация. В "Ясно" вам предложат на выбор несколько специалистов именно под ваш запрос на основе подробной анкеты.
- иногда подходящий именно вам специалист находится не с первого раза. Это нормально. Я сменила трех, пока нашла своего. Но это стоило того на все сто. В Ясно это понимают, поэтому специалиста можно поменять нажатием одной кнопки в личном кабинете.
- иногда результат терапии ощущается уже после первых нескольких сессий. А иногда для этого требуется больше времени. Все зависит от запроса и вашей психики. Мой совет — дайте процессу время. Я пришла к мысли "психотерапия — лучшее, что со мной случилось" далеко не сразу.
В общем, попробовать точно стоит. Чтобы начать было легче, Ясно дают всем читателям моего канала скидку 20% на первую сессию при регистрации по промокоду DLSTORIES.
Записаться в Ясно
Реклама. ООО "Ясно. Лайв", ОГРН 1217700387442, ИНН 9703044223
erid: Kra23uuPh
Еще одна статья из средних веков 2021 года: Transformer Feed-Forward Layers Are Key-Value Memories
#paper
Когда речь заходит об explainability трансформеров ("а давайте поковыряем модель и попробуем понять, как она работает и что выучивает"), руки сразу тянутся изучать карты внимания. Это логично, потому что механизм attention имеет понятный смысл и структуру, а карты внимания можно визуализировать и найти на них что-то интересное.
Однако ~2/3 параметров траснформера — это веса MLP слоев. А на них в исследованиях внимания обращали не особо. Авторы этой статьи решили это исправить.
Они говорят вот что: кажется, MLP слои трансформера можно рассматривать как ненормированный key-value memory.
Подробнее:
Key-value memory — это механизм реализации "долгосрочной памяти". Состоит memory из двух матриц — K (key) и V (value). Обе матрицы обучаемые. Получение информации из памяти происходит так:
y = SoftMax(Kx) V
Т.е. сначала на основе входящего элемента х получается распределение вероятностей на ключи K. Затем оно умножается на V и получается итоговый ответ.
По сути, тут векторы матрицы K по входящему элементу х понимают, какие значения матрицы V важны для получения ответа. Т.е. векторы матрицы K "реагируют" на наличие во входе x каких-то паттернов, важных для получения итогового ответа. И итоговый ответ собирается из векторов матрицы V с соответствующими весами.
Теперь посмотрим на формулу MLP слоя трансформера:
MLP(x) = f(Kx)V
Здесь K и V — матрицы весов, f — функция активации. Мы можем посмотреть на матрицу K как на матрицу ключей (key), а на V — как на матрицу значений (values). Тогда получается механизм, напоминающий стандартный key-value memory, только функция активации будет другая.
Авторы статьи решили проверить, действительно ли можно смотреть на MLP слои с такой точки зрения. Они взяли обученную языковую модель и стали подавать ей на вход текст. Также зафиксировали несколько векторов k из матриц K MLP слоев. И стали смотреть, для каких входных текстов х произведение kx получалось наибольшим.
Оказалось, что для большинства векторов k есть определенные паттерны текста x, которые дают большие значения kx. Например, 449-й вектор матрицы K первого слоя модели сильнее всего реагирует на тексты, которые заканчиваются на слово "substitutes". А 2989-й вектор матрицы 13-го слоя реагирует на тексты, которые заканчиваются указанием времени ("tomorrow at 11", "Friday until", ...)
Напоминает исследования времен RNN, когда в моделях для генерации текста/кода можно было выделить отдельные нейроны, которые сильнее всего активировались в определенных местах текста. Например, нейрон, который активировался на переносе строки или на том месте, где в коде нужно было поставить закрывающую скобку.
Для меня лично это интересно тем, что это исследование — про NLP. А в картинках как? Какую роль играют MLP слои трансформера в DINO или в Stable Diffusion?
📄 Статья. В ней еще есть соображения насчет роли матрицы V в MLP
Из МФТИ просили передать, что до 15 июля идет набор в магистратуру и аспирантуру ФПМИ МФТИ по искусственному интеллекту и робототехнике.
Программы:
— Магистратура «Методы и технологии искусственного интеллекта» (10 мест со стипендией до 30 т.р.)
— Аспирантура «Информатика и вычислительная техника» (5 мест, со стипендией до 80 т.р.)
Для поступления нужно:
- заполнить анкету по ссылке;
- пройти собеседование и сдать экзамены по правилам приемной комиссии МФТИ.
Студенты будут иметь возможность совмещать учебу с оплачиваемой стажировкой в Центре когнитивного моделирования.
Там под руководством ведущих специалистов вы сможете заниматься исследованиями и публиковать результаты на передовых конференциях А* (NeurIPS, ICLR, ICLM, IJCAI и др.), а также работать над прикладными проектами по следующим темам:
— RL
— Беспилотный транспорт
— Сomputer vision
— Воплощенный искусственный интеллект (embodied AI)
— Планирование поведения
— Интеллектуальное управление робототехническими платформами
Больше информации о программе и поступлении можно найти на сайте программы и приемной комиссии.
Также тут можно посмотреть прямые эфиры о поступлении.
Анонс: в четверг я буду записывать новый выпуск подкаста Deep Learning Stories. Гостем будет Андрей Васнецов — основатель & CTO Qdrant — стартапа, который разрабатывает векторную базу данных (что такое векторная база данных, можно узнать тут)
С Андреем планируем обсудить:
- Что такое векторные базы данных и где они применяются;
- Как векторные базы данных можно использовать в ChatGPT;
- В чем сложность реализации векторных баз данных;
- Путь Андрея в создании стартапа
Как обычно, перед записью мне нужны ваши вопросы. Что вам было бы интересно узнать у Андрея? Пишите вопросы в комментарии, и во время записи мы добавим эти вопросы в программу.
P.S. Прошлые выпуски подкаста Deep Learning Stroeis можно найти тут:
- Yandex Music
- Apple Music
- Google Music
- Spotify
- YouTube
Поддержать подкаст (скинуться на монтаж))) можно тут:
- рублями (Тинькофф)
- любая другая валюта (Revolut)
Помните, DeepMind с помощью RL научили AlphaZero находить более эффективные алгоритмы перемножения матриц? (об этом пост был тут) Так вот, теперь они решили учить AlphaZero находить более эффективные алгоритмы сортировок. И, кажется, добились в этом каких-то успехов.
#paper
Подробнее:
Сортировка — это очень важная часть многих программ. Она используется очень часто. И уметь делать сортировку массивов эффективно (т.е. за как можно меньшее количество операций) — очень важно.
Как и в задаче перемножения матриц, существует несколько эффективных алгоритмов сортировки, которые применяются в разных ситуациях. Например, при разных размерах массивов и разной природе данных. И, как и в случае перемножения матриц, наиболее эффективные варианты сортировок для каждой ситуации были придуманы людьми. А что если попытаться учить нейросеть решать эту задачу? И вдруг она сможет найти более эффективный алгоритм, который люди придумать не смогли? С матрицами же такое проканало.
В DeepMind решили попробовать: взяли AlphaZero и представили задачу сортировки массива в виде игры. И обучали AlphaZero играть в эту игру с помощью RL. Эту модель назвали AlphaDev. Вот как устроена игра и обучение:
Состояние среды S — пара <P, Z>. Здесь P — это сгенерированный алгоритм сортировки на текущий момент на языке assembler. Z — текущее состояние памяти и регистров. В каждый момент времени t агент AlphaZero принимает на вход текущее состояние среды S = <P, Z>, и совершает действие a. Действие а — это добавление к текущему алгоритму P какой-либо новой инструкции на assembler. Например, mov<A,B>.
Так, шаг за шагом, AlphaZero строит итоговый алгоритм сортировки на ассемблере. Reward модели на каждом шаге составляется из двух величин — корректно ли работает алгоритм P, полученный на текущем шаге (correctness), и насколько долго работает этот алгоритм (latency). Корректность алгоритма проверяется на нескольких заранее заданных парах (вход, выход), где "вход" — неотсортированный массив чисел, "выход" — тот же, но уже отсортировнный массив.
Генерация алгоритма сортировки продолжается какое-то заранее заданное количество шагов. Если за это время не получен итоговый работающий алгоритм, генерация начинается сначала.
Обученную таким образом модель попросили выдать алгоритмы сортировки для последовтельностей длины 3, 4 и 5. Надо сказать, что существуют два варианта алгоритмов сортировок — те, которые могут сортировать последовательности фиксированной длины (fixed sort, например, алгоритм, который сортирует только массивы длины 4), и те, которые могут принимать на вход массивы разной длины (variable sort, например, алгоритм, который сортирует массивы длины от 1 до 5). Для обоих случаев авторы сравнили алгоритмы, полученные AlphaZero, с теми, которые сейчас используются в программах. И вышло, что в обоих случаях AlphaZero смогла найти более эффективные варианты алгоритмов. А точнее, в случае fixed sort получилось улучшить алгоритмы сортировки массивов длины 3 и 5, а в случае variable sort был найден интересный способ сортировки массивов длины 4.
Более подробно о том, как устроены найденные AlphaDev алгоритмы сортировки, читайте в статье Nature.
Пара образовательных апдейтов:
1. Все доклады с DataFest смонтировали и собрали в одно место. Вот тут можно найти треки по разным тематикам, внутри треков — видео. Напомню, что я выступала в треке Instruct Models: там были доклады по RLHF, Instruction tuning (это мой), создание своей LLM'ки на практике и еще пара других. Если что, я перезаписала видео для выкладки, тех технических неполадок там не будет)
2. HuggingFace выпускают новый курс по работе с аудио. Курс будет тут, как обычно бесплатно. Уже есть структура первых модулей. Записаться на курс можно в формочке тут.
Еще напомню, что у HuggingFace есть и другие курсы:
- Deep RL Course
- NLP Course
- Diffusion Models Course
Как хитро прикрутить GPT-4 к text-to-image модели
Как обычно устроены text-to-image модельки типа Stable Diffusion: берется предобученный text encoder, замораживается, через него прогоняется входящий текст, получаются эмбеддинги. Эти эмбеддинги затем подаются в качестве condition на вход модельке, которая генерирует картинку.
В качестве text encoder обычно берут CLIP или T5. Чем круче text encoder, который вы используете, тем лучше будет "понимание" текста моделью, и тем точнее сгенерированная картинка будет соответствовать тексту. Под "крутостью" text encoder я тут имею в виду то, насколько полные и информативные внутренние представления текста выучивает модель. Еще в этой работе было показано, как переход от эмбеддингов CLIP к T5 улучшает понимание моделью связей между объектами и позволяет генерировать правильный текст на картинке.
Однако даже T5 не способен идеально передать все связи между объектами в запросе. То есть, если подать на вход текст "единорог на цилиндре", мы иногда действительно будем получать картинку единорога на цилиндре, но иногда это будет единорог в/под/около цилиндра.
А GPT-4 — это, как бы, самый крутой text encoder, который у нас только есть. Скорее всего, он умеет лучше понимать отношения между объектами в тексте. Но доступа к модели GPT-4 для генерации эмбеддингов текста нет. Что же делать?
Ребята из UC Berkeley и Microsoft Research предложили такую идею:
Смотрите, GPT-4 может по текстовому запросу сгенерировать код формата TikZ, который задает векторную картинку. Например, по запросу "единорог на цилиндре" мы получим векторную картинку с очертаниями чего-то типа единорога, стоящего на чем-то типа цилиндра. Дальше берем ControlNet (эту штуку подробно разбирала тут). Подаем ControlNet на вход текстовый запрос и векторную картинку из GPT-4 в качестве condition. Получаем итоговую high-res картинку красивого единорога, стоящего на цилиндре.
Короче, этот метод позволяет неявно использовать GPT-4 в качестве text encoder для text-to-image модели, и тем самым повышает контролируемость результата генерации.
Единственный нюанс — чтобы использовать ControlNet в таком режиме, ее надо дообучить на датасете вида (текст, TikZ картинка, high-res картинка). Авторы собирают данные такого вида следующим образом: берут датасеты для image captioning LVIS and COCO. В этих датасетах также даны маски объектов. Эти маски объектов конвертируют в полигоны, похожие на формат TikZ. Получают датасет (текст, около-TikZ картинка, high-res картинка), на котором и дообучают ControlNet
📄 Статья
#промо
Аренда облачных GPU по отличным ценам!
A10 - $0,68/hr
T4 - $0,5/hr
A800 (a800x8, 232 core cpu 1929 RAM, with ssd 480GB, NVME 2x7.68TB) - $14/hr
Первым пяти пользователям — дополнительная скидка до 80%!
Чтобы узнать больше, пиши ▶️ @TechandNick
Стерлинг Криспин, работавший исследователем нейротехнологических прототипов в Эппле более 3 лет делится тем, что они делали в группе, которая вчера выпустила VisionPro.
Там есть пугающие подробности, вот с цитатами небольшой перевод для вас:
... пользователь находится в смешанной реальности или виртуальной реальности, а модели ИИ пытаются предсказать, испытываете ли вы любопытство, рассеяность, страх, внимание, вспоминаете прошлый опыт или какое-то другое когнитивное состояние. Эти данные могут быть получены с помощью таких измерений, как слежение за глазами, электрическая активность в мозге, сердцебиение и ритмы, мышечная активность, плотность крови в мозге, кровяное давление, проводимость кожи и т.д.
Чтобы сделать возможными конкретные предсказания, было использовано множество трюков ... Одним из самых крутых результатов было предсказание того, что пользователь собирается нажать на что-то до того, как он это сделает... Ваш зрачок реагирует до того, как вы нажмете на кнопку, отчасти потому, что вы ожидаете, что что-то произойдет после нажатия...
Другие трюки для определения когнитивного состояния включают быструю подачу пользователю визуальных или звуковых сигналов, которые он может не воспринимать, а затем измерение его реакции на них.
В другом патенте подробно описывается использование машинного обучения и сигналов тела и мозга, чтобы предсказать, насколько вы сосредоточены, расслаблены или хорошо учитесь. А затем обновлять виртуальную среду, чтобы усилить эти состояния. Представьте себе адаптивную среду погружения, которая помогает вам учиться, работать или расслабляться, изменяя то, что вы видите и слышите на заднем плане.
https://twitter.com/sterlingcrispin/status/1665792422914453506
Гугл сделал прикольную штуку: Generative AI Learning Path. Это Tl;Dr из 10 мини-уроков о том, как работают современные генеративные модели в CV и NLP. Начинают с того, что вообще такое — эти ваши "большие языковые модели", переходят к общим описаниям архитектур и аттэншену, заканчивают туториалом о том, как самому создать и задеплоить такую модель (на Google Cloud, разумеется, хехе)
Кажется, может быть полезно тем, кто в DL понимает не особо, но хочет базово разобраться в том, на каких принципах работают совеременные модели и задеплоить свою.
📄 Ссылка
Записали подкаст с Ольгой. Вышло очень классно, мне было оочень интересно! Как смонтируется запись, выложу ее везде и напишу об этом.
В конце Ольга упомянула, что в AIRI открылся прием заявок на летнюю школу по AI. Школа будет 17-30 июля в Татарстане. В программе — лекции, семинары и практика. Среди преподавателей — Евгений Бурнаев, Дмитрий Ветров, Александр Панов и другие.
Направления:
– RL (обучение с подкреплением)
– робототехника
– 3D компьютерное зрение
– генеративное и вероятностное моделирование
– моделирование данных на многообразиях машинного обучения
– графовые нейронные сети
– детектирование и диагностика аномалий по сенсорным данным
Школа бесплатная. Подробная информация и подача заявки на сайте. (подача до 4 июня)
P.S. Лекции прошлогодней школы AIRI выложены на AIRIInstitute/playlists">YouTube
Все забывала написать: уже с прошлой субботы идет DataFest. Это бесплатная открытая конференция, где с докладами выступают специалисты по AI в разных областях: CV, NLP, MLOps, и т.д. Фест будет идти до 4 июня.
Сегодня будут доклады в секции по NLP + RLHF. Это та тема, с помощью которой обучаются современные языковые модели (ChatGPT и иже с ними). Вас ждет интро в RLHF, воркшоп по тому, как заводить LLM + RLHF, разбор Instruction tuning и еще пара докладов вокруг темы.
Конкретнее:
- В 14:00 будет выступления Игоря из Сиолошной, он расскажет интро в RLHF (выступление в записи);
- В 17:00 будет воркшоп по LLM + RLHF;
- В 19:00 будет доклад "Instruction tuning: что, почему и как" от меня (я буду выступать онлайн вживую)
Между этими выступлениями есть и другие, подробнее — в программе феста.
Ссылки:
Подробная программа
Тг-канал DataFest
Стрим DataFest на YouTube (уже идет, сейчас утренние доклады)
Spatial.Chat — это платформа для просмотра вебинаров, где можно и нужно задавать вопросы спикерам. Пароль от Spatial.Chat: festparroteverywhere23
P.S. Если вам интересно, что я забыла в секции по NLP, хотя занимаюсь я CV, то я тоже не знаю. Я мимо проходила, меня позвали выступить)
А у меня анонс: в четверг, 25 мая, в 18:00 МСК на YouTube-канале DLSchool будет живая лекция про беспилотные автомобили от Александра Петюшко. Вход свободный, во время лекции можно и нужно будет задавать вопросы. Запись будет.
Более подробно о лекции и спикере:
Тема встречи: Введение в технический стек беспилотных автомобилей. Открытые проблемы и вызовы.
Начнем рассказ с того, как устроены современные беспилотники с технической точки зрения. Затем перейдем к проблемам и вызовам, которые сейчас остро стоят в беспилотниках. Особенно подробно обсудим проблемы в поведенческой части технологии. А еще затронем тему регулирования беспилотных автомобилей в мире: насколько регуляция вредит или помогает разработке.
Обсуждение будет построено на основе материалов открытых лекций, которые Александр читал в университете Беркли.
О спикере: Александр Петюшко (Google Scholar) — технический руководитель направления Исследования Поведения в Nuro. Nuro — это компания-разработчик беспилотных автомобилей из Калифорнии. До Nuro Александр работал ведущим инженером и научным экспертом в Huawei, а также управляющим директором и ведущим научным сотрудником в AIRI. Кроме этого, Александр читает лекции по теории глубокого обучения в МГУ и МФТИ. А еще он был гостем подкаста Deep Learning Stories аж два раза: в первый раз мы говорили с ним о собеседованиях в AI Research, а во второй — о математике в deep learning.
Приходите! Будет интересно)
(В день лекции еще напомню о ней тут)
В этом посте хочу порассуждать на вот какую тему. Пару раз случалась такая ситуация: разбираю я в канале какую-то статью, которая использует новую интересную идею для решения задачи Х, но при этом до SOTA не дотягивает. И в комментариях иногда пишут: "ой ну это фуфло, вон модель Y эту задачу X намного лучше решает, метрики больше и все ей пользуются".
Меня каждый раз очень удивляют подобные комментарии. Ценность научных работ совсем не всегда заключается в том, чтобы побить SOTA. Подобные работы круты тем, что они предложили абсолютно новый взгляд на проблему, новое решение, которое тоже неплохо работает. Возможно, кто-то прочитает эту статью, вдохновится и придумает ее улучшение, которое уже побьет эту самую SOTA. Или окажется более обобщаемым. Или просто поможет исследователям посмотреть на проблему с новой стороны и придумать еще один, совершенно новый подход к решению этой задачи.
К такой ситуации есть хороший пример: машинный перевод. Сейчас все понимают, что эта задача решается нейросетями, внутри Google translate сидят крутятся нейронки. Но так было не всегда: до примерно 2015 года с этой задачей лучше справлялись phrase-based подходы, и в продакшене крутились именно они. И был огромный пласт людей, которые в нейронки в переводе совсем не верили, и продолжали улучшать phrase-based системы, хихикая над теми, кто пытался готовить нейронки.
Да и в vision домене ситуация была та же: до 2012 года много кто не верил, что нейронки смогут даже в классификацию картинок. На того же ЛеКуна косо смотрели, когда он начал продвигать свои CNN. А когда-то еще раньше смеялись над теми, что вообще начинал смотреть в сторону нейросетей.
Короче, если что-то пока работает плохо, это не значит, что оно фуфло и это надо выкинуть. Это надо сначала исследовать.
Еще я замечала в каком-то смысле "обратное" явление, когда люди быстро готовы выкинуть в окно старую технологию, когда появилась новая. Например, сейчас многие не хотят смотреть в сторону CNN, потому что есть трансформеры. Хотя CNN и трансформеры — это две совсем разные архитектуры, каждая со своими достоинствами и недостатками. И во многих моделях можно использовать их обе. В той же Stable Diffusion есть и свертки, и трансформеры.
К этому у меня есть такая история: в нашей школе DLSchool в конце семестра студенты делают проекты. Тему проекта можно выбрать из нескольких разных. Я несколько лет подряд курировала проект про автоэнкодеры. В нем студентам нужно было самостоятельно разобраться с устройством vanilla AE, VAE и Conditional VAE, написать код и поставить несколько экспериментов. И года 4 назад ко мне в личку приходили студенты со словами: "Здравствуйте. Думаю взять ваш проект, но меня смущает то, что автоэнкодеры же как бы устарели. Для генерации картинок теперь есть GAN. Зачем тогда AE?"
А посмотрите, что мы имеем сейчас. Часть Stable Diffusion — VQ-VAE. Или вспомним MAE, который положил начало развитию подходов masked image modeling. Или, например, новые подходы к нейросетевому сжатию изображений, многие из которых основаны на автоэнкодерах.
В общем, не спешите закапывать старое, если придумали что-то новое, которое в чем-то лучше этого старого. Оно вам обязательно пригодится. Особенно если это не узкоспециализированная модель, а такая базовая штука, как AE.
Ну и главная мысль поста такая: в науке нужно стараться быть максимально открытым к новому и не позволять себе думать, что ты уже все в своей области понимаешь и знаешь, что и как будет работать. А еще важно развивать в себе умение смотреть на проблему под разными углами.
Пока я закопалась в написании отчета по PhD (🫠), у Миши вышла вторая часть подкаста со мной (первая была тут, если что).
В этой части две большие темы:
- чем я занимаюсь в своей научной работе по PhD;
- всякие рассуждения о будущем AI и вымрем ли мы все.
Слушать тут
Ну вот, как и писала в посте выше, начинают появляться все больше "вводных" курсов по AI. В частности, по так хайпующему сейчас Generative AI.
Очередной лот — курс Generative AI with Large Language Models от DeepLearning.ai и Amazon AWS. С первого взгляда контент курса выглядит хорошо. Обещают:
- погружение в LLM: что это, как работает, какие архитектуры бывают
- дообучение LLM (alignment, human feedback, RLHF, трюки вроде chain-of-thoughts, etc)
- практическое руководство по выбору LLM для своей задачи и дообучению на AWS;
- оптимизация обучения (скейлинг на GPU, LORA, Parameter efficient fine-tuning, etc)
Полный syllabus тут.
Если кто-то будет смотреть, скажите потом, как оно
Выпуск подкаста “S02E01: AI Research в генетике и биоинформатике" доступен на всех платформах!
#podcast
Гостья эпизода — Ольга Кардымон, научный сотрудник и руководитель группы «Биоинформатика» Института искусственного интеллекта AIRI.
С Ольгой поговорили о последних достижениях в генетике и биоинформатике, о языковых моделях в работе с ДНК и белками и о том, что получило человечество после появления AlphaFold. Также обсудили путь Ольги из чистой биологии в AI.
Ссылки:
Yandex Music
Apple Music
Google Music
Spotify
YouTube
Материалы и таймкоды к выпуску
Два момента:
1. Я перенесла подкаст с платформы Anchor на Mave. Теперь на всех платформах должно быть можно слушать без VPN;
2. В этот раз я заказала монтаж подкаста у профессионалов. Скажите, как послушаете, хорошо ли вышло (чтобы на будущее понимать, обращаться ли за услугами для следующих выпусков)
Интересная статья аж с 2020 года от Facebook AI: Improving Transformer Models by Reordering their Sublayers
Авторы говорят вот что: смотрите, трансформеры у нас обычно состоят из слоев FC и self-attention (SA), которые идут друг за другом: SA-FC-SA-FC-...
Но почему слои трансформеров должны идти именно в таком порядке? Что если такое устройство — не оптимальное?
Авторы провели следующий эксперимент:
Зафиксировали количество параметров. Рандомно сгенерировали 20 вариантов трансформеров с этим количеством параметров. В каждой модели было по 16 слоев SA и FC, но их порядок отличался. Порядок слоев — это как раз то, что генерировалось рандомно. Могли быть, например, такие варианты моделей:
FC-FC-FC-SA-SA-FC-...
SA-FC-FC-SA-SA-SA-...
Далее все полученные модели обучили на задачу языкового моделирования на датасете WikiText-103 и посчитали perplexity на тестовой части. Оказалось, что треть полученных моделей имеют perplexity не хуже, чем у бейзлайна (трансформера со стандартной структурой слоев). А некоторые — лучше.
Авторы решили понять, что отличает те архитектуры, которые показали лучший perplexity. Единственный паттерн, который смогли заметить — у таких архитектур в начале больше слоев SA, а в конце — больше слоев FC.
Чтобы проверить гипотезу, что именно это свойство улучшает модель, авторы провели следующие эксперименты:
1. Обучили трансформер, у которого сначала идут 16 слоев SA, затем — 16 слоев FC. Но тут прироста в качестве не получилось. Хотя, надо заметить, что качество и не упало: оно оказалось на уровне бейзлайна.
2. Обучили разные трансформеры вида SA^k (SA-FC)^(n-k) (FC)^k. То есть, архитектуры, где в начале идет несколько слоев SA, затем слои SA и FC чередуются, и в конце идет набор слоев FC. Такой вид модели назвали Sandwitch Transformer.
Оказалось, что практически все варианты Sandwitch Transformer с тем же количеством параметров, что у бейзлайна, получают perplexity не хуже. А некоторые даже лучше. Например, Sandwitch Transformer для n=16, k=6 получил perplexity=17.96, когда у бейзлайна 18.7 (perplexity был усреднен после 5 запусков с разным random_seed)
Почему наблюдается такое поведение (что Sandwitch Transformer лучшает качество), авторы статьи выяснить не смогли. Но смогли понять вот что: если достаточно сильно отойти от классической архитектуры, где SA и FC чередуются, то слои SA начинают выучивать другие паттерны, нежели слои SA у классического трансформера.
В принципе, это неудивительно, т.к. слои выучивают такие паттерны, чтобы вся сеть работала хорошо. Если архитектура сети меняется, логично, что слои начнут выучивать другие паттерны. Но хорошо то, что авторы проверили это на практике. Возможно, эту идею как-то можно использовать для лучшего понимания, что и зачем выучивают слои SA разных трансформеров.
Позже еще посмотрю на цитирования этой статьи. Может, там есть что интересное на основе этой работы.
📄 Статья
Курс «Английский для разработчиков» Яндекс Практикума
#промо
Для тех, кто хочет изменить свою профессиональную жизнь и работать в международной команде.
Обучение построено не вокруг абстрактной теории, а вокруг рабочих ситуаций и полезных для карьеры навыков:
✋Стендапы. Подготовитесь обсуждать задачи, задавать вопросы и просить о помощи.
👨💻 Работа с заказчиками. Научитесь презентовать решения, говорить про баги и фичи.
📣 Митапы. Сможете понимать на слух доклады и выступать сами.
😎 Собеседования. Научитесь рассказывать про свой опыт, понимать вопросы и тактично переспрашивать.
👯 Неформальное общение с коллегами. Сможете рассказать о своих интересах, опыте, планах на будущее.
💻 Код-ревью. Сможете описать сделанное, дать обратную связь, тактично отстоять своё мнение.
Запишитесь на бесплатную консультацию. Кураторы определят ваш уровень языка и расскажут подробнее про обучение.
Understanding Optimization of Deep Learning
Крутой обзор всех аспектов и методов оптимизации нейронных сетей. Тут описано как бороться с возникающими проблемами, в чём отличия оптимизаторов, почему трансформеры капризнее резнетов (сильная кривизна лосса → большое значение константы Липшица) и ещё много всего интересного на 50 страниц.
P.S. На картинке показано как можно справиться с взрывающимися градиентами.
Статья
Картинки к посту выше. Первая — примеры генерации сложных сцен со сложными отношениями между объектами. Видно, что Control-GPT (моделька из статьи) справляется лучше
Вторая картинка — примеры, как выглядят векторные картинки из GPT-4, и затем итоговые из ControlNet. Картинки не всегда визуально красивые, иногда немного странные, но layout и отношения сохраняются хорошо
Статья с ICLR 2023: Кривизна внутреннего представления данных в vision моделях является хорошим показателем робастности моделей
Звучит, наверное, страшно и непонятно, но на самом деле все очень просто. Давайте по порядку. Для начала, что такое "кривизна внутреннего представления":
В двух словах — это то, насколько сильно отличаются между собой внутренние представления (эмбеддинги) модели для последовательных кадров видео.
Считается кривизна так: берем vision модель. Например, ResNet18. Берем видео. Например, мультик про Чебурашку. Подаем кадры видео один за одним в модель, получаем эмбеддинг для каждого кадра. Обозначим эти эмбеддинги как {x_t}. Теперь вычисляем разность между парами последовательных эмбеддингов: v_t = x_t - x_{t-1}. Получаем последовательность {v_t}. Теперь вычисляем косинусную близость между последовательными векторами v_{t-1} и v_t. Среднее значение косинусной близости между всеми парами последовательных векторов v_{t-1} и v_t и будет значением кривизны внутреннего представления данных для нашей модели.
Было показано, что у людей внутренние представления картинок, получаемые из органов зрения, имеют меньшую кривизну, чем сами эти картинки (если считать кривизну между пиксельными представлениями картинок). То есть, представление потока картинок как бы "выпрямляется" у нас в голове, становится более стабильным во времени. Кажется, это свойство может иметь что-то общее с генерализуемостью и робастностью моделей для классификации. Типа, стабильность внутренних представлений модели во времени говорит о том, что эти представления довольно общие и хорошо генерализуемые.
Эксперименты показывают, что смысл в этом действительно есть. В целом, чем кривизна меньше, тем выше робастность модели. Вот какие выводы получились по итогам экспериментов:
- CNN модели, обученные с помощью adversarial training, имеют меньшую кривизну, чем те же модели без adversarial training;
- кривизна self-supervised ViT (DINO-v1) меньше, чем кривизна supervised ViT. Возможно, это говорит о том, что self-supervised обучение позволяет выучивать более робастные и общие представления, чем supervised обучение (но тут, имхо, надо больше экспериментов);
- У модели, в устройстве которых используются идеи из биологии (biologically-inspired models), внутренние представления оказываются более "выпрямленными". Причем чем глубже слой сети, тем меньше становится кривизна эмбеддингов. Прям как у людей.
Однако у одной из таких моделей (VOneNet) кривизна перестает уменьшаться начиная с некоторой глубины слоя. При этом эта нейросеть довольно робастна к состязательным атакам. Это означает, что нельзя отождествлять кривизну внутреннего представления с робастностью модели. Т.е. из того, что модель робастна, не обязательно следует, что ее внутренние представления будут стабильны.
В общем, кажется, кривизна внутренних представлений модели может быть одним из показателей робастности и генерализуемости этой модели. Но, кажется, further research is needed, чтобы лучше понять связь кривизны с качеством vision моделей.
📄 Статья
^ Это вчера Apple на конференции WWDC показали свои AR/VR-очки Vision Pro (ставьте 👀, если смотрели конфу). Судя по описанию, эти очки должны быть действительно удобными и функциональными: не очень громоздкие, управляются жестами/движениями глаз. А еще — режим AR, прям как во всех модных фильмах, когда ты такой идешь по улице и сканируешь окружающее пространство в реальном времени)
До этого момента, как вы видели, я в канале про VR/AR не писала. Меня не особо привлекал AI в этих темах, потому что, как мне казалось, он в основном сводился к созданию реалистичных 3D-аватаров или около того. Но вот после поста, который я переслала выше, стало реально интересно. Руки чешутся эту шткук от Apple попробовать (а ее, кстати, не пробовал еще никто, после презентации вчера журналистам дали только посмотреть)
Вообще, с таким проникновением AI технологий в повседневную жизнь и в профессии людей, которые к AI отношения не имели, кажется, что потребность в подобных вводно-поверхностных курсах будет повышаться. Люди захотят больше понимать, как работает то, что они используют, при этом не залезая в дебри матричных операций и градиентных оптимизаций.
Хороший пример, кому такие курсы будут точно полезны — журналисты. Многие из них хотят понимать, о чем пишут, не написать бреда и уметь хоть как-то критически оценивать новости, чтобы потом их выкладывать. Еще лет 6 назад, когда мы только создавали DLS, к нашей команде даже поступило предложение создать подобный вводный курс по ML для студентов журналистики одного вуза. Правда, дальше это так и не пошло.
Так вот. В таких курсах встает вопрос, насколько глубоко и сложно рассказывать. Если рассказывать слишком просто, есть шанс, что это породит неверное понимание — например, слишком "простой" взгляд на модели с неверными последующими выводами. Посмотрите на курсы по созданию промптов для ChatGPT)).
А если рассказывать сложно — это отобъет желание учиться.
Я сама несколько раз думала над этим вопросом: мне интересно с точки зрения методики преподавания (свой подобный курс я выпускать не собираюсь, не переживайте, это не прогрев)
Короче, кажется, это такой вызов индустрии образования) Миникурс от Гугла выше — один из первых таких примеров. Посмотрим, как это будет развиваться.
И последний пост на сегодня (обещаю): что я вообще стала писать об этом докладе спустя неделю.
Вспомнила я о Хинтоне, потому что сегодня вышел Statement on AI Risk — абзац текста, под которым подписались (если верить сайту) многие известные люди, включая Хинтона, Сема Альтмана и Демиса Хассабиса.
Этот текст не призывает ничего нигде запрещать и паниковать, а призывает обратить внимание на возможные риски, связанные с AI. Призывает вести об этом дискуссии и обмениваться опытом.
Ссылка вот. Если хотите, документ можно подписать.
Напоминаю, что трансляция начнется через 5 минут, будет тут: https://www.youtube.com/watch?v=V_Zu6hEoqAE
Приходите!
Такс, еще один анонс: на следующей неделе я буду записывать новый выпуск подкаста Deep Learning Stories. Гостьей будет Ольга Кардымон — научный сотрудник и руководитель группы «Биоинформатика» Института искусственного интеллекта AIRI
С Ольгой планируем обсудить:
- Языковые модели в работе с ДНК и белками. Почему NLP вообще подходит для изучения ДНК и белков и зачем нужна языковая модель ДНК;
- Последние достижения в генетике и биоинформатике;
- Что получило человечество после появления Alphafold;
- Путь Ольги в науке: из чистой биологии до AI.
Как обычно, перед записью мне нужны ваши вопросы. Что вам было бы интересно узнать у Ольги? Пишите вопросы в комментарии, и во время записи мы добавим эти вопросы в программу.
P.S. Прошлые выпуски подкаста Deep Learning Stroeis можно найти тут:
- Yandex Music
- Apple Music
- Google Music
- Spotify
- Anchor.fm
- YouTube
Новая работа на тему реконструкции текста на основе сигналов МРТ головного мозга
Ребята из Техасского университета предложили новый метод реконструирования текста, который слышит человек, на основе МРТ-сигнала мозга. Причем декодирование происходит в связный текст, который семантически близок к реальному.
Как обычно, дислеймер: я мало понимаю в методах нейробиологии и том, как оценивать качество таких исследований. Также из-за этого не могу разобраться в некоторых нюансах работы. Если я где-то ошиблась, пишите об этом в комментарии.
Итак, задача реконструкции текста на основе сигналов головного мозга:
Задачу декодирования текста, которую слышит (или даже мысленно произносит) человек, пытались решать и раньше. Подходы тут делятся на два вида по тому, как извлекается сигнал из мозга. Первый вид — инвазивные методы извлечения сигнала. Это когда в голову человеку вживается чип, который считывает сигналы непосредственно с нейронов в мозга. Эти подходы, понятно, дорогие и сложные. Второй вид — неинвазивные методы извлечения сигнала, такие как МРТ, М/ЭЭГ. Эти подходы дешевле и проще, голову никому сверлить не надо.
Но у неинвазивных методов получения сигналов мозга есть большой недостаток. Когда человек подвергается какому-то стимулу (например, слышит слово), этот стимул влияет на показатели МРТ примерно в течение 10 секунд. Человек, который бегло говорит на английском языке, произносит примерно 2 слова в секунду. Получается, если записывать сигнал МРТ во время прослушивания английской речи, каждая МРТ-картинка будет содержать информацию об обработке мозгом примерно двадцати слов.
Из-за этого точно восстановить текст, который слышит человек, по МРТ не получается. И многие прошлые работы по теме восстановления текста по сигналам мозга, полученным неинвазивными методами, умели хорошо восстанавливать только отдельные слова и фразы.
А ребята из Техаса придумали, как по МРТ восстанавливать (почти) связный текст. Этот текст не будет точно таким же, что в реальности слышал человек. Но он будет семантически похож, т.е. будет отражать в целом правильный смысл.
Очень общая идея метода:
Сначала обучаем сеть-энкодер, которая учится по куску текста восстанавливать МРТ-картину могза, соответствующую этому куску текста. Затем берем предобученную языковую модель (например, GPT), и делаем следующее:
Каждые две секунды просим GPT сгенерировать несколько вариантов продолжения текста. Эти несколько вариантов подаем на вход сети-энкодеру, который по ним пытается обратно восстановить текущую МРТ-картину. Тот вариант текста, по которому удалось получить наиболее похожий на реальный МРТ-сигнал, считаем верным.
Таким нехитрым способом авторы получают (почти) связный текст по сигналам МРТ со смыслом, в основном отражающим смысл оригинала. Конечно, есть семантические ошибки, но статистически сгенерированные тексты по нескольким метрикам действительно ближе к оригиналу, чем случайный текст.
Вот пример:
Оригинал: I didn't know whether to scream cry or run away instead I said leave me alone I don't need your help adam disappeared and I cleaned up alone crying
Генерация: Started to scream and cry and then she just said I told you to leave me alone you can't hurt me anymore I'm sorry and then he stormed off thought he had left I started to cry
Если применить эту идею к воображаемой речи, а не к прослушиванию чужих записей, то у такой технологии будет масса применений. Авторы этой статьи даже провели эксперимент по реконструкции воображаемой речи. Опять же, полученные тексты оказались более близкими к оригиналам, чем случайные. Т.е. метод как-то работает.
А еще с помощью подобных моделей можно исследовать функции разных частей мозга. В этой работе МРТ сигнал брался с трез разных частей мозга, которые обрабатывают слышимую речь. Добавляя и убирая сигналы с разных частей мозга из входа модели, можно что-то понимать о том, какую часть информации обрабатывает какая часть мозга. А еще можно сравнивать реконструкции модели-энкодера на основе сигналов из разных частей.
📄 Статья
Инфу о ней прочитала у Дениса