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

з.ы. картинка не картинка...
Download Telegram
Как вы пишите документацию на ваши REST сервисы? Swagger используете или в postman/fiddler цепочки запросов сохраняете?

Недавно открыл для себя очень простой формат, позволяющий писать интерактивную документацию в файле с расширением .rest или .http. Простой плагин для visual studio code (или для других ide тоже есть) позволит выполнять запросы и просматривать ответы. Всё что надо есть: можно объявлять переменные, описывать простые правила. Мне такой формат очень нравится, далеко не всегда хочется тащить swagger, но интерактивную документацию иметь полезно, а тут вы получаете её почти даром.

Если вдруг вы тоже не слышали, то загляните в описание
https://marketplace.visualstudio.com/items?itemName=humao.rest-client

#rest #api #docs
Ещё один проект посвящённые автоматической генерации документации с вашего кода, вроде бы ничего нового, но не совсем. Python часто используют для всякой аналитики, а там и графики хочется показать и вообще в документации не плохо бы иметь примеры кода и результата выполнения. Я часто использую jupyter ноутбуки, там можно красиво всё показать и сохранить в репозитории - github умеет рендарить ( bitbucket тоже, если доставить плагин). Hangout это как раз возможность генерировать красивые странички с документацией без всяких там jupyter.

https://github.com/danijar/handout

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

#tool #python
Многие задаются вопросом, что значит обучение нейронной сети? Что значат все эти параметры и как они влияют на обучение сети.

Обучение сети — решение некоторой оптимизационной задачи, нахождение таких значений весов сети, при которых вы будете получать минимальное количество ошибок на ваших тренировочных данных (что именно значит ошибка для вашей задачи описывается некоторой функцией потерь)

Вы возможно знаете про старую демку от google https://playground.tensorflow.org где можно выбрать разные параметры и посмотреть, как и что работает.

Недавно вышел крутой блог пост от deeplearning.ai, где они очень подробно рассказали про обучение сети https://www.deeplearning.ai/ai-notes/optimization/ (там всё интерактивно, можно кликать, настраивать, смотреть) — кажется это наиболее полезная вводная статья для понимания как учится сеть.

#learn #deeplearning #link #visualization
Недавно появился такая работа https://github.com/taki0112/UGATIT/blob/master/README.md это такая GAN сеть, которая превращает один объект в другой (Unsupervised Generative Attentional Networks with Adaptive Layer-Instance Normalization for Image-to-Image Translation)

Авторы сделали несколько примеров по превращению: селфи в аниме, лошади в зебру, фото в портрет и тд.

Я не писал про эту новость, т.к. готовой обученной модели не было, а натренировать свою было довольно сложно (собрать данные не легко и учить долго). Теперь вот разместили несколько натренированных моделей и появился сайт, где можно это попробовать на своих фоток https://selfie2anime.com/ (только для селви-в-аниме). Результат довольно странный)

#gan #anime #image #transformation
Вы наверное слышали про 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
Очень наглядная визуализация с введением в машинное обучение http://www.r2d3.us/visual-intro-to-machine-learning-part-1/ Там нет формул, только данные и графики, всё красиво и просто. Если вас просят объяснить как работает машинное обучение, просто покажите эту ссылку.

#visualization #tutorial
Залипательное видео о гонке реальных архитектур процессоров с законом Мура.

Зако́н Му́ра (англ. Moore's law) — эмпирическое наблюдение, изначально сделанное Гордоном Муром, согласно которому (в современной формулировке) количество транзисторов, размещаемых на кристалле интегральной схемы, удваивается каждые 24 месяца.


https://www.reddit.com/r/dataisbeautiful/comments/cynql1/moores_law_graphed_vs_real_cpus_gpus_1965_2019_oc/

#fun
В 2019 в ML несколько трендов: почти каждую неделю выпускают новую SOTA NLP модель и почти каждый месяц новый оптимизатор.

Появился ещё один (RAdam) и кажется он работает не только на каких-то частных датасетах. https://medium.com/@lessw/new-state-of-the-art-ai-optimizer-rectified-adam-radam-5d854730807b (тут полезные ссылки https://www.kaggle.com/c/champs-scalar-coupling/discussion/104361)

Есть реализации на keras и pyTorch, поэтому добавить в свой проект не составит труда. Я попробовал использовать на проекте, метрики совсем чуть-чуть, но улучшились.

Оптимизатор важный компонент, который отвечает за тренировку весов сети, а там много разных проблем с локальными минимумами и не только, очень подробно про оптимизацию написано здесь https://www.deeplearning.ai/ai-notes/optimization/

#optimizer #radam
Недавно google показал капчу и как обычно попросил найти объекты на картинках. Обратил внимание на шум, раньше такого не было, это очень похоже на adversarial attack (https://towardsdatascience.com/breaking-neural-networks-with-adversarial-attacks-f4290a9a45aa) — специальный шум, которым обманывают нейронные сети. Нигде не нашёл официальных упоминаний, если кто-то видел новость/статью, плз расскажите.
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
Вчера выпустили релиз tensorflow 2.0, почти год, можно было воспользоваться alpha-версией, теперь выпущена стабильная версия.

- теперь ещё более тесная интеграция с keras
- eager execution - теперь включена всегда, напомню, теперь код немного похож на pytorch
- удалены некоторые устаревшие функции, немного причесали API

Теперь TF проще и логичнее, нет причин использовать старую версию для новых проектов.

#tensorflow #tool

https://medium.com/tensorflow/tensorflow-2-0-is-now-available-57d706c2a9ab
Статистика от Coursera о том, что пользователи в разных странах изучают. Несмотря на популярность Data Science стартапов и движений в Беларуси и России, мы сильно отстаём от соседней Польши. В разделе "Технологии" Беларусь в первой десятке, а вот с категорией "Бизнес" всё плохо. К любой статистике всегда нужно относиться с должным уровнем недоверия, очень легко увидеть ложные зависимости, данная статистика только про пользователей Coursera и все результаты получатся смещённые по отношению к одному сервису, а пользуются у нас далеко не только курсерой, но отчёт выглядит красиво.

https://www.coursera.org/gsi

#stat
Локальная новость для Гомеля. Уже 12-го октября у нас намечается очередной митап про науку о данных. Будет 3 доклада,

1 - Основы ML, в прошлый раз мы увидели большую потребность в чём-то фундаментальном, не все гости понимают, как работает машинное обучение.
2 - Во втором докладе вы услышите об успешном применении современных NLP архитектур в довольно амбициозном проекте выполненном совместно с Корнелловским университетом.
3 - Про поиск и использования машинного обучения для таких задач.

Заходите, будет возможность пообщаться про машинное обучение и не только.

https://community-z.com/events/data-science-community-meetup-2?utm_source=me&utm_medium=pub&utm_campaign=0

#meetup
Алгоритмы Style Transfer давно известны, теперь на tfhub появилась готовая модель, можно запускать в colab. Всё, что вам нужно: браузер и google аккаунт https://colab.research.google.com/drive/1hL_FXI0h5GFAN8T7lOAQTMRB3JS5Cs0Y реализована старая статья, 2017 года, но выглядит не плохо и сейчас. #tf #style
Недавно вышла интересная работа по разъяснению, как 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
С внедрением ML решений, приходится сталкиваться с новыми типами уязвимостей, которые не существовали раньше. Например простым добавлением особых наклеек, можно полностью запутать алгоритм, подробная статья про такие атаки https://blog.floydhub.com/introduction-to-adversarial-machine-learning/ С внедрением алгоритмов нам неизбежно придётся бороться с такими атаками. Обратите на существующие тепы атак и способов защиты. #future #atack #adversarial
В этом году было представлено большое количество NLP архитектур, что сложно понять, какое теперь состояние и куда смотреть, а ещё сложнее становится понимать, как все они устроены. Краткое описание 74-х популярных NLP архитектур поможет не потеряться в этом зоопарке http://www.marekrei.com/blog/74-summaries-of-machine-learning-and-nlp-research/

#nlp #models #state