Как инженер машинного обучения, работающий как с учеными, так и с аналитиками данных, я некоторое время боролся за минимизацию времени на тестирование и развертывание модели машинного обучения, сохраняя при этом производительность, необходимую для бизнеса. BigQuery ML занимает промежуточное положение, избегая экспорта данных, одновременно способствуя масштабируемости инфраструктуры и совместному использованию кода. Ниже приведена шпаргалка по командам SQL, которую я написал для создания, оценки моделей BQML и прогнозирования результатов. Версия шпаргалки в высоком разрешении доступна в конце статьи.
Описательный подход бизнес-аналитики (BI) сместился в сторону более прогнозирующего и предписывающего анализа. На основе этих изменений аналитическая структура была пересмотрена и теперь включает уровень науки о данных.
Сочетание традиционной бизнес-аналитики и науки о данных рассматривается как будущее отрасли. Следовательно, новые облачные сервисы теперь представлены как один интегрированный сервис. Они объединяют различные технологии, в том числе хранилище данных, платформу машинного обучения и инструмент визуализации, чтобы облегчить доступ как для аналитиков данных, так и для специалистов по данным.[3]
Машинное обучение BigQuery (BQML) входит в эту область, открывая модели машинного обучения для более широкой аудитории пользователей, а также облегчая создание, оценку и развертывание моделей машинного обучения.
Только язык SQL
SQL по-прежнему остается одним из наиболее широко используемых языков в аналитике данных. Как декларативный язык, SQL позволяет вам определять задачи, не беспокоясь о специфике их выполнения.[1]
BQML позволяет задавать и запускать модели машинного обучения непосредственно в SQL. Это делает машинное обучение доступным для аналитиков данных, которые могут не иметь существенного опыта работы с ним.
Другими словами, вам не нужно быть опытным инженером по машинному обучению, чтобы выполнять модели машинного обучения.
Повторяйте и доставляйте быстрее
Сокращение времени окупаемости, а также минимизация затрат на внедрение и инфраструктуру являются основными факторами, побуждающими организации предоставлять решения для обработки данных.
Тем не менее, доставка предполагает сотрудничество между небольшими группами, экспертами по бизнес-темам и техническими ресурсами, что может стать очень многократным и трудоемким.
Когда дело доходит до совместной работы, упрощенные инфраструктуры облачной среды объединяют все необходимое в едином сервисе. BQML поддерживает оптимизированные процессы обработки данных, отключая необходимые сторонние сервисы, обычно используемые для обучения моделей на основе извлеченных данных. Он сокращает настройку и обслуживание сред машинного обучения, предлагая быстрый и простой способ обучения и развертывания моделей машинного обучения.
Универсальность модели
BQML поддерживает контролируемые и неконтролируемые модели, временные ряды и пользовательские импортированные модели нескольких типов, включая регрессию, бинарную классификацию, кластеризацию k-средних, прогнозирование и нейронные сети.
Каждый из них имеет аналогичную процедуру, включающую предварительную обработку данных, выбор функций, создание модели, оценку производительности и развертывание модели для целей вывода.
Процедура
Процесс машинного обучения описан в шпаргалке BQML и может быть сведен к четырем основным шагам:
Подготовьте данные
Для каждого проекта машинного обучения вы начнете подготовку входных данных, выбрав подмножество данных, которое важно для ответа на бизнес-вопрос. В зависимости от вашего набора данных вам может потребоваться несколько шагов, включая обработку выбросов и выбор функций.
Когда дело доходит до выбора функций, BQML выполнит за вас все следующие этапы предварительной обработки:
- Удалите пропущенные значения
- Особенности кодирования
- Масштабирование
- Извлечение признаков
Предложение ML.TRANSFORM можно использовать для адаптации вышеупомянутых шагов предварительной обработки, адаптации извлечения признаков и функций предварительной обработки, таких как масштабирование и группирование.
Создайте модель
Затем оператор CREATE MODEL обрабатывает создание и обучение модели с использованием предоставленных функций. Все, что вам нужно сделать, это указать тип модели в опциях.
CREATE MODEL
`mydataset.mymodel`TRANSFORM( ML.FEATURE_CROSS(STRUCT(f1, f2)) as cross_f, ML.QUANTILE_BUCKETIZE(f3) OVER() as buckets, label_col ) OPTIONS( model_type=’linear_reg’, input_label_cols=['label_col'] ) AS
SELECT label, input_column1 FROM `mydataset.mytable`
Это сохранит модель как объект BigQuery, который можно будет извлечь для оценки и прогнозирования.
Оценить модель
ML.EVALUATE отображает производительность вашей обученной модели. Это вернет различную статистику в зависимости от типа модели. Эти метрики могут указывать на необходимость адаптации опций и гиперпараметров модели, а также уточнения этапов выбора и извлечения признаков.
SELECT * FROM ML.EVALUATE(MODEL `mydataset.mymodel`, ( SELECT custom_label, column1, column2 FROM `mydataset.mytable`)
Предсказывать
Прогнозирование осуществляется с помощью ключевого слова ML.PREDICT. Эта функция применяет сохраненную модель к заданному источнику данных, чтобы предсказать результат. Вам не нужно беспокоиться о какой-либо кодировке, масштабировании или отсутствующих значениях функций, поскольку они уже сохранены в объекте модели.
SELECT * FROM ML.PREDICT(MODEL `mydataset.mymodel`, ( SELECT label, column1, column2 FROM `mydataset.mytable`))
Заключение
BigQuery ML, или BQML, предназначен для демократизации машинного обучения и облегчения этапов обнаружения, проектирования и разработки процессов обработки данных.
Он обеспечивает взаимодействие между бизнес-экспертами, специалистами по обработке и анализу данных и инженерами, отдавая приоритет цепочке создания ценности информации, а не длительной разработке.
Используя SQL непосредственно в консоли BigQuery, можно обучать и развертывать модели машинного обучения для повторного использования при прогнозировании. BQML уже поддерживает целый ряд доступных моделей (и, вероятно, появится еще больше), которые используют схожий процесс создания, оценки и прогнозирования.
Этот процесс кратко изложен в общей шпаргалке.
Источники и дополнительная литература
[1] Тан, К., Ван, Б., Ву, Х., Ван, З., Ли, Ю., Чаннапаттан, В., … и Мишра, П. (2021). Гибридно-облачная система федерации SQL в Twitter. На Европейской конференции по архитектуре программного обеспечения.*
[2] Муккетти, М. (2020). ML BigQuery. В BigQuery для хранилищ данных (стр. 419–468). Апресс, Беркли, Калифорния.
[3] Ларсон Д. и Чанг В. (2016). Обзор и будущее направление гибкого бизнеса
Google. (н.д.). Документация Bigquery ML. Google, с https://cloud.google.com/bigquery-ml/docs