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

з.ы. картинка не картинка...
Download Telegram
Залипательная игра-демо от google https://research.google.com/semantris/

Идея простая, вам показывают список слов, одно выделяют, нужно подобрать наиболее 'близкое' слово к выделенному (не однокоренное). Такая игра в ассоциации.
У меня получилось занять 5-е место с третей попытки https://research.google.com/semantris/?m=a&lt=3euu-jwV4iuSPhy

#fun
Тут в новостях проскочил анонс о том, что MS выложили в open source алгоритм векторного поиска используемый в bing. Почему-то не ожидал ничего нового, но всё же проверил.

Про библиотеку можно прочитать тут https://github.com/microsoft/SPTAG и это распределенная реализация approximate nearest neighborhood search.

В общем немного о том, в чём заключается идея семантического поиска (https://en.wikipedia.org/wiki/Semantic_search - поиск, который учитывает смысл фразы, а не только ключевые слова)

Тексты/документы нужно преобразовать в вектора, которые будут выражать смысл текста в числах. При том не случайным образом, а чтобы похожие тексты располагались рядом в пространстве. (см. идеи word2vec, glove или контекстуальные эмбеддинги)

Каждый текст мы преобразуем в такой вектор.

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

Как вы понимаете самая сложная часть, это построить вектора и именно это влияет на качество поиска.

Вторая задача, когда у нас документов много, то искать наиболее похожие документы задача тоже не просто. Для поиска надо выбрать правильную структуру данных, для этого подходят разные модификации kd-tree.

Резюмируя сказанное библиотека от microsoft всего лишь ещё одна реализация ANN, только распределённая. Если интересно какие реализации есть ещё, смотрите сравнение алгоритмов http://ann-benchmarks.com/. Я предпочитаю https://github.com/spotify/annoy.

#algorithms #search
AutoDarw это такой редактор, в котором вы можете нарисовать любые каракули, а он вам предложит выбрать один из рисунков. https://www.autodraw.com/

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

#future
Некоторое время назад был на конференции Voxxeddays, в основном вокруг java технологий, вот нашёл время сделать небольшую заметку.

Из того, что запомнилось:


GraalVM (https://www.graalvm.org/) - круто, если нужно выжать из java максимум производительности. К слову грааль не только про java, вот python интересно посмотреть https://www.graalvm.org/docs/reference-manual/languages/python/

Bayesian Optimization - twitter успешно использует BO для тюнинга параметров JVM

https://projectreactor.io/ - с усложнением про реактивное программирование (https://www.reactivemanifesto.org/) слышно всё чаще. Project Reactor очень простой в использовании фреймворк, направленный на максимальную эффективность (по умолчанию запускается на https://netty.io/ сервере)

http://rsocket.io/ - ещё одна технология, которую взял на заметку, опять связана с реактивным программированием и призвана решить проблемы https://grpc.io/.

Было на самом деле много интересного про сериализацию, облачные технологии, kubernetes, но про это я рассказывать не буду.

#java #conference
Недавно гугл опубликовал best practices для работы с jupyter notebook https://cloud.google.com/blog/products/ai-machine-learning/best-practices-that-can-improve-the-life-of-any-developer-using-jupyter-notebooks - наиболее популярным инструментом для проведения DS экспериментов. От части это реклама сервиса https://cloud.google.com/ai-platform-notebooks/, но в целом текст полезный и в основном советы выглядят логичным и мы у себя на проекте организовали похожим образом, что тоже приятно.

Из статьи узнал о https://github.com/jupyter/nbdime - решает проблему, как в git выглядит сравнение jupyter ноутбуков, дополнительно https://github.com/jupyterlab/jupyterlab-git позволяет упростить сравнение ноутбуков. Жаль для visual studio code нет нормального плагина для nbdime.

В статье говорится про параметризацию ноутбуков и запуск и для этого можно использовать https://papermill.readthedocs.io/en/latest/ , ещё есть статья от netflix как они ведут работу с ноутбуками https://medium.com/netflix-techblog/scheduling-notebooks-348e6c14cfd6

Почему-то раздел *Log all experiments* очень абстрактный, там явно нужно добавить ссылку на https://mlflow.org/ - аналогов много, но лично мне mlflow нравится своей простотой.


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

#jupyter #best #practice #process
Если вы не знаете как потратить вечер субботы летом, у меня есть для вас идея: 13-го июля проводим первый в Гомеле митап посвящённый Data Science, я участвую в организации, можно задавать мне вопросы. Мероприятие пробное, но обещает быть интересным. Если вы не занимаетесь непосредственно машинным обучением, вы можете найти для себя полезную информацию, и не забывайте, что ценность митапа в большей степени не в докладах, а в возможности поговорить с разными людьми, разным опытом

https://communities.by/events/machine-learning-community-meetup-1

Пожалуйста, нажимайте кнопку регистрации, знание о количестве участников поможет нам лучше организовать пространство.

#ml #event #gomel
Последнее время был занят помощью в организации Data Science митапа в Гомеле, несмотря на маленький город, собралось >60 человек. Не всё получилось лучшим образом, но были заинтересованные люди, а значит попробуем ещё.

Видео опубликовали здесь https://www.youtube.com/playlist?list=PLSDzAu8GsZhmqjFFnwBJl2T-3KRyQSJmx

И создали чатик для общения/вопросов https://t.me/ds_gomel_chat

Если кто-то хочет выступить или как-то заитересован в теме, можете писать в лс🙂.

#events
Nvidia довольно много делают для Data Science, недавно для себя открыл этот каталог моделей https://ngc.nvidia.com/catalog/model-scripts Не могу сказать, что там идеальный код, но с этим можно работать, например там есть оптимизированный BERT помещающийся в одну GPU https://ngc.nvidia.com/catalog/model-scripts/nvidia:bert_for_tensorflow

#nvidia #models
Bayesian Noise
Все, кто пишет код, знают, как хороший инструмент позволяет повысить эффективность работы. Вот интересный экспериментальный проект https://kite.com/ который призван ускорить разработку умным автодополнением кода, такой вот intellisense с использованием machine…
я уже писал про похожее и вот теперь мы дождались использования GPT-2 для автодополениние код https://tabnine.com/blog/deep . До этого мы видели генерацию текста и музыки с этой же архитектурой. По мне это не плохое дополнение к IDE, типичного copypaste программиста :) И я не вижу в этом ничего плохого, большая часть индустрии нуждается в выполнении типичных задач, единственное что меня беспокоит - это качество train сета.

upd:
Увы начать использоваться не получится, она платная, а платить за такую сырую штуку я не советую, подождём бесплатной. Можем свою такую натренить, пишите, кому интересно ;)

#future #intellisense
Меня часто спрашивают что нужно изучить, чтобы создавать свои нейронные сети. Помимо знаний в математике вам понадобится какой-нибудь deep learning фреймворк. Появление tensoflow упростило исследования и позволило внедрять их в продакшен. PyTorch - это новая "звезда", и темпы распространения в сообществе разработчиков действительно удивляют. Он проще tf и если вы не изучали ничего, то pytorch покажется вам проще и логичнее. График взят с твита https://twitter.com/RitchieNg/status/1155026908855226369/photo/1 #dl #ml #tf #pytorch
А эта новость порадовала. Веселый вопрос о фотолаборатории «Странные вещи» становится все более популярным: «Какова цель этой« красной комнаты »?» https://amp.businessinsider.com/stranger-things-darkroom-question-meme-2019-7

Очередной показательный пример, как всё быстро развивается и шутки про иконку дискеты на кнопке сохранить уже давно не шутки. Если говорить о цифровой фотографии, то "Первый экспериментальный бесплёночный фотоаппарат, основанный на фотоэлектрическом преобразовании, создал в 1975 году инженер компании Eastman Kodak Стивен Сассон (англ. Steven Sasson). Применявшаяся в нём ПЗС-матрица имела разрешение 0,01 мегапикселя, а запись данных происходила на компакт-кассету" (wiki)

Так что от прототипов до реального внедрения всё же проходит много времени.

#future
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
Узнал недавно про один простой модуль позволяющий ускорить первичный EDA (exploratory data analysis) данных.

Машинное обучение во многом про поиск интересных зависимостей в данных. Работа над новой задачей начинается с построения разных графиков и диорам, чтобы понять с чем мы имеем дело. Используя pandas-profiling можно получить достаточно много.

Github проекта: https://github.com/pandas-profiling/pandas-profiling

Я подготовил Kaggel Kernel, где можно покликать и посмотреть, что можно получить совсем без усилий: https://www.kaggle.com/nesterione/examples-pandas-profiling

#tool #ml
О, теперь гугл тренирует нейронные сети играть в футбол https://ai.googleblog.com/2019/06/introducing-google-research-football.html пока в компьютерный, но очень жду, что ребята из boston dynamics объединится с гугл и проведут матч по футболу, который я бы с удовольствием посмотрел :)

#future
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
Статья от DeepMind о том, как они построили систему детектирования острого повреждения почек (acute kidney injury), позволяющую за 48ч до приступа предупредить врача. https://deepmind.com/blog/predicting-patient-deterioration/

Статья совсем нетехническая. Её задача изменить мышление о том, как должна работать медицина. Иногда мы думаем, но почему мы до сих пор стоим в очередях, если можно всё автоматизировать, провязать с другими сервисами и максимально упростить и ускорить обслуживание.

Поверьте, далёким от технологий людям все эти новые подходы кажутся колдовством каким-то и они готовы сжечь вас на костре, когда ты предлагаешь автоматизировать работу врача (прошу заметить, что пока никто и не пытается заменить врачей, автоматизируют рутинную работу или улучшают средства детектирования болезней). Небольшими шагами можно сдвигать устоявшуюся парадигму о том, как должна работать медицина.
Было бы странно, если бы бухгалтера пользовались счётами, когда уже сделали калькулятор.#future
Недавно был опубликован проект 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
Я несколько раз упоминал о гайдах от google о машинном обучении (https://t.me/bayesian_noise/163), мне нравится их подход всё с озов, но достаточно глубоко по каждой теме https://developers.google.com/machine-learning/ - сейчас обнаружил, что были добавлены ещё несколько разделов.

Их базовый курс (crash-course) мне не нравится, на coursera от того же яндекса курсы полезнее, а вот остальные материалы советую смотреть,
problem-framing - о постановке задачи машинного обучения, о том, как правильно понять, какая модель нужна для решения проблемы бизнеса.
data-prep - про подготовку данных - практические советы, как собирать данные
clustering - о кластеризации данных и как проверять результаты
recommendation - как строить рекомендательные системы
testing-debugging - очень полезная тема для промышленного использования, которая редко освещается

Обязательно взгляните на словарик терминов, просто пролистав его, вы не плохо расширите представление о ML https://developers.google.com/machine-learning/glossary/

#google #course
Однажды мы устраивали мозговой штурм, искали какой-нибудь интересный проект, где можно было бы применить компьютерное зрение. В итоге в шутку (или нет) обсуждали робота, который будет ходить по грядкам и давить колорадских жуков (кому в детстве доводилось работать на грядках, поймут всю боль) И вот сейчас я вижу ролик про самоездящего робота огородника https://twitter.com/ErikSolheim/status/1157169348013768709 - не так далеко от нашей идеи.

#future #fun
Узнал про Квартет Энскомба — это четыре набора числовых данных, у которых простые статистические свойства идентичны, но их графики существенно отличаются (https://en.wikipedia.org/wiki/Anscombe%27s_quartet). Идея его в том, чтобы показать полезность графиков, обычна хорошая визуализация позволяет лучше понять данные или найти зависимости.

В дополнение ссылка на небольшую инструкцию по визуализации данных в pandas (это такая небольшая библиотека для python для работы с табличными данными — excel для программистов)
https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html

#vizualization #charts