How to do machine learning efficiently
medium.com/hackernoon/doing-machine-learning-efficiently-8ba9d9bc679d
Классный пост, который покрывает многие типичные ошибки дата-сатанистов. И в общем, он близок к моим представлениям о хороших практиках.
1. The 10 second rule - во время весь ваш скрипт (включая обучение и валидацию) должен выполняться ~5-10 секунд и не больше, чтобы вы могли чаще итерироваться и улучать вашу модель / исправлять баги
1. Be a time spammer - используйте эффективные операции, не делайте 🚲
1. Test yourself - пишите тесты на всё, в особенности на предобработку данных; это займёт куда меньше времени, чем поиск странных багов в будущем
1. Rush to success - начните с простых/тупых/линейных моделей, код к которым вы можете написать за 15 минут и натренировать которые вы можете за 15 секунд.
1. Don’t tune the parameters, tune the architecture - не тратье время на подбор гиперпараметров в начале проекта, выбирайте архитектуру, гиперпараметры потюните уже в конце проекта. Тут не могу полностью согласиться, но разумное зерно есть.
1. Free the mice - подучите комбинации клавиш в вашем текстовом редакторе / IDE
1. Пост заканчивается ссылкой на другой пост, о том, как правильно сделать валидационный сет
И, раз уж тема близкая, ещё раз рекомендую прочитать/перечитать A Recipe for Training Neural Networks от Andrej Karpathy. После каждого прочтения, я узнаю что-то новое.
medium.com/hackernoon/doing-machine-learning-efficiently-8ba9d9bc679d
Классный пост, который покрывает многие типичные ошибки дата-сатанистов. И в общем, он близок к моим представлениям о хороших практиках.
1. The 10 second rule - во время весь ваш скрипт (включая обучение и валидацию) должен выполняться ~5-10 секунд и не больше, чтобы вы могли чаще итерироваться и улучать вашу модель / исправлять баги
1. Be a time spammer - используйте эффективные операции, не делайте 🚲
1. Test yourself - пишите тесты на всё, в особенности на предобработку данных; это займёт куда меньше времени, чем поиск странных багов в будущем
1. Rush to success - начните с простых/тупых/линейных моделей, код к которым вы можете написать за 15 минут и натренировать которые вы можете за 15 секунд.
1. Don’t tune the parameters, tune the architecture - не тратье время на подбор гиперпараметров в начале проекта, выбирайте архитектуру, гиперпараметры потюните уже в конце проекта. Тут не могу полностью согласиться, но разумное зерно есть.
1. Free the mice - подучите комбинации клавиш в вашем текстовом редакторе / IDE
1. Пост заканчивается ссылкой на другой пост, о том, как правильно сделать валидационный сет
И, раз уж тема близкая, ещё раз рекомендую прочитать/перечитать A Recipe for Training Neural Networks от Andrej Karpathy. После каждого прочтения, я узнаю что-то новое.
Medium
How to do machine learning efficiently
I have just come out of a project where 80% into it I felt I had very little. I invested a lot of time and in the end it was a total…
Гитхаб с примерами решения типовых задачек NLP с помощью типовых нейросеток на типовом PyTorch.
github.com/lyeoni/nlp-tutorial
К каждой задаче приложен длинный README с объяснением архитектуры, что приятно. Некоторые примеры на мой вкус очень многословные, и многие best practices игнорируются, но всё равно выглядит полезным для того, чтобы понять, как работает X и можно использовать в качестве стартового кода, чтобы поиграться/написать небольшой проектик.
Трансформер описан хорошо - базовые модули имплементированны прямо в тексте README (правда главная штука: self-attention почему-то отсутствует, хотя её можно написать в 2 строчки).
UPD: Спасибо @dePuff за ссылку на аналогичный репозиторий от Microsoft, в котором примеров ещё больше.
github.com/lyeoni/nlp-tutorial
К каждой задаче приложен длинный README с объяснением архитектуры, что приятно. Некоторые примеры на мой вкус очень многословные, и многие best practices игнорируются, но всё равно выглядит полезным для того, чтобы понять, как работает X и можно использовать в качестве стартового кода, чтобы поиграться/написать небольшой проектик.
Трансформер описан хорошо - базовые модули имплементированны прямо в тексте README (правда главная штука: self-attention почему-то отсутствует, хотя её можно написать в 2 строчки).
UPD: Спасибо @dePuff за ссылку на аналогичный репозиторий от Microsoft, в котором примеров ещё больше.
GitHub
GitHub - lyeoni/nlp-tutorial: A list of NLP(Natural Language Processing) tutorials
A list of NLP(Natural Language Processing) tutorials - lyeoni/nlp-tutorial
Раз уж начинается новая итерация курса, возникает закономерный вопрос
Anonymous Poll
53%
Больше простых туториалов в канал
31%
Больше новостей, разборов новых статей, вот этого всего
16%
Оставляем как есть
Machine Unlearning
Bourtoule et al.
arxiv.org/abs/1912.03817
Два забавных факта:
В эпоху ML ваши данные собирают все. GDPR и его аналоги пытаются контролировать эти процессы и дают вам право удалить данные. Что звучит как здравая и полезная идея.
С другой стороны, современные модели очень хорошо запоминают датасеты, что позволяет потенциально достать из этих самых моделей данные, на которых они были натренированы.
Следовательно, если юзер X запрашивает у компании G удаление его данных, в идеальном мире компания должна не только удалить его из своих БД/текстовых документов/post-it notes/умов своих сотрудников, но и перетренировать все модели, в которых эти данные участвовали. Но когда ваши модели тренируются по несколько дней на десятках GPU, это вообще себе такая идея.
А теперь о статье:
Авторы формализуют задачу разучивания данных и приводят метод SISA (Sharded, Isolated, Sliced, and Aggregated training), который позволяет убирать определённые данные из моделей без их полной перетренировки. Суть метода - шардинг данных и ансаблирование моделей.
Конкретно это решение мне кажется сложным для поддержки, некрасивым и ещё больше усложняющим жизнь разработчкам. Но направление исследований определённо интересное.
Bourtoule et al.
arxiv.org/abs/1912.03817
Два забавных факта:
В эпоху ML ваши данные собирают все. GDPR и его аналоги пытаются контролировать эти процессы и дают вам право удалить данные. Что звучит как здравая и полезная идея.
С другой стороны, современные модели очень хорошо запоминают датасеты, что позволяет потенциально достать из этих самых моделей данные, на которых они были натренированы.
Следовательно, если юзер X запрашивает у компании G удаление его данных, в идеальном мире компания должна не только удалить его из своих БД/текстовых документов/post-it notes/умов своих сотрудников, но и перетренировать все модели, в которых эти данные участвовали. Но когда ваши модели тренируются по несколько дней на десятках GPU, это вообще себе такая идея.
А теперь о статье:
Авторы формализуют задачу разучивания данных и приводят метод SISA (Sharded, Isolated, Sliced, and Aggregated training), который позволяет убирать определённые данные из моделей без их полной перетренировки. Суть метода - шардинг данных и ансаблирование моделей.
Конкретно это решение мне кажется сложным для поддержки, некрасивым и ещё больше усложняющим жизнь разработчкам. Но направление исследований определённо интересное.
Критика байесовских нейросетей набирает обороты.
twitter.com/ilyasut/status/1225812704725630977
https://arxiv.org/abs/2002.02405 — careful and expensive MCMC Bayesian inference over NN parameters is worse than point estimates or low temperature posteriors.
Supports @carlesgelada and @jacobmbuckman’s view that Bayesian NNs are not meaningful probably because the prior is wrong.
twitter.com/ilyasut/status/1225812704725630977
https://arxiv.org/abs/2002.02405 — careful and expensive MCMC Bayesian inference over NN parameters is worse than point estimates or low temperature posteriors.
Supports @carlesgelada and @jacobmbuckman’s view that Bayesian NNs are not meaningful probably because the prior is wrong.
Twitter
Ilya Sutskever
https://t.co/8dyihEQqk5 — careful and expensive MCMC Bayesian inference over NN parameters is *worse* than point estimates or low temperature posteriors. Supports @carlesgelada and @jacobmbuckman’s view that Bayesian NNs are not meaningful probably because…
Новый мультиязычный QA датасет от google.
200к примеров, 11 языков (включая русский!), большинство - не основанные на латинском алфавите.
блог
статья
Твиттер пост
200к примеров, 11 языков (включая русский!), большинство - не основанные на латинском алфавите.
блог
статья
Твиттер пост
blog.research.google
TyDi QA: A Multilingual Question Answering Benchmark
В colab теперь есть платная подписка
colab.research.google.com/signup
$10/мес
Priority access to T4 GPUs
Longer runtimes (up to 24 hours)
(2x) More memory
US only
colab.research.google.com/signup
$10/мес
Priority access to T4 GPUs
Longer runtimes (up to 24 hours)
(2x) More memory
US only
Подвезли ещё один курс, разбирайте
Курс MIT больше идёт по верхам дипленинга, но зато покрывает и CV и NLP и чуть-чуть deep RL.
twitter.com/MITDeepLearning/status/1226155253004849152
Курс MIT больше идёт по верхам дипленинга, но зато покрывает и CV и NLP и чуть-чуть deep RL.
twitter.com/MITDeepLearning/status/1226155253004849152
Twitter
MIT 6.S191: Intro to Deep Learning
💥💥 Lecture 1 for @MITDeepLearning 2020, taught by @xanamini, now available online #FREE for ALL! New lectures every week for the rest of the course with slides, video & @TensorFlow coding labs ‼️ @MIT course website 👉 https://t.co/apU376grs1 Lecture 👉 ht…
How Contextual are Contextualized Word Representations? Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings
Kawin Ethayarajh [Stanford]
arxiv.org/abs/1909.00512
блогпост от автора: тык
TL;DR
1. Upper layers produce more context-specific representations than lower layers
1. ELMo, BERT and GPT representations contextualize words very differently from one another
1. In all layers of BERT, ELMo, and GPT-2, the representations of all words are anisotropic
Анизотропия лично для меня оказалась неожиданностью. Более того, это означает, что теории, разработанные для word2vec [Aurora et. al] не будут работать с контекстуалиизрованными эмбеддингами.
Kawin Ethayarajh [Stanford]
arxiv.org/abs/1909.00512
блогпост от автора: тык
TL;DR
1. Upper layers produce more context-specific representations than lower layers
1. ELMo, BERT and GPT representations contextualize words very differently from one another
1. In all layers of BERT, ELMo, and GPT-2, the representations of all words are anisotropic
Анизотропия лично для меня оказалась неожиданностью. Более того, это означает, что теории, разработанные для word2vec [Aurora et. al] не будут работать с контекстуалиизрованными эмбеддингами.
Kawin Ethayarajh
BERT, ELMo, & GPT-2: How contextual are contextualized word representations?
Incorporating context into word embeddings - as exemplified by BERT, ELMo, and GPT-2 - has proven to be a watershed idea in NLP. Replacing static vectors (e.g., word2vec) with contextualized word representations has led to significant improvements on virtually…
BERT-of-Theseus: Compressing BERT by Progressive Module Replacing
Xi et al.
arxiv.org/abs/2002.02925
TL;DR
Для сжатия Берта будем заменять некоторые его слои на новые (поменьше) случайным образом во время дистилляции. Вероятность замены модуля будем повышать со временем, в результате в конце у нас будет маленькая модель.
Интересный (и немного безумный) подход. Судя по табличкам из статьи, они обходят конкурентов (DistillBERT на 5 GLUE пунктов).
twitter.com/XuCanwen/status/1226682713983160324
Xi et al.
arxiv.org/abs/2002.02925
TL;DR
Для сжатия Берта будем заменять некоторые его слои на новые (поменьше) случайным образом во время дистилляции. Вероятность замены модуля будем повышать со временем, в результате в конце у нас будет маленькая модель.
Интересный (и немного безумный) подход. Судя по табличкам из статьи, они обходят конкурентов (DistillBERT на 5 GLUE пунктов).
twitter.com/XuCanwen/status/1226682713983160324
Twitter
Canwen Xu
WTF? We brutally dismember BERT and replace all his organs? 👉🏻 Check our latest work: https://t.co/SP5gl4idsW ⛵️ BERT-of-Theseus ⛵️ *NEW MODEL COMPRESSION METHOD* *ONE* loss + *ONE* hyperparameter + *NO* external data = GREAT PERFORMANCE with a @huggingface…
Слишком много годноты и сегодня всё равно не будет времени всё обозреть, поэтому по одной строке:
1. Холивар на реддите PyTorch vs TF performance
1. Интересный алгоритм, который оптимизировать ваше пространства признаков под KNN
1. Результаты DSTC8
1. Сабмит iPavlov на DSTC8, хороший пример очень кастомного использования BERT
1. Первое место DSTC8, которое показывает насколько хорошо в NLP может работать переводная аугментация En<->Zh
1. Streamable ASR с трансформерами (у нас тут редко аудио встречается, но хотелось бы про него больше говорить)
1. Unsupervised pretraining transfers well across languages
1. A Multilingual View of Unsupervised Machine Translation
1. On Identifiability in Transformers - больше анализа трансформеров
1. Холивар на реддите PyTorch vs TF performance
1. Интересный алгоритм, который оптимизировать ваше пространства признаков под KNN
1. Результаты DSTC8
1. Сабмит iPavlov на DSTC8, хороший пример очень кастомного использования BERT
1. Первое место DSTC8, которое показывает насколько хорошо в NLP может работать переводная аугментация En<->Zh
1. Streamable ASR с трансформерами (у нас тут редко аудио встречается, но хотелось бы про него больше говорить)
1. Unsupervised pretraining transfers well across languages
1. A Multilingual View of Unsupervised Machine Translation
1. On Identifiability in Transformers - больше анализа трансформеров
Reddit
From the MachineLearning community on Reddit
Explore this post and more from the MachineLearning community
Обзор статей по knowledge graphs на AAAI от Michael Galkin
medium.com/@mgalkin/knowledge-graphs-aaai-2020-c457ad5aafc0
medium.com/@mgalkin/knowledge-graphs-aaai-2020-c457ad5aafc0
Medium
Knowledge Graphs @ AAAI 2020
The first major AI event of 2020 is already here! Hope you had a nice holiday break 🎄, or happy New Year if your scientific calendar…
Forwarded from Yaroslav Emelianov
Thieves on Sesame Street! Model Extraction of BERT-based APIs
Krishna et al.
https://arxiv.org/abs/1910.12366
TL;DR
Авторы предлагают делать дистилляцию берта на полностью синтетических данных. Для двух задач (NLI и QA) с помощью эвристик, основанных на n-грамах, они формируют искусственные датасеты, на которых файнтьюнят модели на основе BERT, используя в качестве таргета предикты настоящей модели, которая сама на основе BERT. Удается добиться приличного качества даже для дистилляции BERTlarge-модели в BERTbase. Таким образом, авторам удается эффективно "красть" модели посредством black-box атаки, не имея оригинальных обучающих данных.
Далее авторы обсуждают 2 метода защиты, каждый из которых имеет ограниченную эффективность. В первом из них модель-жертва снабжается классификатором для OOD данных или неотвечаемого вопроса, а во втором — модель-жертва обучается на "загрязненных" данных, после чего становится возможным в теории доказать факт кражи, хотя ей по-прежнему нельзя помешать.
В целом — интересная статья о том, что берт "настолько сильно обобщает", что через nonsensical inputs можно получить довольно хорошее представление о модели и сделать через это дистилляцию.
Krishna et al.
https://arxiv.org/abs/1910.12366
TL;DR
Авторы предлагают делать дистилляцию берта на полностью синтетических данных. Для двух задач (NLI и QA) с помощью эвристик, основанных на n-грамах, они формируют искусственные датасеты, на которых файнтьюнят модели на основе BERT, используя в качестве таргета предикты настоящей модели, которая сама на основе BERT. Удается добиться приличного качества даже для дистилляции BERTlarge-модели в BERTbase. Таким образом, авторам удается эффективно "красть" модели посредством black-box атаки, не имея оригинальных обучающих данных.
Далее авторы обсуждают 2 метода защиты, каждый из которых имеет ограниченную эффективность. В первом из них модель-жертва снабжается классификатором для OOD данных или неотвечаемого вопроса, а во втором — модель-жертва обучается на "загрязненных" данных, после чего становится возможным в теории доказать факт кражи, хотя ей по-прежнему нельзя помешать.
В целом — интересная статья о том, что берт "настолько сильно обобщает", что через nonsensical inputs можно получить довольно хорошее представление о модели и сделать через это дистилляцию.
Языковые модели прекрасны и люди находят все больше способов их применить.
На этот раз GPT-2 научили играть в шахматы.
slatestarcodex.com/2020/01/06/a-very-unlikely-chess-game
За ссылку спасибо @vaklyuenkov
На этот раз GPT-2 научили играть в шахматы.
slatestarcodex.com/2020/01/06/a-very-unlikely-chess-game
За ссылку спасибо @vaklyuenkov
Slate Star Codex
A Very Unlikely Chess Game
Almost 25 years after Kasparov vs. Deep Blue, another seminal man vs. machine matchup: Neither competitor has much to be proud of here. White has a poor opening. Black screws up and loses his queen…
Forwarded from исследовано
Всем привет! До 13 марта продолжается набор в аспирантскую школу по компьютерным наукам ВШЭ. Мы, как начинающая исследовательская группа по NLP, готовы принять 1-2 аспирантов. Если вам интересна исследовательская работа и вы готовы к поступлению в аспирантуру, пишите Кате Артемовой (тлг: @eartemova, почта: [email protected]) .
Ссылка на аспирантскую школу: https://aspirantura.hse.ru/cs/news/323871305.html
Страница группы: https://cs.hse.ru/ai/computational-pragmatics/
Ссылка на аспирантскую школу: https://aspirantura.hse.ru/cs/news/323871305.html
Страница группы: https://cs.hse.ru/ai/computational-pragmatics/
aspirantura.hse.ru
Начался прием документов для поступления в Аспирантскую школу по компьютерным наукам
Пожалуйста, не пишите @dropout05 вопросы по курсу. Пишите их в форум курса или организаторам. Их контакты и остальные подробности есть в канале курса @dlinnlp2020spring
DeepPavlov Community Forum
About the Deep Learning in NLP 2020 Spring category
An official channel for questions to lecturers of Deep Learning in NLP 2020 course (Spring). You can find all important information at the following links: Course channel : https://t.iss.one/dlinnlp2020spring Course discussion group : https://t.iss.one/dlinnlp_discuss…
Забавный EDA данных русской английской и французской Википедий.
twitter.com/mizvladimir/status/1229795429925163009
twitter.com/mizvladimir/status/1229795429925163009
Twitter
Volodymyr Miz
Studying viewership trends across English, French, and Russian Wikipedia editions. Paper: https://t.co/iaQjQyCrSZ Data: https://t.co/qciWvcPeqP Interactive visualizations will be available soon, so stay tuned. @WikiResearch @wikiworkshop @TheWebConf #DataScience…