Consistency Models: диффузия, которая восстанавливает картинку из шума за один шаг
#paper
Интересная работа от OpenAI попалась в рассылке от Synched. Тут учат диффузию нормально генерировать картинку из шума за один шаг, без итеративного процесса денойзинга.
Сейчас я опишу общий принцип работы этого чуда. В статье приводятся формальные обоснования работоспрособности идеи в виде теорем, в них буду разбираться позже. Может, напишу обзор)
Идея:
Обычная диффузия берет картинку х, зашумляет ее в течение t шагов, получая последовательность шумных картинок x_t, t =0...T. А затем учится для каждого t по x_t восстанавливать шум, который был добавлен к x для получения x_t.
Consistency model — это диффузионка, которую учат для любых t1 и t2 по x_t1 и x_t2 восстанавливать одинаковые картинки.
Точнее: пусть у нас есть траектория движения от шумной картинки x_T до изначальной картинки x. Берем две точки x_{t} и x_{t+1} на этой траектории, и обучаем модельку f по x_{t} и x_{t+1} выдавать одинаковый ответ.
Получать точки x_{t+1} и x_{t} на траектории можно двумя способами:
1. Выбираем z ~ N(0, 1), зашумляем исходную картинку х с помощью z, получая x_{t} и x_{t+1}.
2. Сначала зашумить картинку х, получив x_{t+1}. Взять предобученную обычную диффузионку, с помощью нее из x_{t+1} получить x_t
В первом случае мы обучаем consistency model с нуля. Во втором случае мы опираемся на предобученную диффузионку, т.е. это алгоритм дистилляции предобученной модели.
Так можно получить модель, которая за один шаг может сгенерить адекватную картинку.
Но consistency model тоже можно сделать multi-step. Берем зашумленную картинку x_T, восстанавливаем за один шаг до x. Снова немного зашумляем полученный x, и снова восстанавливаем. Так можно добиться того, что качество картинки х после нескольких шагов станет лучше.
Сonsistency model сильно выигрывает по времени инференса у обычной диффузии, т.к. чтобы сгенерить картинку хорошего качества, нужно сделать меньше шагов, чем чтобы сгенерить подобную картинку обычной диффузией.
📄Статья
#paper
Интересная работа от OpenAI попалась в рассылке от Synched. Тут учат диффузию нормально генерировать картинку из шума за один шаг, без итеративного процесса денойзинга.
Сейчас я опишу общий принцип работы этого чуда. В статье приводятся формальные обоснования работоспрособности идеи в виде теорем, в них буду разбираться позже. Может, напишу обзор)
Идея:
Обычная диффузия берет картинку х, зашумляет ее в течение t шагов, получая последовательность шумных картинок x_t, t =0...T. А затем учится для каждого t по x_t восстанавливать шум, который был добавлен к x для получения x_t.
Consistency model — это диффузионка, которую учат для любых t1 и t2 по x_t1 и x_t2 восстанавливать одинаковые картинки.
Точнее: пусть у нас есть траектория движения от шумной картинки x_T до изначальной картинки x. Берем две точки x_{t} и x_{t+1} на этой траектории, и обучаем модельку f по x_{t} и x_{t+1} выдавать одинаковый ответ.
Получать точки x_{t+1} и x_{t} на траектории можно двумя способами:
1. Выбираем z ~ N(0, 1), зашумляем исходную картинку х с помощью z, получая x_{t} и x_{t+1}.
2. Сначала зашумить картинку х, получив x_{t+1}. Взять предобученную обычную диффузионку, с помощью нее из x_{t+1} получить x_t
В первом случае мы обучаем consistency model с нуля. Во втором случае мы опираемся на предобученную диффузионку, т.е. это алгоритм дистилляции предобученной модели.
Так можно получить модель, которая за один шаг может сгенерить адекватную картинку.
Но consistency model тоже можно сделать multi-step. Берем зашумленную картинку x_T, восстанавливаем за один шаг до x. Снова немного зашумляем полученный x, и снова восстанавливаем. Так можно добиться того, что качество картинки х после нескольких шагов станет лучше.
Сonsistency model сильно выигрывает по времени инференса у обычной диффузии, т.к. чтобы сгенерить картинку хорошего качества, нужно сделать меньше шагов, чем чтобы сгенерить подобную картинку обычной диффузией.
📄Статья
Если у вас возникло ощущение "очень интересно, но ничего не понятно" от описания consistency models выше, попробую чуть пояснить)
Когда смотришь на идею вида "просто зашумим картинку, получим x_t, x_{t+1} и будем учить восстанавливать одно и то же", становится действительно странно. Типа ээ, а что так можно было? Почему так не делали раньше? Почему это вообще будет работать?
Пока скажу следующее: у меня сейчас возникают те же вопросы) Но в статье есть теоробоснования, почему такая идея вообще работает. Надеюсь, разботаю в скором времени. А еще могу сказать, что в статье объяснение идет по типу "вот у нас есть принцип генерации диффузионкой траектории картинок на основе решения ODE. А что если попробовать определить условия для успешного обучения модели генерации картинок в один шаг? Будет ли это теоретически обосновано, как это можно сделать и какие условия надо создать?"
То есть, я к тому, что в статье идея подается более натурально, не с потолка "а будем учить вот так". Там становится примерно понятно по ходу чтения, откуда идея берется и почему учить так — работает. Но я еще не разобралась в ней так, чтобы уверенно писать пост о всех нюансах, поэтому пока вышло то, что вы видите в посте наверху.
И еще вот что могу сказать (может, поможет в понимании, что произошло): после обучения consistency model у модели получается взаимно-однозначное соответствие между точками латентного пространства и точками пространства картинок (см картинку к посту). То есть, пространство разбивается на траектории, и из каждой точки одной траектории модель восстанавливает одну и ту же картинку. Это позволяет интерполировать точки латентного пространства, как в VAE. Т.е. пусть у вас есть две точки, из одной из которых модель генерит попугая, а из второй — слона. Если взять точку на пути между этими двумя точками, то из нее получится что-то среднее между попугаем и слоном.
P.S. Если где-то говорю бред, пишите, пожалуйста
Когда смотришь на идею вида "просто зашумим картинку, получим x_t, x_{t+1} и будем учить восстанавливать одно и то же", становится действительно странно. Типа ээ, а что так можно было? Почему так не делали раньше? Почему это вообще будет работать?
Пока скажу следующее: у меня сейчас возникают те же вопросы) Но в статье есть теоробоснования, почему такая идея вообще работает. Надеюсь, разботаю в скором времени. А еще могу сказать, что в статье объяснение идет по типу "вот у нас есть принцип генерации диффузионкой траектории картинок на основе решения ODE. А что если попробовать определить условия для успешного обучения модели генерации картинок в один шаг? Будет ли это теоретически обосновано, как это можно сделать и какие условия надо создать?"
То есть, я к тому, что в статье идея подается более натурально, не с потолка "а будем учить вот так". Там становится примерно понятно по ходу чтения, откуда идея берется и почему учить так — работает. Но я еще не разобралась в ней так, чтобы уверенно писать пост о всех нюансах, поэтому пока вышло то, что вы видите в посте наверху.
И еще вот что могу сказать (может, поможет в понимании, что произошло): после обучения consistency model у модели получается взаимно-однозначное соответствие между точками латентного пространства и точками пространства картинок (см картинку к посту). То есть, пространство разбивается на траектории, и из каждой точки одной траектории модель восстанавливает одну и ту же картинку. Это позволяет интерполировать точки латентного пространства, как в VAE. Т.е. пусть у вас есть две точки, из одной из которых модель генерит попугая, а из второй — слона. Если взять точку на пути между этими двумя точками, то из нее получится что-то среднее между попугаем и слоном.
P.S. Если где-то говорю бред, пишите, пожалуйста
Накопились разные ссылки на обучающие штуки, собрала в небольшой пост:
#learning
1. Полгода назад Andrej Karpathy завел Youtube-канал. Там начал выкладывать обучающие видео по некоторым темам. Скопился уже небольшой плейлист. Среди этих видео:
- Интро в backpropagation с кодом в колабе и картинками;
- Интро в языковое моделирование;
- Погружение в функции активаици и batchnorm;
- Backprop для cross-entropy и слоя batchnorm (тоже с кодом, красота прям);
- Пишем код GPT в колабе;
Вообще Andrej советует смотреть видео в плейлисте по порядку, т.к. каждое следующее использует знания из предыдущих. Я сама хочу посмотреть все подряд)
2. Борис сделал колаб ноутбук про взрыв и затухание градиентов. С наглядной демонстрацией, как эти явления появляются, и как чинить.
3. А Игорь из Сиолошной выложил двухчасовое видео с разбором архитектуры Трансформера. Вроде говорят, у него неплохо получалось эту тему объяснять.
Если еще что-то хорошее знаете, можно делиться в комментариях.
#learning
1. Полгода назад Andrej Karpathy завел Youtube-канал. Там начал выкладывать обучающие видео по некоторым темам. Скопился уже небольшой плейлист. Среди этих видео:
- Интро в backpropagation с кодом в колабе и картинками;
- Интро в языковое моделирование;
- Погружение в функции активаици и batchnorm;
- Backprop для cross-entropy и слоя batchnorm (тоже с кодом, красота прям);
- Пишем код GPT в колабе;
Вообще Andrej советует смотреть видео в плейлисте по порядку, т.к. каждое следующее использует знания из предыдущих. Я сама хочу посмотреть все подряд)
2. Борис сделал колаб ноутбук про взрыв и затухание градиентов. С наглядной демонстрацией, как эти явления появляются, и как чинить.
3. А Игорь из Сиолошной выложил двухчасовое видео с разбором архитектуры Трансформера. Вроде говорят, у него неплохо получалось эту тему объяснять.
Если еще что-то хорошее знаете, можно делиться в комментариях.
Продолжая тему обучалок: меня попросили рассказать о том, что в этом году подачи заявок в Школу Анализа Даных (ШАД) открыты до 7 мая (обычно закрывались в апреле). А я в этом канале что-то про ШАД особо не писала. Хотя я там училась в 2016-2018 годах, а с 2020 даже чуть-чуть преподаю на курсе Deep Vision & Graphics. И в целом, ШАД я нежно люблю и считаю, что он много мне дал и дает до сих пор (и я сейчас не только про халявные толстовки для преподов)))
#learning
В этом посте я чуть подробнее расскажу про то, что такое ШАД, кому стоит туда идти и что там как. Если у вас появятся вопросы, пишите в комментарии, постараюсь ответить. А если ответить не смогу, спрошу у знающих людей.
Итак, ШАД — это школа, где учат машинному обучению и анализу данных. Программа длится два года, обучение бесплатное. Занятия идут по вечерам, так что учебу можно совмещать с работой. Преподаватели — известные исследователи/разработчики, в основном сотрудники Яндекса. У меня, например, преподавали Ветров, Конушин, Лемпицкий и другие.
В ШАДе на выбор есть четыре направления:
- Data science;
- Инфраструктура больших данных;
- Разработка машинного обучения;
- Анализ данных в прикладных науках;
Выбор направления зависит от того, на чем в сфере МЛ вы хотите специализироваться. Например, больше уйти в науку или разработку, и что именно разрабатывать. Подробнее о каждом направлении читайте тут.
На каждом направлении есть обязательные курсы, а есть курсы по выбору. В каждом семестре нужно закрыть три курса, но можно брать и больше. Обязательные курсы начинаются с фундамента (математика, программирование, основы МЛ) и заканчиваются специализациями для каждого направления. На каждом курсе очень много практики.
Курсы бывают обычные (лекции-семинары-дз), а бывают проектные. Проекты — это очень крутая практика реальной работы в команде. Вот пример крутого проекта, который студенты ШАДа сделали совсем недавно — библиотека для распределения весов модели по нескольким gpu.
И вот еще два пункта, за которые я ШАД очень люблю:
- В ШАДе следят за развитием области. Стараются организовывать новые курсы и обновлять старые. Например, когда училась я, появился новый курс по self-driving cars. А мы вот только недавно обновляли курс Deep Vision & Graphics, добавляли новые темы.
- Главная ценность ШАДа — это коммьюнити. Вы познакомитесь с крутыми людьми, получите много опыта. И это коммьюнити останется с вами навсегда (по своему опыту говорю). А что еще приятно — студенты ШАД имеют доступ до всех лекций всех курсов и после выпуска.
Короче, ШАД — это круто. Но, наверное, уже понятно, что учиться в ШАДе сложно. ШАД — это основательное и интенсивное обучение, а не курс до мидла за 3 месяца левым пальцем. Нужно будет уделять учебе примерно 30 часов в неделю на протяжении двух лет. Короче, фраза на сайте школы "будет сложно, но оно того стоит" — верна.
Подытожу. ШАД — это для вас, если вы:
- Обладаете хорошей математической подготовкой и умеете кодить;
- Действительно хотите развиваться в МЛ;
- Готовы уделять учебе много времени.
Чтобы поступить, нужно сделать следующее:
- Подать заявку тут до 7 мая. Обратите внимание, что в этом году есть два варианта поступления: для студентов без опыта разработки и для IT-специалистов с опытом;
- Пройти онлайн-тестирование;
- Сдать онлайн-экзамен.
Более подробно про процесс и варианты поступления читайте на странице школы. Если остались вопросы, с радостью отвечу в комментариях⬇️
#learning
В этом посте я чуть подробнее расскажу про то, что такое ШАД, кому стоит туда идти и что там как. Если у вас появятся вопросы, пишите в комментарии, постараюсь ответить. А если ответить не смогу, спрошу у знающих людей.
Итак, ШАД — это школа, где учат машинному обучению и анализу данных. Программа длится два года, обучение бесплатное. Занятия идут по вечерам, так что учебу можно совмещать с работой. Преподаватели — известные исследователи/разработчики, в основном сотрудники Яндекса. У меня, например, преподавали Ветров, Конушин, Лемпицкий и другие.
В ШАДе на выбор есть четыре направления:
- Data science;
- Инфраструктура больших данных;
- Разработка машинного обучения;
- Анализ данных в прикладных науках;
Выбор направления зависит от того, на чем в сфере МЛ вы хотите специализироваться. Например, больше уйти в науку или разработку, и что именно разрабатывать. Подробнее о каждом направлении читайте тут.
На каждом направлении есть обязательные курсы, а есть курсы по выбору. В каждом семестре нужно закрыть три курса, но можно брать и больше. Обязательные курсы начинаются с фундамента (математика, программирование, основы МЛ) и заканчиваются специализациями для каждого направления. На каждом курсе очень много практики.
Курсы бывают обычные (лекции-семинары-дз), а бывают проектные. Проекты — это очень крутая практика реальной работы в команде. Вот пример крутого проекта, который студенты ШАДа сделали совсем недавно — библиотека для распределения весов модели по нескольким gpu.
И вот еще два пункта, за которые я ШАД очень люблю:
- В ШАДе следят за развитием области. Стараются организовывать новые курсы и обновлять старые. Например, когда училась я, появился новый курс по self-driving cars. А мы вот только недавно обновляли курс Deep Vision & Graphics, добавляли новые темы.
- Главная ценность ШАДа — это коммьюнити. Вы познакомитесь с крутыми людьми, получите много опыта. И это коммьюнити останется с вами навсегда (по своему опыту говорю). А что еще приятно — студенты ШАД имеют доступ до всех лекций всех курсов и после выпуска.
Короче, ШАД — это круто. Но, наверное, уже понятно, что учиться в ШАДе сложно. ШАД — это основательное и интенсивное обучение, а не курс до мидла за 3 месяца левым пальцем. Нужно будет уделять учебе примерно 30 часов в неделю на протяжении двух лет. Короче, фраза на сайте школы "будет сложно, но оно того стоит" — верна.
Подытожу. ШАД — это для вас, если вы:
- Обладаете хорошей математической подготовкой и умеете кодить;
- Действительно хотите развиваться в МЛ;
- Готовы уделять учебе много времени.
Чтобы поступить, нужно сделать следующее:
- Подать заявку тут до 7 мая. Обратите внимание, что в этом году есть два варианта поступления: для студентов без опыта разработки и для IT-специалистов с опытом;
- Пройти онлайн-тестирование;
- Сдать онлайн-экзамен.
Более подробно про процесс и варианты поступления читайте на странице школы. Если остались вопросы, с радостью отвечу в комментариях⬇️
Накатала в Teletype разбор DINO — идеи для self-supervised обучения vision моделей (т.е. моделей для обработки картинок).
#paper
(если не знаете, что такое self-supervised обучение, об этом ликбез был тут)
DINO был представлен в статье "Emerging Properties in Self-Supervised Vision Transformers". Кроме самого DINO, в статье приводится наблюдение, что у self-supervised трансформеров (например, обученных с помощью DINO) обнаруживается интересное свойство: если подать такому трансформеру на вход картинку, то ее карты внимания, оказывается, сигментируют объект на картинке. Об этой находке и о том, как с ее помощью получить неплохую zero-shot сегментацию нескольких объектов на картинке, я писала в посте тут.
А совсем недавно выпустили вторую версию DINO (DINOv2). В этой статейке я разобрала устройство оригинального DINO, а в следующий раз разберу DINOv2.
📄 Разбор
#paper
(если не знаете, что такое self-supervised обучение, об этом ликбез был тут)
DINO был представлен в статье "Emerging Properties in Self-Supervised Vision Transformers". Кроме самого DINO, в статье приводится наблюдение, что у self-supervised трансформеров (например, обученных с помощью DINO) обнаруживается интересное свойство: если подать такому трансформеру на вход картинку, то ее карты внимания, оказывается, сигментируют объект на картинке. Об этой находке и о том, как с ее помощью получить неплохую zero-shot сегментацию нескольких объектов на картинке, я писала в посте тут.
А совсем недавно выпустили вторую версию DINO (DINOv2). В этой статейке я разобрала устройство оригинального DINO, а в следующий раз разберу DINOv2.
📄 Разбор
Teletype
Разбор DINO — идеи self-supervised обучения CV моделей
В этой статье я разберу идею для self-supervised обучения моделей для обработки изображений под названием DINO (если вы не знаете, что...
Вот вам кое-что очень крутое: подробный гайд от Meta AI по self-supervised learning (SSL).
#learning
Это даже не просто гайд, а целая мини-книга (cookbook, как называют авторы). В ней:
- Что такое SSL и чем хорош подход;
- Как SSL придумали и как он развивался;
- Обзоры основных подходов SSL;
- Трюки, как лучше всего обучать SSL-модельки.
В разделе про трюки, кстати, рассказывают про обновление весов сети-учителя в подходе teacher-student с помощью moving average. Этим же способом обучается сеть-учитель в DINO, разбор которого я писала в посте выше. В разборе я написала, что этот трюк сейчас используется много где, но я не знаю, почему он такой успешный. А вот, в гайде от Meta как раз про это есть! (раздел 3.4.1)
В книге делается упор на SSL в картинках (computer vision), но в последнем разделе также немного говорится про использование SSL в других доменах.
Вообще, Meta AI в последнее время публикует слишком много хороших работ в computer vision. Одни SAM и DINO-v2 уже многого стоят. Кажется, они решили стать а-ля OpenAI в visual домене. А SSL — это один из многообещающих подходов к построению действительно мощных моделей, потому что он не требует разметки данных, и при этом позволяет научить модели очень много "понимать" о данных. Сами Meta в своем анонсе книги назвали SSL "темной материей интеллекта", и "ключевых ингридиентом недавних прорывов".
Что ж, вот я и нашла, что читать завтра в самолете =)
Ссылки:
📘 The self-supervised learning cookbook
Инфу о книге нашла тут
А если не понимаете, что такое SSL и нужна ли вам книга, прочитайте сначала этот краткий ликбез по SSL
#learning
Это даже не просто гайд, а целая мини-книга (cookbook, как называют авторы). В ней:
- Что такое SSL и чем хорош подход;
- Как SSL придумали и как он развивался;
- Обзоры основных подходов SSL;
- Трюки, как лучше всего обучать SSL-модельки.
В разделе про трюки, кстати, рассказывают про обновление весов сети-учителя в подходе teacher-student с помощью moving average. Этим же способом обучается сеть-учитель в DINO, разбор которого я писала в посте выше. В разборе я написала, что этот трюк сейчас используется много где, но я не знаю, почему он такой успешный. А вот, в гайде от Meta как раз про это есть! (раздел 3.4.1)
В книге делается упор на SSL в картинках (computer vision), но в последнем разделе также немного говорится про использование SSL в других доменах.
Вообще, Meta AI в последнее время публикует слишком много хороших работ в computer vision. Одни SAM и DINO-v2 уже многого стоят. Кажется, они решили стать а-ля OpenAI в visual домене. А SSL — это один из многообещающих подходов к построению действительно мощных моделей, потому что он не требует разметки данных, и при этом позволяет научить модели очень много "понимать" о данных. Сами Meta в своем анонсе книги назвали SSL "темной материей интеллекта", и "ключевых ингридиентом недавних прорывов".
Что ж, вот я и нашла, что читать завтра в самолете =)
Ссылки:
📘 The self-supervised learning cookbook
Инфу о книге нашла тут
А если не понимаете, что такое SSL и нужна ли вам книга, прочитайте сначала этот краткий ликбез по SSL
Data Secrets — журнал в области науки о данных.
#промо
Здесь ребята просто и практично расскажут про Big Data, нейросети, анализ данных и многое другое.
В канале вы найдете:
– Гайд "Как задеплоить модель с помощью FastAPI";
– Интересные трюки по оптимизации памяти;
– Прозрачные обзоры алгоритмов глубокого обучения;
– Математику для Data Science на пальцах;
– Забавные пересказы новых статей.
Присоединяйтесь по ссылке @data_secrets и становитесь экспертом в области науки о данных!
#промо
Здесь ребята просто и практично расскажут про Big Data, нейросети, анализ данных и многое другое.
В канале вы найдете:
– Гайд "Как задеплоить модель с помощью FastAPI";
– Интересные трюки по оптимизации памяти;
– Прозрачные обзоры алгоритмов глубокого обучения;
– Математику для Data Science на пальцах;
– Забавные пересказы новых статей.
Присоединяйтесь по ссылке @data_secrets и становитесь экспертом в области науки о данных!
This media is not supported in your browser
VIEW IN TELEGRAM
На канале Тани Шавриной нашла ссылку на шпаргалку по языковым моделям.
#learning
Их в последнее время, кажется, столько разных развелось, что я уже потеряла надежду в них разобраться, и даже с этим смирилась. В принципе, не страшно, я в первую очередь не NLP занимаюсь) Но если хотите разобраться вы, или хотя бы понять на высоком уровне, как шел прогресс и какие ветви есть, то гайд будет полезен. К гайду прилагается статья-обзор "Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond"
А еще в гайде есть инструкция по выбору модели для своего NLP-проекта.
📄Шпаргалка
#learning
Их в последнее время, кажется, столько разных развелось, что я уже потеряла надежду в них разобраться, и даже с этим смирилась. В принципе, не страшно, я в первую очередь не NLP занимаюсь) Но если хотите разобраться вы, или хотя бы понять на высоком уровне, как шел прогресс и какие ветви есть, то гайд будет полезен. К гайду прилагается статья-обзор "Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond"
А еще в гайде есть инструкция по выбору модели для своего NLP-проекта.
📄Шпаргалка
Ребята, тут такие дела: я уже полгода работаю над тем, чтобы создать свой собственный онлайн-курс по нейросетям. Точнее, по основам нейросетей и CNN. И мне в этом сейчас нужна ваша небольшая помощь.
Итак, о чем речь:
Как вы, наверное, знаете, я много преподаю в сфере DL. За годы этой практики у меня накопился опыт в подаче материала, появились хорошие (на мой взгляд) наработки по разным темам. А еще сформировалось видение того, как должно выглядеть хорошее, обстоятельное обучение основам computer vision. И в своем онлайн-курсе я хочу это все систематизировать и соединить в одно целое.
Короче, курс будет по основам нейросетей и CNN. Очень подробный и основательный курс, с кучей деталей и практики. В планы входит постоянная доработка курса и после выпуска, добавление новой информации и доработка старого материала.
Делаю я курс не одна, а с Тасей. Тася — это менеджер курса, т.е. с меня — контент, с нее — упаковка и организация. У Таси уже большой опыт огранизации разного рода обучений по AI, она этим профессионально занимается. И Тася мне сказала, что перед тем, как делать полный контент курса, нужно провести кастдев
Что это такое: мы хотим сделать курс таким, чтобы он был действительно вам нужен. Нам важно, чтобы он не только сочетался с нашим пониманием прекрасного, но и учил вас тому, что вам действительно необходимо. А еще учил так, чтобы вам понравилось. И чтобы лучше разобраться в этом всем, мы создали опрос. И я прошу вас его пройти. Он короткий, займет около 10 минут. Там — вопросы про ваш опыт и ожидания от обучений в сфере AI/DS.
Опрос⬇️
https://forms.gle/q72LVXUGGsbXeU5x9
На основании ваших ответов мы постараемся сделать все в лучшем виде. А еще из респондентов анкеты мы выберем людей для участия в пилотном запуске нашего проекта (если вы захотите, разумеется).
А за процессом работы над курсом можно будет понаблюдать в блоге Таси. Там же она обещала поделиться результатами анализа опроса.
Так вот, заполните анкетку, пожалуйста! Помогите нам сделать хорошо, а плохо не сделать =)
Итак, о чем речь:
Как вы, наверное, знаете, я много преподаю в сфере DL. За годы этой практики у меня накопился опыт в подаче материала, появились хорошие (на мой взгляд) наработки по разным темам. А еще сформировалось видение того, как должно выглядеть хорошее, обстоятельное обучение основам computer vision. И в своем онлайн-курсе я хочу это все систематизировать и соединить в одно целое.
Короче, курс будет по основам нейросетей и CNN. Очень подробный и основательный курс, с кучей деталей и практики. В планы входит постоянная доработка курса и после выпуска, добавление новой информации и доработка старого материала.
Делаю я курс не одна, а с Тасей. Тася — это менеджер курса, т.е. с меня — контент, с нее — упаковка и организация. У Таси уже большой опыт огранизации разного рода обучений по AI, она этим профессионально занимается. И Тася мне сказала, что перед тем, как делать полный контент курса, нужно провести кастдев
Что это такое: мы хотим сделать курс таким, чтобы он был действительно вам нужен. Нам важно, чтобы он не только сочетался с нашим пониманием прекрасного, но и учил вас тому, что вам действительно необходимо. А еще учил так, чтобы вам понравилось. И чтобы лучше разобраться в этом всем, мы создали опрос. И я прошу вас его пройти. Он короткий, займет около 10 минут. Там — вопросы про ваш опыт и ожидания от обучений в сфере AI/DS.
Опрос⬇️
https://forms.gle/q72LVXUGGsbXeU5x9
На основании ваших ответов мы постараемся сделать все в лучшем виде. А еще из респондентов анкеты мы выберем людей для участия в пилотном запуске нашего проекта (если вы захотите, разумеется).
А за процессом работы над курсом можно будет понаблюдать в блоге Таси. Там же она обещала поделиться результатами анализа опроса.
Так вот, заполните анкетку, пожалуйста! Помогите нам сделать хорошо, а плохо не сделать =)
Как видите, у меня бывают периоды, когда я загружена другими делами и регулярный контент в канале делать не выходит. Как, например, сейчас. В такие моменты хочется предложить вам читать хорошие каналы моих коллег, которые тоже интересно пишут на темы, связанные с AI. Думала даже как-то сделать пост-подборку таких: в конце концов, пишем мы чаще всего про разное и по-разному, так что каналы хорошо дополняют друг друга. Ну и вы можете выбрать те, которые нравятся вам больше всего и близки вам по тематике)
А сегодня мне очень кстати написали админы нескольких каналов с предложением сделать взаимопиар. Ну я согласилась)
Список каналов с кратким описанием ниже. Все каналы из списка я читаю, мне нравятся. А три из них читаю уже прям очень давно.
- @seeallochnaya - контент вокруг ML, в основном NLP и языковых моделей. Игорь разбирает новые идеи и статьи из этой области простыми словами. Честно скажу, мне удается хоть как-то следить за тем, что там происходит в сфере языковых моделей в основном по этому каналу)
- @ai_newz - новости вокруг ML на совершенно разные темы, от CV и NLP до augmented reality и новостей про технологии и бизнес. Часто там появляются посты про новые статьи, которые я потом детально разбираю у себя. Автор — рисерчер в Meta AI, так что шарит, о чем пишет.
- @aihappens - канал предпринимателя, строящего бизнесы вокруг нейросетей. Хороший способ посмотреть на AI не только со стороны рисерча, но и со стороны бизнеса и пользователя. Также бывают разборы лекций и отдельных тем.
- @dlinnlp - контент вокруг NLP и языковых моделей. Часто бывают разборы статей из этой области. Автор также занимается NLP, поэтому знает, о чем пишет.
- @NeuralShit - здесь мемы про машинное обучение. Смешные) Нейронные волки, кстати — это проект автора канала =)
Если кому-то будет удобнее, есть ссылка на папку в тг, где собраны все эти каналы + мой: https://www.tg-me.com/addlist/W07iyMJ-23djZmQy
UPD: Если уж на то пошло, то вот ссылка на мою личную папку с каналами по AI, которые я читаю: https://www.tg-me.com/addlist/uE11YSl010ljZDY6
В комментарии можете скидывать свои ссылки на хорошие каналы и папки)
А сегодня мне очень кстати написали админы нескольких каналов с предложением сделать взаимопиар. Ну я согласилась)
Список каналов с кратким описанием ниже. Все каналы из списка я читаю, мне нравятся. А три из них читаю уже прям очень давно.
- @seeallochnaya - контент вокруг ML, в основном NLP и языковых моделей. Игорь разбирает новые идеи и статьи из этой области простыми словами. Честно скажу, мне удается хоть как-то следить за тем, что там происходит в сфере языковых моделей в основном по этому каналу)
- @ai_newz - новости вокруг ML на совершенно разные темы, от CV и NLP до augmented reality и новостей про технологии и бизнес. Часто там появляются посты про новые статьи, которые я потом детально разбираю у себя. Автор — рисерчер в Meta AI, так что шарит, о чем пишет.
- @aihappens - канал предпринимателя, строящего бизнесы вокруг нейросетей. Хороший способ посмотреть на AI не только со стороны рисерча, но и со стороны бизнеса и пользователя. Также бывают разборы лекций и отдельных тем.
- @dlinnlp - контент вокруг NLP и языковых моделей. Часто бывают разборы статей из этой области. Автор также занимается NLP, поэтому знает, о чем пишет.
- @NeuralShit - здесь мемы про машинное обучение. Смешные) Нейронные волки, кстати — это проект автора канала =)
Если кому-то будет удобнее, есть ссылка на папку в тг, где собраны все эти каналы + мой: https://www.tg-me.com/addlist/W07iyMJ-23djZmQy
UPD: Если уж на то пошло, то вот ссылка на мою личную папку с каналами по AI, которые я читаю: https://www.tg-me.com/addlist/uE11YSl010ljZDY6
В комментарии можете скидывать свои ссылки на хорошие каналы и папки)
DLStories
Ребята, тут такие дела: я уже полгода работаю над тем, чтобы создать свой собственный онлайн-курс по нейросетям. Точнее, по основам нейросетей и CNN. И мне в этом сейчас нужна ваша небольшая помощь. Итак, о чем речь: Как вы, наверное, знаете, я много преподаю…
Еще хотела напомнить про этот опрос. Мы хотим завтра начать анализировать ответы, поэтому если вы хотели его пройти, пройдите, пожалуйста, в ближайшее время. Спасибо❤️
А обычный контент с разборами статей на этом канале возобновится совсем скоро.
А обычный контент с разборами статей на этом канале возобновится совсем скоро.
Недавно в своих странствиях в темах для исследований и статьях по vision набрела на задачу детекции сгенерированных изображений (fake image detection). В этом и следующем посте я опишу то, что это за задача, и почему она не так проста, как кажется. А дальше постараюсь суммаризовать идеи, на которых пытаются строить решение этой задачи.
Итак, задача fake image detection: почему она не так проста, как кажется:
Задача fake image detection — отличить изображения, сгенерированные нейросетью, от реальных. В свете того, что в последнее время выходит много классных open-source моделек для генерации картинок, и генерируют они уже довольно качественно (вы только посмотрите на IF!), задача начинает быть актуальной. Вспомним хотя бы картинку Папы Римского в пуховике и картинки Трампа за решеткой: насколько я слышала, на них реально повелось много народу.
Несмотря на актуальность задачи, с исследовательской точки зрения подступиться к ней не так просто. Главный нюанс — непонятно, как построить датасет и систему оценки моделей.
Смотрите, мы, по сути, решаем задачу бинарной классификации: отличаем фейки от реальных картинок. Логично, что датасет должен состоять из двух видов картинок: реальных и фейковых. И вот тут начинаются проблемы:
1️⃣ Моделей для генерации картинок много разных. И постоянно выходят новые. Если собрать датасет картинок из конкретных моделей и учить на нем нейронку, есть риск переобучить ее на эти конкретные модели. И когда выйдет новая генеративка IF-2.0, на ней детекция фейков работать не будет. Ну и смысла в таком детекторе, который детектит только картинки из конкретных моделей, нет.
Эту проблему чаще всего решают так: собирают датасет фейковых картинок из нескольких моделей. И в тренировочной части оставляют фейки только из одной модели (например, ProGAN). А в тестовой части данных остаются фейки из всех других моделей — SD, Glide, других ГАНов, DALL-E и т.п. Таким образом проверяется то, что ваша модель для детекции может быть обучена на фейках из одной конкретной модели, но при этом научиться детектить фейки и из других генеративок.
Такой принцип разделения данных на трейн и тест сейчас, насколько я вижу, стандартный для статей в области детекции фейков.
2️⃣ Вторая проблема связана с балансированием фейковых и реальных картинок в датасете. Мы хотим, чтобы наша модель научилась отличать любые фейковые картинки от любых реальных. Для этого нужно убедиться, что в ваших данных реальные картинки отличаются от фейковых именно теми характеристиками, которые влияют на "фейковость". А в остальном распределения фейковых и реальных картинок должны быть одинаковы. Если сделать датасет из реальных картинок попугаев и фейковых картинок слонов, нейросеть прекрасно обучится их разделять, но что-то мне подсказывает, что на картинках вне этого датасета она хорошо работать не будет)
А сбалансировать датасет сложно. Нужно придумать такой принцип генерации данных, чтобы можно было из разных генеративных моделей генерировать максимально разнообразные, но похожие между собой по распределению данные. Задача еще усложняется тем, что некоторые модели генерят картинки на основе текста, а некоторые — нет.
Продолжение ⬇️
Итак, задача fake image detection: почему она не так проста, как кажется:
Задача fake image detection — отличить изображения, сгенерированные нейросетью, от реальных. В свете того, что в последнее время выходит много классных open-source моделек для генерации картинок, и генерируют они уже довольно качественно (вы только посмотрите на IF!), задача начинает быть актуальной. Вспомним хотя бы картинку Папы Римского в пуховике и картинки Трампа за решеткой: насколько я слышала, на них реально повелось много народу.
Несмотря на актуальность задачи, с исследовательской точки зрения подступиться к ней не так просто. Главный нюанс — непонятно, как построить датасет и систему оценки моделей.
Смотрите, мы, по сути, решаем задачу бинарной классификации: отличаем фейки от реальных картинок. Логично, что датасет должен состоять из двух видов картинок: реальных и фейковых. И вот тут начинаются проблемы:
1️⃣ Моделей для генерации картинок много разных. И постоянно выходят новые. Если собрать датасет картинок из конкретных моделей и учить на нем нейронку, есть риск переобучить ее на эти конкретные модели. И когда выйдет новая генеративка IF-2.0, на ней детекция фейков работать не будет. Ну и смысла в таком детекторе, который детектит только картинки из конкретных моделей, нет.
Эту проблему чаще всего решают так: собирают датасет фейковых картинок из нескольких моделей. И в тренировочной части оставляют фейки только из одной модели (например, ProGAN). А в тестовой части данных остаются фейки из всех других моделей — SD, Glide, других ГАНов, DALL-E и т.п. Таким образом проверяется то, что ваша модель для детекции может быть обучена на фейках из одной конкретной модели, но при этом научиться детектить фейки и из других генеративок.
Такой принцип разделения данных на трейн и тест сейчас, насколько я вижу, стандартный для статей в области детекции фейков.
2️⃣ Вторая проблема связана с балансированием фейковых и реальных картинок в датасете. Мы хотим, чтобы наша модель научилась отличать любые фейковые картинки от любых реальных. Для этого нужно убедиться, что в ваших данных реальные картинки отличаются от фейковых именно теми характеристиками, которые влияют на "фейковость". А в остальном распределения фейковых и реальных картинок должны быть одинаковы. Если сделать датасет из реальных картинок попугаев и фейковых картинок слонов, нейросеть прекрасно обучится их разделять, но что-то мне подсказывает, что на картинках вне этого датасета она хорошо работать не будет)
А сбалансировать датасет сложно. Нужно придумать такой принцип генерации данных, чтобы можно было из разных генеративных моделей генерировать максимально разнообразные, но похожие между собой по распределению данные. Задача еще усложняется тем, что некоторые модели генерят картинки на основе текста, а некоторые — нет.
Продолжение ⬇️
Задача fake image detection: почему она не так проста, как кажется (продолжение)
3️⃣ Третья проблема такая: мы хотим, чтобы наша модель для детекции работала "в полевых условиях". То есть, детектила фейки в интернете и где угодно. А в интернете картинки проходят 100500 стадий изменений: где-то они сжимаются (тот же jpeg), где-то на них накладывается шум. Да и сами люди после генерации картинки нейросетью могут изменять ее: накладывать фильтры или править что-то в фотошопе. Все это меняет характеристики картинки, и может сломать модели для детекции. Кажется, что решение — это добавить в датасет картинки, измененные разными способами, но этих способов — просто уйма. Поэтому вместо этого хочется уметь создавать модели, робастные к подобным изменениям. А эту робастность нужно уметь проверять — и тут тоже непонятно, какой протокол тестирования этой робастности выбрать.
4️⃣ А можно же не только генерить картинки с нуля, но и изменять реальные картинки. И получать фейки. И тут непонятно, учитывать ли такие "полуфейковые" картинки в подобных датасетах, или нет. И насколько картинка должна быть "изменена", чтобы считать ее фейком.
Из-за подобных проблем какого-то общепринятого бенчмарка (датасета) для задачи fake image detection пока нет. Ну, или я его не нашла. Каждая статья, которую я читала, придумывала свой датасет, собранный вручную авторами. В последней статье, которую я видела (будет на CVPR-23, кстати!) авторы вообще не сказали, как именно они генерили свой датасет ¯\_(ツ)_/¯ Они, правда, его выложить обещали, посмотрим)
Ну и напоследок два замечания:
- задача fake image detection очень похожа на задачу deepfake detection. Отличие в том, что под "дипфейками" обычно понимают картинки или видео людей, которые либо сгенерированы с нуля, либо изменены. Вот по этой задаче литературы и датасетов уйма. Конечно, модели для deepfake detection заточены именно под дипфейки (т.е. картинки людей), но некоторые идеи, может быть, можно использовать и в более общей задаче fake image detection.
- если мы научимся делать хорошие детекторы фейковых картинок, начнутся поиски идей, как эти детекторы обмануть. То есть, приходим к той же парадигме, что в adversarial attacks: строим защиту -> строим атаку, которая сбивает защиту -> строим защиту от этой атаки -> ...
На самом деле, так даже уже немного происходит) Об этом напишу в следующих постах, где буду разбирать идеи детекции фейковых картинок.
Вот так как-то. В целом, область fake images detection довольно нова, работы и подходы тут только развиваются, поэтому и много неопределенности. Но область явно важная с практической точки зрения. А вы что думаете?
3️⃣ Третья проблема такая: мы хотим, чтобы наша модель для детекции работала "в полевых условиях". То есть, детектила фейки в интернете и где угодно. А в интернете картинки проходят 100500 стадий изменений: где-то они сжимаются (тот же jpeg), где-то на них накладывается шум. Да и сами люди после генерации картинки нейросетью могут изменять ее: накладывать фильтры или править что-то в фотошопе. Все это меняет характеристики картинки, и может сломать модели для детекции. Кажется, что решение — это добавить в датасет картинки, измененные разными способами, но этих способов — просто уйма. Поэтому вместо этого хочется уметь создавать модели, робастные к подобным изменениям. А эту робастность нужно уметь проверять — и тут тоже непонятно, какой протокол тестирования этой робастности выбрать.
4️⃣ А можно же не только генерить картинки с нуля, но и изменять реальные картинки. И получать фейки. И тут непонятно, учитывать ли такие "полуфейковые" картинки в подобных датасетах, или нет. И насколько картинка должна быть "изменена", чтобы считать ее фейком.
Из-за подобных проблем какого-то общепринятого бенчмарка (датасета) для задачи fake image detection пока нет. Ну, или я его не нашла. Каждая статья, которую я читала, придумывала свой датасет, собранный вручную авторами. В последней статье, которую я видела (будет на CVPR-23, кстати!) авторы вообще не сказали, как именно они генерили свой датасет ¯\_(ツ)_/¯ Они, правда, его выложить обещали, посмотрим)
Ну и напоследок два замечания:
- задача fake image detection очень похожа на задачу deepfake detection. Отличие в том, что под "дипфейками" обычно понимают картинки или видео людей, которые либо сгенерированы с нуля, либо изменены. Вот по этой задаче литературы и датасетов уйма. Конечно, модели для deepfake detection заточены именно под дипфейки (т.е. картинки людей), но некоторые идеи, может быть, можно использовать и в более общей задаче fake image detection.
- если мы научимся делать хорошие детекторы фейковых картинок, начнутся поиски идей, как эти детекторы обмануть. То есть, приходим к той же парадигме, что в adversarial attacks: строим защиту -> строим атаку, которая сбивает защиту -> строим защиту от этой атаки -> ...
На самом деле, так даже уже немного происходит) Об этом напишу в следующих постах, где буду разбирать идеи детекции фейковых картинок.
Вот так как-то. В целом, область fake images detection довольно нова, работы и подходы тут только развиваются, поэтому и много неопределенности. Но область явно важная с практической точки зрения. А вы что думаете?
О чем этот канал и что тут есть
Всем привет! За последний год канал сильно вырос, а я как-то даже и не писала за это время о том, кто я, что это за канал и что тут есть. Исправляюсь!
Кто я:
Меня зовут Таня, я — единственный автор этого канала. Сейчас я PhD студент в Queen Mary University of London, исследую foundation модели computer vision. Как только из моей научки выйдет что-то хорошее, обязательно поделюсь с вами)
До PhD я работала AI рисерчером в Philips и Huawei. А еще я преподаю глубокое обучение и computer vision. Например, я один из создателей и преподавателей Deep Learning School — это бесплатная школа глубокого обучения при МФТИ. Мы проводим наборы каждый семестр, а все наши лекции и семинары лежат в открытом достпе на YouTube-канале. Подробнее о школе можно почитать тут.
Кроме этого, мы с командой DLS также записали бесплатный курс по основам машинного обучения. Подробнее о курсе тут.
О чем канал:
В канале я в основном разбираю интересные научные статьи по разным темам AI. Стараюсь разбирать как можно более полно и понятно, выделяя суть. Разборы можно найти по хэштегу #paper. Некоторые из них получаются слишком длинными, и я пишу их в Teletype.
Кроме разборов тут бывают ссылки на обучающие материалы (хэштег #learning), а также рассуждения на разные темы вокруг AI (хэштег #ai_inside). В целом, пишу о том, что меня интересует в данный момент.
Также на канале бывает реклама, она помечена хэштегом "промо". Реклама помогает мне не упасть в социальную яму как PhD студенту, а также добавляет мотивации делать разборы статей. Стараюсь делать рекламу нечасто.
Что еще есть полезного:
У меня есть подкаст Deep Learning Stories, куда я приглашаю разных людей из мира AI поговорить за разные темы. Сейчас в подкасте 7 выпусков. Среди них о том, как проходить собеседования в AI research, нужна ли математика в AI и какая, как там с AI в медицине, квантовой физике и сейсмологии, и просто рассуждения вокруг рисерча с крутыми гостями.
Подкаст можно найти тут:
- Yandex Music
- Apple Music
- Google Music
- Spotify
- YouTube
Еще у меня есть две большие статьи на Хабре:
- Что такое inductive bias и где он есть в нейросетях;
- Структурное мышление, или важное отличие человека от ИИ
Вот так. Вроде бы, ничего не забыла. В общем, welcome новым читаталям! И большое спасибо тем, кто читает канал уже давно 💜
Если есть вопросы, прошу в комментарии)
Поддержать канал (скинуться мне на кофеек, который я оочень люблю) можно тут:
- рублями (Тинькофф)
- любая другая валюта (Revolut)
Всем привет! За последний год канал сильно вырос, а я как-то даже и не писала за это время о том, кто я, что это за канал и что тут есть. Исправляюсь!
Кто я:
Меня зовут Таня, я — единственный автор этого канала. Сейчас я PhD студент в Queen Mary University of London, исследую foundation модели computer vision. Как только из моей научки выйдет что-то хорошее, обязательно поделюсь с вами)
До PhD я работала AI рисерчером в Philips и Huawei. А еще я преподаю глубокое обучение и computer vision. Например, я один из создателей и преподавателей Deep Learning School — это бесплатная школа глубокого обучения при МФТИ. Мы проводим наборы каждый семестр, а все наши лекции и семинары лежат в открытом достпе на YouTube-канале. Подробнее о школе можно почитать тут.
Кроме этого, мы с командой DLS также записали бесплатный курс по основам машинного обучения. Подробнее о курсе тут.
О чем канал:
В канале я в основном разбираю интересные научные статьи по разным темам AI. Стараюсь разбирать как можно более полно и понятно, выделяя суть. Разборы можно найти по хэштегу #paper. Некоторые из них получаются слишком длинными, и я пишу их в Teletype.
Кроме разборов тут бывают ссылки на обучающие материалы (хэштег #learning), а также рассуждения на разные темы вокруг AI (хэштег #ai_inside). В целом, пишу о том, что меня интересует в данный момент.
Также на канале бывает реклама, она помечена хэштегом "промо". Реклама помогает мне не упасть в социальную яму как PhD студенту, а также добавляет мотивации делать разборы статей. Стараюсь делать рекламу нечасто.
Что еще есть полезного:
У меня есть подкаст Deep Learning Stories, куда я приглашаю разных людей из мира AI поговорить за разные темы. Сейчас в подкасте 7 выпусков. Среди них о том, как проходить собеседования в AI research, нужна ли математика в AI и какая, как там с AI в медицине, квантовой физике и сейсмологии, и просто рассуждения вокруг рисерча с крутыми гостями.
Подкаст можно найти тут:
- Yandex Music
- Apple Music
- Google Music
- Spotify
- YouTube
Еще у меня есть две большие статьи на Хабре:
- Что такое inductive bias и где он есть в нейросетях;
- Структурное мышление, или важное отличие человека от ИИ
Вот так. Вроде бы, ничего не забыла. В общем, welcome новым читаталям! И большое спасибо тем, кто читает канал уже давно 💜
Если есть вопросы, прошу в комментарии)
Поддержать канал (скинуться мне на кофеек, который я оочень люблю) можно тут:
- рублями (Тинькофф)
- любая другая валюта (Revolut)
Как решать задачу fake images detection
Как обещала выше, написала пост про то, на каких идеях можно пытаться строить решение задачи fake images detection. Но пост снова вышел большим, и я снова оформила его в виде статейки на Teletype.
Чтобы статья была полной и законченной по теме fake images detection, в начале статьи копируется информация из постов выше (почему задача детекции фейков не так проста). А ниже добавлена часть про то, как эту задачу решать.
📄 Статья
Как обещала выше, написала пост про то, на каких идеях можно пытаться строить решение задачи fake images detection. Но пост снова вышел большим, и я снова оформила его в виде статейки на Teletype.
Чтобы статья была полной и законченной по теме fake images detection, в начале статьи копируется информация из постов выше (почему задача детекции фейков не так проста). А ниже добавлена часть про то, как эту задачу решать.
📄 Статья
Teletype
Задача fake images detection
В этом посте я расскажу о задаче детекции сгенерированных изображений (fake image detection). Сначала мы поймем, почему эта задача...
Foundation Models in Computer Vision, часть 1.
В этом и следующем посте суммаризую свои мысли по поводу того, как и на основе каких идей может появиться foundation model для задач, связанных с картинками.
Для начала, в этом посте поговорим о том, что такое foundation model.
Прямо четкого определения foundation model, насколько я знаю, нет. Чаще всего под этим понимают такую модель машинного обучения, которая обучалась на какую-то задачу на огромном количестве данных, и это заставило модель выучивать хорошие и полезные внутренние представления этих данных. "Хорошие и полезные" означает, что либо эту модель после обучения можно напрямую применять для решения кучи разных задач, либо же эту модель (или ее часть) можно легко дообучить для решения кучи разных задач.
Еще одно важное свойство, которое должно быть у foundation моделей — то, что они должны масштабироваться. То есть, пусть у нас есть foundation model X. Мы ожидаем, что если мы посмтроим модель побольше, и обучим ее на ту же самую задачу на еще большем количестве данных, то эта модель сможет выучить еще более хорошие, полезные и точные внутренние представления объектов. И ее внутренние представления объектов должны давать еще более лучший результат при дообучении на другие задачи.
Получается, чтобы получить foundation model, нужно придумать такую задачу, что при обучении модели на эту задачу модель сможет выучивать хорошие внутренние представления объектов. И при этом задача должна быть такой, что при увеличении размера модели и кол-ва данных для обучения модель будет выучивать все более полезные и точные представления объектов.
В сфере NLP такую задачу придумали — это языковое моделирование. На ее основе получились GPT, которые смело можно назвать foundation model в NLP. Действительно, мы видим, что GPT — это модель, которая была обучена на большом количестве данных, и может решать самые разнообразные задачи: question answering, машинный перевод, суммаризация текста и т.п. И для нее выполняется условие масштабируемости: увеличивая размер модели и кол-во данных (GPT-2 -> GPT-3 -> GPT-4) мы получаем все более "умную" модель. Конечно, при переходе от GPT-3 к GPT-4 сам процесс обучения модели немного изменился, стал более сложным. Но суть его осталась той же, поэтому все еще можно говорить о масштабируемости.
Огромный плюс задачи языкового моделирования в том, что для нее не нужно размечать данные, и сам процесс обучения модели довольно прост. Набираем корпус текстов и заставляем модель предсказывать следующий токен на основе предыдущих. То, что разметка данных не нужна, позволяет достаточно просто модели масштабировать. Поэтому, к слову, когда говорят о foundation models, обычно имеют в виду модели, обученные в self-supervised/unsupervised режимах.
В сфере CV с foundation models дела обстоят сложнее. Прямого аналога задачи языкового моделирования тут нет, поэтому приходится изобретать что-то другое. Есть несколько идей обучения CV моделей, которые являются кандидатами на получение foundation model. Их и разберу в следующем посте ⬇️
В этом и следующем посте суммаризую свои мысли по поводу того, как и на основе каких идей может появиться foundation model для задач, связанных с картинками.
Для начала, в этом посте поговорим о том, что такое foundation model.
Прямо четкого определения foundation model, насколько я знаю, нет. Чаще всего под этим понимают такую модель машинного обучения, которая обучалась на какую-то задачу на огромном количестве данных, и это заставило модель выучивать хорошие и полезные внутренние представления этих данных. "Хорошие и полезные" означает, что либо эту модель после обучения можно напрямую применять для решения кучи разных задач, либо же эту модель (или ее часть) можно легко дообучить для решения кучи разных задач.
Еще одно важное свойство, которое должно быть у foundation моделей — то, что они должны масштабироваться. То есть, пусть у нас есть foundation model X. Мы ожидаем, что если мы посмтроим модель побольше, и обучим ее на ту же самую задачу на еще большем количестве данных, то эта модель сможет выучить еще более хорошие, полезные и точные внутренние представления объектов. И ее внутренние представления объектов должны давать еще более лучший результат при дообучении на другие задачи.
Получается, чтобы получить foundation model, нужно придумать такую задачу, что при обучении модели на эту задачу модель сможет выучивать хорошие внутренние представления объектов. И при этом задача должна быть такой, что при увеличении размера модели и кол-ва данных для обучения модель будет выучивать все более полезные и точные представления объектов.
В сфере NLP такую задачу придумали — это языковое моделирование. На ее основе получились GPT, которые смело можно назвать foundation model в NLP. Действительно, мы видим, что GPT — это модель, которая была обучена на большом количестве данных, и может решать самые разнообразные задачи: question answering, машинный перевод, суммаризация текста и т.п. И для нее выполняется условие масштабируемости: увеличивая размер модели и кол-во данных (GPT-2 -> GPT-3 -> GPT-4) мы получаем все более "умную" модель. Конечно, при переходе от GPT-3 к GPT-4 сам процесс обучения модели немного изменился, стал более сложным. Но суть его осталась той же, поэтому все еще можно говорить о масштабируемости.
Огромный плюс задачи языкового моделирования в том, что для нее не нужно размечать данные, и сам процесс обучения модели довольно прост. Набираем корпус текстов и заставляем модель предсказывать следующий токен на основе предыдущих. То, что разметка данных не нужна, позволяет достаточно просто модели масштабировать. Поэтому, к слову, когда говорят о foundation models, обычно имеют в виду модели, обученные в self-supervised/unsupervised режимах.
В сфере CV с foundation models дела обстоят сложнее. Прямого аналога задачи языкового моделирования тут нет, поэтому приходится изобретать что-то другое. Есть несколько идей обучения CV моделей, которые являются кандидатами на получение foundation model. Их и разберу в следующем посте ⬇️
Foundation Models in Computer Vision, часть 2.
Тут разберем идеи обучения CV моделей, которые можно назвать кандидатами на получение foundation model in CV.
1️⃣ SAM (Segment Anything Model).
SAM — это модель от Meta AI, обученная на огромном датасете для сегментации изображений. Датасет содержит 11 млн картинок и 1.1 млрд масок сегментации. Из-за того, что SAM была обучена на таком огромном количестве данных, это получилась действительно мощная модель. Она способна на одном изображении сегментировать сразу множество объектов, включая объекты небольшого размера и даже те, что модель не видела во время обучения.
В этом плане SAM действительно можно назвать foundation model — она много понимает об объектах, и ее можно успешно дообучать на новые задачи. Но тут есть нюанс: это supervised модель. Для ее обучения нужны размеченные данные. Поэтому масштабировать SAM сложно. Тут, правда, надо сказать, что авторы статьи предложили способ получения датасета сегментаций, который наполовину ручной, а наполовину автоматический. Возможно, таким способом можно будет легче получать еще большие датасеты сегментаций и масштабировать SAM. Но на 100% заменить ручную разметку автоматикой не удастся, особенно если захочется идти "вглубь": собрать датасет, где сегментированы мелкие части объектов.
Устройство SAM я подробно разбирала в статье тут.
2️⃣ Модели для генерации картинок (Stable Diffusion & co). Тут мысль такая: чтобы научиться хорошо генерировать картинки, нужно действительно много понимать о сути и взаимодействии объектов на изображении. Тут нужно большее понимание природы объектов, чем чтобы научиться решать какую-то задачу по входящей картинке (классификацию/детекцию/...). Поэтому если учить модель генерировать high-res картинки со сложными объектами и взаимодействиями между ними, модель в процессе обучения начнет много "понимать" о данных и построит полезные внутренние представления объектов. А еще эта задача по самой своей сути масштабиреума.
Еще круче учить модель генерировать картинку на основе текста. Так модель учится понимать не только связи между объектами на изображении, но и связи между визуальными объектами и текстовым представлением. И из такой модели можно получить еще более крутые представления.
Конечно, для text-to-image моделей нужна разметка данных. Но такие данные собираются чаще всего автоматически, не вручную, что уже хорошо.
3️⃣ Третий кандидат на получение foundation model в CV — разные подходы self-supervised обучения (SSL). До недавнего времени все идеи SSL на картинках не позволяли получить модели, которые бы выучивали достаточно хорошее внутреннее представление. Но в 2021 году предложили крутую идею: Masked AutoEncoders (MAE). Об этой нейронке я писала пост вот тут. Идея такая — берем изображение, делим его на патчи, случайные патчи закрываем, подаем на вход автоэнкодеру. Задача автоэнкодера — восстановить закрытые патчи.
Такой MAE правда выучивает полезные внутренние представления, которые потом можно использовать в downstream задачах. Из этой работы выросла более общая идея Masked Learning — когда мы какую-то модель (не обязательно автоэнкодер) обучаем восстанавливать закрытые части картинки. Этот подход отлично показал себя во многих задачах. К примеру, в начале 2023 года в Гугле придумали text-to-image модель Muse, которая брала SOTA, и была основана не на диффузии. Внутри нее — трансформер, который учится как раз на задачу Masked Learning. Эту модель я разбирала тут.
А совсем недавно Meta AI выпустили DINO-v2 — новую self-supervised модель для картинок. Она бьет SOTA среди всех self-supervised моделей, и выучивает действительно полезные представления. Одно из основных отличий DINO-v2 от DINO-v1 — в том, что во второй версии к обучению модели добавили Masked Learning.
В общем, идея masked learning кажется мне хорошим кандидатом на идею обучения, которая приводит к foundation model. Тут еще можно заметить аналогию с NLP: там языковые модели тоже обучаются на задачу masked language modeling.
Какие-то такие у меня сейчас мысли. Буду рада обратной связи)
Тут разберем идеи обучения CV моделей, которые можно назвать кандидатами на получение foundation model in CV.
1️⃣ SAM (Segment Anything Model).
SAM — это модель от Meta AI, обученная на огромном датасете для сегментации изображений. Датасет содержит 11 млн картинок и 1.1 млрд масок сегментации. Из-за того, что SAM была обучена на таком огромном количестве данных, это получилась действительно мощная модель. Она способна на одном изображении сегментировать сразу множество объектов, включая объекты небольшого размера и даже те, что модель не видела во время обучения.
В этом плане SAM действительно можно назвать foundation model — она много понимает об объектах, и ее можно успешно дообучать на новые задачи. Но тут есть нюанс: это supervised модель. Для ее обучения нужны размеченные данные. Поэтому масштабировать SAM сложно. Тут, правда, надо сказать, что авторы статьи предложили способ получения датасета сегментаций, который наполовину ручной, а наполовину автоматический. Возможно, таким способом можно будет легче получать еще большие датасеты сегментаций и масштабировать SAM. Но на 100% заменить ручную разметку автоматикой не удастся, особенно если захочется идти "вглубь": собрать датасет, где сегментированы мелкие части объектов.
Устройство SAM я подробно разбирала в статье тут.
2️⃣ Модели для генерации картинок (Stable Diffusion & co). Тут мысль такая: чтобы научиться хорошо генерировать картинки, нужно действительно много понимать о сути и взаимодействии объектов на изображении. Тут нужно большее понимание природы объектов, чем чтобы научиться решать какую-то задачу по входящей картинке (классификацию/детекцию/...). Поэтому если учить модель генерировать high-res картинки со сложными объектами и взаимодействиями между ними, модель в процессе обучения начнет много "понимать" о данных и построит полезные внутренние представления объектов. А еще эта задача по самой своей сути масштабиреума.
Еще круче учить модель генерировать картинку на основе текста. Так модель учится понимать не только связи между объектами на изображении, но и связи между визуальными объектами и текстовым представлением. И из такой модели можно получить еще более крутые представления.
Конечно, для text-to-image моделей нужна разметка данных. Но такие данные собираются чаще всего автоматически, не вручную, что уже хорошо.
3️⃣ Третий кандидат на получение foundation model в CV — разные подходы self-supervised обучения (SSL). До недавнего времени все идеи SSL на картинках не позволяли получить модели, которые бы выучивали достаточно хорошее внутреннее представление. Но в 2021 году предложили крутую идею: Masked AutoEncoders (MAE). Об этой нейронке я писала пост вот тут. Идея такая — берем изображение, делим его на патчи, случайные патчи закрываем, подаем на вход автоэнкодеру. Задача автоэнкодера — восстановить закрытые патчи.
Такой MAE правда выучивает полезные внутренние представления, которые потом можно использовать в downstream задачах. Из этой работы выросла более общая идея Masked Learning — когда мы какую-то модель (не обязательно автоэнкодер) обучаем восстанавливать закрытые части картинки. Этот подход отлично показал себя во многих задачах. К примеру, в начале 2023 года в Гугле придумали text-to-image модель Muse, которая брала SOTA, и была основана не на диффузии. Внутри нее — трансформер, который учится как раз на задачу Masked Learning. Эту модель я разбирала тут.
А совсем недавно Meta AI выпустили DINO-v2 — новую self-supervised модель для картинок. Она бьет SOTA среди всех self-supervised моделей, и выучивает действительно полезные представления. Одно из основных отличий DINO-v2 от DINO-v1 — в том, что во второй версии к обучению модели добавили Masked Learning.
В общем, идея masked learning кажется мне хорошим кандидатом на идею обучения, которая приводит к foundation model. Тут еще можно заметить аналогию с NLP: там языковые модели тоже обучаются на задачу masked language modeling.
Какие-то такие у меня сейчас мысли. Буду рада обратной связи)
Как не забывать теорию Deep Learning и учить новое?
#промо
Можно подписаться на канал DeepSchool! Авторы канала — практикующие ML-инженеры, и они понятным языком расскажут вам о своей работе.
В канале вы найдете:
- короткие посты с теорией;
- разборы статей;
- советы по обучению сетей;
- вопросы с собеседований;
- и обзоры фреймворков.
Примеры постов:
1. Обзор ключевых идей MobileNet — что делает эту архитектуру столь эффективной;
2. Инструкция: на что обращать внимание при выборе и подготовке датасета;
3. Что такое attention;
4. Об асинхронности вычислений на GPU;
5. Вопрос с собеседования на дообучение сегментационной модели.
Кроме этого, в канале бывают живые интервью с людьми из ML-сферы. Например, вот интервью с Владом Лялиным — PhD студентом в University of Massachusetts Lowell. Говорили про то, как попасть на PhD в США, как подготовиться к собеседованию на стажировку в Google, Apple, Amazon, и про отличия DS-сообществ СНГ и США.
Подписывайтесь, чтобы прокачиваться в ML и узнавать новое вместе c нами =)
#промо
Можно подписаться на канал DeepSchool! Авторы канала — практикующие ML-инженеры, и они понятным языком расскажут вам о своей работе.
В канале вы найдете:
- короткие посты с теорией;
- разборы статей;
- советы по обучению сетей;
- вопросы с собеседований;
- и обзоры фреймворков.
Примеры постов:
1. Обзор ключевых идей MobileNet — что делает эту архитектуру столь эффективной;
2. Инструкция: на что обращать внимание при выборе и подготовке датасета;
3. Что такое attention;
4. Об асинхронности вычислений на GPU;
5. Вопрос с собеседования на дообучение сегментационной модели.
Кроме этого, в канале бывают живые интервью с людьми из ML-сферы. Например, вот интервью с Владом Лялиным — PhD студентом в University of Massachusetts Lowell. Говорили про то, как попасть на PhD в США, как подготовиться к собеседованию на стажировку в Google, Apple, Amazon, и про отличия DS-сообществ СНГ и США.
Подписывайтесь, чтобы прокачиваться в ML и узнавать новое вместе c нами =)
Сегодня в сенате США выступал Сэм Альтман (CEO OpenAI). Тема заседания — риски и регулирование AI. Были выступления нескольких людей, включая Альмана, а также ответы на вопросы.
#ai_inside
Я посмотрела только малую часть, поэтому суммаризовать не берусь. К тому же, говорят, что почти все там было по делу, и поэтому краткий пересказ вряд ли вообще возможен. Но все же хочу написать пару мыслей касательно этого события:
Во-первых, было ожидаемо, что Сэм Альтман будет появляться на подобных мероприятиях. Ожидаемо после публикации OpenAI текста "Planning for AGI and beyond". Он суммаризует видение компании о том, как должно выглядеть дальнейшее развитие AI, какие риски оно может нести и как эти риски можно нивелировать. Подробно о тексте я писала тут. Один из главных пунктов там — это сотрудничество между крупными AI-игроками, прозрачная проверка всех выпускаемых моделей и сотрудничество с государством. Вот мы и видим, как OpenAI в лице Альтмана к государству приходит.
В посте про "Planning for AGI and beyond" я писала, что меня пункт про "сотрудничество с государством" пугает. Пугал он потому, что было непонятно, как именно компания собирается сотрудничать. Но если под "сотрудничеством" имелись в виду подобные публичные дискуссии, просвещение политиков о состоянии AI и совместная разработка идей, как именно AI сферу нужно регулировать, то я такое поддерживаю. Конечно, тут еще нужно, чтобы государство было адекватным и сотрудничало именно в таком ключе, но это уже не ответственность OpenAI.
Почему я такое поддерживаю, прекрасно иллюстрирует еще одна сегодняшняя новость: в Европе собрали AI Act — документ, который предлагает лицензировать все AI-модели, которые используются на территории ЕС. Умные люди говорят, что его принятие просто заглушит любой opensource в ЕС, и это повлечет за собой закрытие многих AI-based продуктов там. На всякий случай: акт еще не приняли, но могут принять.
Мне это видится так: политики ЕС чуток испугались AI-штук, и решили посильнее закрутить страшной штуке гайки. А пугаются люди чаще всего тогда, когда не понимают. В парламент ЕС Сэмы Альтманы не приходили и дискуссий не вели (ну или я об этом не слышала), поэтому понимание взять неоткуда. А в США на той же самой сегодняшней дискуссии, кстати, прозвучала обратная мысль относительно opensource: вставлять палки в колеса opensource-решениям мы не будем, потому что это замедлит AI-индустрию (по крайней мере, Денис пишет, что эта мысль в выступлении была, я до нее не досмотрела)
Ну или я не права, и ЕС понимают что-то лучше США) Или просто сильнее боятся. Или же ЕС сильнее беспокоится за безопасность, а США больше заинтересованы в экономике и деньгах, которые приносят AI-компании.
Ну и из этого всего еще такая мысль: меня пару раз спрашивали (звучит-то как пафосно, но правда спрашивали)) о том, как, по моему мнению, будет развиваться вся эта история с регулированием AI, которого пока нет, но которое очень нужно. Я отвечала примерно так: когда люди сталкиваются с чем-то новым, они еще не знают, как себя вести и что делать, поэтому их мотает в крайности. Где-то будут технологии запрещать совсем (а-ля как этот акт в ЕС или запрет ChatGPT в Италии), где-то будут регулировать по-минимому (как opensource в США). Где-то будут паниковать, где-то — с оптимизмом смотреть в будущее. Какое-то время общество помотает из стороны в сторону, но потом на опыте себя и других стран все придут в примерный баланс, и в конце концов будет выработан единый "костяк" идеи регулирования AI-сферы.
К слову, вот это вот "мотание в крайности" заметно не только в сфере регулирования, но и в науке. Вспомните Юдковского (и уже, отчасти, Хинтона), которые наводят панику вокруг AI и сулят неминуемую катастрофу. А с другой стороны — Ян ЛеКун, который уже в нескольких интервью говорил, что ничего близкого к Терминатору у нас нет и бояться нечего. Ну или, по крайней мере, очень рано.
Думаю, что через какое-то время, когда мы поковыряем GPT-4 получше, сообщество тоже больше поймет о современном состоянии и перпективах AI, и придет в большее равновесие.
Вот как-то так. Ваши мысли?)
#ai_inside
Я посмотрела только малую часть, поэтому суммаризовать не берусь. К тому же, говорят, что почти все там было по делу, и поэтому краткий пересказ вряд ли вообще возможен. Но все же хочу написать пару мыслей касательно этого события:
Во-первых, было ожидаемо, что Сэм Альтман будет появляться на подобных мероприятиях. Ожидаемо после публикации OpenAI текста "Planning for AGI and beyond". Он суммаризует видение компании о том, как должно выглядеть дальнейшее развитие AI, какие риски оно может нести и как эти риски можно нивелировать. Подробно о тексте я писала тут. Один из главных пунктов там — это сотрудничество между крупными AI-игроками, прозрачная проверка всех выпускаемых моделей и сотрудничество с государством. Вот мы и видим, как OpenAI в лице Альтмана к государству приходит.
В посте про "Planning for AGI and beyond" я писала, что меня пункт про "сотрудничество с государством" пугает. Пугал он потому, что было непонятно, как именно компания собирается сотрудничать. Но если под "сотрудничеством" имелись в виду подобные публичные дискуссии, просвещение политиков о состоянии AI и совместная разработка идей, как именно AI сферу нужно регулировать, то я такое поддерживаю. Конечно, тут еще нужно, чтобы государство было адекватным и сотрудничало именно в таком ключе, но это уже не ответственность OpenAI.
Почему я такое поддерживаю, прекрасно иллюстрирует еще одна сегодняшняя новость: в Европе собрали AI Act — документ, который предлагает лицензировать все AI-модели, которые используются на территории ЕС. Умные люди говорят, что его принятие просто заглушит любой opensource в ЕС, и это повлечет за собой закрытие многих AI-based продуктов там. На всякий случай: акт еще не приняли, но могут принять.
Мне это видится так: политики ЕС чуток испугались AI-штук, и решили посильнее закрутить страшной штуке гайки. А пугаются люди чаще всего тогда, когда не понимают. В парламент ЕС Сэмы Альтманы не приходили и дискуссий не вели (ну или я об этом не слышала), поэтому понимание взять неоткуда. А в США на той же самой сегодняшней дискуссии, кстати, прозвучала обратная мысль относительно opensource: вставлять палки в колеса opensource-решениям мы не будем, потому что это замедлит AI-индустрию (по крайней мере, Денис пишет, что эта мысль в выступлении была, я до нее не досмотрела)
Ну или я не права, и ЕС понимают что-то лучше США) Или просто сильнее боятся. Или же ЕС сильнее беспокоится за безопасность, а США больше заинтересованы в экономике и деньгах, которые приносят AI-компании.
Ну и из этого всего еще такая мысль: меня пару раз спрашивали (звучит-то как пафосно, но правда спрашивали)) о том, как, по моему мнению, будет развиваться вся эта история с регулированием AI, которого пока нет, но которое очень нужно. Я отвечала примерно так: когда люди сталкиваются с чем-то новым, они еще не знают, как себя вести и что делать, поэтому их мотает в крайности. Где-то будут технологии запрещать совсем (а-ля как этот акт в ЕС или запрет ChatGPT в Италии), где-то будут регулировать по-минимому (как opensource в США). Где-то будут паниковать, где-то — с оптимизмом смотреть в будущее. Какое-то время общество помотает из стороны в сторону, но потом на опыте себя и других стран все придут в примерный баланс, и в конце концов будет выработан единый "костяк" идеи регулирования AI-сферы.
К слову, вот это вот "мотание в крайности" заметно не только в сфере регулирования, но и в науке. Вспомните Юдковского (и уже, отчасти, Хинтона), которые наводят панику вокруг AI и сулят неминуемую катастрофу. А с другой стороны — Ян ЛеКун, который уже в нескольких интервью говорил, что ничего близкого к Терминатору у нас нет и бояться нечего. Ну или, по крайней мере, очень рано.
Думаю, что через какое-то время, когда мы поковыряем GPT-4 получше, сообщество тоже больше поймет о современном состоянии и перпективах AI, и придет в большее равновесие.
Вот как-то так. Ваши мысли?)
Новая работа на тему реконструкции текста на основе сигналов МРТ головного мозга
Ребята из Техасского университета предложили новый метод реконструирования текста, который слышит человек, на основе МРТ-сигнала мозга. Причем декодирование происходит в связный текст, который семантически близок к реальному.
Как обычно, дислеймер: я мало понимаю в методах нейробиологии и том, как оценивать качество таких исследований. Также из-за этого не могу разобраться в некоторых нюансах работы. Если я где-то ошиблась, пишите об этом в комментарии.
Итак, задача реконструкции текста на основе сигналов головного мозга:
Задачу декодирования текста, которую слышит (или даже мысленно произносит) человек, пытались решать и раньше. Подходы тут делятся на два вида по тому, как извлекается сигнал из мозга. Первый вид — инвазивные методы извлечения сигнала. Это когда в голову человеку вживается чип, который считывает сигналы непосредственно с нейронов в мозга. Эти подходы, понятно, дорогие и сложные. Второй вид — неинвазивные методы извлечения сигнала, такие как МРТ, М/ЭЭГ. Эти подходы дешевле и проще, голову никому сверлить не надо.
Но у неинвазивных методов получения сигналов мозга есть большой недостаток. Когда человек подвергается какому-то стимулу (например, слышит слово), этот стимул влияет на показатели МРТ примерно в течение 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
Если применить эту идею к воображаемой речи, а не к прослушиванию чужих записей, то у такой технологии будет масса применений. Авторы этой статьи даже провели эксперимент по реконструкции воображаемой речи. Опять же, полученные тексты оказались более близкими к оригиналам, чем случайные. Т.е. метод как-то работает.
А еще с помощью подобных моделей можно исследовать функции разных частей мозга. В этой работе МРТ сигнал брался с трез разных частей мозга, которые обрабатывают слышимую речь. Добавляя и убирая сигналы с разных частей мозга из входа модели, можно что-то понимать о том, какую часть информации обрабатывает какая часть мозга. А еще можно сравнивать реконструкции модели-энкодера на основе сигналов из разных частей.
📄 Статья
Инфу о ней прочитала у Дениса
Ребята из Техасского университета предложили новый метод реконструирования текста, который слышит человек, на основе МРТ-сигнала мозга. Причем декодирование происходит в связный текст, который семантически близок к реальному.
Как обычно, дислеймер: я мало понимаю в методах нейробиологии и том, как оценивать качество таких исследований. Также из-за этого не могу разобраться в некоторых нюансах работы. Если я где-то ошиблась, пишите об этом в комментарии.
Итак, задача реконструкции текста на основе сигналов головного мозга:
Задачу декодирования текста, которую слышит (или даже мысленно произносит) человек, пытались решать и раньше. Подходы тут делятся на два вида по тому, как извлекается сигнал из мозга. Первый вид — инвазивные методы извлечения сигнала. Это когда в голову человеку вживается чип, который считывает сигналы непосредственно с нейронов в мозга. Эти подходы, понятно, дорогие и сложные. Второй вид — неинвазивные методы извлечения сигнала, такие как МРТ, М/ЭЭГ. Эти подходы дешевле и проще, голову никому сверлить не надо.
Но у неинвазивных методов получения сигналов мозга есть большой недостаток. Когда человек подвергается какому-то стимулу (например, слышит слово), этот стимул влияет на показатели МРТ примерно в течение 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
Если применить эту идею к воображаемой речи, а не к прослушиванию чужих записей, то у такой технологии будет масса применений. Авторы этой статьи даже провели эксперимент по реконструкции воображаемой речи. Опять же, полученные тексты оказались более близкими к оригиналам, чем случайные. Т.е. метод как-то работает.
А еще с помощью подобных моделей можно исследовать функции разных частей мозга. В этой работе МРТ сигнал брался с трез разных частей мозга, которые обрабатывают слышимую речь. Добавляя и убирая сигналы с разных частей мозга из входа модели, можно что-то понимать о том, какую часть информации обрабатывает какая часть мозга. А еще можно сравнивать реконструкции модели-энкодера на основе сигналов из разных частей.
📄 Статья
Инфу о ней прочитала у Дениса