Size: a a a

2021 January 07
DL in NLP
Очень много шума наделала модель DALL·E от OpenAI, которая умеет генерировать картинки вместе с текстом.

К сожалению, OpenAI (уже традиционно) опубликовали блогпост без статьи 😕, поэтому придётся угадывать что же они там делали. Ещё один момент - зачастую блогпост OpenAI и статья OpenAI очень разные. Поэтому подробный обзор DALL·E будет позже.

Сейчас попытаюсь саммаризировать то, что я понял и мои предположения,

DALL·E - это просто языковая модель-трансформер. Но она обучена на последовательностях вида “текст связанный с картинкой <значения пикселей картинки>”. О том, как OpenAI применяет языковое моделирование для изображений можно почтитать тут.

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

Теперь мои догадки о том, как майнили пары текст-изображение. Скорее всего просто делали поиск в интернете и майнили соответствующие картинки, соответствующие коротким фразам из датасета на котором тренировали GPT-3. Что ещё можно было сделать: как-то отсеивать тексты, которые не похожи на описания картинок или делать поиск наоборот - текста по намайненым картинкам. В конце-концов третья вещь - использовать предтренированные модели object detection или metric learning чтобы проверять, что картинки и правда похожи на текст. В качестве такой модели можно использовать DALL·E, который натренирован на предыдущей итерации датасета (оценивая моделью вероятность текста при условии картинки или наоборот).

Результаты:
Можно генерировать изображения обусловливаясь на тексте или даже не тексте и начале изображения. При этом качество картинок и уровень понимания текста зачастую очень удивляют. Например вы можете написать “вот такой же чайник, но со словом GPT на нём <картинка чайника>” и получить вот такие картинки.

openai.com/blog/dall-e

Неофициальная имплементация: github.com/lucidrains/DALLE-pytorch
Спасибо за ссылку @Archelunch
источник
DL in NLP
источник
DL in NLP
Или попросить нарисовать влюблённую перерони-пиццу
источник
2021 January 08
DL in NLP
OMG, я пропагандирую эту идею уже пару лет. Добавляйте такой псевдокод в вашу статью, он зачастую понятнее формул (но и их тоже не забывайте).
источник
DL in NLP
Альтернативый способ улучшить ваши формулы
источник
DL in NLP
источник
2021 January 12
DL in NLP
Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity
arxiv.org/abs/2101.03961
Fedus et al. [Google Brain]

Twitter thread: тык
Код: тык

TL;DR Допилили напильником mixture of experts, чтобы натренировать модель с 1.6 триллионами параметров.

Рисёч в области больших неросетей уже больше рисёч в области high-performance computing, чем в области нейросетей: вам нужно, чтобы ваши 100500 GPU друг с другом эффективно коммуницировали и чтобы каждая из них использовалась в полную силу. Одним из путей решения этих проблем (и создания новых) является подход Mixture of Experts (MoE), который уже позволил натренировать трансформер с 1 триллионом парметров. Основная идея: в каждом (втором) слое транфмораера FFN слой заменяется на MoE-слой, который представляет собой N (~1024) очень широких полносвязных сеток-экспертов (у них разные параметры). Каждая из сеток может лежать на своей GPU и входящая последовательность токенов в начале попадает в сетку-роутер, которая с помощью софтмакса определяет какой токен отдать каким k экспертам.

Авторы Switch Transformers дорабатывают этот подход:
1. Используют k=1 - то есть роутер отдаёт каждый токен только в одного эксперта. В оригинальной MoE-статье говорилось, что это не должно работать, тк градиенты становятся тривиальными. Но у Switch Transformers заработало 💁‍♂️.
1. Перед расчётом софтмакса в роутере конвертируют тензоры в fp32. Вся остальная сетка работает в fp16.
1. Чуть-чуть поменяли вид регуляризации, которая заставляет роутер использовать всех экспертов и не концентрироваться только на нескольких из них.
1. Инициализируют модель в sqrt(10) раз меньшими числами.
1. Если в эксперта приходит слишком много токенов, часть этих токенов пропускает эксперта (по сути делается skip-connection).

Результаты:
1. Обучается с меньшим количеством танцев с бубном, чем MoE - позволяют натренировать модель с 1.6 триллионами параметров без проблем с нестабильностью
1. На 600% раз быстрее, чем T5 с эквивалентным FLOPS/token и на 20% быстрее, чем MoE.
1. На языковом моделировании и на NLU-датасетах типа SuperGLUE заметно улучшает результаты T5 (размер моделей подобран так, что на их предобучение уходит одинаковое время).
1. Авторы предполагают, что даже относительно небольшие модели могут работать лучше и обучаться быстрее, если использовать Switch Transformers.

Статья очень большая и читается сложновато. Если решите вникнуть поглубже, рекомендую обратить внимание на Appendix F с псевдо-TF-кодом.

Ещё вот неплохая имплементация MoE на PyTorch: тык
источник
DL in NLP
источник
2021 January 13
DL in NLP
Забавная библиотека для интерактивных визуализаций того, что происходит в бертах.
eccox.io

Вроде бы она только умеет в saliency map и показывание скрытых слоёв, но зато красиво.

За ссылку спасибо @fyzbt
источник
2021 January 18
DL in NLP
🤯CBOW считали хуже Skip-Gram, потому что в оригинальной имплементации был баг - не нормализовали градиент на число слов.
источник
DL in NLP
источник
2021 January 21
DL in NLP
Какой-то очень дерзкий ход от 🤗. Можно поиграться со *всеми* их модельками прямо в браузере. И купить у них API (на удивление недорого).
источник
DL in NLP
источник
DL in NLP
Очень подробно описанная имплементация Switch Transformer. Выглядит прямо отлично, советую почитать всем.

lab-ml.com/labml_nn/transformers/switch/
источник
DL in NLP
источник
2021 January 22
DL in NLP
Уроки пиара от Майкрософт.

Литерали чат-бот натренированный на переписке с мертвым человеком — то, о чем думал каждый, кто тренировал чат-ботов. Но нет. "Воскрешение мертвых", черное зеркало, гроб, гроб, кладбище.

Дарю идею для патента попадания в СМИ: тренируете чатбота на переписке с живым человеком, а в конце озаглавливаете "ПРОЕКТ ПО ТРАСПЛАНТАЦИИ ЛИЧНОСТИ".
источник
2021 January 28
DL in NLP
Пока интересные статьи на глаза не попадаются, но попался пост 2009 года (“BC” по меркам диплёрнинга), который очень хорошо состарился.

Главная его мысль состоит в том, что автоматическое дифференцирование - это must have тулза в ML, но люди с ней незнакомы. И призывы к тому, что это нужно менять.

Сейчас в мире DL нет ни одного человека, кто не работал бы с автоматическим дифференцированием - потому что это основа и TF, и PyTorch и всех остальных нейросетевых фреймворков. Однако, далеко не все понимают что это такое и чем автоматическое дифференцирование отличается от численного и от аналитического. И пост является хорошим ответом на эти вопросы.
источник
2021 January 30
DL in NLP
Очередные анонсы (от @che-shr-cat).

На следующий неделе делаю два доклада на конференции OpenTalks.ai.

1) 04 февраля в 15:15 "Главные результаты в NLP в 2020 году". Дам свой топ главных достижений за последний год. И это не только GPT-3 :)

2) 05 февраля в 13:15 "Обзорный доклад про железо для ИИ" по мотивам моей серии постов про железо (включая ещё не вышедшие части) https://blog.inten.to/hardware-for-deep-learning-current-state-and-trends-51c01ebbb6dc

Расписание конференции здесь:
https://opentalks.ai/ru/timetable
источник
2021 February 03
DL in NLP
Хорошие знакомые из Huawei ищут себе ML Engineer и человека занимающегося поиском. Советую посмотреть.
источник
DL in NLP
Machine Learning, NLP researchers with system development experience (Surf_ML)

Project description:

We believe there is no limit to perfection when we writing source code. But usually, programmers do not have much time to hone their code and desired improvements become technical debt. Combining strict source code analysis and

Machine Learning, we want to create a tool that helps programmers pay this refactoring debt.

We expect you:

✅ To have strong knowledge of classic ML;

✅ To have hands-on experience with NLP and Recommender Systems;

✅ To have a PhD in Computer Science (not a must);

✅ To be an academic writer visible in Scopus;

✅ To be a hands-on programmer (Python, C++, or similar);

✅ To able present thoughts clearly both Russian and English;

✅ To be ready to work full-time (5x8) in our Moscow office;

✅ Interested in source code analysis.

You will get:

✅ Above-the-market monthly salary (plus annual and milestone bonuses)

✅ All social benefits, including 28 days annual paid vacation, etc.

✅ Challenging tasks and details-oriented management

✅ An opportunity to become a known open source contributor

✅ A limitless career path in a Fortune-100 company

✅ Ability to work remotely from home

✅ No-discrimination workplace: your age, citizenship, and sex don’t matter

@borgesline
Anna.perova@huawei.com
источник