Иногда видишь статью и в голове примерно такие мысли "Все кому не лень пробовали это 5 лет назад, почему сейчас заработало? Может быть у них какой-то умный лосс? Нет. Они просто воткнули туда трансформер и оно заработало? Да."
DL странный, DL рисёч ещё более странный
DL странный, DL рисёч ещё более странный
Forwarded from AI для Всех
Masked Autoencoders Are Scalable Vision Learners
Ещё одна идея, которая казалось бы была на поверхности, and yet… Берём картиночный автоэнкодер, делим картинку на патчи, прячем их в случайном порядке, и просим декодер восстановить изображение (в режиме self-supervised).
Авторы (Facebook/Meta AI), обнаружили, что скрытие большой части входного изображения, например, 75%, дает нетривиальную и осмысленную задачу для self-supervised обучения. Оказалось, что в такой формулировке, автоэнкодер обучается в ~3 раза быстрее (чем если бы мы учили на изображениях без масок).
Более того, оказалось, что если к такому обученному автоэнкодеру прикрутить голову на классификацию (например), то она будет показывать SOTA результаты. Так же, авторы показывают, что при масштабировании датасета, результаты только улучшаются.
📎 Статья
#selfSupervised #autoencoders #images
Ещё одна идея, которая казалось бы была на поверхности, and yet… Берём картиночный автоэнкодер, делим картинку на патчи, прячем их в случайном порядке, и просим декодер восстановить изображение (в режиме self-supervised).
Авторы (Facebook/Meta AI), обнаружили, что скрытие большой части входного изображения, например, 75%, дает нетривиальную и осмысленную задачу для self-supervised обучения. Оказалось, что в такой формулировке, автоэнкодер обучается в ~3 раза быстрее (чем если бы мы учили на изображениях без масок).
Более того, оказалось, что если к такому обученному автоэнкодеру прикрутить голову на классификацию (например), то она будет показывать SOTA результаты. Так же, авторы показывают, что при масштабировании датасета, результаты только улучшаются.
📎 Статья
#selfSupervised #autoencoders #images
A Survey of Document Understanding Models
pragmatic.ml/a-survey-of-document-understanding-models
Сегодня как-то случайно наткнулся на Pragmatic.ml и вспомнил насколько мне нравится этот блог своей... прагрматичностью 🥁. Так вот последний блогпост обозревает свежие модельки для анализа целых документов. У меня довольно много знакомых, которые заниаются подобными задачами, тема кажется очень интересной и прикладной.
Блогпост сам по себе уже сжат, поэтому рекомендую прочитать его полностю, но основные интересные для меня моменты такие:
1. Много кто не выкладывает веса моделей. Это немного грустно, но ожидаемо, тк очень прикладной домен, плюс тут происходит комбинация моделек, как минимум с OCR, что усложняет шеринг кода.
1. Всё ещё много архитектурной работы, но видно много упрощения. Кажется волна "просто бери большой трансформер и учи его как языковую модель" почти дошла до этой области. Думаю в следующем году будет совсем жесть, когда есть A100 с 80Гб памяти.
1. ROI для визуальных фич 🤮, столько вьетнамских флешбеков с этого. Но часть моделек переходит к более простым фичам
pragmatic.ml/a-survey-of-document-understanding-models
Сегодня как-то случайно наткнулся на Pragmatic.ml и вспомнил насколько мне нравится этот блог своей... прагрматичностью 🥁. Так вот последний блогпост обозревает свежие модельки для анализа целых документов. У меня довольно много знакомых, которые заниаются подобными задачами, тема кажется очень интересной и прикладной.
Блогпост сам по себе уже сжат, поэтому рекомендую прочитать его полностю, но основные интересные для меня моменты такие:
1. Много кто не выкладывает веса моделей. Это немного грустно, но ожидаемо, тк очень прикладной домен, плюс тут происходит комбинация моделек, как минимум с OCR, что усложняет шеринг кода.
1. Всё ещё много архитектурной работы, но видно много упрощения. Кажется волна "просто бери большой трансформер и учи его как языковую модель" почти дошла до этой области. Думаю в следующем году будет совсем жесть, когда есть A100 с 80Гб памяти.
1. ROI для визуальных фич 🤮, столько вьетнамских флешбеков с этого. Но часть моделек переходит к более простым фичам
machine learning musings
Suvery: Document Understanding Models
The past three years have seen significant interest in applying language models to the task of visual document understanding – integrating spatial, textual, and visual signals to make sense of PDFs and scanned documents.
👍1
⚡️OpenAI’s API Now Available with No Waitlist
Наконец-то OpenAI открыли публичный доступ к GPT-3. За время закрытого теста к нему добавили небольшие улучшения, такие как Instruct series models, которые лучше реагируют на промты. Кроме этого добавили в документацию safety best practices, которые рассказывают как сделать такую систему, которую нельзя будет атаковать очевидными способами.
Цена пока что кажется неплохой, по крайней мере ниже чем я ожидал. Самая большая модель стоит 6 центов за тысячу токенов. После регистрации вам дают $18, чего хватит для генерации 300 тысяч токенов.
Заходите на openai.com/api, регистрируйтесь и играйтесь с GPT-3 (Codex пока только по инвайтам). Пишите что получается в чат, будет интересно узнать какие у людей в среднем впечатления.
Наконец-то OpenAI открыли публичный доступ к GPT-3. За время закрытого теста к нему добавили небольшие улучшения, такие как Instruct series models, которые лучше реагируют на промты. Кроме этого добавили в документацию safety best practices, которые рассказывают как сделать такую систему, которую нельзя будет атаковать очевидными способами.
Цена пока что кажется неплохой, по крайней мере ниже чем я ожидал. Самая большая модель стоит 6 центов за тысячу токенов. После регистрации вам дают $18, чего хватит для генерации 300 тысяч токенов.
Заходите на openai.com/api, регистрируйтесь и играйтесь с GPT-3 (Codex пока только по инвайтам). Пишите что получается в чат, будет интересно узнать какие у людей в среднем впечатления.
Openai
API Platform
Our API platform offers our latest models and guides for safety best practices.
Forwarded from Derp Learning
Тут товарищ Nikita Kiselov потестил Apple М1 в tensorflow.
tl;dr:
M1 Pro в два раза быстрее Tesla K80 (colab free), и в два раза медленнее Tesla P100 (colab pro)
M1 Max где-то быстрее P100, где-то на ее уровне.
Лонгрид тут
tl;dr:
M1 Pro в два раза быстрее Tesla K80 (colab free), и в два раза медленнее Tesla P100 (colab pro)
M1 Max где-то быстрее P100, где-то на ее уровне.
Лонгрид тут
Hidden Technical Debt in Machine Learning Systems
Sculley et al., [Google], 2015
Несмотря на возраст, статья точно описывает кучу проблем в современных системах. В отличие от обычного софта, когда технический долг весь сидит в коде или документации, в ML есть много альтернативных способов накосячить. Вот некоторые примеры, которые авторы разбирают в статье на основе своего опыта в Google:
1. Старые гиперпараметры, которые непонятно откуда взялись, и не меняются уже N лет, несмотря на то, что и данные и модель уже сильно другие
1. Частный случай предыдущего пункта — трешхолды, которые были потюнены лишь один раз во время первичного деплоя. Это может быть особенно опасно, если ваша система принимает важные для бизнеса или безопасности окружающих решения.
1. Feedback loops — данные для тренировки модели, которые вы коллектите с задеплоеной системы, зависят от модели. Про это нужно помнить и адресовать заранее.
1. Высокоуровневые абстракции над моделями, которые заставляют писать кучу glue code (бывает так что > 90% всего вашего кода это glue code)
1. Рipeline jungles, когда никто не понимает data flow и коммуникация между кусками системы превращается в макароны
1. Предыдущие два пункта зачастую появляются из-за того, что код модели написан рисечерами и его абстракции не подходят для реального мира. Чаще всего лучший способ этого избежать — переписать код модели с нуля.
1. Ещё одно следствие — куча экспериментального кода внутри задеплоеного кода
1. Под конец касаются интересной вещи, которую называют cultural debt. Хорошие ML команды состоят из смеси исследователей и инжереров, которые активно взаимодействуют друг с другом, готовы выкидывать старые куски кода для упрощения системы, обращать столько же внимания на стабильность и мониторинг системы, сколько и на accuracy. Если в команде нету такой культуры, она может быть склонна быстро аккумулировать и преувеличивать существующий техдолг.
Советую почитать оригинальную статью. В ней очень много полезной информации, которую не сжать в пост в телеге.
Sculley et al., [Google], 2015
Несмотря на возраст, статья точно описывает кучу проблем в современных системах. В отличие от обычного софта, когда технический долг весь сидит в коде или документации, в ML есть много альтернативных способов накосячить. Вот некоторые примеры, которые авторы разбирают в статье на основе своего опыта в Google:
1. Старые гиперпараметры, которые непонятно откуда взялись, и не меняются уже N лет, несмотря на то, что и данные и модель уже сильно другие
1. Частный случай предыдущего пункта — трешхолды, которые были потюнены лишь один раз во время первичного деплоя. Это может быть особенно опасно, если ваша система принимает важные для бизнеса или безопасности окружающих решения.
1. Feedback loops — данные для тренировки модели, которые вы коллектите с задеплоеной системы, зависят от модели. Про это нужно помнить и адресовать заранее.
1. Высокоуровневые абстракции над моделями, которые заставляют писать кучу glue code (бывает так что > 90% всего вашего кода это glue code)
1. Рipeline jungles, когда никто не понимает data flow и коммуникация между кусками системы превращается в макароны
1. Предыдущие два пункта зачастую появляются из-за того, что код модели написан рисечерами и его абстракции не подходят для реального мира. Чаще всего лучший способ этого избежать — переписать код модели с нуля.
1. Ещё одно следствие — куча экспериментального кода внутри задеплоеного кода
1. Под конец касаются интересной вещи, которую называют cultural debt. Хорошие ML команды состоят из смеси исследователей и инжереров, которые активно взаимодействуют друг с другом, готовы выкидывать старые куски кода для упрощения системы, обращать столько же внимания на стабильность и мониторинг системы, сколько и на accuracy. Если в команде нету такой культуры, она может быть склонна быстро аккумулировать и преувеличивать существующий техдолг.
Советую почитать оригинальную статью. В ней очень много полезной информации, которую не сжать в пост в телеге.
👍1
What is Automatic Differentiation?
youtube.com/watch?v=wG_nF1awSSY
Наверное самая хитрая и непонятная тема для тех, кто только погружается в DL — это бэкпроп. Для меня в своё время совершенно знаковой была задачка написания бэкпропа для BatchNorm на нумпае (кстати рекомендую). Но если вместо жёсткого погружения в код вы хотите посмотреть хороший видос по автоматическому дифференцированию, который лежит в основе бэкпропа, я очень рекомендую вот этот видос. В нём рассказывают об отличии численного дифференцирования от аналитического от автоматического. В том числе рассказывают про разницу между forward-mode и backward-mode дифференцированием. А также как их можно комбинировать для эффективного рассчёта hessian-vector product, который вам например нужен в MAML. В общем рекомендую к просмотру.
youtube.com/watch?v=wG_nF1awSSY
Наверное самая хитрая и непонятная тема для тех, кто только погружается в DL — это бэкпроп. Для меня в своё время совершенно знаковой была задачка написания бэкпропа для BatchNorm на нумпае (кстати рекомендую). Но если вместо жёсткого погружения в код вы хотите посмотреть хороший видос по автоматическому дифференцированию, который лежит в основе бэкпропа, я очень рекомендую вот этот видос. В нём рассказывают об отличии численного дифференцирования от аналитического от автоматического. В том числе рассказывают про разницу между forward-mode и backward-mode дифференцированием. А также как их можно комбинировать для эффективного рассчёта hessian-vector product, который вам например нужен в MAML. В общем рекомендую к просмотру.
YouTube
What is Automatic Differentiation?
This short tutorial covers the basics of automatic differentiation, a set of techniques that allow us to efficiently compute derivatives of functions implemented as programs. It is based in part on Baydin et al., 2018: Automatic Differentiation in Machine…
Forwarded from AbstractDL
This media is not supported in your browser
VIEW IN TELEGRAM
GradInit: перебор гиперпараметров оптимизатора и warmup больше не нужны (by Google)
В гугл предложили супер крутой универсальный architecture-agnostic метод инициализации весов моделей.
Идея очень простая: добавить множители перед каждым блоком параметров и запустить по ним несколько итераций оптимизации лосса. Дальше эти множители фиксируем и учим модель как обычно. Такая инициализация не зависит от глубины и типа архитектуры (работает и на резнетах и на трансформерах) и почти полностью решает проблему взрывающихся\затухающих градиентов.
В итоге отпадает необходимость в переборе гиперпараметров оптимизатора, а трансформер вообще получилось обучить без warmup’a, что считалось практически невозможным. Как бонус, такая инициализация даёт небольшой буст на многих бенчмарках (и картиночных и текстовых).
Статья, GitHub
В гугл предложили супер крутой универсальный architecture-agnostic метод инициализации весов моделей.
Идея очень простая: добавить множители перед каждым блоком параметров и запустить по ним несколько итераций оптимизации лосса. Дальше эти множители фиксируем и учим модель как обычно. Такая инициализация не зависит от глубины и типа архитектуры (работает и на резнетах и на трансформерах) и почти полностью решает проблему взрывающихся\затухающих градиентов.
В итоге отпадает необходимость в переборе гиперпараметров оптимизатора, а трансформер вообще получилось обучить без warmup’a, что считалось практически невозможным. Как бонус, такая инициализация даёт небольшой буст на многих бенчмарках (и картиночных и текстовых).
Статья, GitHub
Заметил такой параграф в статье и подумал что он может сильно удивить людей вне NLP / DL (и даже некоторых людей оттуда). С одной стороны он показыает насколько сильно требования на compute выросли за последние пару лет, а с другой — сколько бы экспериментов у тебя не было, #reviewer2 всё равно скажет что их недостаточно и вообще lack of baselines.
Кстати это параграф из статьи The Untapped Potential of Ranking in Natural Language Processing, которая предлагает использовать попарное ранжирование вместо классификации, что позволяет заметно улучшить метрики на датасетах по сентимент-анализу.
Кстати это параграф из статьи The Untapped Potential of Ranking in Natural Language Processing, которая предлагает использовать попарное ранжирование вместо классификации, что позволяет заметно улучшить метрики на датасетах по сентимент-анализу.
👍1
DeepMind натренировал языковую модель почти в два раза больше GPT-3. Естественно сразу получили кучу SOTA, но кажется что это не очень интересно. Вместе с этим выпустили три статьи: 1) технический репорт по тренировке больших моделей, 2) retreival-enhanced transformer (RETRO) и 3) статью о рисках связанных с большими языковыми моделями
В блогпосте рассказывают о том, что размер модели не очень помогает в задачах связанных с логическим выводом (reasoning) и common sence. Второе звучит странно (читать: интересно), тк интуитивно кажется что языковые модели помогают нам решать задачи более хорошо именно из-за выученного common sense.
Надо будет прочитать статьи и посмотреть, что ещё есть интересного в них. На этой неделе вообще много всего происходит, тк NeurIPS. Прямо сейчас идёт воркшоп BigScience, рекомендую подключаться (но нужно быть зарегистрированным).
За новость про DeepMind спасибо @addmeto
В блогпосте рассказывают о том, что размер модели не очень помогает в задачах связанных с логическим выводом (reasoning) и common sence. Второе звучит странно (читать: интересно), тк интуитивно кажется что языковые модели помогают нам решать задачи более хорошо именно из-за выученного common sense.
Надо будет прочитать статьи и посмотреть, что ещё есть интересного в них. На этой неделе вообще много всего происходит, тк NeurIPS. Прямо сейчас идёт воркшоп BigScience, рекомендую подключаться (но нужно быть зарегистрированным).
За новость про DeepMind спасибо @addmeto
Forwarded from addmeto (Grigory Bakunov 🧪)
Чем дольше работает команда DeepMind на деньги Гугла, тем больше ощущение близости ИИ. Вот сегодня они показали статью и примеры работы своей новой языковой модели Gopher. Она ощутимо больше уже ставшей стандартом де-факто GPT-3, в ней 280 миллиардов параметров. Модель гиганская, но то как она умеет отвечать на информационные запросы потрясает - это уже результат сильно лучше, чем у среднего человека.
Если посчитать, человеческий неокортекс состоит из 20 миллиардов нейронов, образующих по 10-15 тысяч соединений каждый. Т.е. двести триллионов соединений всего. Т.е. это уже всего на несколько порядков меньше чем весь обьем человеческого мозга. Приравнивать параметры модели к межнейронным связям наивно, однако масштаб модели поистине поражает https://deepmind.com/blog/article/language-modelling-at-scale
Если посчитать, человеческий неокортекс состоит из 20 миллиардов нейронов, образующих по 10-15 тысяч соединений каждый. Т.е. двести триллионов соединений всего. Т.е. это уже всего на несколько порядков меньше чем весь обьем человеческого мозга. Приравнивать параметры модели к межнейронным связям наивно, однако масштаб модели поистине поражает https://deepmind.com/blog/article/language-modelling-at-scale
Google DeepMind
Language modelling at scale: Gopher, ethical considerations, and retrieval
Language, and its role in demonstrating and facilitating comprehension - or intelligence - is a fundamental part of being human. It gives people the ability to communicate thoughts and concepts,...
👍1
Forwarded from я обучала одну модель
Understanding by Understanding Not: Modeling Negation in Language Models
git | arxiv
У языковых моделей есть одна общая проблема – они не особенно понимают отрицания, поэтому предложения типа 'I am a communist' и 'I am not a communist' в плане эмбеддингов почти идентичны. Тут авторы пытаются это исправить через unlikelihood training – заставить модель с как можно меньшей вероятностью предсказывать исходное слово в предложении, если оно следует за no/not. Делается это через пары предложений: если предложение А: humans have a rational soul, то в предложении B: humans do not have a rational [MASK] вместо MASK слово soul должно появляться как можно менее вероятно. Если же предложения A и B идентичны, то модель себя должна вести как обычно (то есть как будто ее не дотюнивали)
Авторы показывают, что после такого тюнинга повышается качество в целом на NLI задачах. Но все же, это BERT, а круто было бы увидеть, как знания о негациях пробрасывать в GPT-like модели, например, чтоб была менее противоречивая генерация
git | arxiv
У языковых моделей есть одна общая проблема – они не особенно понимают отрицания, поэтому предложения типа 'I am a communist' и 'I am not a communist' в плане эмбеддингов почти идентичны. Тут авторы пытаются это исправить через unlikelihood training – заставить модель с как можно меньшей вероятностью предсказывать исходное слово в предложении, если оно следует за no/not. Делается это через пары предложений: если предложение А: humans have a rational soul, то в предложении B: humans do not have a rational [MASK] вместо MASK слово soul должно появляться как можно менее вероятно. Если же предложения A и B идентичны, то модель себя должна вести как обычно (то есть как будто ее не дотюнивали)
Авторы показывают, что после такого тюнинга повышается качество в целом на NLI задачах. Но все же, это BERT, а круто было бы увидеть, как знания о негациях пробрасывать в GPT-like модели, например, чтоб была менее противоречивая генерация
Обновления OpenAI API:
1. Теперь можно получать эмбеддинги моделей, выглядит это так:
Есть разные модели эмбеддингов: similarity, text search и code search. У search есть отдельные модели для ключей и запросов, например curie-search-document и curie-search-query.
beta.openai.com/docs/guides/embeddings
1. Codex доступен для всех 👩💻 (до этого были только обычные GPT-3). Теперь вы можете попросить искуственный интеллект написать вам искуственный интеллект
Если вы до сих пор не игрались с GPT-3, вы многое упускаете.
1. Теперь можно получать эмбеддинги моделей, выглядит это так:
openai.Engine(id="davinci-similarity").embeddings(input = [text])['data'][0]['embedding']
Есть разные модели эмбеддингов: similarity, text search и code search. У search есть отдельные модели для ключей и запросов, например curie-search-document и curie-search-query.
beta.openai.com/docs/guides/embeddings
1. Codex доступен для всех 👩💻 (до этого были только обычные GPT-3). Теперь вы можете попросить искуственный интеллект написать вам искуственный интеллект
Если вы до сих пор не игрались с GPT-3, вы многое упускаете.
Forwarded from Daryna Dementieva
Всем привет!
Вам надоело ругаться в комментариях? Вам неприятно видеть мат в сообщениях? Иногда вы срываетесь в агрессии и потом жалете о сказаном?
Мы лаборатория SkoltechNLP и мы занимаемся проблемой борьбы с токсчиной речью. Мы пришли к задаче детоксификации — на входе есть токсичный текст, надо его перефразировать в нетоксиный. Например:
х*й знает кто кум, но девушка красивая👍 -> неизвестно кто кум, но девушка красивая
порядок бы бл*ть навёл ! -> Порядок бы навел
В рамках конференции Диалог-2022, мы объявляем соренвнование RUSSE 2022 Detoxification, посвященное решению этой проблемы. Это первое в мире соревнование по переносу стиля в текстах с параллельными данными. Вам необходимо будет разработать seq2seq систему, решающую задачу детоксификации на основе обучения на параллельном корпусе (а если хотите, то можете и без него). Ваша система будет оценена сначала автоматически, но потом мы проведем ручную оценку лучших систем участников и выбререм победителя с действительно лучшей системой!
Зачем участвовать?
* Попробовать свои силы в достаточно новой NLP теме переноса стиля в текстах;
* Более того, помочь решить важную социальную проблему;
* Поучаствовать в соревновании с уникальным setup-ом для этой задачи;
* А если вы как минимум преодолеваете бейзлан, то это дает вам возможность публикации на самой большой российской конференции по обработке текстов (что будет хорошим плюсиком в CV).
Это пост-затравка перед начало соревнования, которое открывается 15 декабря. Больше информации здесь:
https://russe.nlpub.org/2022/tox/
Телеграм-группа для дальнейших коммуникаций:
https://t.iss.one/joinchat/Ckja7Vh00qPOU887pLonqQ
Увидимся через 2 дня.
Вам надоело ругаться в комментариях? Вам неприятно видеть мат в сообщениях? Иногда вы срываетесь в агрессии и потом жалете о сказаном?
Мы лаборатория SkoltechNLP и мы занимаемся проблемой борьбы с токсчиной речью. Мы пришли к задаче детоксификации — на входе есть токсичный текст, надо его перефразировать в нетоксиный. Например:
х*й знает кто кум, но девушка красивая👍 -> неизвестно кто кум, но девушка красивая
порядок бы бл*ть навёл ! -> Порядок бы навел
В рамках конференции Диалог-2022, мы объявляем соренвнование RUSSE 2022 Detoxification, посвященное решению этой проблемы. Это первое в мире соревнование по переносу стиля в текстах с параллельными данными. Вам необходимо будет разработать seq2seq систему, решающую задачу детоксификации на основе обучения на параллельном корпусе (а если хотите, то можете и без него). Ваша система будет оценена сначала автоматически, но потом мы проведем ручную оценку лучших систем участников и выбререм победителя с действительно лучшей системой!
Зачем участвовать?
* Попробовать свои силы в достаточно новой NLP теме переноса стиля в текстах;
* Более того, помочь решить важную социальную проблему;
* Поучаствовать в соревновании с уникальным setup-ом для этой задачи;
* А если вы как минимум преодолеваете бейзлан, то это дает вам возможность публикации на самой большой российской конференции по обработке текстов (что будет хорошим плюсиком в CV).
Это пост-затравка перед начало соревнования, которое открывается 15 декабря. Больше информации здесь:
https://russe.nlpub.org/2022/tox/
Телеграм-группа для дальнейших коммуникаций:
https://t.iss.one/joinchat/Ckja7Vh00qPOU887pLonqQ
Увидимся через 2 дня.
Russian Semantic Evaluation
Russian Text Detoxification Based on Parallel Corpora
Shared task on Text detoxification based on parallel corpora for the Russian Language. Automatic detoxification of the Russian texts aims to combat offensive speech.
Performance and Scalability: How To Fit a Bigger Model and Train It Faster
huggingface.co/docs/transformers/master/en/performance
Кажется посты про то, как тренировать модели побольше и побыстрее становятся всё актуальнее с каждым месяцем. Вот в этом посте (который на самом деле кусок документации) обсуждают кучу полезных моментов начиная с простых вещей, таких как размер батча и mixed precision и заканчивая хитрыми вещами вроде mixture of experts. Если пройти подалье, будет ещё отличный пост про model parallelism. Я уже выделил себе время на неделе чтобы поиграться с этими вещами, рекомендую и вам.
huggingface.co/docs/transformers/master/en/performance
Кажется посты про то, как тренировать модели побольше и побыстрее становятся всё актуальнее с каждым месяцем. Вот в этом посте (который на самом деле кусок документации) обсуждают кучу полезных моментов начиная с простых вещей, таких как размер батча и mixed precision и заканчивая хитрыми вещами вроде mixture of experts. Если пройти подалье, будет ещё отличный пост про model parallelism. Я уже выделил себе время на неделе чтобы поиграться с этими вещами, рекомендую и вам.
👍1
MAGMA – Multimodal Augmentation of Generative Models through Adapter-based Finetuning
arxiv.org/abs/2112.05253
Очередной VL-франкенштейн, который работает на удивление хорошо. Рецепт такой: берём датасет с картинками и их описаниями. Пихаем картинку в CLIP, получаем feature map 7*7*hidden, выпрямляем это в последовательность 49 "токенов". К этим токенам справа приписываем что-то типа "A picture of" и запихиваем в GPT-J (6B) с адаптерами. Учим геренировать описания картинок. Сам GPT не тюним, тюним только адаптеры и CLIP.
В отличие от других методов, тут не приходится тюнить огромную языковую модель, что экономит память сервера и ваши нервы. Кроме этого датасет для предтренировки собрали из большого числа supervised датасетов. Он получился небольшим (25 млн пар), но зато чистым (относительно наскрапленых датасетов). Тюнили на 32 A100 примерно 30 часов, что по современным меркам быстро.
Сделали много интересных наблюдений:
1. Префикс "A picture of" очень важен. На COCO Captions он увеличивает CIDER с 7.5 до 57.1 🤯
1. Самые важные адаптеры — перед self-attention, без них метрики очень сильно падают
1. Адаптеры перед FCN сильнее влияют на knowledge-based задачи, чем на общие captions
1. ResNet-CLIP работает сильно лучше чем ViT-CLIP на VQA задачах, предполагают что это из-за того что грид в ViT слишком маленький
1. В отличие от CLIP, модель устойчива к "OCR-атакам", когда вы вешаете на яблоко подпись "iPod" и спрашиваете что это такое (Fig. 5)
1. Вообще модель удивительно хорошо делает OCR, с учётом того, что никогда не была тренирована на эту задачу напрямую (Fig. 4 и 6)
arxiv.org/abs/2112.05253
Очередной VL-франкенштейн, который работает на удивление хорошо. Рецепт такой: берём датасет с картинками и их описаниями. Пихаем картинку в CLIP, получаем feature map 7*7*hidden, выпрямляем это в последовательность 49 "токенов". К этим токенам справа приписываем что-то типа "A picture of" и запихиваем в GPT-J (6B) с адаптерами. Учим геренировать описания картинок. Сам GPT не тюним, тюним только адаптеры и CLIP.
В отличие от других методов, тут не приходится тюнить огромную языковую модель, что экономит память сервера и ваши нервы. Кроме этого датасет для предтренировки собрали из большого числа supervised датасетов. Он получился небольшим (25 млн пар), но зато чистым (относительно наскрапленых датасетов). Тюнили на 32 A100 примерно 30 часов, что по современным меркам быстро.
Сделали много интересных наблюдений:
1. Префикс "A picture of" очень важен. На COCO Captions он увеличивает CIDER с 7.5 до 57.1 🤯
1. Самые важные адаптеры — перед self-attention, без них метрики очень сильно падают
1. Адаптеры перед FCN сильнее влияют на knowledge-based задачи, чем на общие captions
1. ResNet-CLIP работает сильно лучше чем ViT-CLIP на VQA задачах, предполагают что это из-за того что грид в ViT слишком маленький
1. В отличие от CLIP, модель устойчива к "OCR-атакам", когда вы вешаете на яблоко подпись "iPod" и спрашиваете что это такое (Fig. 5)
1. Вообще модель удивительно хорошо делает OCR, с учётом того, что никогда не была тренирована на эту задачу напрямую (Fig. 4 и 6)
😁1