Big Data Science [RU]
1.62K subscribers
80 photos
9 videos
545 links
Big Data Science [RU] — канал о жизни Data Science.
Для сотрудничества: a.chernobrovov@gmail.com
🌏 — https://t.me/bdscience — Big Data Science channel (english version)
💼 — https://t.me/bds_job — channel about Data Science jobs and career
Download Telegram
💫Непрерывное машинное обучение: CML для CI/CD
Нужно внедрить CI/CD в разработку ML-систем? Попробуйте CML - CLI-средство с открытым исходным кодом от Iterative.ai для реализации CI/CD в рамках MLOps. ОноCML подходит для автоматизации рабочих процессов разработки ML-моделей, включая их предоставление, обучение и оценку, сравнение экспериментов в истории проекта и мониторинг меняющихся наборов данных. CML основан на следующих принципах:
• GitLab или GitHub для управления экспериментами ML, мониторинга обучения моделей и изменения данных с помощью DVC;
• автоматические отчеты для экспериментов машинного обучения с метриками и графиками в каждом pull-запросе Git, чтобы принимать обоснованные решения на основе данных;
• отсутствие дополнительных сервисов – только GitLab, Bitbucket или GitHub, Docker и DVC. При желании можно добавить облачные хранилища, а также самостоятельные или облачные исполнители типа AWS EC2 или MS Azure.
CML внедряет в рабочий процесс автоматизацию в стиле CI/CD: большинство конфигураций определены в файле cml.yaml, хранящемся в репозитории. Этот файл указывает, какие действия должны быть выполнены, когда новая функциональная ветка готова к слиянию с основной. Когда создается pull-запрос, действия GitHub используют этот рабочий процесс и выполняют действия, указанные в файле конфигурации.
Исходный код: https://github.com/iterative/cml
Документация: https://cml.dev/doc
Практический пример: https://towardsdatascience.com/continuous-machine-learning-e1ffb847b8da
👍3
#тест
Какой метод Apache Spark работает с файловой системой, а НЕ с памятью?
Anonymous Quiz
20%
coelesce()
34%
repartition()
46%
partitionBy()
🔥3
💥YDB: масштабируемая отказоустойчивая NewSQL-СУБД от Яндекса. Теперь open-source
19 апреля 2022 года. Яндекс опубликовал исходный код распределённой NewSQL-СУБД YDB, которая позволяет создавать масштабируемые отказоустойчивые сервисы, способные выдерживать большую операционную нагрузку. Код доступен по лицензии Apache 2.0.
YDB сочетает в себе высокую доступность и масштабируемость со строгой согласованностью и транзакциями ACID. СУБД способна обрабатывать миллионы запросов в секунду и сохраняет работоспособность в случае выхода из строя сервера или даже целого датацентра. Надёжность YDB проверена на сервисах Яндекса (Алиса, Такси, Маркет, Метрика и еще почти 500 проектов). Развернуть YDB можно как на собственных, так и на сторонних серверах, включая Yandex Cloud или провайдеров.
https://ydb.tech/
https://github.com/ydb-platform/ydb
https://habr.com/ru/company/yandex/blog/660271/
https://yandex.ru/company/press_releases/2022/2022-04-19
🔥4👍1
🗒Loguru для логгирования Python-скриптов
Эта библиотека пригодится ML-специалистам и дата-инженерам, которые часто пишут на Python. Она автоматизирует логирование и упрощает процесс отладки. Кроме того, Loguru включает ряд полезных функций, которые устраняют предостережения стандартных средств ведения журнала.
Loguru работает по принципу plug-and-play и имеет такие функции, как свертывание журналов несколькими способами, автоматическое сжатие лог-файлов и регулярное их удаление. А также поддерживает многопоточную безопасность и подсветку логов. Эту open-source библиотеку можно использовать вместе со средствами уведомлений по электронной почте для получения электронных писем при сбое программ или для отправки других типов уведомлений.
Наконец, Loguru поддерживает совместимость с собственным модулем ведения журнала Python, позволяя передавать всю информацию, записанную исходным стандартным регистратором, в Loguru.
Исходный код: https://github.com/Delgan/loguru
Пример использования: https://medium.com/geekculture/python-loguru-a-powerful-logging-module-5f4208f4f78c
🔥3
🔥ТОП-5 новинок Python Alpha 5
В апреле 2022 года вышла новая версия Python - Alpha 5 (3.11). Главные фичи:
• Улучшение отладки с цепочкой исключений и сообщениях. В Python 2022 исключения будут включать в себя подробное свойство с местоположением обратной трассировки, указывающее прямо туда, где произошла ошибка. Python 2 имел аналогичную функцию, но требовал добавления context в код, что усложняло реализацию. Теперь__context__ добавляется автоматически.
• Вариативная обработка исключений – теперь можно по-разному обрабатывать исключение в зависимости от того, с какими другими исключениями оно связано. Можно использовать несколько операторов исключений с явным числом отдельных исключений в каждом. Просто создайте большой блок try/except со всеми возможными именами исключений, а затем добавьте в него дополнительные операторы exclude. Именно для этого и предназначены группы исключений, которые позволяют логически сгруппировать множество различных исключений вместе и применить единую функцию-обработчик, вызываемую только если внутри программы возникает какое-либо из этих отдельных исключений.
• Variadic Generics — теперь можно создавать функции, которые принимают переменное количество аргументов (до 22). Раньше нужно было определить функцию, которая могла бы принимать любое количество аргументов, а затем явно передавать каждый параметр. Variadic Generics в Python 3.6 позволяет отправлять любое количество параметров за один раз, что полезно при повторе нескольких операций.
• Оптимизация производительности CPython. Изменения для функций, связанных с вызовами и поиском ключевых слов, должны уменьшить накладные расходы, вызванные стеком C, ускоряя все, от разработки объектно-ориентированного кода до доступа к словарям данных.
• Упрощение работы других языков, таких как JavaScript, поверх Python, за счет высокопроизводительных и параллельных вычислений.
https://morioh.com/p/af7debd024e2
https://medium.com/@Sabrina-Carpenter/python-alpha-5-is-here-5-promising-features-that-will-blow-your-mind-a4abd406d0ad
🔥1
💫Визуализация графов с PyGraphistry
PyGraphistry
— это ИИ-библиотека Python для визуальных графов, позволяющая извлекать, преобразовывать, анализировать и визуализировать большие графы вместе со сквозными сеансами графического сервера Graphistry. Graphistry создан специально для больших графов. Пользовательский механизм рендеринга WebGL клиента рендерит до 8 миллионов узлов + ребер за раз, а большинство клиентских GPU поддерживают от 100 000 до 2 миллионов элементов. Механизм аналитики графического процессора на стороне сервера поддерживает графы еще большего размера. Graphistry сглаживает графические рабочие процессы в экосистеме PyData, включая датафреймы Pandas/Spark/Dask, графического процессора Nvidia RAPIDS, графы GPU, графовые нейросети DGL/PyTorch и различные коннекторы данных.
PyGraphistry — это дружественный и оптимизированный нативный интерфейс PyData для API-интерфейсов REST Graphistry, не зависящих от языка. Можно использовать PyGraphistry с традиционными источниками данных Python, такими как CSV, SQL, Neo4j, Splunk и другими.
Клиент PyGraphistry Python пригодится следующим категориям пользователей:
• Data scientist: переходите от данных к ускоренным визуальным исследованиям за пару строк, делитесь результатами в реальном времени, создавайте сложные представления в Jupyter Notebook и Google Colab.
• Разработчик: быстро создавайте прототипы потрясающих решений Python с помощью PyGraphistry, встраивайте независимый от языка способ с помощью API REST, настраивая цвета, значки, макеты, JavaScript и пр.
• Аналитик: стройте наглядные дэшборды, используя интерактивный поиск, фильтры, временные шкалы, гистограммы и др., встраивая их в любые фреймворки.
https://github.com/graphistry/pygraphistry
👍4
🗣Сколько информации в ваших данных? Ответ от MIT
Информация и данные – это разные вещи. Не все данные одинаковы. Но сколько информации может содержать любой фрагмент данных? Впервые этот вопросы был раскрыт в статье 1948 года «Математическая теория коммуникации» почетного профессора MIT Клода Шеннона. Одним из прорывных результатов Шеннона является идея энтропии, которая позволяет количественно оценить количество информации, присущей любому случайному объекту, включая случайные величины, которые моделируют наблюдаемые данные. Результаты Шеннона заложили основы теории информации и современных телекоммуникаций. Концепция энтропии также оказалась центральной в информатике и машинном обучении.
Но использование формулы Шеннона может быстро стать неразрешимым с вычислительной точки зрения. Это требует точного расчета вероятности данных и всех возможных способов возникновения данных в рамках вероятностной модели. Это становится проблемой в реальных случаях, например, медицинское тестирование, где положительный результат теста является результатом сотен взаимодействующих переменных, и все они неизвестны. Имея всего 10 неизвестных, у данных уже есть 1000 возможных объяснений. С несколькими сотнями возможных объяснений больше, чем атомов в известной Вселенной, что делает вычисление энтропии абсолютно неразрешимой проблемой.
Исследователи MIT разработали новый метод оценки приближений ко многим информационным величинам, таким как энтропия Шеннона, с помощью вероятностного вывода. Работа представлена в статье конференции AISTATS 2022. Ключевой вывод в том, чтобы вместо перечисления всех объяснений, использовать алгоритмы вероятностного вывода. Это поможет сначала сделать вывод, какие объяснения вероятны, а затем использовать их для построения высококачественных оценок энтропии. Доказано, что этот подход, основанный на выводах, может быть намного быстрее и точнее, чем предыдущие подходы.
Оценка энтропии и информации в вероятностной модели принципиально сложна, поскольку часто требует решения многомерной задачи интегрирования. Во многих предыдущих работах были разработаны оценки этих величин для некоторых особых случаев, но новые оценки энтропии через вывод (EEVI) предлагают первый подход, который может дать точные верхние и нижние границы для широкого набора величин, основанных на теории информации. Верхняя и нижняя границы означают, что, хотя мы не знаем истинной энтропии, мы можем получить число, которое меньше ее, и число, которое выше ее. Разница между верхней и нижней границами дает количественное представление о том, насколько мы должны быть уверены в оценках. Используя больше вычислительных ресурсов, можно свести разницу между двумя границами к нулю, что «сжимает» истинное значение с высокой степенью точности. Также можно составить эти границы, чтобы сформировать оценки многих других величин, которые говорят, насколько информативны разные переменные в модели друг для друга.
Новый метод особенно полезен для запроса вероятностных моделей в таких областях, как медицинская диагностика. Например, решать новые запросы, используя богатые генеративные модели для сложных заболеваний, ранее изученных медицинскими экспертами.
https://news.mit.edu/2022/estimating-informativeness-data-0425
X5 Group запускает собственную платформу Salt

Когда в мире сгущаются тучи – самое время создать собственное облако!

Ритейлер запустил частое облако Salt на основе open source технологий и разработок Х5, которое, как отмечается, позволит сократить стоимость владения IT-инфраструктурой, ускорить time-to-market цифровых проектов и сократить углеродный след за счёт «зелёных» технологий в дата-центрах.

Отдельные компоненты платформы предоставляются внутренним клиентам Х5 как сервис, включая ЦОД как услугу в части хранения и обработки данных. Это позволяет обеспечить доступность на уровне 99,9%.
🙌🏼МЕГАмасштабирование при квантовом ML
Теоретически квантовые компьютеры могут оказаться более мощными, чем любой обычный компьютер, особенно в задачах нахождения простых множителей чисел — математической основы современного шифрования, которое защищает банковские и другие важные данные. Чем больше компонентов, известных как кубиты, связаны друг с другом в квантовом компьютере, когда несколько частиц могут мгновенно влиять друг на друга, независимо от того, насколько далеко они друг от друга, тем больше его вычислительная мощность может расти в геометрической прогрессии.
Одним из потенциальных применений квантового ML является моделирование квантовых систем, например, химических реакций, чтобы создать новые лекарства. Но средняя производительность ML-алгоритма зависит от того, сколько у него данных. Объем данных в итоге ограничивает производительность машинного обучения. Поэтому для моделирования квантовой системы количество обучающих данных, которые могут потребоваться квантовому компьютеру, будет расти экспоненциально по мере того, как моделируемая система становится больше. Это потенциально нивелирует преимущество квантовых вычислений над классическими.
Ученые предложили связать дополнительные кубиты с квантовой системой, которую должен моделировать квантовый компьютер. Этот дополнительный набор «вспомогательных» кубитов может помочь схеме квантового ML одновременно взаимодействовать со многими квантовыми состояниями в обучающих данных. Так схема квантового ML может работать даже с относительно небольшим количеством вспомогательных устройств. На практике реализовать эту идею пока довольно сложно, но проверить ее можно в рамках экспериментов ЦЕРНа, крупнейшей лаборатории физики элементарных частиц в мире.
https://spectrum.ieee.org/quantum-machine-learning
👀Оперативный мониторинг ML и ПО-метрик в одной платформе
В реальных системах машинного обучения важно вести непрерывное наблюдение за данными и моделями. Даже сама ML-модель осталась прежней, характер данных мог измениться, что может непосредственно повлиять на пользователей. Сегодня на рынке существует множество платформ, предназначенных для мониторинга ПО, куда собираются различные системные и бизнес-метрики, чтобы отражать наиболее важные данные на наглядных дэшбордах и генерировать уведомления. Например, Grafana, Datadog, Graphite и пр.
Также есть средства для мониторинга ML-систем машинного обучения типа Neptune, Amazon SageMaker Model Monitor, Censius и прочие MLOps-средства. Но можно объединить наблюдение за работой системы машинного обучения с классическим инженерным мониторингом ПО на одной платформе. Это достижимо с помощью New Relic, телеметрической платформы удаленного мониторинга мобильных и веб-приложений, которая позволяет собирать, исследовать и получать оповещения обо всех данных телеметрии из любого источника в одном месте. Благодаря интеграции со многими open-source инструментами New Relic может работать с различными источниками и приемниками данных.
Отправка данных из ML-систем в New Relic реализуется с помощью Python-библиотеки ml-performance-monitoring с открытым исходным кодом, которая доступна на GitHub (https://github.com/newrelic-experimental/ml-performance-monitoring).
https://towardsdatascience.com/monitor-easy-mlops-model-monitoring-with-new-relic-ef2a9b611bd1
👍1🔥1
🎙 Отборные и бесплатные подкасты, книги и материалы по IT, бизнесу и личностному росту.

🎧 Слушайте лучшие подкасты от самых выдающихся людей планеты на нашем канале и становитесь умнее с каждым шагом 🧠🔥

Развивайтесь вместе с нами ❤️⚡️
❤2
🤷Как быстро сравнить изменения в моделях данных? Datafold в помощь!
Выявить и оценить изменения в разных версиях одной модели данных можно, собственноручно написав свой скрипт или с помощью встроенной в dbt функции наследования данных. Но для обычного бизнес-пользователя или начинающего дата-аналитика это слишком сложно. В этих случаях пригодится Datafold (https://www.datafold.com/) – облачный продукт с множеством полезных функций, включая проверку качества данных, их каталог, мониторинг и оповещение. Функция происхождения данных основана на столбцах и помогает оценивать последующие изменения в пользовательских моделях, в частности, сравнивать изменения между датасетами на уровне столбца и значения. Для крупных проектов пригодится интеграция с dbt. Datafold работает путем прямого подключения к пользовательскому хранилищу данных и использует Github для сравнения изменений, внесенных в модели dbt, чтобы гарантировать сохранение качества данных.
На практике Datafold пригодится продуктовым аналитикам при A/B-тестировании гипотез о пользовательских предпочтениях и использовании продуктовых фич, дата-инженерам – для регрессионного тестирования ETL-конвейеров и пользователям BI-систем для настройки отчетов.
Пример использования: https://medium.com/geekculture/what-if-you-could-compare-changes-in-your-data-models-now-you-can-75f039580d08
👍4
#тест
На маленьких связанных (зависимых) выборках для проверки гипотезы о различиях между ними подойдет статистический критерий
Anonymous Quiz
34%
t-критерий Стьюдента
24%
U-критерий Манна — Уитни
19%
Т-критерий Вилкоксона
23%
Критерий согласия Пирсона
🔥6
💫ИИ + квантовые вычисления = квантовый мемристор
Ученые Австрии и Италии создали первый прототип устройства, известного как квантовый мемристор, который может объединить методы искусственного интеллекта с квантовыми вычислениями. Мемристор, или резистор памяти, является своего рода строительным блоком для электронных схем. Первые идеи об этом устройстве прозвучали еще полвека назад, но впервые оно было создано около 10 лет назад. Оно Эти представляет собой электрический переключатель, который запоминает свое состояние (вкл или выкл) после отключения питания, аналогично синапсам — связям между нейронами в человеческом мозге, электрическая проводимость которых усиливается или ослабевает в зависимости от того, сколько электрического заряда прошло через них в прошлом.
Теоретически мемристоры могут действовать как искусственные нейроны, способные как вычислять, так и хранить данные. Поэтому нейроморфные (мозгоподобные) компьютеры на мемристорах будут хорошо работать с искусственными нейросетями, т.е. системами ML.
В отличие от классических компьютеров, которые включают или выключают транзисторы, чтобы символизировать данные как 1 или 0, квантовые используют кубиты. Кубиты могут находиться в состоянии суперпозиции, когда они одновременно равны 1 и 0. Чем больше кубитов связано вместе в квантовом компьютере, тем больше его вычислительная мощность может расти в геометрической прогрессии.
Квантовый мемристор опирается на поток фотонов, существующих в суперпозициях, где каждый отдельный фотон может путешествовать по двум отдельным путям, нанесенным лазером на стекло. Один из каналов в этой интегрированной фотонной схеме с одним кубитом используется для измерения потока этих фотонов, и эти данные через сложную электронную схему обратной связи контролируют передачи по другому пути. В итоге устройство ведет себя как мемристор.
Обычно мемристивное поведение и квантовые эффекты не существуют вместе. Мемристоры работают путем измерения своих внутренних данных, а квантовые эффекты отличаются хрупкостью, когда речь идет о любом внешнем вмешательстве, таком как измерения. Исследователи преодолели это противоречие, разработав взаимодействия внутри своего устройства, чтобы они были достаточно сильными, чтобы обеспечить мемристивность, но достаточно слабыми, чтобы сохранить квантовое поведение.
Преимущество использования квантового мемристора в квантовом ML по сравнению с обычными квантовыми схемами заключается в том, что мемристор, в отличие от любого другого квантового компонента, имеет память. Следующим шагом является соединение нескольких мемристоров вместе, увеличение количества фотонов в каждом мемристоре и количества состояний, в которых они могут существовать в каждом устройстве.
https://spectrum.ieee.org/quantum-memristor
👍2
🌞Разработка на Python по 12 принципам SaaS c библиотекой Python-dotenv
Разработчики ML-моделей и аналитики данных не всегда чисто пишут код, как профессиональные программисты. Улучшить качество кода поможет простая методология разработки веб-приложений или SaaS, которая рекомендует:
• использовать декларативные форматы для автоматизации настройки, чтобы сократить время и силы новых разработчиков, присоединяющихся к проекту;
• иметь чистый контракт с базовой операционной системой, обеспечивающий максимальную переносимость между средами выполнения;
• запускать развертывания на современных облачных платформах, избавляя от необходимости администрирования серверов и систем;
• сокращать расхождения между разработкой и производством, обеспечивая непрерывное развертывание для максимальной гибкости;
• масштабироваться без существенных изменений в инструментарии, архитектуре или методах разработки.
Для реализации этих идей SaaS предлагает строить приложения по 12 принципам:
1. Одна кодовая база отслеживается в системе контроля версий, множество развертываний
2. Явно объявить и изолировать зависимости
3. Хранить конфигурацию в среде
4. Относиться к вспомогательным сервисам как к присоединенным ресурсам
5. Строго разделять этапы сборки и запуска
6. Исполнять приложение как один или несколько stateless-процессов
7. Экспортировать сервисы через привязку к порту
8. Обеспечивать параллелизм через масштабирование с помощью модели процесса
9. Максимальная надежность благодаря быстрому запуску и плавному завершению работы
10. Переносимость и похожесть сред от разработки до производства через тестовую
11. Логировать, чтобы рассматривать журналы как потоки событий
12. Выполнять задачи администрирования/управления как одноразовых процессов
Реализовать все это для Python-программы поможет открытая библиотека Python-dotenv. Она считывает пары ключ-значение из файла .env и может устанавливать их как переменные среды. Если приложение берет конфигурацию из переменных среды, запуск его в процессе разработки не очень практичен, т.к. разработчику нужно установить эти переменные среды самостоятельно. Добавив Python-dotenv в свое приложение, можно упростить процесс разработки. Библиотека сама загрузит конфигурацию из файла .env, оставаясь при этом настраиваемым через среду.
Также библиотека может загрузить конфигурацию без изменения среды, распарсить конфигурацию как поток и загрузить файлы .env в IPython. Инструмент также имеет CLI-интерфейс, чтобы манипулировать файлом .env, не открывая его вручную.
https://github.com/theskumar/python-dotenv
🔥1
🌞В июне можно посетить следующие DS-мероприятия:
• 9 июня -
вебинар по BI-сервису Яндекса - Yandex DataLens: безопасность и разграничение прав доступа https://cloud.yandex.ru/events/575
• 10 июня - публичная лекция на тему «Знакомимся с квантовым машинным обучением (QML)». Вебинар ведет доктор технических наук, профессор кафедры прикладной математики и информатики ВШЭ Владимир Крылов. Регистрация
• 14 июня - DataStart - бесплатная онлайн-конференция по Data Science, машинному обучению и нейросетям https://datastart.ru/
• 22 июня - Artificial Intelligence Day – практическая конференция TAdviser https://www.tadviser.ru/a/635999
• 22 июня - Цифровая медицина 2022 – конференция на площадке Конгресс-центра ЦМТ Москвы https://it-events.com/events/22889
• 23 июня - Kuber Conf — главная в России конференция по Kubernetes. Офис Яндекса, Москва, улица Льва Толстого, 16, подъезд Экстрополис. Мероприятие бесплатное, но вход только по приглашениям. https://cloud.yandex.ru/events/579
• 25 июня - DataDriven 2022 - ежегодная конференция Яндекса для специалистов, использующих анализ данных для принятия бизнес-решений. Офис Яндекса, Москва, улица Льва Толстого, 16, подъезд Экстрополис. Мероприятие бесплатное, но вход только по приглашениям. https://events.yandex.ru/events/data-driven-2022
🔥1
🔥LAION-5B: открытый датасет для мульти-модального ML на 5+ миллиардов пар «текст-изображение»
31 мая 2022 года некоммерческая организация ИИ-исследователей представила крупнейший набор данных из 5,85 миллиардов пар изображение-текст, отфильтрованных с помощью CLIP. LAION-5B в 14 раз больше своего предшественника - LAION-400M, который ранее был самым большим в мире открытым набором данных изображение-текст.
2,3 миллиардов пар англоязычные, а вторая половина датасета содержит образцы из более чем 100 других языков. Еще в набор данных входят несколько индексов ближайших соседей, улучшенный веб-интерфейс для исследования и создания подмножеств, а также оценки обнаружения водяных знаков и NSFW. Датасет рекомендуется для исследовательских целей и специально не контролируется.
Весь 5-миллиардный набор данных разбит на 3 датасета, каждый из которых можно скачать отдельно . Все они имеют следующую структуру столбцов:
• URL-адрес изображения
• TEXT - субтитры, на английском для en, на других языках для multi и nolang
• WIDTH - ширина изображения
• HEIGHT - высота изображения
• LANGUAGE - язык образца, только для laion2B-multi, вычисляется с помощью cld3
• Similarity – подобие, косинус между текстом и изображением эмбеддинга ViT-B/32, clip для en, mclip для multi и nolang
• Pwatermark - вероятность изображения с водяным знаком, рассчитанная с помощью laion-детектора водяных знаков
• Punsafe - вероятность того, что изображение является небезопасным, вычисляется с помощью laion-детектора клипов.
pwatermark и punsafe доступны либо как отдельные коллекции, которые должны быть соединены join’ом с помощью хэша url+text.
Подробности и ссылки для загрузки: https://laion.ai/laion-5b-a-new-era-of-open-large-scale-multi-modal-datasets/
🔥3