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

Связь: @dropout05 (рекламы нет)
Download Telegram
DALL-E 2 "Deep Learning Hitting the Wall"
👍22😁2
В Optimum добавили очень простой способ квантизовывать модели из Transformers.

Вообще интересно как квантизация будет жить вместе с большими моделями. Вокруг себя вижу сильный рост интереса попробовать модели в 1B параметров и больше на различных задачах, но эти модели даже при переводе в fp16 зачастую перестают работать.

huggingface.co/docs/optimum/main/en/quickstart
👍13
⚡️A Case of Plagarism in Machine Learning Research
nicholas.carlini.com/writing/2022/a-case-of-plagarism-in-machine-learning.html

Пару недель назад Beijing Academy of Artificial Intelligence опубликовала статью на архиве, в которой описывался их подход и стратегия по тренировке больших моделей. Nicholas Carlini заметил, что несколько параграфов из этой статьи практически дословно копируют статью Deduplicating Training Data Makes Language Models Better (которая кстати о копировании данных лол). Интересно, какие будут последствия. Кто-то говорит о том, что авторы могут быть забанены на Arxiv, но с другой стороны их около сотни и это очень жёсткая мера, тк не все авторы могли знать о копировании. Очень неприятно видеть такое в нашей области. Не плагиатьте пожалуйста.
👎11🤮61👍1
Сейчас идет онлайн-конференция Data Fusion 2022.

В программе — доклады о распределенных моделях оптимизации, графовой аналитике и федеративных моделях, трендах NLP, сomputer vision и MLOps. Среди спикеров — Константин Воронцов, Евгений Бурнаев, Андрей Райгородский, Иван Оселедец, Дмитрий Ветров, Виктор Кантор, Петр Ермаков, Павел Мягких и другие эксперты в data science.

После докладов начинаются Q&A сессии в SpatialChat — это виртуальные комнаты, в которых можно лично пообщаться со спикером и обсудить проекты. Подключайтесь и задавайте вопросы.

Конференцию организуют «Сколково» при поддержке ВТБ.

Участие бесплатно, а программу можно посмотреть по ссылке: https://bit.ly/3rmGFg8

#промо
👍10👎41
Linearizing Transformer with Key-Value Memory Bank
Zhang and Cai
arxiv.org/abs/2203.12644

Интересный заход на длинные трансформеры с прицелом именно на длинную генерацию. В предложенной модели, MemSizer, attention модифицируется следущим образом. Q остаётся примерно как есть, K становится латентным и число ваших ключей — гиперпараметр. В статье работают с 8-128 ключами, что на удивление мало, я бы ожидал каких-то безумных значений типа тысяч или десятков тысяч по аналогии с Large Memory Layers.

С values делают пожалуй самое дикое преобразование. Если в обычном attention они выглядят как X W_v, то в MemSizer это W_l X X^T W_r, где левая матрица мапит X на ключи K. А после этого делают ещё один трюк, который позволяет вычислять V_i (где i - шаг генерации) реккурентно и с постоянной памятью.

Все эти хаки сделанны для одной вещи: чтобы время генерации уменьшилось с O(MN) до O(Mk + N), а память стала константной вместо O(MN). В языковом моделировании (Wikitext-103, длина 512 токенов) MemSizer сопоставим с другими длинными трансформерами в смысле перплекии, но заметно быстрее. По сравнению с обычным трансформером MemSizer хуже по перплексии (20.2 вместо 17.9), но более чем в полтора раза быстрее и ест в 6 раз меньше памяти при генерации. В машинном переводе (WMT En-FR) чуть-чуть обходит всех по BLEU, но на треть бстрее трансформера. Правда стоит сказать что число параметров у него на 20% меньше, так что ну такое.

Будет интересно как будет развиваться эта идея изначально заложенная в статье Transformers are RNNs.
🔥8👍2
Есть очень классная статья — Understanding Back-translation at Scale. Всем её рекомендую кто занимается переводом. Там исследовали различные способы семплирования переводов и выяснили, что самым лучшим является добавлять шум в результаты beam search (NoisedBT).

Так вот сейчас случайно нашёл статью, которая утверждает, что это улучшает систему которая натрнирована на этих сгенерированных переводах не из-за того, что сгенерированный датасет более разнообразный, а из-за того, что такая система учится различать синтетические переводы от естественных.

Объясняют это так: мы с помощью backtranslation и существующих target предлоежний генерируем source предложения. Таким образом есть три сигнала, которые система может выучить: strong supervision от target, weak supervision от cross-lingual и различные biases системы перевода. Если системе при обучении каким-то образом сообщают о том, что source ненастоящие (например добавляя в них шум), то ей проще отделить одно от другого и сконцентрироваться на выучивании strong supervision от target-текстов.

Для проверки натренировали систему которой указывали что данный перевод является результатом backtranslation и она показала более высокое качество, чем NoisedBT. Интересно, что когда оба метода попытались объединить вместе, качество снова упало, что намекает на то, что действительно важно не разнообразие которое создаёт NoisedBT, а просто факт того что модель может проще отличить настоящие предложения от сгенеренных.
👍15
Choose your weapon
👍42🔥3
Кстати я тут пару недель назад попытался перейти с iTerm на Warp.

Очень забавный терминал и к идее блоков команд привыкаешь очень быстро. Хорошо работает с bash и zsh, но oh-my-zsh игнорирует почти полностью. Блоки работают как локально так и через ssh (разрабы говорят это было нелегко сделать). Если бы была поддержка tmux, аналогичная той что в iTerm думаю я на нём бы и остался.

Из прикольных фишек:
1. Есть command pallet вызываемая по CMD+P, аналогичная такой в VSCode и других редакторах
1. Можно попросить Codex написать за вас команду. Для этого тыкаете ALT+` и пишете что хотите сделать на естественном языке.
1. Ещё есть какая-то коллекция сниппетов, но ни разу ей не пользовался.

Codex оказался на удивление полезным. Например я постоянно забываю как удалить conda env и на скриншоте можно увидеть как это работает. Или например узнать размеры всех скрытых директорий. Обычно такие штуки бы пытался вспомнить/угадать, потом шёл бы в гугл, а Codex позволяет устранить несколько шагов.
👍20🔥7💩2
Learning to Prompt for Continual Learning
Wang et al, [Google]
arxiv.org/abs/2112.08654
блогпост: тык

Интересная идея использовать continuous prompt для задач continual learning, где тебе нужно последовательно учить несколько тасок.

Основная проблема CL это catastrophic forgetting — то, что модель забывает старые задачи, когда мы её учим новым задачам. Чтобы разрешить её, LTP не обновляет параметры модели вообще, а обучает только векторы промтов и их ключи. Работает это так: на основе входных данных строится query которая сравнивается с обучаемыми ключами промтов и top-k найденных промтов присоединяются ко входу в трансформер.

Почему это полезно — очень простая и эффективная по памяти имплементация по сравнению со стандартными методами CL типа EWC.
👍7
👍4
🤗 запускает курс по RL
Syllabus: https://github.com/huggingface/deep-rl-class
Регистрация: тык

Обещают научить работать со stable baselines, RLlib, RL Baselines3 Zoo. Также будут не только заезженные Space Invaders но и новые environments, включая работающие на Unity.

Кроме классических топиков (Q learning, policy gradients, PPO) будут также offline RL и decision transformers.

Заучит классно, мне давно пора подтянуть свои RL скилы.
🔥22👍19
MASSIVE — новый мультиязыковой NLU датасет от Amazon

🌗 Amazon запустил соревнование по NLU (natural language understanding) и, в связи с этим, расшарил параллельный датасет.

51 язык
• Всего порядка 1 миллиона строк.

🌗 Посмотрел на него, — похоже, что это всё команды для голосового помощника alex'ы.

• Есть разметка типа "можешь создать событие [time : в ночь] на [date : пятницу] с [person : аллой пугачёвой] и [person : киркоровым]"
• Почти все тексты короткие, до 20 слов.
• Попадаются различия в переводе названий. Русский — "включи игру танки онлайн", немецкий "lass uns ein trivia spiel spielen".

Что ж, появился новый параллельный корпус на 51 язык, хотя и немного специфичный. И то хорошо.

GitHub
🔥19👍5
Так как понедельник день тяжёлый (как и любой другой день), давайте просто почитаем популярные новости и бомбёж рисёчеров на эти новости.

New York Times A.I. Is Mastering Language. Should We Trust What It Says?
Реакция Emiliy Bender на эту статью: Resist the Urge to be Impressed
👍6
Стенфорд выложил все видосы cs224n Winter 2021 Natural Language Processing. 🔥🔥
Это один из лучших курсов по nlp в мире, и теперь доступна его более свежая версия. Есть нормальная лекция по трансформерам, T5, low resource MT.
Всем смотреть.

https://youtube.com/playlist?list=PLoROMvodv4rOSH4v6133s9LFPRHjEmbmJ
🔥82👍1
AI Alignment and the Long-Term Future Speaker Series
harvardea.org/agathon

Когда мы всё чаще используем огромные модели натренированные на террабайтах данных, контролировать их становится всё сложнее. Но при этом мы не хотим, чтобы чатботы которых мы сделали на основе GPT3 или T5 были токсичными и в принципе генерировали всякую дичь. Мы хотим чтобы они отражали какие-то наши базовые моральны ценности, и данные из интернета — не лучший пример этих ценностей. Для того, чтобы научить модели хорошему сейчас есть зарождающаяся область исследований model alignment, которая пытается align AI values to that of human values. В Гарварде и MIT недавно прошла speaker series на эту тему, рекомендую посмотреть записи / слайды.
👍12
Про прогрессбары

Недавно понадобилось отслеживать состояние обучения модельки(переводчика) в реалтайме, но я работаю в save & run all кагла, что довольно неудобно и накладывает ограничения

Соответственно появились мысли о всяких MLOps инструментах типо wandb, neptune, tensorboard и тд

Но они тоже не сказать что супер удобные, ведь что есть удобнее мессенджеров?

Тут я начал гуглить на эту тему что-то для тг. Нашел штуку HF, которая тупо отправляет сообщение в мессенджер. Нормально, но хочется большего, большего реалтайма без флуда

Написал другу об этом всём, а в ответ:

Сделать TQDM вывод красивый, вытащить выходной поток, прогнать через какую-нить либу, которая по любому есть, это-ж питон. И в одно сообщение красиво скидывать с таймаутом в минуту, не шля новые, а изменяя старое
(хотя скорее всего есть более удобные инструменты юпитера)

Как ни странно он был прав, при этом настолько, что изменить в коде нужно было всего две строчки:
from tqdm.contrib.telegram import tqdm
for i in tqdm(iterable, token='{token}', chat_id='{chat_id}'):
...

В конечном итоге я остановился на комбинации tqdm telegram + wandb (полный вывод консоли + использование ресурсов) и пока что меня это устраивает
👍45😱21🔥6
«Сколково» при поддержке ВТБ провели конференцию по анализу данных. Среди самых популярных сессий:

🔹 MLOps. Как использовать DevOps для внедрения систем ИИ и настроить непрерывный релиз моделей ML

🔹 ДНК дата-сайентиста. Как меняются требования к ds специалистам, почему им могут отказать на собеседовании и как выстраивать образовательный трек

🔹 От научной статьи до MVP. Как довести идею до конкретного продукта и какие сложности с R&D в области искусственного интеллекта есть в России.

Смотрите сессии об этом на конференции Data Fusion 2022, записи доступны на сайте или в VK.

Также среди тем: федеративные модели, экономичные нейросети, графовая аналитика, распределенные методы оптимизации, диффузионные модели, робастность глубоких нейросетей и многое другое.

Ищите запись выступлений экспертов по ссылке

#промо
👍16🤮12💩3