Size: a a a

2020 June 02
DL in NLP
Новый релиз 🤗, теперь с лонгформером

https://github.com/huggingface/transformers/releases/tag/v2.11.0
источник
2020 June 03
DL in NLP
Переслано от b b
источник
2020 June 05
DL in NLP
Cascaded Text Generation with Markov Transformers
Deng and Ruch [Harvard and Cornell]
arxiv.org/abs/2006.01112

Интересная статья про альтернативу Beam Search для генерации текста. Cascaded decoding можно видеть как что-то обобщающее неавторегрессионные и авторегрессионные модели. Генерация происходит в несколько шагов: в начале вы считаете скоры слов как для неавторегресионной модели (предсказываете весь перевод целеком) и отбрасываете совсем маловероятные слова. После чего для оставшихся слов вы считаете скоры для двуграм (авторегресионно внутри каждой двуграммы) и отбрасываете самые маловероятные, потом для 3-gram итд, пока не успокоитесь.
Для того, чтобы эффективно считать скоры для n-gram авторы также предлогают Markov Transformer. По сути вы просто запрещаете биграммам смотреть друг на друга. Думаю, что это можно написатть следующим образом rearrange(input, "bs (n_gram n) hid -> (bs n_gram) n hid", n_gram=4) без модификаций в архитектуре.
Результаты: сравнимо с beam search по качеству (если добавить pseudolabelling с поомщью регрессионной модели), но в 3 раза быстрее.

зарелижен код
источник
DL in NLP
А теперь хочется добавить критики и высказать свою боль по поводу зарелиженного кода.
Всё больше статей используют фреймворки не как фреймворки, а как часть кода. То есть, когда вы видете import fairseq это не тот fairseq, который можно получить по pip install, это папка fairseq в конкретно этом проекте, где изменены 3 файла. Какие именно? Смотри по коммитам. А fairseq весьма большой, так что удачи. И это становится ещё хуже - иногда так добавлен не один фреймфорк, а несколько. В результате зарелиженный код может быть и добавляет статье воспроизводимости, но reusability остаётся нулевой.

В таком формате может быть нормально проверять свои гипотезы и разрабатывать ранние версии моделей. Но релизить такой код - это как-то невежливо и некрасиво по отношению к комьюнити. Потратье пару дней после сабмита статьи на то, чтобы причесать ваш код и сделать его минимальным. Тот же fairseq можно не модифицировать, а расширять - просто дописывать свои классы в своих файлах, а потом подключать к ванильному fairseq с помощью параметра --user-dir. В результате размер вашего репозитория уменьшается в сотни раз, позволяя проще модифицировать и переиспользовать ваш код.
Если вы изобрели новую модель, которая делает что-то лучше остальных - позвольте другим использовать её простым и понятным образом. Это увеличит ваш impact, а impact - это ведь одна из главных причин, почему мы вообще занимаемся исследованями.

Помните, что вы пишете код один раз, а читаете его - десятки, а может быть и сотни раз. И не только вы.
источник
DL in NLP
И ссылочка на тред Thomas Wolf по этой же теме.

http://twitter.com/Thom_Wolf/status/1216990543533821952
источник
DL in NLP
источник
2020 June 06
DL in NLP
When Can Self-Attention Be Replaced by Feed Forward Layers?
Zhang et al. [University of Edinburgh]
arxiv.org/abs/2005.13895

Авторы тестировались на задачке speech-to-text, так что результат не факт, что обобщается на тексты, но по их наблюденям, можно просто выкинуть attention из последних 1-2 слоёв и не только прибавить в скорости, но и получить небольшой буст в метриках. В качестве бейзлайна сравнились с уменьшение количества слоёв.

Моей первой мыслью было попробовать запустить машинный перевод и посмотреть, как оно зайдёт. Но если внимательнее посмотреть на результаты статьи, они не такие убедительные. Ошибка падает с 9 до 8.9 на одном датасете и 3.5 до 3.4 на другом. Плюс, недавно я узнал, что BERT (по крайней мере 🤗) при обучении (MLM) использует не просто Linear для предсказания слов, a Linear->activation->LayerNorm->Linear. Так что в некотором смысле результаты этой статьи уже известны.
источник
DL in NLP
источник
2020 June 07
DL in NLP
источник
2020 June 08
DL in NLP
Моделька, которая переводит ваш код с одного языка программирования на другой (C++ <=> Java <=> Python). Без параллельной разметки для обучения. Использовали те же самые алгоритмы, которые применяются для unsupervised перевода в человеческих языках и они неплохо работают.
Забавно как сделали тестсет - набрали примеры алгоритмов на geeksforgeeks, там есть примеры имплементаций на разных языках.

подробнее в треде
twitter.com/GuillaumeLample/status/1269982022413570048
источник
2020 June 10
DL in NLP
Переслано от Ridvan Shikzatov
Сдую пыль со старого поста про неумение в гит в ДС.
Пожалуй лучшее что видел на этот счет это видео Глеба Михайлова https://www.youtube.com/watch?v=0cGIiA0AjNw&t=1s
Совершенно годный контент, на мой взгляд, да еще и на русском
источник
DL in NLP
​​Linformer: Self-Attention with Linear Complexity

The authors prove that self-attention can be approximated by a low-rank matrix. This idea made it possible to develop a new self-attention architecture, which reduces the complexity of O(N^2) to O(N) in both time and space.

Authors decompose the original scaled dot-product attention into multiple smaller attentions through linear projections, such that the combination of these operations forms a low-rank factorization of the original attention.

Also, they suggest a number of additional efficiency techniques:
   – Parameter sharing between projections: Headwise, layerwise or key-value sharing
   – Nonuniform projected dimension. It could be efficient to set lower projection dimension for higher levels
   – General projections. Some different kind of projection instead of linear - pooling or convolution with kernel n and stride k

For experiments, they use RoBERTa and train it on 64 Tesla V100 GPUs with 250k updates.

Authors show that models reach almost the same validation perplexity as in a transformer, while inference is much faster and requires less memory.


Paper: https://arxiv.org/abs/2006.04768

#deeplearning #attention #transformer #efficience #memoryoptimization #inferencespeed
источник
DL in NLP
Полная версия обзора в ODS от @Erlemar.
тык
источник
2020 June 11
DL in NLP
Переслано от Tari
Вышел Russian SuperGLUE!
Лидерборд : http://russiansuperglue.com
Код: https://github.com/RussianNLP/RussianSuperGLUE

Чтобы правильно оценивать русскоязычные языковые модели, такие как популярные сейчас BERT, RoBERTa, XLNet и т.д., нужно иметь какие-то объективные метрики. Подходов, как это делать, не так много, а для русского языка их не было. Представлен Russian SuperGLUE - бенчмарк для задачи общего понимания языка (General Language Understanding) и дальнейшего развития моделей на русском.

Набор новых задач для оценки моделей:
1. LiDiRus (Linguistic Diagnostic for Russian) или просто общая диагностика — её мы полностью адаптировали с английского варианта.
2. DaNetQA — набор вопросов на здравый смысл и знание, с да-нет ответом.
3. RCB (Russian Commitment Bank) — классификация наличия причинно-следственных связей между текстом и гипотезой из него.
4. PARus (Plausible Alternatives for Russian) — целеполагание, выбор из альтернативных вариантов на основе здравого смысла.
5. MuSeRC (Multi-Sentence Reading Comprehension) — машинное чтение. Задания содержат текст и вопрос к нему, но такой, на который можно ответить, сделав вывод из текста.
6. RuCoS (Russian reading comprehension with Commonsense) — тоже задача на машинное чтение. Модели даётся новостной текст, а также его краткое содержание с пропуском — пропуск нужно восстановить, выбрав из вариантов.
7. TERRa (Textual Entailment Recognition for Russian) — классификация причинно-следственных связей между предложениями (собрали с нуля по новостям и худлиту).
8. RUSSE (Russian Semantic Evaluation) — задача распознавания смысла слова в контексте (word sense disambiguation). Взят из RUSSE
9. RWSD (Russian Winograd Schema Dataset) — задания на логику, с добавленными неоднозначностями («Если бы у Ивана был осёл, он бы его бил»). Создан по аналогии с Winograd Schema.

Разработчики и энтузиасты приглашаются представить свои модели на лидерборде!

Пост на habr https://habr.com/ru/company/sberbank/blog/506058/
источник
2020 June 13
DL in NLP
API OpenAI

Очень странная штука, но выглядит забавно.

openai.com/blog/openai-api/
источник
DL in NLP
Optimizing Data usage via Differentiable Rewards
Wang, Pham et al. [CMU and Google Brain]
arxiv.org/abs/1911.10088

Идея: разнные данные по-разному полезны, давайте натренируем RL агента выбирать те, которые уменьшают лосс на dev-сете сильнее всего
Предположение: dev больше похож на test, чем train
Кому это надо: да почти всем, у кого плохое качество разметки. Вы размечаете свой большой train как можете, а dev очень-очень аккуратно (например, сами или требуете более высокий overlap от разметчиков)
Конкретный сигнал на обучение агента: похожесть градиента датапоинта на градииент на dev-сете.

Экспериментировали на классификации изображений и на низкоресурсном машинном переводе. Переводили с азейбайджанского, белорусского, галисийского и словацкого на английский. Тренировались на датасете из турецкого, русского, португальского и чешского, а низкоресурсные использовали в качестве dev. В среднем их метод добавляет меньше 0.5 BLEU, но когда ваш BLEU = 11, это довольно много.
источник
DL in NLP
источник
DL in NLP
источник
DL in NLP
The Level 3 AI Assistant Conference
June 18, 2020 | Online
www.l3-ai.dev

Бесплатная конфа по Conversational AI. Из интересных для меня докладов нашёл:
1. Testing: The Art of Challenging Chatbots, Botium
1. Designing Practical NLP Solutions, Explosion.ai (создатели spaCy)
1. From Research to Production – Our Process at Rasa, Rasa
1. Distilling BERT, Rasa
1. Current Research in Conversational AI, много спикеров включая Rachael Tatman, Thomas Wolf и Anna Rogers
1. Google's Meena: Open Dialog systems, Google

Выглядит неплохо, надо регистрироваться.
источник
DL in NLP
UPD по OpenAI API.

Много кто, включая меня, решили что это какая-то непонятная замена вашему любимому zsh. Это не так, это API по всем тем моделькам, которые не помещаются на вашу GPU. Replika уже внедрила GPT-3 к себе в прод и получили заметный скачок в метриках (см график).
Вы тоже можете запросить доступ в бету для своего продукта / рисёча.

Обсуждение в ODS с разрабами из реплики.
источник