Что такое SynapseML?

SynapseML (прежнее название — MMLSpark) — это библиотека с открытым кодом, которая упрощает создание конвейеров машинного обучения с активным масштабированием. SynapseML предоставляет простые, составные и распределенные API для различных задач машинного обучения, таких как анализ текста, визуальное распознавание, обнаружение аномалий и многое другое. Библиотека SynapseML создана на платформе распределенных вычислений Apache Spark и использует тот же API, что и библиотека SparkML/MLLib, что позволяет легко внедрять модели SynapseML в существующие рабочие процессы Apache Spark.

С помощью SynapseML можно создавать масштабируемые и интеллектуальные системы для решения задач в таких областях, как обнаружение аномалий, компьютерное зрение, глубокое обучение, анализ текста и другие. SynapseML может обучать и оценивать модели в кластерах компьютеров с одним узлом, несколькими узлами и с гибким изменением размера. Это позволяет масштабировать рабочую нагрузку, не расходуя ресурсы впустую. SynapseML можно использовать с Python, R, Scala, Java и .NET. Кроме того, API этой библиотеки предоставляет абстракцию на основе широкого набора баз данных, файловых систем и облачных хранилищ данных, чтобы упростить эксперименты независимо от расположения данных.

Для SynapseML требуется Scala 2.12, Spark 3.0 и Python 3.6+.

Основные возможности SynapseML

Единый API для создания, обучения и оценки моделей

SynapseML предлагает единый API, который упрощает разработку отказоустойчивых распределенных программ. В частности, SynapseML предоставляет множество различных платформ машинного обучения в рамках одного API, который поддерживает масштабирование, не зависит от данных и языка и работает для приложений пакетной обработки, потоковой передачи и обслуживания.

Единый API стандартизирует множество инструментов, платформ, алгоритмов и упрощает процесс распределенного машинного обучения. Он позволяет разработчикам быстро объединять различные платформы машинного обучения, поддерживает чистоту кода, а также поддерживает рабочие процессы, для которых требуется несколько платформ. Например, для таких рабочих процессов, как обучение в реальном времени с учителем или создание поисковой системы, требуется несколько служб и платформ. SynapseML помогает избавиться от излишней сложности для пользователей.

Использование предварительно созданных интеллектуальных моделей

Многие средства в SynapseML не требуют большого обучающего набора данных с метками. Вместо этого SynapseML предоставляет простые API для предварительно созданных интеллектуальных служб, таких как службы ИИ Azure, для быстрого решения крупномасштабных задач искусственного интеллекта, связанных как с бизнесом, так и с исследованиями. SynapseML позволяет разработчикам внедрить более 50 современных служб машинного обучения непосредственно в свои системы и базы данных. Эти готовые алгоритмы могут анализировать различные документы, транскрибировать беседы с несколькими участниками в реальном времени и переводить текст на более чем 100 различных языков. Дополнительные примеры использования предварительно созданного искусственного интеллекта для быстрого решения задач см. в разделе Примеры "cognitive" SynapseML.

Чтобы обеспечить быструю и эффективную интеграцию SynapseML со службами ИИ Azure, в SynapseML реализовано множество оптимизаций для рабочих процессов, ориентированных на службы. В частности, SynapseML автоматически анализирует общие ответы регулирования, чтобы гарантировать, что задания не перегружают внутренние службы. Кроме того, она использует экспоненциальные задержки для обработки ненадежных сетевых подключений и неудачных ответов. Наконец, рабочие машины Spark остаются заняты новыми примитивами асинхронного параллелизма для Spark. Асинхронный параллелизм позволяет рабочим машинам отправлять запросы во время ожидания ответа от сервера и может обеспечить десятикратное увеличение пропускной способности.

Широкая совместимость экосистем с ONNX

SynapseML позволяет разработчикам использовать модели из различных экосистем машинного обучения с помощью платформы Open Neural Network Exchange (ONNX). Благодаря этой интеграции вы можете выполнять различные классические модели обучения и модели глубокого обучения в большом масштабе с помощью всего нескольких строк кода. SynapseML автоматически выполняет распределение моделей ONNX на рабочие узлы, пакетную обработку и буферизацию входных данных для высокой пропускной способности и планирование работы с аппаратными ускорителями.

Включение ONNX в Spark не только помогает разработчикам масштабировать модели глубокого обучения, но и обеспечивает распределенный вывод в различных экосистемах машинного обучения. В частности, ONNXMLTools преобразовывает модели из TensorFlow, scikit-learn, Core ML, LightGBM, XGBoost, H2O и PyTorch в ONNX для ускоренного и распределенного вывода с помощью SynapseML.

Создание систем с ответственным использованием ИИ

После создания модели крайне важно, чтобы исследователи и инженеры понимали ее ограничения и поведение перед развертыванием. Библиотека SynapseML помогает разработчикам и исследователям создавать системы с ответственным использованием ИИ, так как в ней внедрены новые инструменты, которые помогают понять, почему модели делают определенные прогнозы и как улучшить обучающий набор данных для устранения смещений. SynapseML значительно ускоряет процесс понимания обученной модели пользователя, позволяя разработчикам распределять вычисления между сотнями компьютеров. В частности, SynapseML включает распределенные реализации Shapley Additive Explanations (SHAP) и Locally Interpretable Model-Agnostic Explanations (LIME) для понимания прогнозов, выполняемых табличными моделями, моделями распознавания текста и визуального распознавания. Эта библиотека также включает такие средства, как Individual Conditional Expectation (ICE) и средства анализа частичной зависимости, для распознаваемых смещенных наборов данных.

Корпоративная поддержка в Azure Synapse Analytics

Библиотека SynapseML общедоступна в Azure Synapse Analytics с корпоративной поддержкой. Вы можете создавать крупномасштабные конвейеры машинного обучения с помощью служб ИИ Azure, LightGBM, ONNX и других выбранных функций SynapseML. Она даже включает шаблоны для быстрого прототипирования распределенных систем машинного обучения, таких как визуальные поисковые системы, конвейеры прогнозного обслуживания, перевод документов и многое другое.

Дальнейшие шаги