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

В этой статье будет рассмотрена новая ориентированная на данные конструкция под названием AI Tables, которая поможет упростить машинное обучение с самообслуживанием для инженеров данных, разработчиков и бизнес-аналитиков.
Приступим.

Как стать организацией, основанной на инсайтах?

Чтобы стать организацией, ориентированной на понимание (IDO), в первую очередь вам нужны данные и инструменты для их обработки и анализа. Еще одним важным компонентом являются люди, то есть аналитики данных или специалисты по данным с соответствующим опытом. И последнее, но не менее важное: вам нужно найти способ внедрить процессы принятия решений, основанные на аналитической информации, в вашей компании.

Технология, позволяющая максимально эффективно использовать данные, называется Машинное обучение. Поток машинного обучения начинается с использования ваших данных для обучения модели прогнозирования. А позже он отвечает на ваши вопросы, связанные с данными. Наиболее эффективной технологией машинного обучения являются Искусственные нейронные сети. На их дизайн повлияло наше нынешнее понимание того, как работает человеческий мозг. А учитывая большие вычислительные ресурсы, которыми люди обладают в настоящее время, это может привести к созданию невероятных моделей, обученных на большом количестве данных.

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

Почему компании медленно внедряют ИИ?

Большинство предприятий не используют AI или ML для обработки своих данных. Например, Бюро переписи населения США сообщило, что по состоянию на 2020 год менее 10% предприятий США внедрили машинное обучение. К ним относятся прежде всего крупные компании.

Давайте рассмотрим самые большие препятствия, стоящие на пути внедрения машинного обучения.

  • Прежде чем ИИ сможет заменить людей, предстоит проделать большую работу. Но проблема в нехватке квалифицированных специалистов. Кроме того, многие предприятия не могут себе их позволить. Специалисты по данным входят в число самых востребованных профессионалов. Они также являются самыми дорогими в найме.
  • Другой набор проблем связан с данными: нехватка доступных данных, безопасность данных и трудоемкая реализация алгоритмов машинного обучения.
  • Кроме того, у компаний возникают проблемы с созданием среды для использования данных и всех преимуществ, которые они приносят. Эта среда требует соответствующих инструментов, процессов и стратегий.

Демократизация машинного обучения. Одних инструментов AutoML недостаточно.

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

Хотите добиться успеха в развертывании автоматизированного машинного обучения в своей компании? Инструменты AutoML имеют решающее значение, но не забывайте сосредоточиться на процессах, методах и стратегиях. Платформы AutoML — это всего лишь инструменты, и большинство экспертов по машинному обучению согласны с тем, что этого недостаточно.

Разрушение процесса машинного обучения

Любой процесс машинного обучения начинается с данных. Принято считать, что этап подготовки данных является наиболее серьезным препятствием в процессе машинного обучения. Далее, часть моделирования — это всего лишь часть всего конвейера обработки данных, и инструменты AutoML упрощают ее. Но полный рабочий процесс по-прежнему требует больших усилий для преобразования данных и подачи их в модели. И этому не способствует тот факт, что подготовка и преобразование данных — самая трудоемкая и наименее приятная часть работы.

И, конечно же, бизнес-данные, используемые для обучения моделей машинного обучения, регулярно обновляются. Следовательно, это требует от компаний создания сложных конвейеров ETL, в которых используются сложные инструменты и процессы. Поэтому сделать процесс машинного обучения непрерывным и работающим в режиме реального времени — сложная задача.

Интеграция машинного обучения с приложениями и управлением изменениями

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

Его ввод — это данные, а на выходе мы получаем прогнозы. Наши бизнес-приложения используют эти прогнозы от инструментов машинного обучения через API, используемые разработчиками для интеграции этих приложений. Звучит просто с точки зрения разработчиков, не так ли?

Как бы легко это ни было для разработчиков, это не так просто при рассмотрении процессов. Любую интеграцию с критически важным для бизнеса приложением в достаточно крупной организации довольно сложно поддерживать. Даже если компания технически подкована, любой запрос на изменение кода должен пройти специальную проверку и тестирование рабочих процессов, в которых участвуют несколько заинтересованных сторон. А это отрицательно сказывается на гибкости и усложняет весь рабочий процесс.

Гораздо проще экспериментировать с принятием решений на основе машинного обучения, когда у вас достаточно гибкости для тестирования различных концепций и идей. Поэтому вы бы предпочли что-то, что дало бы вам возможность самообслуживания.

Самостоятельное машинное обучение или интеллектуальные базы данных?

Как мы видим выше, данные являются ядром процессов ML, а существующие инструменты ML берут данные и возвращают прогнозы, которые также являются данными.

Итак, теперь возникают вопросы:

  • Почему мы должны рассматривать ML как отдельное приложение и реализовывать все эти сложные интеграции между моделями ML, приложениями и базами данных?
  • Почему бы не сделать машинное обучение основной возможностью баз данных?
  • Почему бы не сделать модели машинного обучения доступными через стандартный синтаксис базы данных, такой как SQL?

Давайте проанализируем вышеупомянутые проблемы рабочего процесса ML и найдем решение, ответив на эти вопросы.

Текущие проблемы машинного обучения и способы их преодоления

Задача №1: сложная интеграция данных и конвейеры ETL

Поддержание сложной интеграции данных и конвейеров ETL между моделью ML и базой данных — одна из самых больших проблем, с которыми сталкиваются процессы ML.

SQL — лучший инструмент для манипулирования данными, поэтому мы можем решить эту проблему, перенеся модели машинного обучения внутрь слоя данных, а не наоборот. Другими словами, модели машинного обучения будут обучаться и возвращать прогнозы внутри базы данных.

Задача 2. Интеграция моделей машинного обучения с приложениями

Еще одна проблема, которая порождает лавину проблем, — это интеграция моделей с бизнес-приложениями через API.

Бизнес-приложения и инструменты бизнес-аналитики тесно связаны с базами данных. Итак, если инструменты AutoML станут частью базы данных, мы сможем делать прогнозы, используя стандартные SQL-запросы. Далее следует, что API-интеграция между моделями машинного обучения и бизнес-приложениями больше не требуется, поскольку модели находятся в базе данных.

Решение: встраивание AutoML в базу данных

Внедрение инструментов AutoML в базу данных дает множество преимуществ, например:

  • Любой человек, который работает с данными и знает SQL (например, аналитик данных или специалист по данным), может использовать возможности машинного обучения.
  • Разработчики программного обеспечения могут более эффективно внедрять машинное обучение в бизнес-инструменты и приложения.
  • Не требуется сложных интеграций между данными и моделью, а также между моделью и бизнес-приложениями.

Относительно сложная диаграмма, представленная в разделе «Интеграция машинного обучения с приложениями и управлением изменениями», выглядит следующим образом:

Это выглядит проще и делает процессы машинного обучения плавными и эффективными.

Как внедрить Self-Service ML: модели как виртуальные таблицы базы данных

Итак, теперь мы знаем решение основных задач, давайте его реализовывать.

Для этого мы используем конструкцию под названием AI Tables. Он привносит машинное обучение в виде виртуальных таблиц в платформы данных. Такая таблица AI создается, как и любая другая таблица базы данных, а затем предоставляется приложениям, инструментам бизнес-аналитики и клиентам БД. Мы делаем прогнозы, просто запрашивая данные.

Таблицы AI изначально были разработаны MindsDB и доступны как с открытым исходным кодом, так и в виде управляемого облачного сервиса. Они интегрируются с традиционными базами данных SQL и NoSQL и потоками данных, такими как Kafka и Redis.

Использование таблиц ИИ

Концепция AI Tables позволяет нам выполнять процессы ML в базе данных. Таким образом, все этапы процесса машинного обучения (то есть подготовка данных, обучение модели и прогнозирование) выполняются через базу данных.

Обучение таблиц ИИ

Пользователь указывает исходную таблицу или представление, из которых AI Table автоматически обучается. Чтобы создать таблицу AI, используйте одну команду SQL, показанную в следующем разделе.

AI Table — это модель машинного обучения, состоящая из функций, эквивалентных столбцам исходной таблицы. Механизм AutoML автоматизирует остальные задачи моделирования. Тем не менее, опытные инженеры машинного обучения могут указать параметры модели с помощью декларативного синтаксиса, называемого JSON-AI.

Составление прогнозов

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

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

Как работают AI Tables — пример

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

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

  • когда товары были проданы (столбец date_of_sale),
  • кто продал товары (столбец shop),
  • какие товары были проданы (столбец product_code),
  • сколько товаров было продано (столбец сумма).

Представим приведенные выше данные в виде таблицы:

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

Тренировочные таблицы ИИ

Чтобы создать таблицы AI, которые используют ваши данные, вы должны сначала разрешить MindsDB доступ к вашим данным. Вы можете сделать это, подключив свою базу данных к MindsDB. Это довольно простая задача. Подробные инструкции доступны в Документации MindsDB.

Таблицы AI похожи на модели ML, поэтому вы должны обучать их, используя прошлые данные.

Ниже приведена простая команда SQL, которая обучает таблицу AI:

CREATE PREDICTOR predictor
FROM source_database 
(SELECT column_1, column_2 FROM historical_table)
PREDICT column_to_be_predicted as column_alias;

Давайте проанализируем этот запрос:

  • Мы используем оператор CREATE PREDICTOR, доступный в MindsDB.
  • Мы определяем исходную базу данных, откуда поступают исторические данные.
  • Мы обучаем таблицу ИИ на основе таблицы, содержащей исторические данные (историческая_таблица). А выбранные столбцы (column_1 и column_2) — это функции, используемые для прогнозирования.
  • AutoML автоматизирует остальные задачи моделирования.
  • Что происходит, когда вы выполняете запрос?
  • MindsDB определяет типы данных для каждого столбца, нормализует и кодирует их, назначает соответствующую библиотеку, строит и обучает модель машинного обучения.
  • Он оставляет некоторый процент данных недоступным для модели и использует его для проверки ее точности.

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

В базах данных нам часто приходится иметь дело с задачами, связанными с многомерными данными временных рядов с высокой кардинальностью. А если использовать традиционные подходы, то создание таких ML-моделей требует значительных усилий. Нам нужно сгруппировать данные и упорядочить их по заданному времени, дате или полю данных временной метки.

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

Это может показаться большой работой, но MindsDB предоставляет средства для создания единой модели машинного обучения для одновременного обучения многомерных данных временных рядов с помощью оператора GROUP BY. Давайте посмотрим, как это делается с помощью всего одной команды SQL.

Теперь мы создадим предиктор для наших данных о продажах.

CREATE PREDICTOR stock_forecaster
FROM postgres_db
(SELECT shop, amount, date_of_sale
FROM sales_data)
PREDICT amount
ORDER BY date_of_sale
GROUP BY shop
WINDOW 10
HORIZON 7;

Предсказатель stock_forecaster использует данные о продажах, чтобы предсказать, сколько товаров будет продано в конкретном магазине в будущем. Данные упорядочены по дате продажи и сгруппированы по магазинам. Таким образом, мы можем предсказать значение суммы для каждого значения магазина.

Давайте сделаем несколько прогнозов, используя наш предиктор stock_forecaster.

Создание массовых прогнозов и построение прогнозов в аналитических инструментах

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

SELECT sf.shop, sf.amount as predicted_amount
FROM postgres_db.sales_data AS sd
JOIN mindsdb.stock_forecaster AS sf
WHERE sd.shop="Easy Store"
AND sd.date_of_sale>LATEST
LIMIT 7;

Операция JOIN добавляет прогнозируемую сумму к записям. Таким образом, вы получаете прогнозы сразу для многих строк.
Если вы хотите узнать больше об анализе и визуализации прогнозов в инструментах бизнес-аналитики, ознакомьтесь с этой статьей.

Давайте будем практичными

Традиционный подход рассматривает модели машинного обучения как автономные приложения, требующие поддержки конвейеров ETL для базы данных и интеграции API с бизнес-приложениями. Несмотря на то, что инструменты AutoML делают часть моделирования легкой и простой, опытным специалистам по-прежнему необходимо управлять всем рабочим процессом ML.

Но базы данных уже являются лучшим инструментом для подготовки данных. Таким образом, имеет смысл привнести ML в данные, а не наоборот.

Конструкция AI Tables от MindsDB обеспечивает самообслуживание AutoML для специалистов по работе с данными и оптимизирует рабочие процессы машинного обучения. Это потому, что инструмент AutoML находится в базе данных.

Подытожим его преимущества:

  • Нет необходимости в конвейерах ETL между AutoML и базами данных.
  • Нет необходимости в интеграции API между AutoML и бизнес-приложениями.
  • Нет необходимости в развертывании модели.
  • Прогнозы, сделанные с использованием стандартных SQL-запросов.
  • Автоматизированное моделирование с возможностью настройки для опытных пользователей.
  • Выполнение машинного обучения с использованием существующих аналитических инструментов.

AI Tables могут помочь компаниям принимать решения на основе данных, используя существующие инструменты и персонал.

Хотите попробовать сами?

Если эта статья была вам полезна, пожалуйста, поставьте нам звезду GitHub здесь.