Czy implementacja algorytmów uczenia maszynowego w wiodących motorach baz danych ma sens?
Jakich korzyści możesz się spodziewać? Czy takie rozwiązanie ma wady?
Wstęp
W artykule znajdziesz przegląd implementacji funkcjonalności uczenia maszynowego w motorach baz danych wiodących producentów.
Opisuję także dlaczego uczenie maszynowe zaszyte w motorze bazy danych to opcja warta rozważenia.
A na początku wyjaśniam zależności pomiędzy sztuczną inteligencją, uczeniem maszynowym, a uczeniem głębokim.
Czym różni się sztuczna inteligencja od uczenia maszynowego?
Sztuczna inteligencja jest zdolnością maszyny do dorównania lub przegonienia człowieka w odkrywaniu, wnioskowaniu i wymyślaniu.
Aby sztuczna inteligencja mogła działać, czyli wnioskować i wymyślać, trzeba ją nauczyć. Zasilić ją wiedzą.
Tutaj na scenę wchodzi uczenie maszynowe, które jest znajdowaniem wzorców na bazie danych historycznych. Danych, które już posiadamy. Odkryte wzorce pozwalają nam podejmować świadome decyzje mające konsekwencje w przyszłości – prognozować.
Czyli sztuczna inteligencja jest nadzbiorem uczenia maszynowego.
Jedno i drugie służy nam tym lepiej im więcej danych wykorzystaliśmy do nauczania.
Z kolei podzbiorem uczenia maszynowego jest uczenie głębokie. Dlatego głębokie bo oparte o wielopoziomowe sztuczne sieci neuronowe. Sieci te to algorytmy odwzorowujące działanie ludzkiego mózgu.
Przyjmuje się, że uczenie głębokie zaczyna się od głębokości większej niż trzy poziomy sieci. Każdy kolejny poziom pogłębia 'rozumienie’ treści.
Czyli uczenie maszynowe rozpozna obrazki z psem. Uczenie głębokie rozpozna psa i rasę. A sztuczna inteligencja wywnioskuje czy jest brudny i podejmie decyzję czy go umyć.
Dlaczego uczenie maszynowe w bazach danych?
Uczenie maszynowe to odkrywanie wzorców w danych historycznych. Wzorce tym dokładniej odpowiadają rzeczywistości im większą ilość danych użyjemy podczas ich tworzenia. Im na większej ilości danych uruchomimy algorytm.
A gdzie są najważniejsze dane?
W bazie danych.
Aby poprawić wydajność i bezpieczeństwo uczenia maszynowego producenci baz danych zaszyli odpowiednie funkcjonalności w motorze bazy danych. Dzięki temu nie musimy wyładowywać, transformować ani przenosić danych pomiędzy platformami. Oszczędzamy czas i pieniądze. Zwiększamy bezpieczeństwo danych. Upraszczamy środowisko. Co przekłada się na większą stabilność jego pracy.
Każdy z producentów motorów baz danych zrobił to na sobie właściwy sposób. W dalszej części omówię wiodących.
Uczenie maszynowe w Oracle
W przypadku uczenia maszynowego w bazach danych Oracle nie ma potrzeby stosowania rozwiązań firm trzecich do żadnej warstwy ani kroku.
Dzięki temu dane podlegają ścisłej kontroli i zabezpieczeniom jednorodnego systemu. Począwszy od momentu ich załadowania do bazy danych, poprzez interfejsy użytkownika aż do wyprodukowania wyniku. Obojętnie czy przetwarzasz u siebie w serwerowni czy w Oracle Cloud Infrastructure.
Oferta obejmuje rozwiązania ML zarówno dla specjalistów jak i osób bez doświadczenia. Pytanie czy chcesz za to płacić?
Dodatkowo dane nie opuszczają spójnego ekosystemu Oracle. W dalszym ciągu podlegają tym samym, dobrze znanym mechanizmom zabezpieczającym przed niepowołanym dostępem oraz uszkodzeniem.
Być może niekoniecznie chcesz obciążać produkcyjną bazę danych i host obliczeniami ML. Relacyjne bazy danych niechętnie skalują się poziomo. W sukurs przychodzą sprawdzone mechanizmy Oracle. Na przykład Real Application Clusters, Data Guard czy GoldenGate.
Oracle udostępnia funkcjonalności ML poprzez:
- SQL
- PL/SQL
- Python
- R
- REST
Tak w wersji on-premises jak i Autonomous Database w OCI.
OML Notebooks ułatwiają współpracę specjalistów jednocześnie dbając o bezpieczeństwo danych. Uprawnienia do danych czerpane są z bazy danych.
Ciekawym rozwiązaniem jest OML AutoML dostępne w Autonomous Database. Korzystając z niego wystarczy, że dostarczysz dane oraz określisz cel. Modele zrobi za Ciebie AutoML. Dostarcza także mechanizmów do zarządzania modelami. Cenne dla ludzi, którzy nie mają praktyki.
Warto także wspomnieć o Oracle Data Miner – rozszerzeniu dla SQL Developera. Darmowego narzędzia dla deweloperów i administratorów baz Oracle. Automatyzuje wiele zadań w procesie ML przy pomocy GUI.
Co sądzisz o haśle Oracle: 'move the algorithms, not the data’?
Więcej na stronach Oracle.
Uczenie maszynowe w PostgreSQL
PostgreSQL jest bardzo elastyczny z założenia. Osiągnięto to poprzez 2 cechy:
- otwarty kod
- modułową budowę
Nie może, więc dziwić, że uczenie maszynowe wchodzi do PostgreSQL’a jako dodatkowe moduły o otwartym kodzie.
Jednym z nich jest PostgresML. Obecnie w wersji 2.0. Plusem jest wsparcie dla GPU. Minusem: dostawcy chmury nie udostępniają tego pakietu do instalacji w swoich usługach postgresowych. Póki co.
Funkcje uczenia maszynowego dostępne są z poziomu języka SQL jako wywołania podprogramów pakietu pgml. PostgresML pozwala na trenowanie i wnioskowanie na podstawie danych tekstowych i tabelarycznych.
2023.06.01 udostępniono Python SDK. Dzięki temu użytkownicy uzyskują dostęp m.in. do całego zbioru darmowych modeli open source.
Inny pomysł ma MindsDB. Dostępne do instalacji on-premises, we własnej chmurze MindsDB oraz u dostawców trzecich. Oferta skierowana jest do użytkowników baz danych pozbawionych natywnego wsparcia dla ML.
Dostęp do funkcjonalności ML odbywa się poprzez komendy SQL, Python API oraz MindsDB Studio. Modele składowane są w bazie danych w tabelach AI.
Rozwiązanie dostępne dla wielu motorów. Zaletą jest podobna funkcjonalność i interfejs tak w PostgreSQL jak i MySQL, MariaDB, SQL Server czy Snowflake lub MongoDB.
Warto wspomnieć także o bibliotece MADlib. Integruje się z PostgreSQL jako moduł. Dostarcza funkcji i procedur statystycznych oraz zestawu typowych algorytmów.
Uczenie maszynowe w MySQL HeatWave
Oracle zdecydował się zaimplementować funkcjonalność AutoML, znaną z Oracle Database i Autonomous Database, także w swojej komercyjnej wersji MySQL.
Podobnie jak w przypadku innych motorów zaszycie funkcjonalności ML w motor bazy danych skutkuje oszczędnościami na transferze danych do innych systemów, poprawą wydajności przetwarzania oraz poprawą bezpieczeństwa danych.
Funkcjonalności ML dla MySQL HeatWave dostępne są z poziomu SQL jako wywołania dedykowanych funkcji. Aby ułatwić korzystanie z nich Oracle przygotował, dostępną z poziomu przeglądarki, konsolę.
Produkt AutoML stworzony został z myślą o niespecjalistach. Jego zadaniem jest jak największa automatyzacja procesu tworzenia modelu.
Dzięki wykorzystaniu pakietów open-source Python ML możliwa jest ciągła aktualizacja do najnowszej wersji.
Oracle reklamuje swój produkt jako tańszy, bardziej wydajny i wygodniejszy w obsłudze niż odpowiedniki dostępne u konkurencji. Na przykład Redshift ML, Snowflake czy BigQuery ML
Więcej na stronach MySQL.
Uczenie maszynowe w Microsoft SQL Server
Microsoft udostępnia uczenie maszynowe tak w wersjach SQL Server on-premises jak i usłudze Azure SQL pod nazwą Machine Learning Services.
Otrzymujemy możliwość uruchamiania skryptów Python i R, poprzez extensibility framework, na danych składowanych w bazie danych. W tym celu trzeba wywołać procedurę sp_execute_external_script.
Microsoft przygotował zestaw własnych skryptów, ale możliwa jest także instalacja pakietów open-source.
Warto zwrócić na różnice w dostępnych funkcjonalnościach pomiędzy wersją on-premises SQL Server, a Azure SQL Managed Instance. Na przykład w Azure nie możemy dodać kolejnego języka jako dostępnego poprzez extensibility framework. Usługa Azure przychodzi z Python i R.
Trzeba pamiętać, że od wersji SQL Server 2022 środowisko Python, Java ani R nie jest już instalowane razem z binariami motoru bazy danych. Trzeba doinstalowywać własnoręcznie. Podobnie jak pakiety.
Więcej na stronach Microsoft.
Podsumowanie
Każdy z producentów motoru bazy danych podszedł do implementacji uczenia maszynowego zgodnie z charakterystyczną dla siebie strategią rozwoju.
Niezależnie od strategii uczenie maszynowe, zaszyte w motor bazy danych, poprawia bezpieczeństwo danych oraz zwiększa wydajność ich przetwarzania. Szczególnie brak potrzeby ETL, do innego systemu, skraca czas uzyskania odpowiedzi.
Dużą oszczędnością jest brak konieczności zakupu dodatkowych, dedykowanych uczeniu maszynowemu, rozwiązań. Kadra nie musi przyswajać specyficznych języków potrzebnych do interakcji z dedykowanymi rozwiązaniami. Czołowi producenci motorów bazodanowych udostępniają funkcjonalności ML z poziomu dobrze znanego, przyjaznego i popularnego języka SQL.
Oracle przygotował bardzo rozbudowaną ofertę skierowaną tak dla specjalistów jak i ludzi nie mających praktyki. Podobnie z dokumentacją i materiałami edukacyjnymi – uważam, że Oracle zrobił to najlepiej.
PostgreSQL polega na niezależnych twórcach dodatków. Co owocuje większym wyborem. A także nierówną jakością oferowanych rozwiązań. Niemniej atutem jest niski koszt implementacji oraz otwarty kod.
Komercyjny MySQL HeatWave bazuje na produkcie AutoML, znanym z Oracle, skierowanym do niespecjalistów.
SQL Server umożliwia wykorzystanie zewnętrznego środowiska Python i R.
Na koniec warto wspomnieć, że wielki nieobecny tego zestawienia – IBM DB2 – również posiada funkcjonalność uczenia maszynowego w motorze bazy danych.
Prowadzę szkolenia i kursy z podstaw SQL. Sprawdź ofertę moich kursów SQL.