Telegram Web Link
Ребята из Nvidia и CalTech придумали суперпростой, но при этом суперэффективный метод защиты картинок от adversarial attack. Называется он DiffPure и заключается вот в чем:
- берем атакованную картинку, немного зашумляем гауссовым шумом;
- восстанавливаем зашумленную картинку обратно с помощью диффузионной модели.

Так как зашумляли атакованную картинку несильно, визуально для человека картинка практически не изменится. А вот те претурбации картинки, что вызывали конфуз сети, исчезнут.
Иллюстрация метода — на 1 картинке к посту.

Эксперименты показывают, что такой алгоритм работает круче остальных SOTA методов на разных видах атак, датасетах и моделях (2 картинка к посту) При этом DiffPure не требует сбора дополнительных данных и никакого (до)обучения, и все равно обгоняет по качеству модели, которые были специально дообучены на adversarial примерах.
Выгод здесь тонна:
- не нужно тратить время и собирать данные для дообучения;
- дообучение на adversarial данных обычно ухудшает общее качество работы модели на неатакованных (clean) картинках. А DiffPure саму модель не меняет: он меняет картинки (т.е. решает задачу adversarial purification, а не adversarial training). Поэтому общее качество модели остается прежним, качество на adversarial картинках (robust accuracy) сильно растет;
- DiffPure отлично справляется с unseen attack (3 картинка к посту) То есть, с типами атак, которые модель не видела во время обучения. Ну, оно и неудивительно: обучения-то нет).

Ссылки:
Сайт проекта
Статья
Код на GitHub
Инфу о статье нашла тут
#paper
🔥55👍27🤩4
Наконец добралась до этой статьи: "Why Can GPT Learn In-Context?
Language Models Secretly Perform Gradient Descent as Meta-Optimizers"
#paper

В ней авторы исследуют феномен zero-shot learning (или, более точно, in-context learning (ICL)) в больших языковых моделях типа GPT-3. Напомню, что феномен этот состоит в том, что GPT-3 на вход можно подать текст с парой примеров решения какой-либо задачи и попросить решить эту же задачу на следующем примере. И модель это сделает.
Например, подаем на вход
'''
cheese -> fromage
bread -> pain
milk -> ...
'''

и GPT-3 дополняет текст: "lait". Т.е. языковая модель, которая не обучалась под задачу машинного перевода, внезапно по паре примеров понимает, что от нее хотят, и дальше может решать эту новую задачу на новых примерах. Важно, что никакого обучения (вообще никакого обновления весов) при этом не происходит.

Так вот. Авторы статьи взяли GPT-3 и посмотрели, что происходит с выходами слоев attention при подаче на вход сети подобного промта (как выше). Оказалось, что выходы слоев attention имеют тот же вид, какой бы они имели, если бы модель была реально обучена нескольких примерах из промта. То есть, как если бы мы взяли пары вида "cheese -> fromage" и "bread -> pain" и дообучили на них GPT-3 с помощью градиентного спуска.

Заметим, что верно это только для определенного вида attention: linear attention. Но это все равно позволяет предположить, что для других видов attention механизм идейно похож.

Еще стоит сказать, что авторы статьи не первые, кто придумал смотреть на attention и SGD под подобным углом. На ICML-22 была другая статья, где авторы нашли связь между полносвязными слоями, обученными с помощью SGD, и слоями attention. Они показали, что обычный линейный слой, обученный с помощью SGD, можно представить в виде слоя attention, в котором query — это текущий вход слоя, key — данные, на которых слой был обучен, values — градиенты слоя во время обучения.

Ну и последнее: чтобы показать, что идейная связь между attention в GPT-3 и SGD точно есть, авторы статьи чуть модифицировали слой attention так, чтобы имитировать использование momentum в SGD. И GPT с таким аттеншеном действительно стала работать лучше.

В общем, прочитала я это, и теперь сижу думаю. Моя первая ассоциация в связи с этим всем — это что дообучение выглядит как загрузка информации в долгосрочную память модели, а вот эта возможность модели "обучаться" на контексте — как краткосрочная память. Типа, обратил внимание на данные, запомнил, решил задачу, забыл.

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

Статья
А нашла я ее в канале AbstractDL
🔥44👍216🤯2😱1🆒1
Смотрите, какая штука есть, оказывается: DeepL. Еще недавно это был просто хороший онлайн-переводчик (а-ля гугл транслейт), но позавчера ребята выкатили новую фичу: AI writing companion.

AI writing companion — это что-то вроде Grammarly. Вы пишете свой текст, и DeepL исправляет в нем ошибки: грамматические/пунктуационные, неверные использования слов. Кроме этого AI companion подсказывает варианты перефразирования фраз и предложений (на скрине), и даже сразу предлагает улучшенный вариант всего текста. Выглядит очень неплохо, хоть это все еще и beta версия!

Короче, если кому-то надоело включать VPN для grammarly, DeepL может быть отличной альтернативой. Пока что поддерживаются английский (британский и американский) и немецкий языки. Но, судя по job postings, в планах добавить и другие)

Ссылки:
AI writing companion
Блогпост DeepL о запуске AI writing companion
🔥106👍1710
Ребята из Google Research и Гарварда собрали Deep Learning Tuning Playbook. Это гайд о том, как ставить эксперименты и тюнить AI-модели максимально эффективно:
- как выбрать архитектуру модели под проект;
- как выбрать оптимизатор и другие гиперпараметры;
- куда смотреть, чтобы улучшить перформанс модели;
- как собрать пайплайн, понимать, сколько обучать и выбирать лучший чекпоинт;
- ...

Гайд ориентирован прежде всего на supervised и self-supervised learning. Обещают гайд пополнять и обновлять

Ссылка на гайд
#learning
🔥100👍19❤‍🔥6👏2
Как не забывать теорию Deep Learning и учить новое?
#промо

Можно подписаться на канал DeepSchool! В нем вы найдете короткие посты с теорией, разборы статей, советы по обучению сетей, вопросы с собеседований и обзоры фреймворков. Вот примеры полезных постов:

1. Обзор ключевых идей MobileNet что делает эту архитектуру столь эффективной;
2. Инструкция: как ускорить разметку изображений при помощи CVAT и FiftyOne;
3. Что такое attention;
4. Об асинхронности вычислений на GPU;
5. Вопрос с собеседования на дообучение сегментационной модели.

Подписывайтесь, чтобы не забывать теорию Deep Learning и учить новое :)
👍29🔥63
А мы открываем набор на весенний семестр школы глубокого обучения Deep Learning School!
#learning

DLschool — это школа при ФПМИ МФТИ, где мы учим нейронным сетям с самых азов до продвинутого уровня. Полный курс состоит из двух частей, каждая из которых длится полгода.
- Первая часть посвящена введению в нейросети и компьютерному зрению. Начинаем мы с языка Python и необходимой математики для понимания нейросетей, переходим к основам машинного обучения и обработки картинок, заканчиваем переносом стиля изображений и ГАНами.
- Вторая часть полностью посвящена темам NLP и обработки звука.

Две части курса можно проходить независимо. Можно пройти только первую часть или только вторую. Но обратите внимание, что для прохождения второй части нужно знать Python, понимать математику и основы нейросетей, о которых мы рассказываем в первой части курса.

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

Сейчас идет набор на первую часть курса. На вторую часть набор откроется чуть позже, об этом сообщу отдельно.

Преподаватели школы — ведущие специалисты российских и зарубежных IT-компаний и научные сотрудники исследовательских лабораторий МФТИ. Среди них — я (Таня), буду вести у вас несколько лекций про CV, сегментацию и архитектуры сетей =)

Школа бесплатная. Полностью онлайн: учиться можно из любой точки мира, где есть интернет. Занятия проходят раз в неделю — лекция, семинар и домашнее задание. Обучение проходит на платформе Stepik. Берем всех, отбора нет.

Начинаем 18 февраля. Регистрация продлится до 26 февраля. Чтобы зарегистрироваться на курс, отсавьте заявку на этой странице. После этого вам на почту придет письмо со ссылками на курс на Степике, на канал и чат в Телеграме.

При регистрации вам нужно выбрать поток — базовый или продвинутый. Как выбрать свой поток, читайте на сайте в разделе FAQ. Также у нас есть группа школы ВКонтакте — там очень удобно следить за новостями.

Ответы на самые часто задаваемые вопросы по курсу вы также можете найти на сайте в разделе FAQ. Если остались вопросы, спрашивайте в комментариях к этому посту ⬇️ Постараюсь ответить на все. Также если в канале есть выпускники наших прошлых потоков, буду благодарна, если вы поделитесь своим опытом прохождения курса и поможете отвечать на вопросы =)

Ну и ждем вас в чатиках наших курсов в новом семестре!🥰
🔥85👍216🤗6🎉2
Хехе. Тут студент из РГГУ (российский гуманитарный) написал и защитил бакалаврский диплом с помощью ChatGPT. Причем "с помощью" означает "ChatGPT написала огромные куски работы, и они вошли в дилом практически без редактирования". Чтобы вы понимали масштаб использования нейронки — суммарно на написание и редактирование диплома ушло 23 часа. Это с учетом времени, потраченного на оптимизацию запросов к ChatGPT.

Вишенка на торте — системы антиплагиата оценивают текст как уникальный на 82%.

Штош, некоторые выводы о системе образования можно сделать) Интересно, будет ли реакция ВУЗа/профессоров. В мире вот такие уже есть: в ряде учебных заведений Австралии и США официально запрещают использование ChatGPT студентами. Также журнал Science внес изменения в условия публикации статей: там тоже теперь нельзя использовать нейронки.

Best practices о том, как именно использовать ChatGPT для написания диплома, читайте в твиттер-треде студента 🙃

UPD: в РГГУ таки отреагировали: предложили запретить ChatGPT в образовательных учереждениях.
UPD2: студента диплома не лишили =)
😁103👍27🌚18🤔6❤‍🔥2😱2🤮21
Наверное, вы уже двести раз слышали, что Microsoft заключил партнерство с OpenAI. Идея там такая: Microsoft инвестирует в OpenAI большие деньги, а взамен получает возможность встраивать в свои продукты ChatGPT и другие будущие разработки.

Так вот, первый результат партнерства уже есть: Microsoft встроили ChatGPT в Microsoft Teams. Задача нейросети — во время звонка в реалтайме подмечать главные тезисы встречи и суммаризовать их в текст. Короче, генерить meeting notes.

Кроме этого AI в звонках Teams научится делать и другие вещи:
- на основе выделенных тезисов предлагать новые таски;
- автоматически делить митинг на важные куски по смыслу (правда, только если митинг был с презентацией);
- запоминать, какие люди говорили в какие моменты митинга и в какие моменты упоминалось ваше имя. Это чтобы после было проще вернуться к нужным деталям звонка;
- автоматически переводить содержание звонка на 40+ языков.

Кроме этого в Teams анонсировали еще много не связанных AI улучшений. Подробнее, что Teams будет уметь — на сайте Microsoft.

Это все добро будет платно, по подписке Premium. Стоит пока что всего 7$ в месяц.

На мой взгляд, прикольно. Реально может упросить ведение meeting notes и выделение ключевых моментов. Ждем, чем ответит Zoom🙂

P.S. Почему-то Microsoft вместо "ChatGPT" пишут "GPT-3.5". Интересно, это намек на четвертую версию или просто они для Teams взяли какую-то специальную версию нейронки?
UPD: в комментарии скинули ответ на вопрос разницы GPT-3.5 и ChatGPT
👍53🔥314🤔1
Forwarded from эйай ньюз
Stanford Webinar - GPT-3 & Beyond

Вчера посмотрел эту прелестную лекцию из Стенфорда о новейших Языковых моделях. Проф С. Potts очень классно дал общий обзор языковых моделей и быстренько рассказал, как мы докатились до таких чудес как, например, GPT-3 и ChatGPT. Затем он порассуждал о том, в каких подтемах NLP можно еще что-то привнести обычному смертному, если у вас нет миллионов долларов на обучение SOTA моделей.

И вот какие актуальные темы для рисерча:
🔵 Retrival augmented in-context learning (условно, как поженить поиск и LLM)
🔵 Создание лучших бенчмарков, датасетов
🔵 "Last mile" for productive apps: Адаптация огромных моделей для конечных приложений, упрощающих жизнь
🔵 Исследования в сторону объяснения и верификации результатов, выданных LLM (огромными языковыми моделями).

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

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

@ai_newz
👍456🔥6
Нашла еще один интересный подход к сегментации изображений: с помощью разбиения графа self-attention карты трансформера.
#paper

В чем идея:
Берем vision transformer, обученный на картинках в self-supervised режиме. Т.е. без какой-либо обучающей разметки. Смотрим на карты его self-attention. Оказывается, что на этих картах становтся подсвечены контуры объектов (см. 1 рис). Причем такое наблюдается только для трансформеров, обученных в self-supervised режиме: ни для supervised трансформеров, ни для CNN такое не работает.

Одними из первых это свойство заметили ребята из FAIR (статья). Они пошли дальше: взяли эти self-attention карты, обучили на них KNN и получили качество 78.3% top-1 на ImageNet.

Но вернемся к сегментации. Другие ребята придумали, как сделать сегментацию на основе этого свойства. Идея простая: берем элементы self-attention карты трансформера и строим на них граф. Ребро между двумя векторами будет равно 1, если косинусное расстояние между ними больше заданного порога, и eps, если меньше порога. На таким графе решаем задачу разбиения графа (normalized cut). Так элементы карты аттеншена, соответствующие объекту, будут отделены от элементов, соответствующих фону.
Последний шаг — применяем какой-нибудь алгоритм edge refinement (например, стандартный CRF), и получаем неплохую карту сегментации объекта на картинке.

Недостаток такого подхода — он умеет сегментировать только один объект на картинку. Поэтому ребята из FAIR (уже другие) предложили, как улучшить идею. Все просто: находим карту одного объекта. Далее накладываем на патчи self-аттэншена этого объекта маску, и снова запускаем алгоритм. И так несколько раз.
Это позволяет находить на одной картинке сразу несколько объектов (рис. 2).

Вот такая идея. Вообще, attention maps разных трансформеров часто обладают подобными свойствами, и на основе информации из них можно понимать, как "думает" моделька и решать разные downstream задачи. Интересно их исследовать)
👍44🔥173👎1
Краткий ликбез по self-supervised learning (SSL)
(под недавними постами несколько людей спрашивали, что это такое. Плюс, следующий пост тоже будет посвящен модельке для SSL)
#learning

В двух словах, self-supervised learning — это когда мы учим модельку понимать что-то о природе данных (или даже решать какие-то осмысленные задачи) на данных без разметки.

Подробнее:
Возьмем задачу классификации картинок. Обычно, чтобы научить модельку решать эту задачу, вам нужны данные вида (картинка, класс). То есть, нужно собрать датасет из кучи картинок, где каждая картинка размечена, т.е. к каждой картинке известен ответ: что на ней изображено. Обучение моделей на таких датасетах с разметкой называется supervised learning .

Собирать датасеты для supervised learning сложно, долго и дорого. Есть разные способы, как это делать. Самые распространенные — такие:
✔️ посадить живых людей размечать данные. Это позволяет получить довольно "чистый" датасет (без явных ошибок в разметке), но очень долгий и дорогой. А если вы хотите сэкономить и мало платить разметчикам, это может вызвать скандал. Вот с OpenAI недавно был: они платили всего $2 в час людям, которые выявляли "неподобающий" контент среди того, что генерирует ChatGPT;
✔️ собрать данные с разметкой из интернета автоматичеки. Например, для той же задачи классификации можно сделать так: вбиваем слово "песик" в гугл и скриптом скачиваем все выданные картинки. Этот подход намного проще и дешевле, чем первый, но у него тоже есть явные недостатки:
- данные получаются довольно "грязные". На запрос "песик" вы можете получить картинки далеко не милых собачек. Например, вот эта картинка выдалась мне на четвертой строке картинок в гугле по запросу "песик" =)
- данные в интернете могут быть защищены авторскими правами. Использование таких данных для обучения моделей, кхм, не приветствуется.
- этот способ подходит не для всех задач. Для классификации или генерации картинок по текстовому описанию понятно, как собрать датасет (см. LAION, на котором обучалась Stable Diffusion). А вот с сегментацией, например, все сильно сложнее.

Короче говоря, собрать датасеты с разметкой сложно. Поэтому активно развиваются исследования в области self-supervised learning. Это когда вы учите нейросеть на данных, к которым разметки нет.

Пример self-supervised learning — обучение языковых моделей типа GPT-3. Для них нужны просто куча текста и никакой разметки. Модель учится предсказывать следующий токен на основе предыдущих.

Надо сказать, что для задач, связанных с картинками, придумать self-supervised подходы довольно сложно. Что-то типа языковой модели не прокатит. Вот примеры SSL-подходов для картинок:
- делаем аугментации картинок из трейн сета (повороты, блюр, закрываем часть картинки и т.п.) и учим нейросеть выдавать одинковые ответы на одни и те же картинки, аугментированные разными способами;
- Masked AE: закрываем рандомные части картинок и учим автоэнкодер(AE) восстанавливать эти части.
При обучении подобным образом нейросеть начинает "понимать" что-то о природе картинок и объектов на них, и затем эти ее знания можно использовать в других задачах. Например, можно дообучить такую сеть на задачу классификации картинок. И для этого понадобится намного меньше размеченных данных, чем для обучения сети на эту задачу "с нуля". Про Masked AE я даже пост писала, вот тут.

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

Ну и, стоит сказать, что есть подходы "между" supervised и self-supervised:
- semi-supervised learning. Это когда часть данных для задачи размечена, а часть — нет;
- weakly-supervised learning. Это когда данные размечены, но разметка очень "грязная" (слабая) или местами неполная.

Как-то так. В завершение рекомендую почитать этот пост про self-supervision в блоге Александра Дьяконова.
🔥53👍388🎉1🐳1
Небольшое уточнение к посту выше:

В комментариях спросили, чем тогда отличается unsupervised learning (еще один термин, да) от self-supervised learning. Тут я задумалась, погуглила, и, выходит, что дела обстоят так:
- под unsupervised learning иногда понимают сетап, когда у модели вообще отсутствует тренировочная фаза. То есть, это, например, многие кластеризации, association rule learning algorithms, методы снижения размерности и т.п. Задача модели тут — найти какие-то паттерны в данных, и на основе этих находок что-то с этими же данными сделать.
А иногда понимается любой сетап, где у данных нет разметки. Т.е. в этом случае SSL — это частный случай unsupervised.
- под self-supervised learning понимают сетап, когда у вас есть неразмеченные данные, и вы на них придумываете псевдо-supervised задачу. Т.е. датасет (input, label) генерируется автоматически из неразмеченных данных.
Пример — тот, что в после выше: Masked AE. Тут вход в модель — картинка с рандомно закрытыми частями, ожидаемый выход — та же картинка.
Другой пример — учить модель по одной части картинки предсказывать другую часть.
GPT-3 тоже подходит. Вход — часть текста, ожидаемый выход — следующий токен этого текста.

Нагуглила еще вот такое лаконичное описание SSL: "Self-supervised learning is a machine learning process where the model trains itself to learn one part of the input from another part of the input" (источник)

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

Ну вот, как обычно — писала пост и сама лучше во всем разобралась. Ай хорошо)
🔥48👍249
Летом 22 года Ян ЛеКун выпустил авторскую статью о видении того, как должен выглядеть General AI. Я про это несколько постов писала, вот тут начало.

В своей работе как одну из составляющих модели General AI Ян предлагает модуль JEPA: Joint Embedding Predictive Architecture. Кратко, это модуль, который отвечает за создание у AI ассоциативных связей и механизма предсказания будущего. Подробно о том, как устроен JEPA, я писала в статье на Хабре.

Так вот. Недавно несколько ученых в соавторстве с ЛеКуном выкатили статью, где предлагают использовать идею JEPA для self-supervised learning на изображениях. Назвали они свою модельку I-JEPA (Image-based JEPA).

Как она устроена:
Берем датасет картинок и ставим на них задачу для self-supervised learning: предсказание одной части изображения по другой части. И делаем вот что:

- Прогоняеем входящую картинку с закрытой частью через энкодер (contect encoder на картинке). Этот энкодер — обычный visual transformer (ViT). Получается эмбеддинг входящей картинки. Назовем его context embedding.
- Таргет (часть картинки, которую нужно предсказать) также прогоняем через свой энкодер (target encoder). Получаем эмбеддинг таргета (target embedding)
- Далее еще один ViT принимает на вход context embedding, а также в качестве condition информацию о том, какую часть закрытой картинки нужно предсказать. Выдает этот ViT эмбеддинг, который затем с помощью L2-лосса сравнивается с target embedding.

Т.е. задача I-JEPA — научиться в латентном пространстве предсказывать отсутствующий контент по части картинки. То, что в I-JEPA задача ставится именно в латентном пространстве, — главное отличие этого подхода от предыдущих.
Можно сравнить I-JEPA с Masked Autoencoders (MAE). Идейно, I-JEPA — тот же MAE, но предсказание происходит в латентном пространстве.

Эта простая идея заставляет модельку выучивать довольно полезную информацию о картинках. Дообучив I-JEPA на классификацию ImageNet, авторы получили SOTA top-1 по сравнению с другими self-supervised подходами, включая и MAE.

📄Статья
#paper
36👍17😁17🤔6👀5🤣3🎉2🎃1
Смотрите, какую тулзу создали OpenAI: Microscope. Это галерея с визуализациями активаций слоев и нейронов популярных CV-моделей (VGG, ResNet, CLIP-ResNet и т.п.)

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

Техник, которые позволяют "вытащить" из сверточных сетей подобную информацию, несколько. Microscope поддерживает пять из них (см. technique на картинке). Обещают также в будущем добавлять новые модели.

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

Ссылки:
Подробнее о Microscope
GitHub lucid
🔥49👍15🎉31🤮1
Хочешь поступить в ШАД?
Или, может быть, в магистратуру по Data Science?
Ищешь материалы и советы по подготовке?
#промо

Тогда подпишись на канал "Поступашки ШАД"!

Канал ведут преподаватели МГУ, ВШЭ и ШАД. Там тебя ждут:

🔺Подборки материалов по математике, алгоритмам, ML/DL;
🔺Советы, как поступить в ШАД, Ai masters или в магистратуры по Data Science;
🔺Инсайды и анонсы об актуальных стажировках, образовательных проектах и олимпиадах.

Примеры постов:
- Где получать дополнительное образование в области Data Science?
- How to заботать Deep Learning?
- Этапы отбора в Школу Анализа Данных от Яндекса

Подписывайся и поступай вместе с нами ⬇️

@postypashki_old
💩37👍27🤮5🥴4🔥3🎉2🤡2
5👍4
2025/07/13 04:48:44
Back to Top
HTML Embed Code: