Интересный папирус, в котором авторы воспроизводят увиденное человеком изображание по сканам активности мозга
• Сначала людям показывают видео нескольких категорий (абстрактные геометрические фигуры, лица людей, эктремальный спорт и тд)
• Проводят ЭЭГ и получают колебания активности мозга
• Получают эмбеддинг этих колебаний с помощью LSTM + Attention (так как это просто последовательность частот)
• Получают эмбеддинг картинки с помощью VGG
• Считают лосс между эмбеддингом активности мозга и картинкой, прибавляют к этому лосс между картинкой, восстановленной по ЭЭГ, и картинкой, восстановленной по эмбеддингу исходного изображения (декодер для картинок там один и тот же для обоих процессов)
Выше схема обучения вместе в примерами реконструкции, получается довольно неплохо
• Сначала людям показывают видео нескольких категорий (абстрактные геометрические фигуры, лица людей, эктремальный спорт и тд)
• Проводят ЭЭГ и получают колебания активности мозга
• Получают эмбеддинг этих колебаний с помощью LSTM + Attention (так как это просто последовательность частот)
• Получают эмбеддинг картинки с помощью VGG
• Считают лосс между эмбеддингом активности мозга и картинкой, прибавляют к этому лосс между картинкой, восстановленной по ЭЭГ, и картинкой, восстановленной по эмбеддингу исходного изображения (декодер для картинок там один и тот же для обоих процессов)
Выше схема обучения вместе в примерами реконструкции, получается довольно неплохо
Туториал про то, как заставить BERT принимать на вход категориальные и числовые параметры
Собственно сам метод довольно прост – такие параметры нужно обернуть в текст. Например, чтобы предсказать рейтинг товара по его отзыву и цене, нужно не передать его цену саму по себе, а вписать число в конструкцию типа
Решение вроде бы на поверхности (для той же GPT очень часто текст оборачивают в те или иные конструкции, чтобы она выполняла определенную задачу), но с бертом почему-то не приходило в голову сделать так же
Еще там внутри хороший такой код для подготовки данных и обучения берта с шедулером, можно себе заимствовать
Собственно сам метод довольно прост – такие параметры нужно обернуть в текст. Например, чтобы предсказать рейтинг товара по его отзыву и цене, нужно не передать его цену саму по себе, а вписать число в конструкцию типа
this item costs {amount}
, и затем объединить с отзывом. Эксперимент автора показывает, что учет таких категориальных данных помогает сравнительно с предсказанием только на самом тексте, хоть изменение и инкрементально Решение вроде бы на поверхности (для той же GPT очень часто текст оборачивают в те или иные конструкции, чтобы она выполняла определенную задачу), но с бертом почему-то не приходило в голову сделать так же
Еще там внутри хороший такой код для подготовки данных и обучения берта с шедулером, можно себе заимствовать
В продолжение темы мультимодальности, есть репозиторий Multimodal Toolkit, который позволяет совмещать текстовые, категориальные и числовые данные для задач классификации и регрессии (для обработки текста там используются разные вариации BERT и XLM)
Тут уже можно выбрать кучу вариантов преобразования данных. Самое простое – просто сконкатенировать эбеддинг текста с остальными переменными (на удивление в некоторых задачах это работает хорошо). Или накрутить для табличных данных свои отдельные MLP, и потом конкатенировать вектора. Или суммировать эти вектора с обучаемыми весами на основе gated attention
Опять же, как показывают тесты авторов, учет метаинформации помимо текста помогает в некоторых задачах сильно забустить качество
Тут уже можно выбрать кучу вариантов преобразования данных. Самое простое – просто сконкатенировать эбеддинг текста с остальными переменными (на удивление в некоторых задачах это работает хорошо). Или накрутить для табличных данных свои отдельные MLP, и потом конкатенировать вектора. Или суммировать эти вектора с обучаемыми весами на основе gated attention
Опять же, как показывают тесты авторов, учет метаинформации помимо текста помогает в некоторых задачах сильно забустить качество
Forwarded from DL in NLP (Vlad Lialin)
DeepLearning.ai выпустили новый курс в Natural Language Processing Specialization, рассказывающий про трансформеры (да, каким-то обраозм трансформеров там до сих пор не было).
Я проглядел его по диагонали и курс выглядит довольно неплохо. Есть домашки по машинному переводу, суммаризации, QA и чатботам. На последней неделе даже проходят reformer (длинный трансформер работающий через LSH-attention). Если кто-то решит пройти, буду рад если поделитесь своими впечатленями в чате.
Я проглядел его по диагонали и курс выглядит довольно неплохо. Есть домашки по машинному переводу, суммаризации, QA и чатботам. На последней неделе даже проходят reformer (длинный трансформер работающий через LSH-attention). Если кто-то решит пройти, буду рад если поделитесь своими впечатленями в чате.
Coursera
Natural Language Processing with Attention Models
Offered by DeepLearning.AI. In Course 4 of the Natural ... Enroll for free.
Symbolic Knowledge Distillation: from General Language Models to Commonsense Models
https://arxiv.org/abs/2110.07178
Как известно, Трансформеры учатся на очень шумных данных (куче накроуленых текстов из интернета), поэтому часто страдают из-за логических противоречий и отсутствия здравого смысла при генерации. Чтобы обучить логичную и последовательную модель как правило используют графы знаний, составленные людьми. Например датасет ATOMIC содержит в себе наборы фактов и все следующие из них высказывания. i.e. Х доверяет Y -> X доверчивый (атрибут), X хочет иметь дела с Y (желание), до этого X нужно было подружиться с Y (необходимость) и так далее. Проблема в том, что собирать такие данные довольно дорого и долго. Поэтому авторы предлагают дистиллировать большую языковую модель:
• Семплят из ATOMIC высказывания и подают в GPT-3 через промты типа
Event <i>: X goes jogging
Prerequisites: For this to happen, X needed to wear running shoes.
При инференсе промт отбрасывается после 'For this to happen, '. Для каждого типа заданий свой промт, например, для генерации эффекта прописывается 'As a result, '
• Классификтором-критиком из получившегося корпуса дополнительно фильтруются нелогичные или просто кривые высказывания. В итоге их корпус получается в 10 раз больше оригинального, не теряя в качестве. При чем, при ручной валидации качество 'синтетического' датасета оказывается выше, чем у корпуса, составленного людьми
• На получившемся корпусе потом тренируют GPT-2 (она в 100 раз меньше в плане параметров, чем модель-учитель). На основе человеческой валидации, модель-ученик в итоге справляется лучше с генерацией commonsense knowledge
https://arxiv.org/abs/2110.07178
Как известно, Трансформеры учатся на очень шумных данных (куче накроуленых текстов из интернета), поэтому часто страдают из-за логических противоречий и отсутствия здравого смысла при генерации. Чтобы обучить логичную и последовательную модель как правило используют графы знаний, составленные людьми. Например датасет ATOMIC содержит в себе наборы фактов и все следующие из них высказывания. i.e. Х доверяет Y -> X доверчивый (атрибут), X хочет иметь дела с Y (желание), до этого X нужно было подружиться с Y (необходимость) и так далее. Проблема в том, что собирать такие данные довольно дорого и долго. Поэтому авторы предлагают дистиллировать большую языковую модель:
• Семплят из ATOMIC высказывания и подают в GPT-3 через промты типа
Event <i>: X goes jogging
Prerequisites: For this to happen, X needed to wear running shoes.
При инференсе промт отбрасывается после 'For this to happen, '. Для каждого типа заданий свой промт, например, для генерации эффекта прописывается 'As a result, '
• Классификтором-критиком из получившегося корпуса дополнительно фильтруются нелогичные или просто кривые высказывания. В итоге их корпус получается в 10 раз больше оригинального, не теряя в качестве. При чем, при ручной валидации качество 'синтетического' датасета оказывается выше, чем у корпуса, составленного людьми
• На получившемся корпусе потом тренируют GPT-2 (она в 100 раз меньше в плане параметров, чем модель-учитель). На основе человеческой валидации, модель-ученик в итоге справляется лучше с генерацией commonsense knowledge
This media is not supported in your browser
VIEW IN TELEGRAM
Тем временем кстати NVIDIA релизнули код для GANcraft
This media is not supported in your browser
VIEW IN TELEGRAM
еще один проклятый face swap накануне хеллоуина
я обучала одну модель
еще один проклятый face swap накануне хеллоуина
После публикации этого проклятого видоса админесса неиронично попала в аварию.... Будьте осторожны в этот хеллоуин и пристегивайтесь на задних сидениях
Forwarded from DL in NLP (nlpcontroller_bot)
Fast Model Editing at Scale
Mitchell et al., [Stanford]
Представьте себе, что вы ClosedAI, большая суперкорпорация по тренировке языковых моделей. Вы скачиваете весь интернет и тренируете ваш GPT-42, тратя миллиарды долларов на электричество. После чего вы спрашиваете у модели "Who is the prime minister of the UK?" и она отвечает вам "Theresa May". Это грустный, но релеалистичный сценарий.
Менять какие-то факты в классических knowledge graphs легко — меняете ссылку с сущности UK prime minister на другого человека. Но в нейросетках это нетривиальная задача. Если вы просто зафайнтюните модель на одном примере, модель просто переобучится и например всё ещё будет отвечать "Theresa May" на вопрос "Who is the UK PM?". Ещё модель может изменить свои ответы на вопросы, которые вообще с этим не связаны.
Исследователи из Стенфорда предлагают натренировать нейросеть, которая будет модифицировать градиенты файнтюнинга таким образом, чтобы модель действительно апдейтила своё знание — не влияя на несвязанные с этим вопросы, но изменяя ответ для всех связанных. Однако возникает проблема, что если у вас в модели 10B параметров, то даже линейный слой, для их модицикации будет 100B.
Авторы решают это тем, что представляют градиент параметров через downstream gradient слоёв. Если вы помните бэкпроп, то градиент в линейном слое равен X.T @ dL/d(out). Где out — это downstream gradient размера hidden,, что сильно меньше самого градиента размера hidden, hidden. Так как X.T мы знаем, то достаточно модифицировать dL/d(out). По-моему гениальное решение, я год назад занимался похожим проектом и не думаю, что когда-нибудь додумался бы до этого.
Этот трюк позволяет использовать подход даже для очень больших моделей, таких как T5-XXL 10B. При сравнении с альтернативными подходами, этот метод показывает себя лучше и в смысле генерализации на перефразирования вопроса и в смысле сохранения ответов на несвязанные вопросы.
Mitchell et al., [Stanford]
Представьте себе, что вы ClosedAI, большая суперкорпорация по тренировке языковых моделей. Вы скачиваете весь интернет и тренируете ваш GPT-42, тратя миллиарды долларов на электричество. После чего вы спрашиваете у модели "Who is the prime minister of the UK?" и она отвечает вам "Theresa May". Это грустный, но релеалистичный сценарий.
Менять какие-то факты в классических knowledge graphs легко — меняете ссылку с сущности UK prime minister на другого человека. Но в нейросетках это нетривиальная задача. Если вы просто зафайнтюните модель на одном примере, модель просто переобучится и например всё ещё будет отвечать "Theresa May" на вопрос "Who is the UK PM?". Ещё модель может изменить свои ответы на вопросы, которые вообще с этим не связаны.
Исследователи из Стенфорда предлагают натренировать нейросеть, которая будет модифицировать градиенты файнтюнинга таким образом, чтобы модель действительно апдейтила своё знание — не влияя на несвязанные с этим вопросы, но изменяя ответ для всех связанных. Однако возникает проблема, что если у вас в модели 10B параметров, то даже линейный слой, для их модицикации будет 100B.
Авторы решают это тем, что представляют градиент параметров через downstream gradient слоёв. Если вы помните бэкпроп, то градиент в линейном слое равен X.T @ dL/d(out). Где out — это downstream gradient размера hidden,, что сильно меньше самого градиента размера hidden, hidden. Так как X.T мы знаем, то достаточно модифицировать dL/d(out). По-моему гениальное решение, я год назад занимался похожим проектом и не думаю, что когда-нибудь додумался бы до этого.
Этот трюк позволяет использовать подход даже для очень больших моделей, таких как T5-XXL 10B. При сравнении с альтернативными подходами, этот метод показывает себя лучше и в смысле генерализации на перефразирования вопроса и в смысле сохранения ответов на несвязанные вопросы.
Попробовала сгенерить с ruDALL-E обложки пост-панк альбомов
Первые два ряда крутые, особенно нравятся 2,3 и 2,5
2,1 очень сильно напоминает какой-то существующий альбом, но не могу вспомнить какой
на 2,2 почему-то русский рикардо милос
3,3 это похоже мумий тролль?
Первые два ряда крутые, особенно нравятся 2,3 и 2,5
2,1 очень сильно напоминает какой-то существующий альбом, но не могу вспомнить какой
на 2,2 почему-то русский рикардо милос
3,3 это похоже мумий тролль?
Forwarded from Derp Learning
cats2.tar
48.6 MB
Датасет из парных котяток отсюдова.
Обновил, перекачайте.
Обновил, перекачайте.
poorly_drawn_cats.zip
40.3 MB
В дополнение к прошлому датасету – картинки из poorly drawn cats (пары оригинальных пикч и рисунков)
чудеса нейминга архив эдишн
Если серьезно то в статье интересная попытка в мультимодальность – авторы берут текст (как правило речь о твитах), считывают надписи на приложенных к нему картинках через Optical Character Recognition, подают это все вместе в RoBERTa. Потом отдельно кодируют изображение само по себе, получают эмбеддинг, конкатенируют с эмбеддингом текста, потом энкодят все это еще раз вместе, и потом классифицируют (ух)
Ожидаемо, не то чтобы эта модель сильно аутперформит просто классификацию текста, но архитектура интересная. Еще у них очень классно описаны и проиллюстрированы эксперименты, например, визуализация аттеншена на тексте и на картинках (модель фокусируется на увеличенных носах). И подборка мемов в пейпере просто chef's kiss ✨
Если серьезно то в статье интересная попытка в мультимодальность – авторы берут текст (как правило речь о твитах), считывают надписи на приложенных к нему картинках через Optical Character Recognition, подают это все вместе в RoBERTa. Потом отдельно кодируют изображение само по себе, получают эмбеддинг, конкатенируют с эмбеддингом текста, потом энкодят все это еще раз вместе, и потом классифицируют (ух)
Ожидаемо, не то чтобы эта модель сильно аутперформит просто классификацию текста, но архитектура интересная. Еще у них очень классно описаны и проиллюстрированы эксперименты, например, визуализация аттеншена на тексте и на картинках (модель фокусируется на увеличенных носах). И подборка мемов в пейпере просто chef's kiss ✨
Media is too big
VIEW IN TELEGRAM
Еще один AI art невероятной красоты из твиттера
Это rgb-clip (или мейби clip guided diffusion) в pytti, но очень интересно, что еще автор к нему прикрутил, чтоб вышло так круто
Это rgb-clip (или мейби clip guided diffusion) в pytti, но очень интересно, что еще автор к нему прикрутил, чтоб вышло так круто
Forwarded from тоже моушн
Media is too big
VIEW IN TELEGRAM
самая крутая сцена в интерстелларе конечно - когда макконахи, упав в черную дыру, застревает где то на границе измерений в книжном шкафу своей дочки. у нас с путти получилось что то вот такое. кстати я тут шагнул на следующий уровень генерации изображения - до свидания 8бит, здравствуй гладкая сочная картинка с кучей деталей. очень нравится!