Това е първата от поредица статии от няколко части за това как да използвате Машинно обучение (ML) в приложения за автоматизация на цифрови процеси и интеграция в Oracle Integration Cloud. За тази серия използваме комбинация от облачни услуги на Oracle и внедряваме няколко случая на употреба стъпка по стъпка. Първата статия (тази) се фокусира върху настройването на средата за машинно обучение и прилагането на модела за машинно обучение за нашия първи случай на употреба.

Примерен случай на употреба

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

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

Списъкът може да продължи безкрайно. За тази поредица обаче ние вземаме случай на употреба от Sales и искаме да приложим следния сценарий

  • Поръчки от клиенти идват от търговски представители на компания
  • Поръчките имат, наред с други данни, следната подходяща информация
    - Сума на поръчката
    - Тримесечие, когато е създадена поръчката (1, 2, 3, 4)
    - Статус на клиента (зелено, жълто, червено)
    - Заявена отстъпка от клиента (0–99%)
  • В зависимост от информацията за поръчката искаме да предвидим дали поръчката трябва да бъде одобрена от вицепрезидент по продажбите за даденото тримесечие.

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

В тази статия ще демонстрираме как да настроим среда за машинно обучение (ML) с помощта на Oracle Autonomous Data Warehouse и да внедрим ML модел за нашия случай на употреба.

Oracle Autonomous Data Warehouse

Oracle Autonomous Data Warehouse (ADW) е собствена услуга на Oracle Cloud Infrastructure. Това е напълно управлявана облачна услуга с възможности за машинно обучение и „изкуствен интелект“, която улеснява осигуряването на склад за данни, бързото и лесно зареждане на данни и запитване към тези данни с помощта на вградени уеб-базирани инструменти като преносими компютри. Базираните на Apache Zeppelin ML преносими компютри заедно с Oracle Advanced Analytics предлагат цялостен ML инструментариум за Data Scientist за зареждане и визуализиране на данни, обучение и тестване на ML модели и документиране на случая на използване на ML с помощта на прост език за маркиране.

Първоначална потребителска настройка

За настройката и администрирането на ADW вижте приложението към тази статия. Препоръчително е да настроите потребителите в ADW. Потребител в ADW е различен от потребител на OCI в смисъл, че потребител на ADW е наистина потребител на база данни, притежаващ схема в ADW. След като потребител е създаден в ADW, той може да поиска да изпълни няколко SQL скрипта за настройка. Те се изискват само веднъж в системата и след това могат да се използват във всеки Notebook или SQL скрипт. Вижте Създаване на потребителски акаунт в Oracle Machine Learning за това как да създадете потребители в ADW. За да създадете SQL скрипт в ADW, влезте с вашия потребител и парола и след това отворете Изпълни SQL скриптове от началната страница на потребителя

Това ще отвори Scratchpad за SQL скриптове, където можете да организирате вашите SQL скриптове в параграфи и след това да изпълните всеки параграф поотделно или да изпълните целия Script Scratchpad. Бих препоръчал да организирате работата в параграфи, така че да можете да се върнете по-късно и да изпълнявате само подходящите параграфи, ако е необходимо.

Създайте идентификационни данни

Тъй като по-късно работим с Oracle Cloud Storage, за да заредим данни от Cloud Storage в ADW, трябва да настроим потребителски идентификационни данни в ADW, за да се свържем с Cloud Storage с процедурите на ADW пакета DBMS_CLOUD. За да направите това, отворете SQL скрипт в ADW и изпълнете следното

Вижте процедурата DBMS_CLOUD.CREATE_CREDENTIAL и Работа с токени за удостоверяване за подробности.

Създайте процедура за запис на BLOB в DATA_PUMP_DIR

След това бихме искали да създадем удобна процедура, която може да се използва за изхвърляне на сериализиран ML модел като двоичен BLOB към DATA_PUMP_DIR на ADW. По-късно даваме обяснение защо е необходимо това. За целта добавете следното към вашия SQL Scratchpad и го изпълнете

Внедряване на модела за машинно обучение за одобрение на продажбите

Вече сме готови да внедрим случая на използване с помощта на ML бележник в ADW. За целта отидете на началната страница и щракнете върху Notebooks, след което щракнете върху Create

Това ще отвори нов празен ML бележник, който изглежда по следния начин:

Използване на ML Notebook

Тетрадката ML е организирана в така наречените параграфи. Всеки параграф се изпълнява от един от следните типове изпълнение

  • %md
    Това е за език за маркиране и може да се използва за документиране на бележника на ML. Връзките в маркирането могат да се използват за връзка към външни ресурси.
  • %script
    Това е за SQL скриптове на PL/SQL език. В по-късна версия на ADW ще бъде добавена поддръжка за Python.
  • %sql
    Това се използва за SQL заявки и също така позволява визуализации на набора от резултати в различни форми на диаграми и т.н.

Типът изпълнение трябва да бъде посочен в първия ред на всеки параграф. Параграфите могат да се изпълняват поотделно. Също така, целият ML бележник може да бъде изпълнен. За целта има малък бутон Пусни на бележника и на всеки абзац. За повече информация относно преносимите компютри на ML и тяхната употреба, моля, вижте „Използване на Oracle Machine Learning“. Може също да е полезно да прочетете за преносимите компютри Apache Zeppelin като цяло, за да разберете по-добре тяхното използване и най-добри практики.

Секциите по-долу са организирани по начин, по който можете да копирате и поставите примерния код в нови параграфи на вашия бележник за ML. До края на този параграф ще имате работещ ML бележник, който създава ML модел за класифициране на поръчки.

1. Документация

Добра практика е да документирате вашия случай на употреба, за това започваме тетрадката за ML с абзац с намаление (%md)

2. Почистване

След това ще изчистим всички съществуващи данни в контекста на този случай на употреба. Това ще направи бележника ML повторяем.

3. Създаване на обекти от база данни

След почистването ще създадем необходимите обекти в ADW базата данни.

4. Заредете данни от Cloud Storage

След това ще заредим данни от Cloud Storage в таблица SALES_DATA. Тази таблица съдържа набора за обучение, на който по-късно обучаваме ML модела. ADW предлага различни опции за зареждане на данни в ADW базата данни, вижте Зареждане на данни с автономно хранилище на данни за подробности. В нашия случай на използване данните са достъпни като .CSV файл в Cloud Storage и можем да ги заредим в базата данни с помощта на процедурата DBMS_CLOUD.COPY_DATA

Ето файла sales_data_export.csv в Cloud Object Storage

5. Разделяне на данни

За всяко упражнение за машинно обучение е добра практика данните да се разделят на две части

  1. Данни за обучение
    Данните за обучение се използват за действително обучение на модел на машинно обучение
  2. Тестови данни
    Тестовите данни ще бъдат използвани по-късно за тестване на качеството на ML модела и проверка дали прогнозите дават резултати, които са идентични или близки до тестовите данни

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

Бележка за предупреждение тук: Въпреки че горният SQL е доста удобен и изразителен, тази разделена методология не трябва да се използва за големи набори от обучения, тъй като операцията SQL MINUS не е наистина ефективна. Вместо това трябва да се използва case id в комбинация с функцията ora_hash, за да се раздели наборът от данни.

6. Подгответе настройки за GLM алгоритъм

За този случай на употреба ще използваме ML алгоритъм за „обобщен линеен модел“ (GLM), който е алгоритъм за модели за „класификация“. За да използваме GLM в ADW, трябва да параметризираме настройките на алгоритъма. Автоматичната подготовка на данни е включена по подразбиране и не е необходимо да се задава изрично. Току-що е показано по-долу за пълнота.

7. Показване на данни

Вече сме готови да обучим модел на машинно обучение за данните, съхранени в таблица SALES_DATA, като използваме GLM алгоритъм за класификация. Преди да направим това, правим запитване към таблицата SALES_DATA и показваме някои графики. За това можем да създадем нов параграф и да изберем %sql като реализация и след това да добавим следния SQL в параграфа

%sql
select CustomerStatus, Quarter, OrderAmount from sales_data_train

Това ще покаже нещо подобно на по-долу, след като потребителят избере да използва визуализация на лентова диаграма за резултата от заявката.

Чувствайте се свободни да играете с визуализацията и различните приложения на диаграми, налични в бележника. Горната лентова диаграма показва разпределението на сумите на поръчките през четирите тримесечия за клиенти със статус зелено, червено и жълто.

8. Обучете модел на машинно обучение

Сега е време да обучим ML модела въз основа на данни в изглед SALES_DATA_TRAIN

Това вероятно се нуждае от малко повече обяснение, за пълни подробности, моля, вижте документацията DBMS_DATA_MINING.CREATE_MODEL и Oracle Advance Analytics Ръководство на потребителя за извличане на данни.

  • Създаваме модел с име SALES_CLASSIFICATION_GLM_V2
  • Функцията за копаене за този модел е КЛАСИФИКАЦИЯ
  • Данните за обучение се съхраняват в изглед SALES_DATA_TRAIN
  • Целевата колона (атрибутът, който бихме искали да предвидим по-късно) е APPROVAL
  • Настройките за алгоритъма се съхраняват в таблица GLM_SETTINGS

9. Показване на резултатите от прогнозата

Сега, след като изградихме модела, можем да проверим качеството на модела. За тази статия ние просто показваме резултатите от някои прогнози спрямо изгледа SALES_DATA_TEST.

Създайте нов параграф във вашия бележник за ML със следното

%sql
select prediction(SALES_CLASSIFICATION_GLM_V2 USING *) pr,
       Quarter,
       OrderAmount
  from sales_data_test
  order by pr ;

което може да покаже нещо подобно

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

ADW предлага многобройни ML техники и алгоритми за следното

  • Класификация
  • Регресия
  • Откриване на аномалия
  • Клъстеризиране
  • Асоциация
  • Времеви редове
  • Избор на характеристики и регресия

За пълен набор от алгоритми, моля, вижте „Алгоритми“.

10. Запишете ML модел в директория

Сега, след като изградихме ML модел за случая на употреба, можем да напишем неговата сериализирана версия като BLOB в директория в ADW. Този параграф ще използва процедурата write_serialized_model, която създадохме първоначално в настройката на потребителя. Тази процедура може да се използва в други ML преносими компютри, така че не сме я създали тук, а като част от настройването на средата на преносим компютър ML на Data Scientist.

11. Прехвърлете ML модела в Cloud Object Storage

Като последна стъпка от този ML бележник ще прехвърлим сериализираната версия на ML модела от директория DATA_PUMP_DIR на ADW в Cloud Object Storage. За това използваме процедурата DBMS_CLOUD.PUT_OBJECT.

Вече приключихме с бележника ML. Резултатът от изпълнението на този ML бележник е модел на машинно обучение SalesClassificationV2.mod, съхранен в Cloud Object Storage. В следващата част от тази поредица ще покажем как да използваме този модел на машинно обучение за точкуване.

Приложение: Администриране на автономно хранилище на данни

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

ADW DB връзки и конзола за услуги

ADW предлага определени функции за администриране, които могат да бъдат достъпни от конзолата на OCI Autonomous Data Warehouse. За тази цел администраторът на ADW може да поиска да избере подходящия екземпляр на ADW от OCI конзолата, както е показано по-долу

Изтегляне на клиентски идентификационни данни

Доста удобно е да разполагате с пълния набор от функции от SQL*Developer за работа с ADW базата данни. Във версия 18.1 и по-нова, SQL*Developer позволява създаването на връзки към база данни от клиентски идентификационни файлове, известни също като Wallet. За да изтеглите идентификационните данни на клиента за ADW базата данни, отворете страницата с подробности за екземпляра на ADW в OCI конзолата и след това щракнете върху DB Connection

Това ще отвори друг диалогов прозорец, откъдето можете да изтеглите .zip архив

.zip архивът съдържа идентификационните данни на клиента и необходимите ключове за свързване към ADW базата данни чрез JDBC през TLS. Този архив може да се използва от SQL*Developer за създаване на връзка към база данни.

Сервизна конзола

Конзолата за услуги показва някои статистически данни за времето на изпълнение на екземпляра на ADW с използване на процесора и средно време за реакция на SQL оператор и някои други.

Всички административни задачи на ADW могат да бъдат достигнати чрез менюто Администриране от конзолата за услуги

В обобщение, Административната конзола позволява на администратор на ADW да извършва следните операции

  • Изтегляне на клиентски идентификационни данни
    Това по същество е същото, което можете да направите от страницата с подробности за екземпляра на екземпляра на ADW и е документирано по-горе
  • Задайте правила за управление на ресурсите
    Това ви позволява да зададете лимити на изчислителните ресурси за потребителските групи ADW HIGH, MEDIUM и LOW
  • Задаване на парола на администратор
  • Управление на потребители на Oracle ML
    Позволява на администратор на ADW да добавя потребители към Autonomous Data Warehouse. Тези потребители по същество са потребители на бази данни (а не потребители, управлявани от OCI Identity Management). За да използвате възможностите на ML notebook на ADW, трябва да бъде създаден потребител
  • Изтегляне на Oracle Instant Client
    Това ще пренасочи към страницата Oracle Instant Client Download от където можете да изтеглите Oracle Instant Client за вашата платформа и операционна система по ваш избор. Незабавният клиент ви дава достъп до вашата ADW база данни чрез видни инструменти на Oracle Client като SQL*Plus, imp/exp и др.
  • Изпращане на обратна връзка до Oracle

Благодарности

Тази поредица от статии е резултат от повече от една година сътрудничество с екипа на Oracle Machine Learning (OML). Затова бих искал да благодаря на Боряна Миленова и нейния екип за разработка за страхотната подкрепа, навременна доставка и ценни разговори относно машинното обучение. Благодаря на продуктовия мениджър Чарли Бергер от @OracleAnalytics за популяризирането на OML и Integration Cloud и възможността да представя тази работа при различни поводи. Не на последно място благодарение на Суман Ганта от екипа за изпълнение на процеса и екипа на Integration Cloud UI за активирането на OML в Integration Cloud.