Собрали в одном месте самые важные ссылки
читайте авторский блог
В современном мире уже никого не удивить машинным обучением. Наиболее важно обеспечивать высокое качество и надежность моделей и, как следствие, бурно развиваются MLOps инструменты, которые позволяют управлять всем жизненным циклом машинного обучения. Мы в Яндексе, конечно, тоже делаем такой инструмент для внутренних пользователей. Один из его элементов — инструмент для пообъектного сравнения, позволяющий понять на каких объектах разные модели ведут себя лучше, а на каких хуже. Проблема заключается в том, что общий объем данных для сравнения может быть довольно большим. Кроме того, необходимо предоставить пользователю удобные средства сортировки и фильтрации для анализа полученного сравнения. В своем докладе я расскажу, как мы такой инструмент строили, развивали, и к чему в итоге пришли. Доклад будет интересен Data инженерам, разработчикам ETL процессов, специалистам по качеству и анализу данных.
Графы знаний активно применяются для улучшения пользовательских рекомендаций (амазон, нетфликс), для анализа фондового рынка (goldman sachs), поиска (яндекс, гугл) и даже для поиска новых молекул. Также это может быть удобным корпоративным инструментом, который объединяет и связывает данные внутри компании из разных источников. Это помогает исследователям, аналитикам и дата саентистам.
В докладе расскажем о том, как мы разрабатывали инструмент для запуска разнородных тестов на разнородном железе. Доклад рассчитан на разработчиков, тестировщиков, билд-инженеров и менеджеров, которые: планируют построить систему CI/CD, включающую прогон тестов на железе и эмуляторах; хотят иметь единый подход к запуску тестов; хотят, чтобы в их проектах была трассируемость результатов выполнения тестов в требования; имеют большой зоопарк разнородного железа, на котором нужно прогонять тесты.
Поговорим про мониторинг ML-моделей в production: о том, зачем и как это делать, что такое data drift и как его измерить. Также расскажу о том, почему выбор "правильной" метрики для data drift — одно из главных решений в мониторинге, и поделюсь результатами исследования пяти популярных статтестов, которое мы недавно провели в Evidently. На примерах покажу, как ведут себя разные метрики в зависимости от объема данных и размера data drift. Слушатели смогут сформировать интуицию о том, как ведут себя различные статтесты для определения data drift, и подобрать подходящую метрику под свою задачу и "сценарий" использования.
Общая задача обнаружения аномалий во временных рядах часто разделяется на две отдельные задачи: обнаружение выбросов или бинарная классификация (для точечных аномалий) и обнаружение точек изменения состояния (changepoint detection, для коллективных аномалий). В докладе подробно рассмотрена задача changepoint detection, методы для обнаружения точек изменения состояния, библиотеки на python, с помощью которых можно решать эту задачу. Также в докладе продемонстрирована реализация на python одного из самых распространенных подходов к решению задачи (генерация невязки сигнала) без применения специализированных библиотек.
Мультипроцессинг в питоне вещь актуальная, особенно если вы занимаетесь ML сервисами. Но если вы попытаетесь использовать его в ваших сервисах — вы непременно наткнетесь на ряд подводных камней, которые почти нигде не обсуждается. В докладе я бы хотел рассказать про наш опыт использования мультипроцессинга, с какими проблемами можно столкнуться, затаскивая его в реальные продакшн сервисы. Из этого доклада можно будет узнать: В каких случаях нужно использовать shared memory и как корректно и эффективно с ней работать. Расскажу про атомарные счетчики ссылок как альтернативу стандартным методам контроля над шареной памятью в питоне. Скрытые баги в стандартных питоновских очередях. Мультипроцессорные очереди в питоне ведут себя контринтуитивно (например, говорить, что очередь пуста, когда в ней на самом деле лежит куча тасков), плюс они не совсем кроссплатформенные. Эти вещи мало где обсуждаются, а проблемы, связанные с ними, напрямую аффектят сервисы. При этом сходу не понятно, что произошло не так и как можно это исправить.
Во время работы над сложными проектами, например, такими как виртуальные ассистенты, возникают нетиповые задачи, для решения которых нет подходящего инструмента или фреймворка. Иногда такие задачи кажутся маленькими и незначительными, поэтому один разработчик-энтузиаст за два дня пишет на коленке маленький Python сервис и делится им с коллегами. Но как быть, если маленький наколенный проект с 2 RPS, предназначенный для использования несколькими людьми, выстреливает, и его накрывает волна фича реквестов и пользователей из десятков команд? В своём докладе я расскажу, как развивался наш внутренний инструмент UnionPortal, предназначенный для поддержки NLP задач, про его эволюцию, начиная с маленького наколенного проекта и заканчивая большим отказоустойчивым сервисом со всеми правилами хорошего тона enterprise сервиса. Мы затронем такие интересные вопросы как масштабирование, бесшовный вывод из и ввод в эксплуатацию, сокращение стоимости разработки и внедрение единого архитектурного стандарта.
Большинство разработчиков знают символ звёздочки как оператор умножения в Python: product = 4 * 2 # 8 Однако, звёздочка имеет особое значение для сложных структур данных, например списка или словаря.
Если вы полезли в аналитику, то, вероятно, обнаружили, что там много, ну ОЧЕНЬ МНОГО графиков. Иногда хватает одного, и тогда всё отлично. А если нужно два? А если пять? И рядом. Тут поможет matplotlib.
Одним из главных достоинств Python является выразительность кода. Не последнюю роль в этом играет возможность удобной работы с коллекциями и последовательностями различного вида: перебор элементов списка по одному, чтение файла по строкам, обработка всех ключей и значений в словаре. Эти и многие другие подобные задачи в Python помогает решить так называемый протокол итераторов (Iterator protocol). Именно этот протокол обеспечивает работу цикла for, устанавливает по каким объектам можно итерироваться, а по каким нет. Как мы увидим далее, сам язык и стандартная библиотека очень широко используют возможности протокола. В этой статье попробуем отыскать не самые известные, но от этого не менее интересные примеры итераторов и итерируемых объектов, которые предлагает Python.
Сегодня рассказываем как написать простой MQTT-клиент на Raspberry Pi при помощи MicroPython и реализовать функции подключения, отправки сообщений и подписки между клиентом и брокером MQTT-сообщений.
В этой статье мы попробуем решить несколько простых задач, используя чистый Python и два языка расширения: Rust и Cython. Чтобы сравнить два этих подхода, мы оценим трудоемкость каждого из них, а также рассмотрим случаи, в которых следует попробовать что-то другое. Начнем с установки и с простых приложений, а затем перейдем к более сложным экспериментам.
Рано или поздно у любого банка появляется желание выдавать кредиты: максимально быстро, эффективно и с контролируемыми рисками. Для этой задачи нужна развитая система риск-менеджмента и как важная часть системы — модель кредитного скоринга. В статье речь пойдет о том, как это всё устроено в Точке.
Владение языком Python станет прекрасным активом будущего программиста. Если ваш ребенок увлекается программированием, то процесс обучения можно разнообразить с помощью полезных видео, обучающих игр, вступления в тематические сообщества и многого другого. В этой статье мы собрали полезные ресурсы по Python и поделили их по категориям.
В этой статье расскажу о том, как я занял второе место в конкурсе «Цифровой прорыв» с решением по автоматизации привязки фотографии к географическому положению. Главный инсайт — базовые решения не всегда хороши и проверены. Спойлер — самодеятельность и использование современных подходов помогают победить :) Расскажу на своем опыте, как не сделать свое решение хуже базового и проанализирую подходы других участников.
Большинство питонистов не раз слышали о таких правилах как «функции должны быть глаголами» или «не наследуйтесь явно от object в Python 3». В этой статье мы рассмотрим не такие банальные, но полезные правила чистого кода в Python.
Как известно, основной проблемой в тестировании является отчетность по прогонам. Некоторые компании собирают данные в отдельном хранилище. Вместо того, чтобы вручную организовывать хранение, было решено сохранять их в Test IT. Такие данные как: исход, время выполнения и количество автоматизированных кейсов позволяют разделить тесты на выборки и дать оценку покрытия автотестами.
С учётом актуальности Multiple Instance Learning (далее: MIL) и, в частности, наличия преимуществ данного метода для анализа гистологических изображений, решил попробовать обучить модели с целью классификации наборов данных, на те, которые содержат только нормальные ткани и те, в которых встречаются изображения со светлоклеточным раком почки.
Есть мнение, что прогнозирование временных рядов - сложная задача. Но не будем расстраиваться, ведь есть и плюсы - существует ещё большое количество задач, когда рядов сразу несколько, и такие задачи ещё сложнее! Когда начинаем сравнивать, понимаем, что прогнозировать одномерные временные ряды не так уж и сложно. А вот что делать с ситуацией, когда временной ряд обрастает параллельно идущими с ним последовательностями других параметров (многомерный ряд), какие методы и алгоритмы использовать, и что делать, если задача прогнозировать такие ряды есть, а опыта не очень много (спойлер - используйте AutoML, а пока он работает восполните пробел прочитав пару статей по теме).