technologia

Machine Learning w chmurze - znajdź usługę odpowiednią dla Twojego zespołu

Chmury publiczne otwierają drzwi do wielu rozwiązań i usług informatycznych z obszaru sztucznej inteligencji. Jedną z takich usług jest szeroko pojęty proces tworzenia i zarządzania modelami Machine Learning. Brak kompetencji w organizacjach jest jednak dużą barierą do ich wdrażania. Dlatego też wielu dostawców chmur (Amazon, Microsoft czy Google) oferuje gotowe produkty.

Sztuczna inteligencja, Machine Learning czy zaawansowane rozwiązania analityczne to obecnie gorący temat. Większość przedsiębiorstw, czy to małych czy dużych, dąży do ich coraz większego wykorzystania i zintegrowania z podstawowymi procesami biznesowymi.

Dostawcy chmur publicznych są świadomi tego trendu i oferują szeroką gamę produktów. Tworzenie i ewaluacja modeli uczenia maszynowego od podstaw wymaga specjalistycznej wiedzy. Z tego względu stanowiska takie jak Data Scientist czy ML Engineer są obecnie pożądane na rynku pracy i popyt na nie przewyższa podaż.

Brak kompetencji może być istotną przeszkodą we wdrażaniu modeli ML. Jednak dzięki szerokiemu portfolio usług chmurowych możemy dopasować odpowiedni produkt AI/ML do poziomu zaawansowania naszej firmy. Przyjrzyjmy się dokładniej dostępnym rozwiązaniom pod kątem wymaganych kompetencji z zakresu uczenia maszynowego.

Gotowe usługi sztucznej inteligencji


Platforma chmurowa AWS Azure GCP
Usługa AI Services Cognitive Services Cloud AI Building Blocks


Pierwszą kategorią produktów z obszaru sztucznej inteligencji są usługi wystawiające gotowe modele, poprzez proste w obsłudze API. Jeżeli interesuje nas dodanie inteligentnych funkcjonalności do naszej aplikacji czy strony internetowej, gotowe usługi AI mogą być atrakcyjną ofertą pozwalającą, m.in. na:

  • Automatyczne tłumaczenie tekstu
  • Automatyczną transkrypcję nagrań głosowych
  • Detekcję i klasyfikację obiektów na obrazach oraz nagraniach wideo
  • Moderowanie publikowanych treści
  • Wykrywanie sentymentu i ekstrakcję słów kluczowych z tekstu
  • Analizę dokumentów np. ekstrakcję tabel, wykrycie wrażliwych danych osobowych

Oczywiście powyższa lista nie jest wyczerpująca, a każdy dostawca ma unikalne produkty w swoim katalogu. Po naszej stronie pozostaje integracja usługi AI z wewnętrznymi aplikacjami i produktami. Są to więc produkty, z którymi pracują głównie deweloperzy oraz rzadziej analitycy danych.

Zaletą tej kategorii jest zupełne odseparowanie użytkownika końcowego od procesu budowy i utrzymania modelu ML. To dostawca (Amazon, Microsoft czy Google) dba o aktualizację modelu i bieżące monitorowanie jego jakości. Często są do wyrafinowane i skomplikowane modele DNN (Deep Neural Networks, czyli głębokie sieci neuronowe), które zapewniają bardzo wysoki poziom wyników np. klasyfikacji obiektów czy detekcji rozmówcy na podstawie głosu. Pozwala to korzystać właściwie każdemu z najnowszych osiągnięć z dziedziny sztucznej inteligencji.

Rozwiązanie to ma też oczywiście swoje wady – modele w usługach AI są trenowane na ogólnodostępnych danych, więc mogą nie być odpowiednie do zadań, które wymagają danych dostępnych tylko wewnątrz naszej firmy. Jeśli na przykład chcemy, aby usługa analizy obrazu rozpoznawała produkty z naszego katalogu, musimy wytrenować model własnoręcznie na odpowiednio przygotowanym zbiorze. Dodatkowo, korzystając z gotowych modeli, jesteśmy w znaczącym stopniu uzależnieni od dostawcy (zjawisko ”vendor lock”). Po pierwsze, jeśli podejmiemy decyzję o zmianie dostawcy, będzie to wymagało dodatkowych nakładów pracy po stronie integracji z dotychczasowymi aplikacjami (zmiana interfejsu usługi). Po drugie, korzystając z gotowego modelu, który najczęściej jest „czarną skrzynką” (wysyłamy zapytanie i otrzymujemy tylko odpowiedź, bez dodatkowych informacji diagnostycznych) jesteśmy narażeni na przerwy w dostawie usługi i spadek jakości modelu w sposób zupełnie niezależny od nas.

AutoML


Platforma chmurowa AWS Azure GCP
Usługa Amazon SageMaker Autopilot Automated ML Cloud AutoML


Rozwiązania z grupy AutoML czy Automated Machine Learning rozwiązują pewne problemy gotowych usług AI. Wymagają jednak większej wiedzy z zakresu tworzenia modeli uczenia maszynowego. Z drugiej strony, dalej mamy do czynienia z intuicyjnym interfejsem, który pozwala na tworzenie zaawansowanych modeli bez dogłębnej wiedzy o algorytmach czy technikach walidacji modeli. W ramach procesu AutoML po stronie użytkownika najczęściej konieczne jest:

  • Określenie budżetu procesu uczenia (czasowego lub pieniężnego)
  • Dostarczenie danych w odpowiednim formacie (np. danych tabelarycznych przy zagadnieniu regresji lub klasyfikacji, katalogu obrazów do detekcji obiektów)
  • Określenie miary jakości modelu (przykładowo: trafność dla klasyfikacji, błąd średniokwadratowy dla regresji)
  • Wybór zadania dla tworzonego modelu – klasyfikacja wieloetykietowa, analiza sentymentu, ekstrakcja słów kluczowych, prognozowanie (zależne od obszaru dla jakiego tworzymy model)

Frameworki AutoML po uzyskaniu informacji wejściowych wytrenują za nas szereg modeli, dokonają automatycznego tuningu hiperparametrów i zwrócą najlepszy model (często w formie, która w kilku krokach pozwala uruchomić model produkcyjnie).

Produkty AutoML pozwalają stworzyć modele dla najczęściej wykonywanych zadań na wewnętrznych danych. Są przez to często postrzegane jako rozszerzenie usług AI do spersonalizowanych danych wejściowych (np. w Google Cloud Platform kategorie usług AutoML silnie pokrywają się z kategoriami usług AI). Obsługa zautomatyzowanego uczenia maszynowego jest znacząco uproszczona w porównaniu do manualnego procesu tworzenia modeli, więc bariera wejścia dla tego kategorii produktów jest niska. Bez większego problemu mogą z nich korzystać analitycy danych czy analitycy biznesowi, nawet bez rozległej wiedzy na temat modeli ML.

Wadą produktów Automated ML jest ograniczenie zakresu dostępnych zadań i ograniczenie kontroli nad procesem uczenia oraz walidacji. Jeżeli zależy nam na pełnym zrozumieniu i kontroli procesu, AutoML może nie być odpowiednim rozwiązaniem. Niektóre branże, np. bankowa, muszą podporządkować się ścisłym wytycznym dotyczącym rezydencji i dostępu do danych. W takim przypadku usług AutoML również nie zawsze spełnią wymagania stawiane przez urzędu nadzoru i akty prawne. Dodatkowo rozwiązania te ze względu na budowę wielu modeli jednocześnie mogą być mniej efektywne kosztowo od wyspecjalizowanych modeli zbudowanych przez inżynierów ML.

Platformy AI


Platforma chmurowa AWS Azure GCP
Usługa Amazon SageMaker Azure AI Platform GCP AI Platform


Trzecia kategoria usług AI zawiera w sobie produkty PaaS (platforma jako usługa) dedykowane do zaawansowanego zarządzania całym procesem Machine Learning. Dostawcy w ramach platform AI udostępniają użytkowników dziesiątki pomniejszych usług, które w znaczący sposób usprawniają pracę zespołów ML i Data Science. Przykładowe usługi dostępne na platformach AI to:

  • Usługa trenowania modeli lub zintegrowanych pipeline’ów na dedykowanych klastrach obliczeniowych
  • Usługa uruchomienia i konfiguracji modelu do predykcji online i batchowej
  • Łatwa integracja z usługami MLOps (rejestracja modeli i danych, feature store, data lineage, monitoring jakości uruchomionych produkcyjnie modeli)
  • Usługa etykietowania danych
  • Przestrzeń do kolaboracji z dostępem do notebooków Jupyter i dodatkowych narzędzi do pracy zespołowej

Efektywne korzystanie z platform wymaga kompetencji zarówno z zakresu inżynierii danych jak i uczenia maszynowego. Wiele zadań jest jednak wykonanych automatycznie np. instalacja popularnych bibliotek do trenowania modeli, konfiguracja serwerów dla notebooków czy uruchamianie klastrów obliczeniowych (również ze wsparciem GPU). Dodatkowo platformy AI często są projektowane w formie wydzielonej konsoli – przestrzeni webowej, która pozwala na usprawnienie pracy zespołów ML poprzez udostępnienie wszystkich wymaganych narzędzi w centralizowanym systemie.

Z drugiej strony, ogrom możliwości udostępniany przez platformy podwyższa próg wejścia dla użytkowników. Rozpoczęcie pracy z każdą platformą wymaga zapoznania się z dokumentacją i zgłębienia produktu w trakcie bieżącej pracy. Platformy AI często korzystają z rozwiązań Open Source w ramach swoich modułów, jednak korzystając z usług określonego dostawcy jesteśmy podatni na „vendor lock” i potencjalne problemy przy decyzji o zmianie usługi. Inną niedogodność możemy napotkać w trakcie migracji rozwiązań on-premise do platform AI. Mimo że usługi PaaS dedykowane uczeniu maszynowemu wspierają szeroką gamę bibliotek, frameworków i konfiguracji modeli, możliwe jest że rozwiązanie, które stosujemy lokalnie, nie może zostać przeniesione w aktualnej formie. W takiej sytuacji pozostaje modyfikacja modelu, aby dopasować go do platformy lub skorzystanie z ostatniej kategorii usług - wirtualnych maszyn i klastrów Kubernetes.

ML na klastrach Kubernetes i maszynach wirtualnych


Platforma chmurowa AWS Azure GCP
Usługa klastrów Kubernetes EKS AKS GKE
Usługa wirtualnych maszyn EC2 Azure VMs Compute Engine


Ostatnia grupa produktów chmurowych zapewnia największą elastyczność w konfiguracji i budowaniu rozwiązań uczenia maszynowego. Możemy zainstalować dowolne biblioteki i oprogramowanie oraz zastosować nietypową konfigurację czy reguły bezpieczeństwa, które nie byłby możliwe w innych omówionych kategoriach. Firmy często decydują się na migrację obecnych rozwiązań ML na klastry Kubernetes lub maszyn wirtualnych (VM) ze względu na łatwość „translacji” czy mapowania lokalnej infrastruktury na odpowiedniki chmurowe.

Zarówno usługi VM jak i Kubernetes zapewniają skalowalność mocy obliczeniowej, więc jesteśmy w stanie dostosowywać nasze rozwiązanie ML do aktualnego zapotrzebowania. Warto zauważyć, że istnieją otwarte platformy MLOps, które możemy łatwo uruchomić na klastrze Kubernetes np. Kubeflow. Kubeflow jest zestawem narzędzi, które znacznie ułatwia budowę, administrację i monitorowanie całego procesu ML. Framework ten jest również wykorzystywany w komercyjnych platformach AI np. Google AI Platform, ale jeśli zależy nam na większej kontroli nad infrastrukturą, możemy zainstalować go manualnie na klastrze.

Niestety elastyczność budowy modeli na maszynach wirtualnych wiąże się z wysokim kosztem administracji i zarządzania infrastrukturą. Oprócz kompetencji z zakresu uczenia maszynowego potrzebne są nam osoby wyspecjalizowane w inżynierii danych, administracji systemów, cyberbezpieczeństwie czy zagadnieniach sieciowych.

W Oktawave posiadamy wykwalifikowany zespół specjalistów, który może pomóc Ci w zarządzaniu infrastrukturą, tak aby Twoja firma mogła skupić się na wdrażaniu rozwiązania Machine Learning. Dodatkowo świadczymy usługi doradcze w zakresie usług i platform sztucznej inteligencji dostępnych w chmurach publicznych, więc możemy pomóc znaleźć Ci rozwiązanie odpowiednie dla Twojej firmy w obecnej chwili oraz pomożemy zaplanować długofalowy plan rozwoju rozwiązań ML w chmurze.