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

Связь: @dropout05 (рекламы нет)
Download Telegram
Forwarded from Derp Learning
Тут товарищ Nikita Kiselov потестил Apple М1 в tensorflow.
tl;dr:
M1 Pro в два раза быстрее Tesla K80 (colab free), и в два раза медленнее Tesla P100 (colab pro)
M1 Max где-то быстрее P100, где-то на ее уровне.
Лонгрид тут
GPT-3 с хотдог детектором справился 💪
​​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. Если в команде нету такой культуры, она может быть склонна быстро аккумулировать и преувеличивать существующий техдолг.

Советую почитать оригинальную статью. В ней очень много полезной информации, которую не сжать в пост в телеге.
👍1
What is Automatic Differentiation?
youtube.com/watch?v=wG_nF1awSSY

Наверное самая хитрая и непонятная тема для тех, кто только погружается в DL — это бэкпроп. Для меня в своё время совершенно знаковой была задачка написания бэкпропа для BatchNorm на нумпае (кстати рекомендую). Но если вместо жёсткого погружения в код вы хотите посмотреть хороший видос по автоматическому дифференцированию, который лежит в основе бэкпропа, я очень рекомендую вот этот видос. В нём рассказывают об отличии численного дифференцирования от аналитического от автоматического. В том числе рассказывают про разницу между forward-mode и backward-mode дифференцированием. А также как их можно комбинировать для эффективного рассчёта hessian-vector product, который вам например нужен в MAML. В общем рекомендую к просмотру.
Forwarded from AbstractDL
This media is not supported in your browser
VIEW IN TELEGRAM
GradInit: перебор гиперпараметров оптимизатора и warmup больше не нужны (by Google)

В гугл предложили супер крутой универсальный architecture-agnostic метод инициализации весов моделей.

Идея очень простая: добавить множители перед каждым блоком параметров и запустить по ним несколько итераций оптимизации лосса. Дальше эти множители фиксируем и учим модель как обычно. Такая инициализация не зависит от глубины и типа архитектуры (работает и на резнетах и на трансформерах) и почти полностью решает проблему взрывающихся\затухающих градиентов.

В итоге отпадает необходимость в переборе гиперпараметров оптимизатора, а трансформер вообще получилось обучить без warmup’a, что считалось практически невозможным. Как бонус, такая инициализация даёт небольшой буст на многих бенчмарках (и картиночных и текстовых).

Статья, GitHub
Заметил такой параграф в статье и подумал что он может сильно удивить людей вне NLP / DL (и даже некоторых людей оттуда). С одной стороны он показыает насколько сильно требования на compute выросли за последние пару лет, а с другой — сколько бы экспериментов у тебя не было, #reviewer2 всё равно скажет что их недостаточно и вообще lack of baselines.

Кстати это параграф из статьи 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
Forwarded from addmeto (Grigory Bakunov 🧪)
Чем дольше работает команда DeepMind на деньги Гугла, тем больше ощущение близости ИИ. Вот сегодня они показали статью и примеры работы своей новой языковой модели Gopher. Она ощутимо больше уже ставшей стандартом де-факто GPT-3, в ней 280 миллиардов параметров. Модель гиганская, но то как она умеет отвечать на информационные запросы потрясает - это уже результат сильно лучше, чем у среднего человека.

Если посчитать, человеческий неокортекс состоит из 20 миллиардов нейронов, образующих по 10-15 тысяч соединений каждый. Т.е. двести триллионов соединений всего. Т.е. это уже всего на несколько порядков меньше чем весь обьем человеческого мозга. Приравнивать параметры модели к межнейронным связям наивно, однако масштаб модели поистине поражает https://deepmind.com/blog/article/language-modelling-at-scale
👍1
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 модели, например, чтоб была менее противоречивая генерация
Обновления OpenAI API:

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 дня.
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. Я уже выделил себе время на неделе чтобы поиграться с этими вещами, рекомендую и вам.
👍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)
😁1
Forwarded from Daryna Dementieva
Следуя нашему предварительному объявлению (спасибо @dropout05 за пост), мы открываем наше соревнование по детоксификации для русского языка! 🎉

Итак, что доступно:
* Основной репозиторий соревнования: https://github.com/skoltech-nlp/russe_detox_2022. Здесь есть: 1) train и dev части датасета. 2) код Delete и t5 бейзланов с их выводами на dev сете. 3) есть полностью код для оценки работы ваших моделей – вы можете запустить его самостоятельно для предварительных результатов.

* Бейзлайновая модель T5, обученная на параллельном корпусе, доступна на HuggingFace 🤗: https://huggingface.co/SkolkovoInstitute/ruT5-base-detox. Можете ее проверить на прочность через интерфейс 🙃

* Основная платформа с лидербордом на Codalab: https://codalab.lisn.upsaclay.fr/competitions/642. Для участия вам необходимо зарегистрироваться на платформе и сделать сабмит dev сета.

* Формат сабмита: вам надо засабмит .zip АРХИВ с .txt файлом, где в каждой строке детоксифичированная версия входного предложения из входного файла. Участвовать можно как индивидуально, как и в команде. Как создать команду описано в инструкции.

* Основные даты:
- сейчас мы открываем фазу Development, где вы можете тестироваться на dev сете. Эта фаза продлится до 31 января.
- После этого будет выложен test сет, у которого уже не будет нейтральных референсов. На отправку решения на этом сете и выбора лучшей модели будет дано 2 неделе и тестовая фаза закроект 14 февраля.
- Лучшие модели, выбранные участниками, буду оценены вручную. Финальные результаты ручной оценки будут выложены на сайте соревнования 28 февраля.
Forwarded from AbstractDL
This media is not supported in your browser
VIEW IN TELEGRAM
🔥WebGPT: теперь GPT-3 умеет гуглить лучше тебя

В OpenAI зафайнтюнили GPT-3 отвечать на вопросы, пользуясь поиском Bing, а получившиеся при этом ответы оказались качественнее, чем у людей.

Сначала они разработали простенький текстовый браузер, которым могла бы пользоваться GPT — там есть основные команды типа: кликнуть на ссылку, поскроллить, найти слово на странице, скопировать фрагмент и тд. Далее они при помощи людей собрали датасет из 6000 примеров использования этого браузера и дообучили на нём GPT-3 (language modeling). Затем они нагенерили этой же моделью датасет из 25к вопросов и вручную разметили их качество. На этой разметке они обучили ранжировщик ответов и использовали его для дальнейшей фильтрации.

В итоге, судя по human evaluations на датасете ELI5, людям чаще нравятся ответы нейронки, чем своих собратьев 💁‍♂️

P.S. На гифке пример того, как гуглит эта модель, отвечая на вопрос «How do neural networks work?»

Статья, блог
Initializing neural networks
deeplearning.ai/ai-notes/initialization

Очень классная интерактивная статья, в которой рассказывается (и показывается) почему правильная инициализация нейросетей важна, что такое Xavier initialization, почему он работает и как выглядят градиенты при разных инициализациях.
Можно прямо повыбирать различные способы и натренировать мнист прямо в браузере.

Теперь буду показывать всем студентам.

Аналогичная статья про методы оптимизации (SGD -> ADAM): deeplearning.ai/ai-notes/optimization
Forwarded from partially unsupervised
Finding why Pytorch Lightning made my training 4x slower - отличный пост про поиск замысловатого бага в ML инфраструктуре. Пример инженерного здравого смысла: хорошо использовать готовые инструменты, но не боги горшки обжигают - не стоит бояться залезть под капот и что-то пофиксить.