я обучала одну модель – Telegram
я обучала одну модель
4.57K subscribers
457 photos
29 videos
21 files
381 links
Shitposting on various subjects

PS рекламы в канале нет
Download Telegram
Состояние ресерча в ИИ:
Фан фект – в статье к Perceiver неиронично есть ссылка на 'Критику чистого разума' Канта
Есть очень классное видео с объяснением того, как работает Perciever и в чем суть архитектуры. Perciever – это сетка, обученная для мультмодельных задач, то есть на вход может поступать много разных типов информации (текст, изображение, звук и т.д.), и сама нейронка не знает, что это именно за данные. Помимо того, что нужно уметь справляться с разными инпутами, в этом случае также встает проблема с размерностью, так как те же самые изображения, разбитые на пиксели, продуцируют такой размер входных данных, который классический транфсормер не особо может обработать (поэтому в предшествующих решениях картинку разбивают на патчи, например)

Если очень кратко суммировать:
1. Сначала создается latent array небольшого размера, такого, что классический self-attention может его обработать (условно, каким-то образом мы инициализируем вектор)
2. Берутся входные данные (например, картинка) и растягивается в byte array. Этот array может быть очень большой. Поскольку данные просто растягиваются, а не преобразовываются неким образом, сетка становится инвариантна с типу данных
3. Из этой входной информации получаются матрицы K и V, которые потом пойдут на вход в механизм аттеншена. Матрицу Q мы получаем из небольшого latent array, и она также имеет небольшую размерность –> после аттеншена мы получаем гораздо более короткую последовательность, чем входные данные.
Интуитивно можно понимать, что Q – это то, что мы хотим выучить на основе данных, а K и V – на что нам обращать внимание при этом (что каждый кусочек входных данных нам может сообщить в разрезе того, что мы хотим выучить)
4. Потом этот преобразованный после аттеншена вектор попадает в архитектуру трансформера, он выдает снова преобразованную последовательность, и мы снова 'добавляем' информацию из исходных данных на каждой такой итерации.
5. Архитектура в итоге работает как RNN – сначала мы инициализировали некий Q, получили K и V из данных, подали их в аттеншн и потом в трансформер, получили новый latent array, из которого снова достали Q, и снова получили K и V из данных. То есть на 2+ этапе Q уже содержит информацию о данных, и дальше мы ее 'уточняем'

Еще авторы позволяют weight sharing, чтобы снизить число параметров (получается сопоставимо с ResNet), и обучают на картинках, видео, аудио и 3D clouds. Результаты работы сетки можно посмотреть здесь, если не видели, они довольно впечатляющие

Как отмечают в коментах, подтверждается тезис Шмидхубера о том, что чем больше архитектура похожа на LSTM, тем она лучше

https://www.youtube.com/watch?v=P_xeshTnPZg
новое поколение девелоперов going strong 💪
This media is not supported in your browser
VIEW IN TELEGRAM
У Rivers Have Wings как всегда нерельно красивый AI art, это вот только что вышедший StyleGAN3
This media is not supported in your browser
VIEW IN TELEGRAM
🧛‍♀️🐍 Colab StyleGAN3 + CLIP by Мишин Лернинг

Подготовил для вас отполированную и доведённую до ума версию colab для генерации арта по текстовому описанию!

🤖 Для гиков: за основу взял выложенный вчера вечером в твиттере nshepperd1 колаб StyleGAN3 + CLIP, с прикрученным интерфейсом от nn_for_science. Улучшил стабильность и качество генерации, перенеся идеи, которые считаю важными, из vqgan версии.

🎓 Что улучшено в версии от “Мишин Лернинг”:
▪️ Добавил дифференцируемые аугментации. Сильно накидывают в качестве
▪️ Увеличил размер батча для CLIP на каждом шаге оптимизации
▪️ Увеличил размер кропов в батче, на которые смотри CLIP
▪️Подобрал параметры оптимизатора и ema по z между шагами

🔮StyleGAN3 + CLIP by Мишин Лернинг colab

p.s.: prompt для анимации к посту: A vampire woman with long hairs made of snakes in style of Gustav Klimt
Хороший лонгрид для тех, кто тоже сейчас страдает с поступленим в зарубежные маги. У автора специфичный выбор программ (не в смысле плохой, а в смысле критерии подбора могут распространиться не на всех), но имхо материал очень полезный. Пожалуй основная мысль в том, что да, если вы гений с кучей достижений и ачивок, это очень поможет вашему поступлению, но где-то 50% успеха все равно приходится на грамотный поиск и выбор подходящих программ и стипендий.

Еще статья неплохо может сориентировать в плане того, сколько документов в конечном итоге вам нужно будет подготовить, и с какими объемами бюрократии придется столкнуться (спойлер: с огромными). Очень понравилось, что там максимально подробные примеры с конкретным процессом подачи через разные студенческие сервисы из реального опыта, так что может быть кому-то еще тут будет полезно почитать:
Классный фреймворк для topic modeling – можно подрубить какие угодно эмбеддинги на ваш выбор (или оставить дефолтные), и кластеризировать тексты в zero-shot. По умолчанию это multilingual классификация, так что на инференсе модель справится с текстами и на тех языках, которые во время обучения она могла и не видеть

Помимо того, что это позволяет не тратить время на то, чтобы писать кластеризацию руками, у них есть хороший пайплайн для автоматического препроцессинга текстов. И еще есть прикольный сабмодуль для human-in-the-loop классификации (называется Kitty 🥺), где можно самому поразмечать лейблы для текстов и потом инференсить модель
This media is not supported in your browser
VIEW IN TELEGRAM
MixNMatch: Декомпозиция Стиля

Хороший GAN и лоссы интересные.

📰 папир 💻имплементация
Интересный папирус, в котором авторы воспроизводят увиденное человеком изображание по сканам активности мозга

• Сначала людям показывают видео нескольких категорий (абстрактные геометрические фигуры, лица людей, эктремальный спорт и тд)
• Проводят ЭЭГ и получают колебания активности мозга
• Получают эмбеддинг этих колебаний с помощью LSTM + Attention (так как это просто последовательность частот)
• Получают эмбеддинг картинки с помощью VGG
• Считают лосс между эмбеддингом активности мозга и картинкой, прибавляют к этому лосс между картинкой, восстановленной по ЭЭГ, и картинкой, восстановленной по эмбеддингу исходного изображения (декодер для картинок там один и тот же для обоих процессов)

Выше схема обучения вместе в примерами реконструкции, получается довольно неплохо
Туториал про то, как заставить BERT принимать на вход категориальные и числовые параметры

Собственно сам метод довольно прост – такие параметры нужно обернуть в текст. Например, чтобы предсказать рейтинг товара по его отзыву и цене, нужно не передать его цену саму по себе, а вписать число в конструкцию типа this item costs {amount}, и затем объединить с отзывом. Эксперимент автора показывает, что учет таких категориальных данных помогает сравнительно с предсказанием только на самом тексте, хоть изменение и инкрементально

Решение вроде бы на поверхности (для той же GPT очень часто текст оборачивают в те или иные конструкции, чтобы она выполняла определенную задачу), но с бертом почему-то не приходило в голову сделать так же

Еще там внутри хороший такой код для подготовки данных и обучения берта с шедулером, можно себе заимствовать
В продолжение темы мультимодальности, есть репозиторий Multimodal Toolkit, который позволяет совмещать текстовые, категориальные и числовые данные для задач классификации и регрессии (для обработки текста там используются разные вариации BERT и XLM)

Тут уже можно выбрать кучу вариантов преобразования данных. Самое простое – просто сконкатенировать эбеддинг текста с остальными переменными (на удивление в некоторых задачах это работает хорошо). Или накрутить для табличных данных свои отдельные MLP, и потом конкатенировать вектора. Или суммировать эти вектора с обучаемыми весами на основе gated attention

Опять же, как показывают тесты авторов, учет метаинформации помимо текста помогает в некоторых задачах сильно забустить качество
Forwarded from DL in NLP (Vlad Lialin)
DeepLearning.ai выпустили новый курс в Natural Language Processing Specialization, рассказывающий про трансформеры (да, каким-то обраозм трансформеров там до сих пор не было).

Я проглядел его по диагонали и курс выглядит довольно неплохо. Есть домашки по машинному переводу, суммаризации, QA и чатботам. На последней неделе даже проходят reformer (длинный трансформер работающий через LSH-attention). Если кто-то решит пройти, буду рад если поделитесь своими впечатленями в чате.
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
и пример сгенерированных данных
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. При сравнении с альтернативными подходами, этот метод показывает себя лучше и в смысле генерализации на перефразирования вопроса и в смысле сохранения ответов на несвязанные вопросы.