Като инженер по машинно обучение, работещ както с специалисти по данни, така и с анализатори на данни, известно време се борех да минимизирам времето за тестване и внедряване на модела за машинно обучение, като същевременно поддържах изискваната от бизнеса производителност. BigQuery ML стои на междинно място, като избягва експортирането на данни, като същевременно улеснява скалируемостта на инфраструктурата и споделянето на код. По-долу е SQL-Command cheat sheet, който написах за създаване, оценка на BQML модели и прогнозиране на резултатите. Версията с висока разделителна способност на информационния лист е достъпна в края на статията.

Описателният подход на Business Intelligence (BI) се измести към по-предсказуем и предписващ анализ. Въз основа на тези промени аналитичната рамка е преработена, за да включва слой за наука за данни.

Комбинацията от традиционно бизнес разузнаване и наука за данни се разглежда като бъдещето на областта. Следователно нововъзникващите услуги, базирани на облак, сега се представят като една интегрирана услуга. Те обединяват различни технологии, включително склад за данни, рамка за машинно обучение и инструмент за визуализация, за да улеснят достъпа както до анализатори на данни, така и до учени по данни.[3]

BigQuery Machine Learning (BQML) влиза в този обхват на отваряне на модели за машинно обучение за по-широка аудитория от потребители, като същевременно улеснява изграждането на модели, оценката и внедряването на модели за машинно обучение.

Само SQL език

SQL все още е един от най-широко използваните езици в анализа на данни. Като декларативен език, SQL ви позволява да дефинирате задачите, без да се притеснявате за спецификата на това как да ги изпълните.[1]

BQML ви позволява да указвате и изпълнявате модели за машинно обучение директно в SQL. Това прави машинното обучение достъпно за анализатори на данни, които може да нямат значителен опит с него.

С други думи, не е необходимо да сте експерт по машинно обучение, за да изпълнявате ML модели.

Итерирайте и доставяйте по-бързо

Подобряването на времето за оценка, както и минимизирането на разходите за внедряване и инфраструктура са основните двигатели за организациите да предоставят решения за наука за данни.

И все пак доставката включва сътрудничество между малки екипи, експерти по бизнес предмети и технически ресурси, което може да стане много итеративно и отнема много време.

Когато става въпрос за сътрудничество, опростените инфраструктури на облачна среда интегрират всичко необходимо в унифицирана услуга. BQML поддържа рационализирани процеси за наука за данни, прекъсвайки необходимите услуги на трети страни, които обикновено се използват за обучение на модели върху извлечени данни. Той съкращава настройката и поддръжката на среди за машинно обучение, като същевременно предлага бърз и лесен начин за обучение и внедряване на модели за машинно обучение.

Универсалност на модела

BQML поддържа контролирани, неконтролирани, времеви редове и персонализирани импортирани модели от няколко типа, включително регресия, двоична класификация, k-средно групиране, прогнозиране и невронни мрежи.

Всеки от тях идва с подобна процедура, включваща предварителна обработка на данни, избор на функции, създаване на модел, оценка на производителността и внедряване на модела за целите на извода.

Процедура

Потокът на машинното обучение е описан в BQML cheat sheet и може да бъде обобщен в четири основни стъпки:

Подгответе данните

За всеки ML проект ще започнете да подготвяте входните си данни, като изберете подмножество от данни, което е важно за отговора на бизнес въпроса. В зависимост от вашия набор от данни може да ви трябват няколко стъпки, включително третиране на извънредни стойности и избор на характеристики.

Що се отнася до избора на функции, 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 Console е възможно да се обучават и внедряват модели за машинно обучение, които да се използват повторно при прогнозиране. BQML вече поддържа спектър от налични модели (и вероятно още предстоящи), които споделят подобен процес на създаване, оценка и прогнозиране.
Този процес е обобщен в споделения лист за измама.

Източници и допълнителна литература

[1] Tang, C., Wang, B., Wu, H., Wang, Z., Li, Y., Channapattan, V., … & Mishra, P. (2021). Хибридна облачна SQL система за обединяване в Twitter. В Европейска конференция за софтуерна архитектура.*

[2] Mucchetti, M. (2020). BigQuery ML. В BigQuery за съхранение на данни (стр. 419–468). Apress, Бъркли, Калифорния.

[3] Ларсън, Д. и Чанг, В. (2016). Преглед и бъдеща посока на гъвкавия бизнес

Google. (n.d.). Документация за Bigquery ML. Google, от https://cloud.google.com/bigquery-ml/docs