Лучшие базы данных, поддерживающие машинное обучение в базе данных

Обновление: 20 мая 2021 г.
Лучшие базы данных, поддерживающие машинное обучение в базе данных

В моей статье в августе 2020 года «Как выбрать платформу облачного машинного обучения» я первым советом по выбору платформы был «Будьте ближе к своим данным». Хранение кода рядом с данными необходимо для сохранения низкой задержки, поскольку скорость света ограничивает скорость передачи. В конце концов, машинное обучение, особенно глубокое обучение, имеет тенденцию многократно обрабатывать все ваши данные (каждый раз это называется эпоха).

В то время я сказал, что идеальным случаем для очень больших наборов данных является построение модели, в которой данные уже находятся, так что массовая передача данных не требуется. Некоторые базы данных поддерживают это в ограниченной степени. Возникает естественный вопрос: какие базы данных поддерживают внутреннее машинное обучение и как они это делают? Я буду обсуждать эти базы данных в алфавитном порядке.

Амазонка Redshift

Amazon Redshift - это управляемая служба хранилища данных размером в петабайты, предназначенная для упрощения и рентабельности анализа всех ваших данных с помощью существующих инструментов бизнес-аналитики. Он оптимизирован для наборов данных размером от нескольких сотен гигабайт до петабайта и более и стоит менее 1,000 долларов за терабайт в год.

Amazon Redshift ML разработан, чтобы упростить пользователям SQL создание, обучение и развертывание моделей машинного обучения с помощью команд SQL. Команда CREATE MODEL в Redshift SQL определяет данные, которые будут использоваться для обучения, и целевой столбец, а затем передает данные в Amazon SageMaker Autopilot для обучения через зашифрованную корзину Amazon S3 в той же зоне.

После обучения AutoML Redshift ML компилирует лучшую модель и регистрирует ее как функцию прогнозирования SQL в вашем кластере Redshift. Затем вы можете вызвать модель для вывода, вызвав функцию прогнозирования внутри оператора SELECT.

Обзор: Redshift ML использует SageMaker Autopilot для автоматического создания моделей прогнозирования из данных, которые вы указываете с помощью оператора SQL, который извлекается в корзину S3. Наилучшая найденная функция прогнозирования регистрируется в кластере Redshift.

БлазингSQL

BlazingSQL - это SQL-движок с ускорением на GPU, построенный на основе экосистемы RAPIDS; он существует как проект с открытым исходным кодом и как платная услуга. RAPIDS - это набор программных библиотек и API с открытым исходным кодом, созданный Nvidia, использующий CUDA и основанный на столбчатом формате памяти Apache Arrow. CuDF, часть RAPIDS, представляет собой подобную Pandas библиотеку DataFrame графического процессора для загрузки, объединения, агрегирования, фильтрации и других манипуляций с данными.

Dask - это инструмент с открытым исходным кодом, который может масштабировать пакеты Python на несколько машин. Dask может распределять данные и вычисления по нескольким графическим процессорам в одной системе или в многоузловом кластере. Dask интегрируется с RAPIDS cuDF, XGBoost и RAPIDS cuML для анализа данных и машинного обучения с ускорением на GPU.

Обзор: BlazingSQL может выполнять запросы с ускорением на GPU в озерах данных в Amazon S3, передавать полученные DataFrames в cuDF для обработки данных и, наконец, выполнять машинное обучение с помощью RAPIDS XGBoost и cuML, а также глубокое обучение с помощью PyTorch и TensorFlow.

Облако Google BigQuery

BigQuery - это управляемое хранилище данных Google Cloud размером в петабайты, которое позволяет выполнять аналитику огромных объемов данных почти в реальном времени. BigQuery ML позволяет создавать и выполнять модели машинного обучения в BigQuery с помощью запросов SQL.

BigQuery ML поддерживает линейную регрессию для прогнозирования; бинарная и мультиклассовая логистическая регрессия для классификации; К-средство кластеризации для сегментации данных; матричная факторизация для создания систем товарных рекомендаций; временные ряды для выполнения прогнозов временных рядов, включая аномалии, сезонность и праздники; Модели классификации и регрессии XGBoost; Глубокие нейронные сети на основе TensorFlow для моделей классификации и регрессии; Таблицы AutoML; и импорт модели TensorFlow. Вы можете использовать модель с данными из нескольких наборов данных BigQuery для обучения и прогнозирования. BigQuery ML не извлекает данные из хранилища данных. Вы можете выполнять проектирование функций с помощью BigQuery ML, используя предложение TRANSFORM в своем операторе CREATE MODEL.

Резюме: BigQuery ML предоставляет большую часть возможностей машинного обучения Google Cloud в хранилище данных BigQuery с синтаксисом SQL без извлечения данных из хранилища данных.

IBM DB2 Warehouse

IBM Db2 Warehouse on Cloud — это управляемая общедоступная облачная служба. Вы также можете настроить IBM Db2 Warehouse локально на собственном оборудовании или в частном облаке. В качестве хранилища данных оно включает в себя такие функции, как обработка данных в памяти и столбчатые таблицы для онлайн-аналитической обработки. Это Netezza technology предоставляет надежный набор аналитики, предназначенный для эффективного преобразования запроса в данные. Ряд библиотек и функций помогут вам получить именно ту информацию, которая вам нужна.

Db2 Warehouse поддерживает машинное обучение в базе данных на Python, R и SQL. ИДАКС модуль содержит аналитические хранимые процедуры, включая дисперсионный анализ, правила ассоциации, преобразование данных, деревья решений, диагностические меры, дискретизацию и моменты, кластеризацию K-средних, k-ближайших соседей, линейную регрессию, управление метаданными, наивную байесовскую классификацию, анализ главных компонентов, распределения вероятностей, случайная выборка, деревья регрессии, последовательные шаблоны и правила, а также параметрическая и непараметрическая статистика.

Обзор: IBM Db2 Warehouse включает в себя широкий набор аналитики SQL в базе данных, который включает некоторые базовые функции машинного обучения, а также поддержку R и Python в базе данных.

Oracle Database

Kinetica Streaming Data Warehouse объединяет исторический и потоковый анализ данных с анализом местоположения и искусственным интеллектом на единой платформе, доступной через API и SQL. Kinetica - это очень быстрая распределенная, столбчатая база данных с приоритетом памяти и ускорением на графическом процессоре с функциями фильтрации, визуализации и агрегирования.

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

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

Microsoft SQL Server

Службы машинного обучения Microsoft SQL Server поддерживают R, Python, Java, команду PREDICT T-SQL и хранимую процедуру rx_Predict в СУБД SQL Server, а также SparkML в кластерах больших данных SQL Server. Для языков R и Python Microsoft включает несколько пакетов и библиотек для машинного обучения. Вы можете хранить свои обученные модели в базе данных или извне. Управляемый экземпляр SQL Azure в качестве предварительной версии поддерживает службы машинного обучения для Python и R.

Microsoft R имеет расширения, которые позволяют обрабатывать данные как с диска, так и в памяти. SQL Server предоставляет платформу расширений, чтобы код R, Python и Java мог использовать данные и функции SQL Server. Кластеры больших данных SQL Server запускают SQL Server, Spark и HDFS в Kubernetes. Когда SQL Server вызывает код Python, он, в свою очередь, может вызвать машинное обучение Azure и сохранить полученную модель в базе данных для использования в прогнозах.

Обзор: Текущие версии SQL Server могут обучать и выводить модели машинного обучения на нескольких языках программирования.

Oracle Database

Oracle Cloud Infrastructure (OCI) Data Science - это управляемая бессерверная платформа для групп специалистов по анализу данных, позволяющая создавать, обучать и управлять моделями машинного обучения с использованием Oracle Cloud Infrastructure, включая Oracle Autonomous Database и Oracle Autonomous Data Warehouse. Он включает инструменты, библиотеки и пакеты, ориентированные на Python, разработанные сообществом разработчиков ПО с открытым исходным кодом, а также библиотеку Oracle Accelerated Data Science (ADS), которая поддерживает непрерывный жизненный цикл прогнозных моделей:

  • Сбор, профилирование, подготовка и визуализация данных
  • Функциональная инженерия
  • Обучение модели (включая Oracle AutoML)
  • Оценка, объяснение и интерпретация модели (включая Oracle MLX)
  • Развертывание модели в Oracle Functions

OCI Data Science интегрируется с остальной частью стека Oracle Cloud Infrastructure, включая функции, поток данных, автономное хранилище данных и хранилище объектов.

В настоящее время поддерживаются следующие модели:

  • Oracle Автомл
  • Keras
  • Scikit учиться
  • XGBoost
  • ADSTuner (настройка гиперпараметров)

ADS также поддерживает объяснимость машинного обучения (MLX).

Обзор: Oracle Cloud Infrastructure может размещать ресурсы науки о данных, интегрированные с его хранилищем данных, хранилищем объектов и функциями, что обеспечивает полный жизненный цикл разработки модели.

Vertica

Платформа Vertica Analytics - это масштабируемое хранилище данных по столбцам. Он работает в двух режимах: Enterprise, в котором данные хранятся локально в файловой системе узлов, составляющих базу данных, и EON, в котором данные хранятся совместно для всех вычислительных узлов.

Vertica использует массовую параллельную обработку для обработки петабайт данных и выполняет внутреннее машинное обучение с параллелизмом данных. Он имеет восемь встроенных алгоритмов для подготовки данных, три алгоритма регрессии, четыре алгоритма классификации, два алгоритма кластеризации, несколько функций управления моделями и возможность импортировать модели TensorFlow и PMML, обученные в другом месте. После того, как вы подобрали или импортировали модель, вы можете использовать ее для прогнозирования. Vertica также позволяет создавать пользовательские расширения, запрограммированные на C ++, Java, Python или R. Синтаксис SQL используется как для обучения, так и для вывода.

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

MindsDB

Если ваша база данных еще не поддерживает внутреннее машинное обучение, вероятно, вы можете добавить эту возможность с помощью MindsDB, который интегрируется с полдюжиной баз данных и пятью инструментами бизнес-аналитики. Поддерживаемые базы данных включают MariaDB, MySQL, PostgreSQL, ClickHouse, Microsoft SQL Server и Snowflake с интеграцией MongoDB в работе и интеграцией с потоковыми базами данных, обещанными позже в 2021 году. Поддерживаемые инструменты бизнес-аналитики в настоящее время включают SAS, Qlik Sense, Microsoft Power BI, Looker , и Домо.

MindsDB включает AutoML, таблицы AI и объяснимый AI (XAI). Вы можете вызвать обучение AutoML из MindsDB Studio, из инструкции SQL INSERT или из вызова API Python. При обучении можно использовать графические процессоры, а также создать модель временных рядов.

Вы можете сохранить модель как таблицу базы данных и вызвать ее из оператора SQL SELECT для сохраненной модели, из MindsDB Studio или из вызова API Python. Вы можете оценить, объяснить и визуализировать качество модели в MindsDB Studio.

Вы также можете подключить MindsDB Studio и Python API к локальным и удаленным источникам данных. MindsDB дополнительно предоставляет упрощенную структуру глубокого обучения Lightwood, работающую на PyTorch.

Обзор: MindsDB предоставляет полезные возможности машинного обучения для ряда баз данных, в которых отсутствует встроенная поддержка машинного обучения.