Bayesian Noise
61 subscribers
57 photos
234 links
Канал @nesterione. Посты про ИТ, машинное обучение, рациональность, иногда просто заметки и наблюдения.

з.ы. картинка не картинка...
Download Telegram
Если вам интересно познакомиться с NLP (Natural Language Processing), посмотрите статью, вышедшую несколько недель назад и уже переведённую несколько раз на русский.

https://medium.com/@ageitgey/natural-language-processing-is-fun-9a0bff37854e
(перевод https://proglib.io/p/fun-nlp/)

В статье весьма поверхностная, но не плохая для ознакомления, прочитайте, если вы не знаете что такое: NLU, лемматизация, стемминг, стоп-слова, парсинг зависимостей, NER (распознавание именованных сущностей), кореференции.

Ещё рекомендую прочесть пост от Яндекса https://habr.com/company/yandex/blog/205198/ ( он также обзорный, но мне понравились примеры, которые использовали для объяснений проблем NLP )

#nlp #ai #ml #nlu
В дополнение к посту выше, набор библиотек для работы с текстом:

https://spacy.io/ - хорошая библиотека для работы с текстом, во многом превосходит аналоги, но не так много языков поддерживает из коробки

https://textacy.readthedocs.io/en/latest/ - дополнение к spacy, поможет с извлечением фактов из текста

https://github.com/huggingface/neuralcoref - дополнение к spacy поможет с разрешением кореференций

https://www.nltk.org/ - самая известная библиотека обработки языков для python

https://radimrehurek.com/gensim/ - просто замечательная библиотека, их слоган topic modeling for humans, от части так и есть. Вы легко можете загрузить готовые обученные word2vec вектора и найдёте большое число полезных функций.

Как преобразовать текст в числа? Здача не простая, но есть решения:

https://nlp.stanford.edu/projects/glove/ - здесь вы найдёте обученные вектора на разных корпусах и можете воспользоваться кодом на github, чтобы обучить свои

https://fasttext.cc/ - замечательная библиотека, и хорошо обученные вектора для разных языков

#nlp #ai #tool #libs
И ещё один пост про тексты, только на этот раз про красивые визуализации семантических векторов. Звучит сложно, но идея простая: давайте подберём каждому слову числовой вектор, и так, чтобы похожие по смыслу слова имели вектора близко расположенные в пространстве.

Когда-то я уже публиковал похожую демку https://t.me/tj4me/40, а вот теперь нашёл ещё одну от tensorflow https://projector.tensorflow.org/

#nlp #ai #demo #visualization
Подборка советов от Google по разработке NLP проекта. Я прошёлся по нему, действительно найдёте полезные советы, особенно если вы только начинаете работать с обработкой естественных языков, то попробуйте начать с этой инструкции.

https://developers.google.com/machine-learning/guides/text-classification/

#nlp #ml #google #guide
На прошлой неделе google представили новую статью https://arxiv.org/abs/1810.04805 (BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding), и если кратко, то звучит многообещающе, но всё же дождёмся общедоступной реализации и, очень надеюсь, предобученных моделей.

В компьютерном зрении активно используется техника transfer learning, когда используется предобученная на большом объеме данных глубокая модель, для обучения для своей задачи. При внедрении машинного обучения в продакшен возникают стандартные проблемы:

- недостаточно данных
- недостаточно вычислительных мощностей

При том, проблема с мощностями решается гораздо проще нежели проблема данных и transfer learning в какой-то степени позволяет применить сложные модели для ваших задач не имея гигантского набора данных.

Так вот о чём это я, сейчас в NLP нет возможности эффективно применять transfer learning. А вот BERT может послужить решением этой проблемы, и тогда внедрение сильных NLP моделей упростится.

Здесь можете прочитать сжатое содержание публикации https://medium.com/syncedreview/best-nlp-model-ever-google-bert-sets-new-standards-in-11-language-tasks-4a2a189bc155

#google #nlp #future #paper
Ранее google анонсировала свою новую архитектуру сети для обработки естественных языков (Bidirectional Encoder Representations from Transformers https://t.me/tj4me/83). Теперь доступна opensourse реализация сети на tensorflow и есть предобученные модели для английского:

https://github.com/google-research/bert

Пост в официальном блоге https://ai.googleblog.com/2018/11/open-sourcing-bert-state-of-art-pre.html

Напомню что BERT интересен возможностью дообучения (fine tuning), это значит, что хорошо обученная на неразмеченных данных модель может быть дообучена небольшим количеством размеченных данных (как правило от нескольких тысяч примеров) для решения конкретной задачи.

Пока сам не проверил, модель довольно прожорливая и запустить на своём ноутбуке не представляется возможным, авторы рекомендуют использовать облачный TPU с 64 GB RAM, но уменьшенная версия сети должны запуститься на 12-16 GB

Попробовать BART можно в google colab https://colab.research.google.com/github/tensorflow/tpu/blob/master/tools/colab/bert_finetuning_with_cloud_tpus.ipynb

публикация доступна здесь https://arxiv.org/abs/1810.04805

#google #nlp #nlu #nn
Очень интересная, на мой взгляд, NLP библиотека. По заверению авторов это SOTA решение для ряда NLU задач, таких как (Чтобы не путать переводом, названия на английском): Named Entity Recognition (NER), Entity Mention Detection (EMD), Relation Extraction (ER), Coreference Resolution (CR).

Именованные сущности (NE) это обычно нахождение имён собственных.

EMD - немного сложнее, когда нам нужно выявить действующие лица, это могут быть некоторые объекты, или живые существа. Задача усложняется тем, что некоторые сущности могут быть представлены в виде нескольких слов.

Например:

The project leader is refusing to help. - В этом предложении The project leader это одна сущность

Извлечение зависимостей (RE)

Когда сущности были найдены, дальше можно найти связи между ними.

И последняя, самая интересная часть, разрешение кореференций (CR)

Корефере́нтность - это когда одно и большевыражениее в тексте ссылается наоднуу и туже сущность (см https://en.wikipedia.org/wiki/Coreference)

несколько примеров

The music was so loud that it couldn't be enjoyed.

Our neighbors dislike the music. If they are angry, the cops will show up soon

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

https://huggingface.co/hmtl/

исходный код и ссылка на статью доступны здесь https://github.com/huggingface/hmtl

#nlp #nlu #lib
Очередная статья про медицину в этом году. Год медицины?

И опять на nature https://www.nature.com/articles/s41591-018-0316-z доступ на чтение опубликовал один из авторов,
Jeff Dean, в своём twitter https://twitter.com/JeffDean/status/1082664671427981312

Это не сложная научная статья, а больше анализ и обсуждение как различного рода модели уже используются или могут быть использованы в медицине.

В статье разбирается как использовать компьютерное зрение, обработку естественных языков и обучение с подкреплением (reinforcement learning). Например NLP используется для анализа информации в карточках, как вы понимаете, прошли годы в попытках создать общий стандарт, но как оказалось проще сделать алгоритм понимающий разные форматы :)

А ещё важная мыль, то что Deep Leaning модели могут содержать несколько разных входов, что для медицины как нельзя кстати. На вход одновременно подаётся снимок, описание проблемы и любая другая информация об анализах и модель всё это вместе может анализировать.

И опять же, это не про замену медиков, это про повышение эффективности. В статье приводится информация, что доктор тратит 6 из 11 часов на работу с документацией, а анализ снимков это часто очень кропотливая работа, человек устаёт и может потерять концентрацию, в результате внимания не обратить внимание на что-то важное.

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

#medicine #nlp #cv #rl
Без лишних слов, нагляднейшее объяснение таких не простых идей NLP, как word2vec, attention, BERT, ELMo. Если вы хотели разобраться, но читать слишком математические статьи вам не нравится, посмотрите ссылки ниже. Авторские качественные визуализации делают материал доступным.

The Illustrated Word2vec - https://jalammar.github.io/illustrated-word2vec/

The Illustrated BERT, ELMo, and co. (How NLP Cracked Transfer Learning) - https://jalammar.github.io/illustrated-bert/

The Illustrated Transformer - https://jalammar.github.io/illustrated-transformer/

Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models With Attention) - https://jalammar.github.io/visualizing-neural-machine-translation-mechanics-of-seq2seq-models-with-attention/

#learn #nlp #text #word2vec #bert #attention #text
BERT (Pre-training of Deep Bidirectional Transformers) одна из мощнейших языковых моделей в настоящее время, но достаточно быстр её обошли по бенчмаркам разные улучшенные модели XLNet, KERMIT, ERNIE.

Чуваки поняли что обычный BERT сильно недоучен и добавили несколько простых лучений, назвали это RoBERTa (Robustly optimized BERT approach) и опять получили SOTA результаты по основным бенчмаркам.

По ссылке краткое резюме и ссылка на статью
https://blog.inten.to/papers-roberta-a-robustly-optimized-bert-pretraining-approach-7449bc5423e7

#nlp #sota #bert
Bayesian Noise
BERT (Pre-training of Deep Bidirectional Transformers) одна из мощнейших языковых моделей в настоящее время, но достаточно быстр её обошли по бенчмаркам разные улучшенные модели XLNet, KERMIT, ERNIE. Чуваки поняли что обычный BERT сильно недоучен и добавили…
NLP на столько активно развивается, что не успел я опубликовать про RoBERTa, как baidu опубликовали свою модель, которая по их словам обходит все текущий (естественно лучше всего на китайском работает)

http://research.baidu.com/Blog/index-view?id=121

#nlp #sota
Недавно был опубликован проект PyTorch-Transformers https://github.com/huggingface/pytorch-transformers, где "из коробки" доступны самые мощные (на данный момент) языковые модели: BERT, GPT, GPT-2, Transformer-XL, XLNet, XLM, кстати их не только для текстов можно использовать, помните MuseNet, которая использует GPT-2.

Проект очень интересный и пока я ждал выходных, чтобы проверить, SpaCy (ещё одна из передовых библиотек для NLP) адоптировали проект и теперь без лишних усилий можно использовать и дообучать такие мощные модели — это хорошая новость для production. Ребята из Explosion не перестают удивлять своей оперативностью, в целом работать со SpaCy удобно.

https://explosion.ai/blog/spacy-pytorch-transformers
GitHub: https://github.com/explosion/spacy-pytorch-transformers

#tool #spacy #nlp #pytorch
Вы наверное слышали про GPT-2 и её впечатляющие способности к генерации правдоподобного текста, OpenAI даже решили не публиковать пока самую большую модель, но недавно была опубликована большая версия (половина от самой большой) и даже есть возможность попробовать onlin https://talktotransformer.com/ вводите начало текста и сеть его продолжит.

Несмотря на то, что это не самая большая модель, результаты прям впечатляют.

А ещё сообщество натренировало свою версию большой модели, саму модель и ссылку на colab ноутбук можно найти в статье https://medium.com/@vanya_cohen/opengpt-2-we-replicated-gpt-2-because-you-can-too-45e34e6d36dc

Для картинки к посту, я взял 7 строк с python zen (https://www.python.org/dev/peps/pep-0020/) и сеть сгенерировала продолжение, наслаждайтесь :)

//напомню что openai применила эту же архитектуру для генерации музыки https://openai.com/blog/musenet/ и получилось тоже очень круто.
#future #nlp #gpt2
Инфографика показывающая развитие NLP за несколько последних лет. https://www.analyticsvidhya.com/blog/2019/08/complete-list-important-frameworks-nlp/

Естественные языки встречаются везде в деятельности человека, пока это единственный универсальный механизм передачи *знаний* между людьми. Долгое время с NLP не происходило ничего нового, а существующие модели работали недостаточно хорошо.

За последний год всё больше новых моделей, уже активно используется Transfer Learning применительно к текстам (недавно facebook выпустили натренированные модели для 100 языков https://medium.com/dair-ai/facebook-releases-xlm-mbert-pytorch-models-in-100-languages-518628c02a46), всё больше разных чат-ботов и всё умнее поисковые машины.

Ещё подборка ключевых статей (по версии Victor Sanh) в NLP на данный момент, если хотите углубиться в понимание как это работает https://medium.com/huggingface/the-best-and-most-current-of-modern-natural-language-processing-5055f409a1d1

#nlp #progress
В дополнение к предыдущему посту, языковая модель, цель которых сократить число используемых параметров. Исследования в этом направлении важны, поскольку современные BERT/GPT-2 модели очень требовательны к ресурсам и не всегда есть возможность использовать их в продакшене.

DistilBERT - сокращённый в два раза BERT имеющий 95% производительности оригинального на GLUE бенчмарке https://medium.com/huggingface/distilbert-8cf3380435b5

#nlp #progress
Huggingface опубликовали интересный проект (Write With Transformer) — это автодополнение для текстов. Вы начинаете некую мысль, просите сеть продолжить, таким образом вы можете писать текст совместно с сетью https://transformer.huggingface.co/ . Попробуйте, иногда получается довольно не плохо.

Если помните, несколько лет назад похожая функция была добавлена в gmail https://ai.googleblog.com/2018/05/smart-compose-using-neural-networks-to.html

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

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

#nlp #textgen #future
Недавно вышла интересная работа по разъяснению, как BERT учится понимать язык. Современные трансформеры учатся понимать естественный язык, часто это "понимание" отличается от наших ожиданий. Как бы то не было, современные модели не умеют думать и учатся исключительно на основе подготовленных данных, иногда они улавливают странные зависимости. Бывает сложно разобраться, что же на самом деле понимает такая модель и почему она делает ошибки в совершенно неожиданных местах. Для разной тонкой настройки моделей иногда очень полезно приоткрыть чёрный ящик. http://exbert.net/ Можно запустить live server демо, и поиграться с разными фразами.

Кстати, о трансформерах, очень исчерпывающее руководство, о том, как они устроены, если хотите разобраться, то посмотрите статью http://peterbloem.nl/blog/transformers — реализация с нуля на pytorch.

Ещё одна статья, больше про интуитивное понимание, без технических деталей, но у вас останется некоторое понимание https://www.analyticsvidhya.com/blog/2019/06/understanding-transformers-nlp-state-of-the-art-models/?utm_source=blog&utm_medium=complete-list-important-frameworks-nlp

В дополнение, ещё одна ссылка, о том, как Google начал использовать BERT в продакшене https://www.blog.google/products/search/search-language-understanding-bert , статья не содержит технических деталей. Интересно, что от исследований до реального использования в поиске ушло около года.

#nlp #bert
В этом году было представлено большое количество NLP архитектур, что сложно понять, какое теперь состояние и куда смотреть, а ещё сложнее становится понимать, как все они устроены. Краткое описание 74-х популярных NLP архитектур поможет не потеряться в этом зоопарке http://www.marekrei.com/blog/74-summaries-of-machine-learning-and-nlp-research/

#nlp #models #state
Хорошая подборка лекций-ноутбуков по pytorch для работы с текстами. От самых основ до fine-tuning BERT, что в общем то выглядит не плохо, если вы давно хотели попробовать, но всё не решались. Ноутбуки подробные и можно запускать прямо в google colab https://github.com/dair-ai/pytorch_notebooks

В добавок советую заглядывать на сайт https://dair.ai/ там много интересного про NLP собирают, включая обзорные статьи и краткое содержание научных статей.

#nlp #learn