DL in NLP
12.5K subscribers
547 photos
13 videos
27 files
1.1K links
Новости и обзоры статей на тему обработки естественного языка, нейросетей и всего такого.

Связь: @dropout05 (рекламы нет)
Download Telegram
Очень много шума наделала модель 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
Или попросить нарисовать влюблённую перерони-пиццу
OMG, я пропагандирую эту идею уже пару лет. Добавляйте такой псевдокод в вашу статью, он зачастую понятнее формул (но и их тоже не забывайте).
Альтернативый способ улучшить ваши формулы
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: тык
Забавная библиотека для интерактивных визуализаций того, что происходит в бертах.
eccox.io

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

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

lab-ml.com/labml_nn/transformers/switch/
Forwarded from эйай ньюз
Уроки пиара от Майкрософт.

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

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

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

Сейчас в мире DL нет ни одного человека, кто не работал бы с автоматическим дифференцированием - потому что это основа и TF, и PyTorch и всех остальных нейросетевых фреймворков. Однако, далеко не все понимают что это такое и чем автоматическое дифференцирование отличается от численного и от аналитического. И пост является хорошим ответом на эти вопросы.
Очередные анонсы (от @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
Хорошие знакомые из Huawei ищут себе ML Engineer и человека занимающегося поиском. Советую посмотреть.
Forwarded from Huawei Careers 😎
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
[email protected]