Специально для МРТ: библиотека Nilearn
Nilearn — легковесная Python-библиотека анализа данных МРТ. Она предоставляет статистические инструменты и средства машинного обучения, подробную документацию и открытое сообщество.
Nilearn теперь включает в себя функциональность библиотеки Nistats и расширяет ее новыми фичами. Она поддерживает анализ на основе общей линейной модели (GLM) и использует средства scikit-learn для многомерной статистики с такими приложениями, как прогнозное моделирование, классификация, декодирование или анализ связности. Nilearn отлично визуализирует результаты анализа в проекциях человеческого мозга.
Библиотека доступна под лицензией BSD и активно обновляется: версия 0.1.1 вышла в 2015 году, а на июнь 2022 года выпущен релиз 0.9.1. https://nilearn.github.io/stable/index.html
Nilearn — легковесная Python-библиотека анализа данных МРТ. Она предоставляет статистические инструменты и средства машинного обучения, подробную документацию и открытое сообщество.
Nilearn теперь включает в себя функциональность библиотеки Nistats и расширяет ее новыми фичами. Она поддерживает анализ на основе общей линейной модели (GLM) и использует средства scikit-learn для многомерной статистики с такими приложениями, как прогнозное моделирование, классификация, декодирование или анализ связности. Nilearn отлично визуализирует результаты анализа в проекциях человеческого мозга.
Библиотека доступна под лицензией BSD и активно обновляется: версия 0.1.1 вышла в 2015 году, а на июнь 2022 года выпущен релиз 0.9.1. https://nilearn.github.io/stable/index.html
Nilearn
Nilearn enables approachable and versatile analyses of brain volumes and surfaces. It provides statistical and machine-learning tools, with instructive documentation & open community. It supports g...
🔥2
👌ТОП-5 MLOps-фреймворков
Сегодня тема MLOps очень востребована: ML-системы становятся все сложнее, а их разработка и поддержка включает не только вычислительные алгоритмы и прочую Data Science, но и лучшие практики разработки ПО с тонкостями развертывания в production. При этом нужно постоянно следить за дрейфом входных данных и реакции ML-модели на них, своевременно корректируя код с его версионированием. Наладить такую непрерывную цепочку помогают комплексные MLOps-фреймворки, наиболее популярными из которых считаются следующие:
• MLflow — платформа с открытым исходным кодом для управления сквозным жизненным циклом машинного обучения https://www.mlflow.org/
• Kubeflow — платформа машинного обучения с открытым исходным кодом, позволяющая использовать ML-конвейеры для управления сложными рабочими процессами, работающими в Kubernetes, например, обработка данных, затем использование TensorFlow или PyTorch для обучения модели и развертывание в TensorFlow Serving или Seldon. Kubeflow построен на основе внутреннего метода Google для развертывания моделей TensorFlow, который называется TensorFlow Extended. https://www.kubeflow.org/
• FastAPI — это современная, быстрая и высокопроизводительная веб-инфраструктура для создания API-интерфейсов с Python 3.6+ на основе стандартных подсказок типов Python. Он полностью поддерживает асинхронное программирование и может работать с Uvicorn и Gunicorn. https://fastapi.tiangolo.com/
• ZenML —платформа MLOps с открытым исходным кодом, созданная для команд машинного обучения. Она обеспечивает уровень абстракции для максимально простого переноса ML-моделей из исследований в производство. С ZenML Data Scientist получает полный контроль и право собственности на весь процесс конвейера, не вдаваясь в тонкости процессов развертывания. ZenML стандартизирует написание конвейеров ML для различных стеков MLOps, независимо от облачных провайдеров, сторонних поставщиков и базовой инфраструктуры https://zenml.io/
• Seldon Core - платформа с открытым исходным кодом, упрощает и ускоряет развертывание ML-моделей и масштабных экспериментов в Kubernetes. Seldon Core обслуживает модели, созданные в любой среде построения моделей с открытым исходным кодом или в коммерческой среде. Можно использовать мощные функции Kubernetes, такие как настраиваемые определения ресурсов, для управления графами модели. Есть возможность подключить CI/CD-инструменты, чтобы масштабировать и обновлять развертывание. Seldon обеспечивает масштабирование до тысяч производственных ML-моделей и предоставляет готовые расширенные возможности машинного обучения, включая расширенные метрики, регистрацию запросов, эксплейнеры, детекторы выбросов, A/B-тесты, Canary и многое другое. https://www.seldon.io/solutions/open-source-projects/core
Сегодня тема MLOps очень востребована: ML-системы становятся все сложнее, а их разработка и поддержка включает не только вычислительные алгоритмы и прочую Data Science, но и лучшие практики разработки ПО с тонкостями развертывания в production. При этом нужно постоянно следить за дрейфом входных данных и реакции ML-модели на них, своевременно корректируя код с его версионированием. Наладить такую непрерывную цепочку помогают комплексные MLOps-фреймворки, наиболее популярными из которых считаются следующие:
• MLflow — платформа с открытым исходным кодом для управления сквозным жизненным циклом машинного обучения https://www.mlflow.org/
• Kubeflow — платформа машинного обучения с открытым исходным кодом, позволяющая использовать ML-конвейеры для управления сложными рабочими процессами, работающими в Kubernetes, например, обработка данных, затем использование TensorFlow или PyTorch для обучения модели и развертывание в TensorFlow Serving или Seldon. Kubeflow построен на основе внутреннего метода Google для развертывания моделей TensorFlow, который называется TensorFlow Extended. https://www.kubeflow.org/
• FastAPI — это современная, быстрая и высокопроизводительная веб-инфраструктура для создания API-интерфейсов с Python 3.6+ на основе стандартных подсказок типов Python. Он полностью поддерживает асинхронное программирование и может работать с Uvicorn и Gunicorn. https://fastapi.tiangolo.com/
• ZenML —платформа MLOps с открытым исходным кодом, созданная для команд машинного обучения. Она обеспечивает уровень абстракции для максимально простого переноса ML-моделей из исследований в производство. С ZenML Data Scientist получает полный контроль и право собственности на весь процесс конвейера, не вдаваясь в тонкости процессов развертывания. ZenML стандартизирует написание конвейеров ML для различных стеков MLOps, независимо от облачных провайдеров, сторонних поставщиков и базовой инфраструктуры https://zenml.io/
• Seldon Core - платформа с открытым исходным кодом, упрощает и ускоряет развертывание ML-моделей и масштабных экспериментов в Kubernetes. Seldon Core обслуживает модели, созданные в любой среде построения моделей с открытым исходным кодом или в коммерческой среде. Можно использовать мощные функции Kubernetes, такие как настраиваемые определения ресурсов, для управления графами модели. Есть возможность подключить CI/CD-инструменты, чтобы масштабировать и обновлять развертывание. Seldon обеспечивает масштабирование до тысяч производственных ML-моделей и предоставляет готовые расширенные возможности машинного обучения, включая расширенные метрики, регистрацию запросов, эксплейнеры, детекторы выбросов, A/B-тесты, Canary и многое другое. https://www.seldon.io/solutions/open-source-projects/core
MLflow AI Platform
MLflow - Open Source AI Platform for Agents, LLMs & Models
The largest open source AI engineering platform for agents, LLMs, and ML models. Debug, evaluate, monitor, and optimize your AI applications. Built for teams of all sizes.
👍1🔥1
🪢Пара библиотек для модульного тестирования Python-скриптов
Модульное тестирование позволяет разработчику убедиться, что код работает должным образом на атомарном уровне. Суть модульного тестирования сводится к проверке того, что каждая отдельная функция делает то, что она должна делать. Для этого можно использовать следующие инструменты:
• Pytest — это платформа для написания небольших читаемых тестов, которую можно масштабировать для поддержки сложного функционального тестирования приложений и библиотек. Требуется: Python 3.7+ или PyPy3. https://docs.pytest.org/en/7.1.x/
• Сhispa предоставляет быстрые вспомогательные методы тестирования PySpark, которые выводят описательные сообщения об ошибках. Эта библиотека упрощает написание высококачественного кода PySpark. Интересно, что chispa в переводе с испанского означает искра, т.е. Spark по-английски. https://github.com/MrPowers/chispa
Модульное тестирование позволяет разработчику убедиться, что код работает должным образом на атомарном уровне. Суть модульного тестирования сводится к проверке того, что каждая отдельная функция делает то, что она должна делать. Для этого можно использовать следующие инструменты:
• Pytest — это платформа для написания небольших читаемых тестов, которую можно масштабировать для поддержки сложного функционального тестирования приложений и библиотек. Требуется: Python 3.7+ или PyPy3. https://docs.pytest.org/en/7.1.x/
• Сhispa предоставляет быстрые вспомогательные методы тестирования PySpark, которые выводят описательные сообщения об ошибках. Эта библиотека упрощает написание высококачественного кода PySpark. Интересно, что chispa в переводе с испанского означает искра, т.е. Spark по-английски. https://github.com/MrPowers/chispa
GitHub
GitHub - MrPowers/chispa: PySpark test helper methods with beautiful error messages
PySpark test helper methods with beautiful error messages - MrPowers/chispa
🔥4
#тест
В рекуррентных нейросетях выход нейрона зависит от:
В рекуррентных нейросетях выход нейрона зависит от:
Anonymous Quiz
3%
входа
4%
весовых коэффициентов
14%
входа и весовых коэффициентов
79%
входа, весовых коэффициентов и предыдущих выходов
🔥4
💥Python-библиотека для отправки PySpark-скриптов в кластер Spark через REST API Livy
Разработчики Spark-приложений знают, что есть два подхода к программной отправке заданий в кластер Apache Spark, и каждый из них имеет некоторые ограничения для достижения взаимодействия в реальном времени: spark-submit и spark-shell.
Однако, на практике бывают случаи, что надо отправлять Spark-задания в интерактивном режиме из веб- или мобильного приложения. При этом кластер Apache Spark размещен в локальной инфраструктуре, а нужно, чтобы много пользователей одновременно потребляли и выполняли тяжелые агрегации с источниками данных со своих мобильных телефонов, веб- или десктопных приложений. В этом случае поможет сервисный подход, Spark-as-a-Service, включая предоставление доступа к источникам данных JDBC/ODBC через резервный сервер Spark или использование Apache Livy - службы, которая позволяет легко взаимодействовать с кластером Apache Spark через REST API.
Для Livy пригодится Python-пакет livyc – он хорошо работает для динамической и асинхронной отправки PySpark-скриптов на сервер Apache Livy, прозрачно взаимодействуя с кластером Apache Spark. https://github.com/Wittline/livyc
Разработчики Spark-приложений знают, что есть два подхода к программной отправке заданий в кластер Apache Spark, и каждый из них имеет некоторые ограничения для достижения взаимодействия в реальном времени: spark-submit и spark-shell.
Однако, на практике бывают случаи, что надо отправлять Spark-задания в интерактивном режиме из веб- или мобильного приложения. При этом кластер Apache Spark размещен в локальной инфраструктуре, а нужно, чтобы много пользователей одновременно потребляли и выполняли тяжелые агрегации с источниками данных со своих мобильных телефонов, веб- или десктопных приложений. В этом случае поможет сервисный подход, Spark-as-a-Service, включая предоставление доступа к источникам данных JDBC/ODBC через резервный сервер Spark или использование Apache Livy - службы, которая позволяет легко взаимодействовать с кластером Apache Spark через REST API.
Для Livy пригодится Python-пакет livyc – он хорошо работает для динамической и асинхронной отправки PySpark-скриптов на сервер Apache Livy, прозрачно взаимодействуя с кластером Apache Spark. https://github.com/Wittline/livyc
GitHub
GitHub - Wittline/livyc: Apache Spark as a Service with Apache Livy Client
Apache Spark as a Service with Apache Livy Client. Contribute to Wittline/livyc development by creating an account on GitHub.
👍2
🗣7 инструментов распознавания речи
Чтобы разработать собственную ML-систему распознавания речи, можно воспользоваться следующими фреймворками и библиотеками:
• wav2letter – open-course набор инструментов с открытым исходным кодом от Facebook AI Research, объединенный с более крупной библиотекой под названием Flashlight https://github.com/flashlight/wav2letter
• DeepSpeech на базе Baidu DeepSpeech, который помоможет расшифровать аудиофайл, используя предварительно обученные модели, или настроить/обучить пользовательский набор данных https://deepspeech.readthedocs.io/en/r0.9/?badge=latest
• TensorFlowASR – пакет с открытым исходным кодом от Tensorflow реализует некоторые эталонные модели, обученные с использованием RNN с CTC https://github.com/TensorSpeech/TensorFlowASR
• OpenSeq2Seq - исследовательский проект от NVIDIA по проблемам преобразования последовательностей в последовательности https://github.com/NVIDIA/OpenSeq2Seq/blob/master/Streaming-ASR.ipynb
• SpeechRecognition - проект предоставляет доступ к нескольким моделям автоматического распознавания речи, включая оболочки для речевых API от Google, Microsoft Azure и IBM https://github.com/Uberi/speech_recognition
Также отметим 2 готовых сервиса, которые предоставляют API для доступа к возможностям сервисов, от распознавания речи до генерации «естественных» голосовых данных:
• SmartSpeech от СберDevices https://sberdevices.ru/smartspeech/
• Yandex SpeechKit от Яндекса https://cloud.yandex.ru/services/speechkit
Чтобы разработать собственную ML-систему распознавания речи, можно воспользоваться следующими фреймворками и библиотеками:
• wav2letter – open-course набор инструментов с открытым исходным кодом от Facebook AI Research, объединенный с более крупной библиотекой под названием Flashlight https://github.com/flashlight/wav2letter
• DeepSpeech на базе Baidu DeepSpeech, который помоможет расшифровать аудиофайл, используя предварительно обученные модели, или настроить/обучить пользовательский набор данных https://deepspeech.readthedocs.io/en/r0.9/?badge=latest
• TensorFlowASR – пакет с открытым исходным кодом от Tensorflow реализует некоторые эталонные модели, обученные с использованием RNN с CTC https://github.com/TensorSpeech/TensorFlowASR
• OpenSeq2Seq - исследовательский проект от NVIDIA по проблемам преобразования последовательностей в последовательности https://github.com/NVIDIA/OpenSeq2Seq/blob/master/Streaming-ASR.ipynb
• SpeechRecognition - проект предоставляет доступ к нескольким моделям автоматического распознавания речи, включая оболочки для речевых API от Google, Microsoft Azure и IBM https://github.com/Uberi/speech_recognition
Также отметим 2 готовых сервиса, которые предоставляют API для доступа к возможностям сервисов, от распознавания речи до генерации «естественных» голосовых данных:
• SmartSpeech от СберDevices https://sberdevices.ru/smartspeech/
• Yandex SpeechKit от Яндекса https://cloud.yandex.ru/services/speechkit
GitHub
GitHub - flashlight/wav2letter: Facebook AI Research's Automatic Speech Recognition Toolkit
Facebook AI Research's Automatic Speech Recognition Toolkit - flashlight/wav2letter
👍4🔥3
#тест
ACID-требования к транзакциям полностью поддерживают
ACID-требования к транзакциям полностью поддерживают
Anonymous Quiz
16%
все базы данных
54%
только реляционные базы данных
10%
только NoSQL-базы данных
20%
только OLTP-базы
🔥3
🙌🏼7 платформ федеративного ML
Федеративное обучение также называют совместным, поскольку ML-модели обучаются на нескольких децентрализованных периферийных устройствах или серверах, содержащих локальные выборки данных, без обмена ими. Этот подход отличается от традиционных централизованных ML-методов, когда все локальные наборы данных загружаются на один сервер, а также от более классических децентрализованных подходов с одинаковом распределением локальных данных. Сегодня федеративное обучение активно применяется в оборонной промышленности, телекоммуникациях, фармацевтике и платформах Интернета вещей.
Впервые идеи федеративного Machine Learning были представлены Google в 2017 году для улучшения прогнозирования текста на мобильной клавиатуре с использованием моделей машинного обучения, обученных на основе данных с нескольких устройств. В федеративном ML модели обучаются на нескольких локальных датасетах на локальных узлах без явного обмена данными, но с переодическим обменом параметрами, например, весами и смещениями глубокой нейросети между локальными узлами для создания общей глобальной модели. В отличие от распределенного обучения, изначально направленного на распараллеливание вычислений, федеративное нацелено на обучение разнородным наборам данных. В федеративном ML наборы данных обычно сильно неоднородны по размеру. А клиенты, т.е. конечные устройства, где обучаются локальные модели, могут быть ненадежными и больше подвержены сбоям, чем в системах распределенного обучения, где узлами являются центры обработки данных с мощными вычислительными возможностями. Поэтому, чтобы обеспечить распределенные вычисления и синхронизацию его результатов, федеративное ML требует частого обмена данными между узлами.
Из-за своих архитектурных особенностей федеративное ML имеет ряд недостатков:
• неоднородность между различными локальными наборами данных - каждый узел имеет погрешность по отношению к генеральной совокупности, а размеры выборок могут значительно различаться;
• временная неоднородность - распределение каждого локального датасета меняется со временем;
• необходимо обеспечить совместимость набора данных на всех узлах;
• скрытие обучающих датасетов чревато риском внедрения уязвимостей в глобальную модель;
• отсутствие доступа к глобальным обучающим данным затрудняет выявление нежелательных предубеждений во входных данных для обучения;
• есть риск потери обновлений локальных ML-моделей из-за сбоев на отдельных узлах, что может повлиять на глобальную модель.
Сегодня федеративное ML поддерживается следующими платформами:
• FATE (Federated AI Technology Enabler) https://fate.fedai.org/
• Substra https://www.substra.ai/
• Python-библиотеки PySyft и PyGrid https://github.com/OpenMined/PySyft, https://github.com/OpenMined/PyGrid, https://github.com/OpenMined/pygrid-admin
• Open FL https://github.com/intel/openfl
• TensorFlow Federated (TFF) https://www.tensorflow.org/federated
• IBM Federated Learning https://ibmfl.mybluemix.net/
• NVIDIA CLARA https://developer.nvidia.com/clara
Федеративное обучение также называют совместным, поскольку ML-модели обучаются на нескольких децентрализованных периферийных устройствах или серверах, содержащих локальные выборки данных, без обмена ими. Этот подход отличается от традиционных централизованных ML-методов, когда все локальные наборы данных загружаются на один сервер, а также от более классических децентрализованных подходов с одинаковом распределением локальных данных. Сегодня федеративное обучение активно применяется в оборонной промышленности, телекоммуникациях, фармацевтике и платформах Интернета вещей.
Впервые идеи федеративного Machine Learning были представлены Google в 2017 году для улучшения прогнозирования текста на мобильной клавиатуре с использованием моделей машинного обучения, обученных на основе данных с нескольких устройств. В федеративном ML модели обучаются на нескольких локальных датасетах на локальных узлах без явного обмена данными, но с переодическим обменом параметрами, например, весами и смещениями глубокой нейросети между локальными узлами для создания общей глобальной модели. В отличие от распределенного обучения, изначально направленного на распараллеливание вычислений, федеративное нацелено на обучение разнородным наборам данных. В федеративном ML наборы данных обычно сильно неоднородны по размеру. А клиенты, т.е. конечные устройства, где обучаются локальные модели, могут быть ненадежными и больше подвержены сбоям, чем в системах распределенного обучения, где узлами являются центры обработки данных с мощными вычислительными возможностями. Поэтому, чтобы обеспечить распределенные вычисления и синхронизацию его результатов, федеративное ML требует частого обмена данными между узлами.
Из-за своих архитектурных особенностей федеративное ML имеет ряд недостатков:
• неоднородность между различными локальными наборами данных - каждый узел имеет погрешность по отношению к генеральной совокупности, а размеры выборок могут значительно различаться;
• временная неоднородность - распределение каждого локального датасета меняется со временем;
• необходимо обеспечить совместимость набора данных на всех узлах;
• скрытие обучающих датасетов чревато риском внедрения уязвимостей в глобальную модель;
• отсутствие доступа к глобальным обучающим данным затрудняет выявление нежелательных предубеждений во входных данных для обучения;
• есть риск потери обновлений локальных ML-моделей из-за сбоев на отдельных узлах, что может повлиять на глобальную модель.
Сегодня федеративное ML поддерживается следующими платформами:
• FATE (Federated AI Technology Enabler) https://fate.fedai.org/
• Substra https://www.substra.ai/
• Python-библиотеки PySyft и PyGrid https://github.com/OpenMined/PySyft, https://github.com/OpenMined/PyGrid, https://github.com/OpenMined/pygrid-admin
• Open FL https://github.com/intel/openfl
• TensorFlow Federated (TFF) https://www.tensorflow.org/federated
• IBM Federated Learning https://ibmfl.mybluemix.net/
• NVIDIA CLARA https://developer.nvidia.com/clara
Fate
HOME
An Industrial Grade
Federated Learning Framework
support federated learning architectures and secure computation of any machine learning algorithms
Federated Learning Framework
support federated learning architectures and secure computation of any machine learning algorithms
🔥2
🙌🏼Вычислительная сложность ML-алгоритмов
Когда объем данных невелик, почти любой ML-алгоритм дает приемлемую точность и подходит для решения соответствующей задачи. Но когда объем и размер данных становятся большими, нужно выбирать для обучения ML-модели такой алгоритм, который не требует слишком много вычислительных ресурсов. Лучше выбрать простой или менее затратный в вычислительном отношении алгоритм, чем алгоритм, требующий больших вычислительных ресурсов, когда точность прогнозирования и сложность выполнения аналогичны или даже немного хуже.
Выбор алгоритма зависит от следующих факторов:
• порядок времени (Time Complexity), необходимого для вычисления алгоритма - функция параметров, связанных с данными, самого алгоритма, объема и количества фич
• сложность вычислительного пространства (Space Complexity) - порядок пространства, требуемый во время вычисления алгоритма - функция параметров, связанных с алгоритмом, таких как количество фичей, коэффициентов, скрытых слоев нейросети. Сложность пространства включает в себя как размер входных данных, так и вспомогательное пространство (Auxiliary Space), используемое алгоритмом во время выполнения;.
Например, сортировка слиянием (Mergesort) имеет вспомогательное пространство 𝑂(𝑛) и пространственную сложность 𝑂(𝑛), а быстрая сортировка (Quicksort) имеет вспомогательное пространство 𝑂(1) и пространственную сложность 𝑂(𝑛). В итоге и сортировка слиянием, и быстрая сортировка имеют временную сложность 𝑂(𝑛log𝑛).
https://medium.com/datadailyread/computational-complexity-of-machine-learning-algorithms-16e7ffcafa7d
Когда объем данных невелик, почти любой ML-алгоритм дает приемлемую точность и подходит для решения соответствующей задачи. Но когда объем и размер данных становятся большими, нужно выбирать для обучения ML-модели такой алгоритм, который не требует слишком много вычислительных ресурсов. Лучше выбрать простой или менее затратный в вычислительном отношении алгоритм, чем алгоритм, требующий больших вычислительных ресурсов, когда точность прогнозирования и сложность выполнения аналогичны или даже немного хуже.
Выбор алгоритма зависит от следующих факторов:
• порядок времени (Time Complexity), необходимого для вычисления алгоритма - функция параметров, связанных с данными, самого алгоритма, объема и количества фич
• сложность вычислительного пространства (Space Complexity) - порядок пространства, требуемый во время вычисления алгоритма - функция параметров, связанных с алгоритмом, таких как количество фичей, коэффициентов, скрытых слоев нейросети. Сложность пространства включает в себя как размер входных данных, так и вспомогательное пространство (Auxiliary Space), используемое алгоритмом во время выполнения;.
Например, сортировка слиянием (Mergesort) имеет вспомогательное пространство 𝑂(𝑛) и пространственную сложность 𝑂(𝑛), а быстрая сортировка (Quicksort) имеет вспомогательное пространство 𝑂(1) и пространственную сложность 𝑂(𝑛). В итоге и сортировка слиянием, и быстрая сортировка имеют временную сложность 𝑂(𝑛log𝑛).
https://medium.com/datadailyread/computational-complexity-of-machine-learning-algorithms-16e7ffcafa7d
Medium
Computational Complexity of Machine Learning Algorithms
Pick the right algorithm for your data
👍1
#тест
Избежать переобучения ML-модели на большом объеме сильно зашумленных входных данных, выделив наиболее значимые фичи, поможет
Избежать переобучения ML-модели на большом объеме сильно зашумленных входных данных, выделив наиболее значимые фичи, поможет
Anonymous Quiz
42%
регуляризация L1
23%
регуляризация L2
20%
нормализация
14%
фильтрация
👍6🤔6
👍ТОП-4 совета по dbt для дата-аналитика и инженера данных
dbt (data build tool) — это фреймворк с открытым исходным кодом для выполнения, тестирования и документирования SQL-запросов, который позволяет автоматизировать процесс анализа данных, включая структурирование и написание запросов, их поиск, вложенные вызовы, запуск по расписание, документирование и тестирование. Например, можно использовать dbt CLI или dbt Cloud для работы с конвейером данных, чтобы извлекать, преобразовывать и загружать данные в хранилище, создавая БД с динамической архитектурой по расписанию. Повысить эффективность применения dbt для тестирования динамически создаваемых схем, источников и моделей данных помогут следующие советы:
• файл Schema.yml может находиться только в папке моделей dbt. Инструмент позволяет создать модульный тест, который за считанные секунды проверяет столбцы на наличие нулевых значений.
• В тестах данных dbt есть строгое правило, согласно которому они должны возвращать нулевые строки, чтобы пройти тест. Вместо поиска значения, такого как сумма определенного набора строк, тест данных должен быть написан так, чтобы он ожидал найти нулевые строки, если результаты не равны правильному значению суммы. Поэтому при разработке теста данных надо сразу думать, как вернуть 0 строк в рассматриваемом кейсе, но при этом проверить нужное число. Можно использовать операторы != или <= для проверки данных.
• Повысить скорость тестирования можно, увеличив количество потоков в профиле проекта, в файле profiles.yml. Например, если есть 30 тестов, понадобится 40 потоков, определенных в файле profiles.yml. Это позволит запустить 30 тестов данных и схемы за 4 секунды.
• Каждому тесту нужно осмысленное имя. Хотя dbt автоматически присваивает имена тестам схемы, рекомендуется пометить их самостоятельно. Поскольку dbt не дает большого контроля над запуском небольших наборов тестов, нужно иметь возможность видеть все имена запущенных тестов. Аналогично тому, как разработчикам рекомендуют называть функции и переменные семантически понятными именами, так и в тестировании нужно давать тестам осмысленные имена. Иначе во время выполнения тестов будет трудно определить, какой из них прошел или не прошел проверку. При запуске команды тестирования в dbt, все тесты схемы и данных будут выполняться вместе. Нельзя просто запустить один каталог в папке тестов данных, но можно именовать их «тест dbt — схема» или «тест dbt — данные», чтобы быстро определять, какие тесты надо запустить.
https://corissa-haury.medium.com/4-quick-facts-about-dbt-testing-5c32b487b8cd
dbt (data build tool) — это фреймворк с открытым исходным кодом для выполнения, тестирования и документирования SQL-запросов, который позволяет автоматизировать процесс анализа данных, включая структурирование и написание запросов, их поиск, вложенные вызовы, запуск по расписание, документирование и тестирование. Например, можно использовать dbt CLI или dbt Cloud для работы с конвейером данных, чтобы извлекать, преобразовывать и загружать данные в хранилище, создавая БД с динамической архитектурой по расписанию. Повысить эффективность применения dbt для тестирования динамически создаваемых схем, источников и моделей данных помогут следующие советы:
• файл Schema.yml может находиться только в папке моделей dbt. Инструмент позволяет создать модульный тест, который за считанные секунды проверяет столбцы на наличие нулевых значений.
• В тестах данных dbt есть строгое правило, согласно которому они должны возвращать нулевые строки, чтобы пройти тест. Вместо поиска значения, такого как сумма определенного набора строк, тест данных должен быть написан так, чтобы он ожидал найти нулевые строки, если результаты не равны правильному значению суммы. Поэтому при разработке теста данных надо сразу думать, как вернуть 0 строк в рассматриваемом кейсе, но при этом проверить нужное число. Можно использовать операторы != или <= для проверки данных.
• Повысить скорость тестирования можно, увеличив количество потоков в профиле проекта, в файле profiles.yml. Например, если есть 30 тестов, понадобится 40 потоков, определенных в файле profiles.yml. Это позволит запустить 30 тестов данных и схемы за 4 секунды.
• Каждому тесту нужно осмысленное имя. Хотя dbt автоматически присваивает имена тестам схемы, рекомендуется пометить их самостоятельно. Поскольку dbt не дает большого контроля над запуском небольших наборов тестов, нужно иметь возможность видеть все имена запущенных тестов. Аналогично тому, как разработчикам рекомендуют называть функции и переменные семантически понятными именами, так и в тестировании нужно давать тестам осмысленные имена. Иначе во время выполнения тестов будет трудно определить, какой из них прошел или не прошел проверку. При запуске команды тестирования в dbt, все тесты схемы и данных будут выполняться вместе. Нельзя просто запустить один каталог в папке тестов данных, но можно именовать их «тест dbt — схема» или «тест dbt — данные», чтобы быстро определять, какие тесты надо запустить.
https://corissa-haury.medium.com/4-quick-facts-about-dbt-testing-5c32b487b8cd
Medium
4 Quick Facts About dbt Testing
You may be using dbt CLI or dbt Cloud for your data pipeline work to Extract, Transform, and Load data into a warehouse by creating…
👍2
🚀 @machinelearning_interview - здесь мы собираем все возможные вопросы и ответы с собеседований по Машинному обучению, нейронным сетям и Глубокому обучению. Для всех уровней разработчиков при поддержке авторов популярного канала Machine learning. Канал реально поможет пройти data science собеседование.
🔥3
🔥Нужен MLOps на Python? Легко с PyMLPipe!
PyMLPipe - это легковесный Python-пакет для MLOps-процессов. Он помогает автоматизировать:
• Мониторинг модели и схемы данных
• Версионирование ML-модели и данных
• Сравнение производительности моделей
• Развертывание API в один клик
Эта библиотека с открытым исходным кодом поддерживает Scikit-Learn, XGBoost, LightGBM и Pytorch. Она имеет модульную структуру, представленную набором Python-функций, упакованных в API, и наглядный GUI. PyMLPipe отлично подходит для работы с табличными данными.
https://neelindresh.github.io/pymlpipe.documentation.io/
PyMLPipe - это легковесный Python-пакет для MLOps-процессов. Он помогает автоматизировать:
• Мониторинг модели и схемы данных
• Версионирование ML-модели и данных
• Сравнение производительности моделей
• Развертывание API в один клик
Эта библиотека с открытым исходным кодом поддерживает Scikit-Learn, XGBoost, LightGBM и Pytorch. Она имеет модульную структуру, представленную набором Python-функций, упакованных в API, и наглядный GUI. PyMLPipe отлично подходит для работы с табличными данными.
https://neelindresh.github.io/pymlpipe.documentation.io/
neelindresh.github.io
PyMLPipe
None
🔥4👏1
🌸🌤В последний месяц лета 2022 можно успеть на следующие ивенты:
3 августа - вебинар «Возможности Yandex SpeechKit и голосовых роботов МТТ VoiceBox». Онлайн, 16:00 МСК https://cloud.yandex.ru/events/593
4 августа - митап «Виртуализация на отечественном: готовы ли отечественные решения к применению в реальных проектах?». Москва, StartHub.Moscow Красный Октябрь, Берсеневская набережная д. 6, с. 3, этаж 4 https://meetup.jet.su/virtualization
4 августа - вебинар "Public cloud на российской виртуализации vStack: обзор и сценарии применения". Онлайн, 11:00 МСК https://itglobal.com/ru-ru/company/events/public-cloud-na-rossijskoj-virtualizaczii-vstack-obzor-i-sczenarii-primeneniya/
5-7 августа - хакатон DATA HACK от компании SENSE Group, ГК «Иннотех» и «Акселератор Возможностей» при ИНТЦ МГУ «Воробьёвы Горы». Кейсы: разработка статического анализатора Spark SQL-кода, разработка генератора фейковых данных для сложных запросов, создание прототипа ETL-движка из Postgres, Oracle, ClickHouse в HDFS на Spark, который будет шаблонизирован через конфигурацию. Регистрация до 01.08.2022. Призовой фонд — 300 000 рублей, а также специальные призы и подарки от партнёров. https://data-hack.ru/
11 августа – вебинар «Управляемый сервис YDB: настройка, применение, мониторинг». Онлайн, 21:00 МСК. https://cloud.yandex.ru/events/597
13 августа - Auto Tech Challenge 2022 - технологический конкурс, призванный найти инновационные решения для автомобильной промышленности и внедрить востребованные продукты и сервисы в корпорации. Конкурс проводится под эгидой группы «ГАЗ», с привлечением экспертов из «Меркатор Холдинг», «АИР Магистраль», НТИ «Автонет», МГТУ им. Н. Э. Баумана и Московского политехнического университета. https://i.moscow/tech_contests/autotech2022
3 августа - вебинар «Возможности Yandex SpeechKit и голосовых роботов МТТ VoiceBox». Онлайн, 16:00 МСК https://cloud.yandex.ru/events/593
4 августа - митап «Виртуализация на отечественном: готовы ли отечественные решения к применению в реальных проектах?». Москва, StartHub.Moscow Красный Октябрь, Берсеневская набережная д. 6, с. 3, этаж 4 https://meetup.jet.su/virtualization
4 августа - вебинар "Public cloud на российской виртуализации vStack: обзор и сценарии применения". Онлайн, 11:00 МСК https://itglobal.com/ru-ru/company/events/public-cloud-na-rossijskoj-virtualizaczii-vstack-obzor-i-sczenarii-primeneniya/
5-7 августа - хакатон DATA HACK от компании SENSE Group, ГК «Иннотех» и «Акселератор Возможностей» при ИНТЦ МГУ «Воробьёвы Горы». Кейсы: разработка статического анализатора Spark SQL-кода, разработка генератора фейковых данных для сложных запросов, создание прототипа ETL-движка из Postgres, Oracle, ClickHouse в HDFS на Spark, который будет шаблонизирован через конфигурацию. Регистрация до 01.08.2022. Призовой фонд — 300 000 рублей, а также специальные призы и подарки от партнёров. https://data-hack.ru/
11 августа – вебинар «Управляемый сервис YDB: настройка, применение, мониторинг». Онлайн, 21:00 МСК. https://cloud.yandex.ru/events/597
13 августа - Auto Tech Challenge 2022 - технологический конкурс, призванный найти инновационные решения для автомобильной промышленности и внедрить востребованные продукты и сервисы в корпорации. Конкурс проводится под эгидой группы «ГАЗ», с привлечением экспертов из «Меркатор Холдинг», «АИР Магистраль», НТИ «Автонет», МГТУ им. Н. Э. Баумана и Московского политехнического университета. https://i.moscow/tech_contests/autotech2022
yandex.cloud
Возможности Yandex SpeechKit и голосовых роботов МТТ VoiceBox
Вебинар о технологиях Yandex SpeechKit и возможностях голосовых роботов МТТ VoiceBox.
🔥3
🗣Дата-аналитики говорят на SQL. Как им понять друг друга?
Каждый аналитик знает 5 правил форматирования SQL-запросов, чтобы их было легче читать:
• Писать ключевые слова (SELECT, FROM и WHERE) с новой строки без отступа
• Писать имя каждого столбца после SELECT с новой строки
• Делать отступы перед элементами условий с новой строки
• Писать подзапросы в круглых скобках с новой строки и отступами
• Писать каждое условие оператора Case с новой строки
Однако, на практике не все следуют этим простым правилам. Разумеется, специализированные IDE берут на себя функцию форматирования, например, в Visual Studio Code есть встроенные возможности форматирования запросов, и возможность подключения внешних плагинов типа SQLTools или SqlBeautifier. А если нужно прочитать 3-х этажный запрос от коллеги, представленный в виде плоского текста, помогут онлайн-форматеры, которые приведут текст SQL-запроса к читаемому виду:
• https://codebeautify.org/sqlformatter
• https://www.freeformatter.com/sql-formatter.html
• https://sqlformat.org/
Каждый аналитик знает 5 правил форматирования SQL-запросов, чтобы их было легче читать:
• Писать ключевые слова (SELECT, FROM и WHERE) с новой строки без отступа
• Писать имя каждого столбца после SELECT с новой строки
• Делать отступы перед элементами условий с новой строки
• Писать подзапросы в круглых скобках с новой строки и отступами
• Писать каждое условие оператора Case с новой строки
Однако, на практике не все следуют этим простым правилам. Разумеется, специализированные IDE берут на себя функцию форматирования, например, в Visual Studio Code есть встроенные возможности форматирования запросов, и возможность подключения внешних плагинов типа SQLTools или SqlBeautifier. А если нужно прочитать 3-х этажный запрос от коллеги, представленный в виде плоского текста, помогут онлайн-форматеры, которые приведут текст SQL-запроса к читаемому виду:
• https://codebeautify.org/sqlformatter
• https://www.freeformatter.com/sql-formatter.html
• https://sqlformat.org/
Medium
SQL 101: How To Format Queries The Right Way
Five Rules Of Thumb For Beginners Who Want To Write Clean SQL
👍7
👍4 утилиты для работы с JSON-файлами
Hadoop и Spark, самые популярные фреймворки стека Big Data предназначены для работы с большими данными – файлами большого размера. Но часто нужно обработать много маленьких файлов, например, в формате JSON, которые в Hadoop HDFS будут распределены по множеству блоков данных и разделов. Количество разделов определяет количество задач, поскольку 1 задача может обрабатывать только 1 раздел за раз. Это будет большая нагрузка для Application Master и замедляет работу всего кластера. Кроме того, большая часть времени при этом тратится только на открытие и закрытие файлов, а не на чтение данных из файла.
Поэтому целесообразно объединить множество маленьких файлов в 1 большой, который Hadoop и Spark сможет обработать очень быстро. В случае JSON-файлов сделать такое объединение в массив записей помогут следующие утилиты:
• jq – часто используется для фильтрации и обработки входящих данных JSON, отлично подходит для анализа и обработки существующих данных https://stedolan.github.io/jq/
• jo - позволяет создавать структуры данных JSON проще и быстрее, чем вручную https://github.com/jpmens/jo
• json_pp – может отображать объекты JSON в более удобном формате, а также конвертировать их между разными форматам https://github.com/deftek/json_pp
• jshon - парсер JSON с возможностями быстрого анализа больших объемов данных http://kmkeen.com/jshon/
https://sidk17.medium.com/boss-we-have-a-large-number-of-small-files-now-how-to-process-these-files-ee27f67dc461
Hadoop и Spark, самые популярные фреймворки стека Big Data предназначены для работы с большими данными – файлами большого размера. Но часто нужно обработать много маленьких файлов, например, в формате JSON, которые в Hadoop HDFS будут распределены по множеству блоков данных и разделов. Количество разделов определяет количество задач, поскольку 1 задача может обрабатывать только 1 раздел за раз. Это будет большая нагрузка для Application Master и замедляет работу всего кластера. Кроме того, большая часть времени при этом тратится только на открытие и закрытие файлов, а не на чтение данных из файла.
Поэтому целесообразно объединить множество маленьких файлов в 1 большой, который Hadoop и Spark сможет обработать очень быстро. В случае JSON-файлов сделать такое объединение в массив записей помогут следующие утилиты:
• jq – часто используется для фильтрации и обработки входящих данных JSON, отлично подходит для анализа и обработки существующих данных https://stedolan.github.io/jq/
• jo - позволяет создавать структуры данных JSON проще и быстрее, чем вручную https://github.com/jpmens/jo
• json_pp – может отображать объекты JSON в более удобном формате, а также конвертировать их между разными форматам https://github.com/deftek/json_pp
• jshon - парсер JSON с возможностями быстрого анализа больших объемов данных http://kmkeen.com/jshon/
https://sidk17.medium.com/boss-we-have-a-large-number-of-small-files-now-how-to-process-these-files-ee27f67dc461
GitHub
GitHub - jpmens/jo: JSON output from a shell
JSON output from a shell. Contribute to jpmens/jo development by creating an account on GitHub.
👍5
👀Нужны данные для обучения ML-модели? Сгенерируй сам: 3 Python-пакета для генерации синтетических данных
Синтетические данные – это искусственно сгенерированный, а не собранный датасет по определенной тематике для обучения ML-модели или отработки техник анализа. Их можно создать самостоятельно, используя следующие Python-пакеты:
• Faker — очень простой и интуитивно понятный Python-пакет для генерации синтетических данных. Он отлично подойдет, когда нужно загрузить данные в базу, создать образцы XML-документов, подготовиться к нагрузочному тестированию или анонимизировать данные, полученные из реальных сервисов. https://github.com/joke2k/faker
• SDV (Synthetic Data Vault) — синтетическое хранилище данных для создания синтетических данных на основе заданного датасета. Сгенерированные данные могут быть одной таблицей, несколькими таблицами или временными рядами, и имеют те же свойства и статистику, что и исходный датасет. SDV генерирует синтетические данные с помощью DL-моделей. Даже если исходный датасет содержит несколько типов данных и пропуски, SDV обработает их. https://sdv.dev/SDV/
• Gretel Synthetics - пакет с открытым исходным кодом на базе рекуррентной нейронной сети для генерации структурированных и неструктурированных данных. Пакетный подход рассматривает набор данных как текстовые данные и обучает модель на их основе. Затем модель будет создавать синтетические данные с текстовыми данными. Поскольку Gretel основан на RNN-сетях, он требует больше вычислительной мощности, поэтому при работе с ним лучше использовать Google Colab, а не грузить личный компьютер. https://synthetics.docs.gretel.ai/en/stable/
Синтетические данные – это искусственно сгенерированный, а не собранный датасет по определенной тематике для обучения ML-модели или отработки техник анализа. Их можно создать самостоятельно, используя следующие Python-пакеты:
• Faker — очень простой и интуитивно понятный Python-пакет для генерации синтетических данных. Он отлично подойдет, когда нужно загрузить данные в базу, создать образцы XML-документов, подготовиться к нагрузочному тестированию или анонимизировать данные, полученные из реальных сервисов. https://github.com/joke2k/faker
• SDV (Synthetic Data Vault) — синтетическое хранилище данных для создания синтетических данных на основе заданного датасета. Сгенерированные данные могут быть одной таблицей, несколькими таблицами или временными рядами, и имеют те же свойства и статистику, что и исходный датасет. SDV генерирует синтетические данные с помощью DL-моделей. Даже если исходный датасет содержит несколько типов данных и пропуски, SDV обработает их. https://sdv.dev/SDV/
• Gretel Synthetics - пакет с открытым исходным кодом на базе рекуррентной нейронной сети для генерации структурированных и неструктурированных данных. Пакетный подход рассматривает набор данных как текстовые данные и обучает модель на их основе. Затем модель будет создавать синтетические данные с текстовыми данными. Поскольку Gretel основан на RNN-сетях, он требует больше вычислительной мощности, поэтому при работе с ним лучше использовать Google Colab, а не грузить личный компьютер. https://synthetics.docs.gretel.ai/en/stable/
GitHub
GitHub - joke2k/faker: Faker is a Python package that generates fake data for you.
Faker is a Python package that generates fake data for you. - joke2k/faker
👍7
Forwarded from Digital Dinner
This media is not supported in your browser
VIEW IN TELEGRAM
Фантазии нейросети на стихи А.С. Пушкина
Видео сделано в DALL-E 2.
Озвучено нейросетью через сервис для озвучки текста - CyberVoice – генератор голоса на основе ИИ.
На данный момент использовать можно абсолютно бесплатно.
Регистрируемся > заходим в раздел тарифы > выбираем самый дорогой листая вниз (в данный момент всё бесплатно) > меню > свободный текст > новый проект > далее выбираем голос и вводим текст > жмём иконку в виде микрофона.
Голос с видео "Убийца чудовищ".
@digitaldiner
Видео сделано в DALL-E 2.
Озвучено нейросетью через сервис для озвучки текста - CyberVoice – генератор голоса на основе ИИ.
На данный момент использовать можно абсолютно бесплатно.
Регистрируемся > заходим в раздел тарифы > выбираем самый дорогой листая вниз (в данный момент всё бесплатно) > меню > свободный текст > новый проект > далее выбираем голос и вводим текст > жмём иконку в виде микрофона.
Голос с видео "Убийца чудовищ".
@digitaldiner
🔥8
#тест
На каких выборках можно применять t-критерий Стьюдента для проверки статистических гипотез?
На каких выборках можно применять t-критерий Стьюдента для проверки статистических гипотез?
Anonymous Quiz
23%
на любых
65%
на выборках с Гауссовским распределением вероятностей
4%
на выборках с Лаплассовским распределением вероятностей
8%
на выборках с распределением вероятностей по Парето
👍8
😱3 типа аномалий в данных
Дата-аналитики и специалисты по Machine Learning часто сталкиваются с аномалиями в данных – случаями, которые не принадлежат к известному шаблону и выделяются, статистически отличаются от остальных наблюдений. Существует 3 типа аномалий:
• точечная аномалия, когда одна точка данных (наблюдение) в датасете находится далеко от остальных данных и представляет собой экстремум, неравномерность или отклонение, возникающее случайным образом и не связанное с общей закономерностью в данных. Точечная аномалия также известна как глобальный выброс, поскольку она значительно отличается от остального набора данных.
• контекстная аномалия, когда отдельный экземпляр выпадает из рассматриваемого контекста. Например, в случае данных временных рядов, таких как записи определенного количества во времени, контекст является временным. Точки данных, которые сильно отличаются от других данных в том же контексте, называются контекстуальными выбросами. К примеру, когда количество автомобилей, проезжающих через КПП на границе региона в марте, в среднем равно 1 тыс. за последние 20 лет. А в июне, когда стартует отпускной период, это число возрастает до 8 тысяч. Если число достигает 9 тысяч в марте, это будет считаться аномалией, а в летний период – не будет аномалией. Для ритейла характерно наблюдать всплеск числа покупателей в праздничный сезон. Но резкое увеличение продаж вне праздников или распродаж, можно назвать контекстуальным выбросом.
• Коллективная аномалия, когда группа коррелированных, взаимосвязанных или последовательных экземпляров значительно отличается от остальных данных, то эти точки данных в совокупности считаются аномальными. Для данных временных рядов это может выглядеть как типичные пики и спады, происходящие за пределами периода времени, когда сезонная последовательность является обычной, или как набор временных рядов, которые находятся в условиях выброса. Например, когда сразу большое количество компаний демонстрируют падение продаж в одно и то же время, хотя до этого был тренд на повышение.
https://medium.com/datadailyread/types-of-data-anomalies-2f6fb1747eb1
Дата-аналитики и специалисты по Machine Learning часто сталкиваются с аномалиями в данных – случаями, которые не принадлежат к известному шаблону и выделяются, статистически отличаются от остальных наблюдений. Существует 3 типа аномалий:
• точечная аномалия, когда одна точка данных (наблюдение) в датасете находится далеко от остальных данных и представляет собой экстремум, неравномерность или отклонение, возникающее случайным образом и не связанное с общей закономерностью в данных. Точечная аномалия также известна как глобальный выброс, поскольку она значительно отличается от остального набора данных.
• контекстная аномалия, когда отдельный экземпляр выпадает из рассматриваемого контекста. Например, в случае данных временных рядов, таких как записи определенного количества во времени, контекст является временным. Точки данных, которые сильно отличаются от других данных в том же контексте, называются контекстуальными выбросами. К примеру, когда количество автомобилей, проезжающих через КПП на границе региона в марте, в среднем равно 1 тыс. за последние 20 лет. А в июне, когда стартует отпускной период, это число возрастает до 8 тысяч. Если число достигает 9 тысяч в марте, это будет считаться аномалией, а в летний период – не будет аномалией. Для ритейла характерно наблюдать всплеск числа покупателей в праздничный сезон. Но резкое увеличение продаж вне праздников или распродаж, можно назвать контекстуальным выбросом.
• Коллективная аномалия, когда группа коррелированных, взаимосвязанных или последовательных экземпляров значительно отличается от остальных данных, то эти точки данных в совокупности считаются аномальными. Для данных временных рядов это может выглядеть как типичные пики и спады, происходящие за пределами периода времени, когда сезонная последовательность является обычной, или как набор временных рядов, которые находятся в условиях выброса. Например, когда сразу большое количество компаний демонстрируют падение продаж в одно и то же время, хотя до этого был тренд на повышение.
https://medium.com/datadailyread/types-of-data-anomalies-2f6fb1747eb1
Medium
Types of Data Anomalies
Do you know what type of anomalies are you dealing with?
👍9