Школа Больших Данных
566 subscribers
117 photos
711 links
Канал Школы Больших Данных https://www.bigdataschool.ru/ - обучение технологиям Big Data: разработка приложений и администрирование кластеров Hadoop, Kafka, Spark, NoSQL, Python, ML и DS.
Тел: +7 (495) 41-41-121
Контакты: @Bigdataschool_msk @olga_burykh
Download Telegram
#Spark #ML
🥪Про модель классификации многослойного персептрона в распределенном Big Data фреймворке Apache Spark. Далее про особенности работы алгоритма многослойного персептрона, благодаря которому Apache Spark имеет возможность Big Data анализа и классификации в распределенной среде.
@BigDataSchool_ru
https://spark-school.ru/blogs/spark-multilayer-perceptron/
#ML #DataScience
🧬Как реализовать один из важнейших этапов машинного обучения – Feature Engineering.
Далее: как генерировать признаки для ML-модели с помощью SQL, напрямую обращаясь к источникам данных и хранилищам фич, а также что такое Apache Hivemall и как это работает с Hive и Spark.
@BigDataSchool_ru
https://www.bigdataschool.ru/blog/feature-engineering-on-sql.html
#NLP #ML
🎈Нормализация текста является предварительным этапом в NLP. Почти каждая библиотека предоставляет различные методы нормализации. Поговорим о двух библиотеках spaCy и NLTK, о том как в них проводится нормализация и кто из них быстрее в этом деле.
@BigDataSchool_ru
https://python-school.ru/blog/text-normalization-spacy-vs-nltk/
#DataScience #DevOps #ML #статьи
🪤Скрытый технический долг в ML-системах.

Технический долг - дополнительные затраты, возникающие в долгосрочной перспективе, с которыми сталкивается команда, в результате выбора простых и быстрых вариантов вместо принятия решений, более правильных в долгосрочной перспективе.
Для систем Machine Learning технический долг существует на системном уровне, а не на уровне кода. Поэтому традиционного подхода к техническому долгу, как и в разработке ПО, недостаточно для его устранения: нужны подходы, специфичные для ML.
Технический долг растет при использовании данных не по назначению, что в классической разработке ПО решается ограничением видимости. В Machine Learning также помогает предоставление доступа к данным и моделям только определенным пользователям и командам, а также тщательное управление этими разрешениями.

Далее читайте подробно про техдолг в проектах Machine Learning.
@BigDataSchool_ru
https://www.bigdataschool.ru/blog/mlops-to-eliminate-technical-debt-in-ml-projects.html
#ML #Python #статьи
🤖L1 и L2 регуляризация
В машинном обучении и Data science, регуляризация является важной техникой для управления переобучением модели. Она помогает избежать слишком сложной модели, которая может хорошо подстроиться под обучающие данные, но будет работать плохо на новых данных.
Рассмотрим два основных типа регуляризации: L1 и L2.
Как они работают, и как их можно использовать в Python для создания более надежных моделей в data science.
🔹L1 регуляризация также известна как Lasso (Least Absolute Shrinkage and Selection Operator) регуляризация. Она основана на добавлении штрафа, равного абсолютному значению коэффициентов модели.
L1 регуляризация склонна к отбору признаков, так как она может уменьшить веса признаков до нуля. Это позволяет убрать неинформативные признаки из модели, что может уменьшить сложность модели и улучшить ее обобщающую способность.
🔹Помимо L1 регуляризации, существует также L2 регуляризация (иногда называемая Ridge регуляризацией), которая также применяется в линейной регрессии и многих других моделях.
L2 регуляризация так же добавляет к оптимизационной функции модели штрафную функцию.
Кроме того, L2 регуляризация может помочь в предотвращении переобучения и улучшении обобщающей способности модели, а также в уменьшении влияния шума в данных на модель.

Далее: Реализация L1 и L2 в цикле обучения модели.
@BigDataSchool_ru
https://python-school.ru/blog/regularization-l1-l2/
#MLOps #ML #статьи
👁️‍🗨️Что общего у FastAPI с BentoML и при чем здесь MLOps
С точки зрения промышленной эксплуатации, в проектах машинного обучения следует фокусироваться не только и не столько на точности самих алгоритмов Machine Learning. Огромного внимания требует автоматизация рутинных процессов развертывания и сопровождения ML-моделей, что превратилось в целую концепцию под названием MLOps. Поскольку это направление инженерной науки о данных еще довольно молодое, в нем постоянно появляются новые идеи и инструменты.
В частности, одним из самых популярных MLOps-средств считается FastAPI – высокопроизводительный веб-фреймворк для создания API с помощью стандартной аннотации типов Python 3.6+. ML-инженеры часто используют его для развертывания своих моделей в качестве сервисов API.
Впрочем, FastAPI используется не только в ML-проектах. Этот фреймворк отлично подходит для быстрого создания любых REST-приложений на Python. Его дополнительным преимуществом является автогенерация документации API в формате Swagger (открытый стандарт OpenAPI 3) и JSON Schema. Пример создания такого REST API с тестированием методов в Swagger UI мы описывали в этой статье на блоге нашей Школы прикладного бизнес-анализа.
Возвращаясь к тему MLOps, отметим, что способность FastAPI генерировать документацию поддерживает идеи MLOps, а потому этот фреймворк можно отнести к набору инструментальных средств MLOps-Инженера. Однако, это далеко не единственный инструмент этой категории.
Сюда же относится BentoML – открытая библиотека для быстрого создания MVP систем машинного обучения. Она упрощает создание API методов для доступа к обученной ML-модели и совместима со всеми крупными фреймворками: Tensorflow, Keras, PyTorch, XGBoost, scikit-learn и fastai.
BentoML поддерживает адаптивную микропакетную обработку данных, а также предоставляет функции управления моделью и ее развертывания. BentoML отлично реализует идеи MLOps, позволяя разработчикам ML-моделей использовать лучшие практики DevOps. Специалисты по Data Science и инженеры Machine Learning используют BentoML для ускорения и стандартизации процесса запуска моделей в производство, создавая масштабируемые и высокопроизводительные сервисы машинного обучения. Библиотека поддерживает непрерывное развертывание, мониторинг и сопровождение сервисов в производственной среде. Пример практического использования BentoML мы рассматривали в этом материале.
Отметим общие функции FastAPI и BentoML с точки зрения MLOps:
они оба основаны на Starlette – легковесной ASGI-платформе для создания асинхронных веб-сервисов на Python;
автоматическая документация в Swagger UI согласно открытому стандарту OpenAPI 3;
асинхронные запросы, что позволяет обрабатывать несколько запросов одновременно, а не выполнять их линейно.
Несмотря на схожесть в этих фундаментальных вопросах, ключевые различия между BentoML и FastAPI для MLOps заключаются в сценариях использования, характерных для разработки и развертывания систем машинного обучения, что мы и рассмотрим далее.

@BigDataSchool_ru
https://www.bigdataschool.ru/blog/fastapi-versus-bentoml-for-mlops.html
#bigdata #ML #статьи
🏘️Что такое метод ближайших соседей: ликбез по Machine Learning
В проектах ML и приложениях интеллектуального анализа данных, а также в пространственных и мультимедийных системах часто используется метод ближайших соседей (kNN, k-Nearest Neighbor).
Он представляет собой простейший метрический классификатор, основанный на оценивании сходства объектов. Классифицируемый объект относится к тому классу, которому принадлежат ближайшие к нему объекты обучающей выборки. Этот метод очень чувствителен к диапазону изменений входных переменных. Поэтому перед его применением входные данные следует нормализовать, приведя числовые значения признаков к одинаковой области изменения.
Можно сказать, что метод ближайших соседей является одним из простейших алгоритмов контролируемого машинного обучения, который сохраняет все доступные данные и классифицирует новую точку данных на основе сходства. Будучи непараметрическим алгоритмом, он не делает никаких предположений относительно базовых данных и не обучается сразу на обучающем наборе, а сохраняет его и во время классификации выполняет действие над набором данных.
С математической точки зрения kNN представляет собой классификацию новой точки данных на основании имеющихся k точек, расположенных ближе всего к ней. Благодаря тому, что kNN-модель не выводит дискриминационную функцию из обучающих данных, а только хранит их и учится на этом датасете только во время прогнозирования в реальном времени, метод ближайших соседей работает очень быстро. Он намного быстрее, чем другие алгоритмы Machine Learning, такие как метод опорных векторов (SVM) или линейная регрессия.
Еще одним преимуществом kNN является простота добавления новых данных, поскольку алгоритм не требует обучения перед тем, как делать прогнозы. Наконец, он очень прост в реализации, для которой нужны только 2 параметра: значение k и мера расстояния, например, евклидова или манхэттенская.
Однако, метод ближайших соседей не очень хорошо работает с большими наборами данных из-за высокой стоимости вычислений расстояния между новой точкой и каждой существующей и снижения производительности алгоритма. Также kNN плохо работает с данными большого размера, потому что при большом количестве измерений становится сложно вычислить расстояние в каждом из них. Как уже было отмечено ранее, kNN чувствителен к шуму в наборе данных, пропускам и выбросам. Необходимо провести предварительную подготовку, в частности, заполнить пропуски, удалить выбросы и нормализовать обучающий датасет.
Из наиболее понятных примеров реального применения метода ближайших соседей в практических приложениях можно отметить обнаружение мошеннических транзакций по кредитным картам и разработку рекомендательных систем, чтобы советовать пользователям товары на основе их предпочтений. Поскольку в этих случаях идет обработка огромного количества данных, целесообразно применять kNN-метод с технологиями Big Data, например,  Apache HBase, что мы и рассмотрим далее

@BigDataSchool_ru
https://www.bigdataschool.ru/blog/knn-algorithm-on-data-in-hbase-for-machine-learning.html
#ML #статьи
Развертывание кода

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

Модель обучается в каждой среде: сначала в среде разработки, затем в тестовой среде на ограниченном подмножестве данных в рамках интеграционных тестов, и, наконец, в производственной среде на полных производственных данных для создания окончательной модели.

Основными преимуществами этого подхода являются следующие:
возможность обучать модель на рабочих данных в производственной среде, что особенно важно для компаний, где доступ к производственным данным ограничен;
безопасное автоматическое переобучение модели, поскольку обучающий код проверяется, тестируется и утверждается для производства;
одинаковая схема кода обучения модели, включая этап интеграционного тестирования.

Однако, этот подход предполагает высокий порог входа для специалистов по данным и наличие предопределенных шаблонов для проектов и рабочих процессов.
Кроме того, такой паттерн развертывания основан на необходимости предварительного просмотра результатов обучения в производственной среде специалистами по Data Science, поскольку они обладают знаниями для выявления и устранения проблем, связанных с машинным обучением. Поэтому если необходимо, чтобы модель была обучена на всем производственном наборе данных, можно использовать гибридный подход, развернув код в промежуточной среде, обучив модель, а затем развернув ее в рабочей среде. 

Такой подход снижает затраты на обучение в производственной среде, но увеличивает эксплуатационные расходы на этапе подготовки.

Альтернативой является подход с развертыванием моделей, который мы разберем далее.

@BigDataSchool_ru
https://bigdataschool.ru/blog/mlops-deployment-patterns-on-databricks-lakehouse-platform.html