HBase
 sql >> Baza danych >  >> NoSQL >> HBase

Tworzenie otwartego standardu:zarządzanie uczeniem maszynowym za pomocą Apache Atlas

Uczenie maszynowe (ML) stało się jedną z najważniejszych funkcji, które pozwalają współczesnym firmom rozwijać się i zachować konkurencyjność. Od automatyzacji procesów wewnętrznych po optymalizację procesów projektowania, tworzenia i marketingu stojących za praktycznie każdym używanym produktem, modele ML przeniknęły niemal każdy aspekt naszej pracy i życia osobistego — a dla firm stawka nigdy nie była wyższa. Nieprzyjęcie ML jako kluczowej kompetencji będzie skutkować poważnymi niedogodnościami konkurencyjnymi, które zdefiniują kolejnych liderów rynku.

Z tego powodu liderzy biznesu i technologii muszą wdrażać modele ML w całej organizacji, obejmujące szerokie spektrum przypadków użycia. Jednak to poczucie pilności, w połączeniu z rosnącą kontrolą regulacyjną, stwarza nowe i wyjątkowe wyzwania w zakresie zarządzania, którymi obecnie trudno jest zarządzać. Na przykład:Jak moje modele wpływają na usługi świadczone klientom końcowym? Czy nadal przestrzegam przepisów rządowych i wewnętrznych? Jak moje zasady bezpieczeństwa przełożą się na modele w produkcji?

Poza kwestiami regulacyjnymi lub prawnymi, istnieje wiele powodów, dla których istnieją procesy i procedury zarządzania dla uczenia maszynowego. Przykłady obejmują sposoby zwiększania produktywności (takie jak ponowne wykorzystanie zasobów, takich jak modele i funkcje), kontrolowanie i utrzymywanie modeli w wielu różnych liniach biznesowych, aby zapewnić, że aplikacje o znaczeniu krytycznym dla firmy robią to, do czego są przeznaczone (lub znajdują te, które nie są) oraz przeglądanie historii modeli i prognoz, w tym przestarzałych zasobów.

Stawiając czoła tym wyzwaniom, warto zdefiniować, jakie modele i cechy są koncepcyjnie (zob. rys. 1). Istnieje wiele różnych definicji, ale ogólnie rzecz biorąc, model to dowolny samodzielny pakiet, który pobiera funkcje obliczone na podstawie danych wejściowych i tworzy prognozę (lub wynik) oraz metadane. Pakiet ten może przybierać różne formy, ale zawsze zawiera matematyczną reprezentację, kod, logikę biznesową i dane szkoleniowe. Prognozy modelu są wykorzystywane przez systemy lub użytkowników.

Wiele przedsiębiorstw obsługuje infrastrukturę modeli ML o różnych rozmiarach i dojrzałości, które wymagają narzędzi, które pomogą im zarządzać swoimi modelami. Ostatecznie potrzeby zarządzania ML można przeanalizować w następujących kluczowych obszarach:widoczność; oraz wyjaśnialność modelu, interpretowalność i odtwarzalność.

Rysunek 1

Widoczność modeli i funkcji w zespołach i w różnych organizacjach

Podstawowym wymogiem zarządzania modelami jest umożliwienie zespołom zrozumienia, w jaki sposób uczenie maszynowe jest stosowane w ich organizacjach. Wymaga to kanonicznego katalogu modeli i funkcji. W przypadku braku takiego katalogu wiele organizacji nie jest świadomych swoich modeli i funkcji, miejsca ich wdrożenia, tego, co robią itp. Prowadzi to do przeróbek, niespójności modeli, funkcji ponownego obliczania i innych nieefektywności.

Model wyjaśniania, interpretowalności i odtwarzalności

Modele są często postrzegane jako czarna skrzynka:dane wchodzą, coś się dzieje i pojawia się prognoza. Ta nieprzejrzystość stanowi wyzwanie na wielu poziomach i jest często przedstawiana w luźno powiązanych terminach, takich jak:

  • Wyjaśnienie :opis wewnętrznej mechaniki modelu ML w kategoriach ludzkich
  • Interpretowalność :umiejętność a) zrozumienia relacji między danymi wejściowymi, funkcjami i wynikami modelu oraz b) przewidywania reakcji na zmiany danych wejściowych.
  • Odtwarzalność :możliwość odtwarzania danych wyjściowych modelu w spójny sposób dla tych samych danych wejściowych.

Wszystko to wymaga wspólnej funkcjonalności, w tym powiązania z danymi źródłowymi, jasnego zrozumienia wewnętrznych elementów modeli, takich jak kod i dane szkoleniowe, oraz innych metod badania i analizy samych modeli.

Metadane modelu z przykładem

Aby rozwiązać opisane powyżej problemy związane z zarządzaniem, zacznijmy od zastanowienia się nad przykładem. Rozważ stronę z dostawą jedzenia. Firma chce wykorzystać uczenie maszynowe do oszacowania czasu dostawy.

Zbiór danych szkoleniowych składa się z dzienników zdarzeń z poprzednich dostaw, które zawierają czasy dostawy dla każdej dostawy zrealizowanej w przeszłości. Te dane są używane do trenowania modelu w celu oszacowania przyszłych czasów dostawy.

Dziennik zdarzeń może wyglądać mniej więcej tak:

Zamówienie zostało złożone o 10 rano na odbiór żywności z loc1 i dostarczenie do loc2. Kurier odebrał go z restauracji o 10:15 i dostarczył o 10:55, co w sumie zajmuje 55 minut od złożenia zamówienia do dostawy

Załóżmy, że loc1 i loc2 to adresy uliczne. Jest to tutaj skrócone, aby było krótkie i łatwe do odczytania.

Dzienniki zdarzeń są przechowywane w HBase. Architektura inżynierska rozwoju modelu jest następująca:

  1. Inżynierowie danych identyfikują okno czasowe dzienników zdarzeń, które mają być użyte do rozwiązania problemu. Nowa strukturalna tabela Hive jest tworzona przez parsowanie nieprzetworzonych dzienników zdarzeń ze zidentyfikowanym oknem czasowym.
  2. Inżynierowie funkcji (może to być rola wśród analityków danych lub inżynierów ML) identyfikują i opracowują nowe funkcje:
    • Funkcja w godzinach szczytu:funkcja pozwalająca określić, czy istnieją warunki w godzinach szczytu, biorąc pod uwagę lokalizację i godzinę.
    • Funkcja „zajętości” restauracji:funkcja umożliwiająca określenie, czy dana restauracja ma długi czas oczekiwania na podstawie danych historycznych. Te dane historyczne są zbierane osobno.
  3. Wyżej zidentyfikowane funkcje są następnie budowane jako biblioteka Pythona do ponownego użycia.
  4. Ta biblioteka służy do zastosowania tej funkcji do strukturalnej tabeli Hive w celu utworzenia nowej tabeli, która będzie ostatecznym zestawem danych szkoleniowych. Wiersz w nowej tabeli wygląda tak:

    Załóżmy, że loc1 i loc2 to adresy uliczne. Jest to tutaj skrócone, aby było krótkie i łatwe do odczytania.

  5. Naukowcy danych przeprowadzają regresję liniową zestawu danych treningowych, aby przewidzieć czas dostawy. W tym momencie muszą użyć tej samej biblioteki funkcji, która została użyta do wyodrębnienia funkcji z zestawu danych treningowych.
  6. Model jest wdrażany jako punkt końcowy funkcji jako usługi (FaaS) używany przez aplikację internetową do przewidywania czasu dostarczenia.

Zwróć uwagę, że model musi obliczyć funkcje do prognozowania w czasie rzeczywistym. Te funkcje to biblioteki używane wewnętrznie przez model. Wizualizacja różnych wykonanych czynności i wygenerowanych artefaktów w tym przykładzie może wyglądać tak:

Niebieskie pola reprezentują jednostki ML (rzeczowniki), takie jak kod, projekt, kompilacje, wdrożenia itp. Zielone pola reprezentują procesy (czasowniki), które działają na jednostki i tworzą inne jednostki.

Wizualizacja i relacje, które definiują przekształcenia w strukturze danych, są zbiorczo określane jako pochodzenie . W świecie baz danych dodanie nowej kolumny do tabeli zmodyfikuje jej pochodzenie. W świecie uczenia maszynowego przekwalifikowanie modelu przez wykorzystanie funkcji i zestawów danych zmodyfikuje pochodzenie. W przypadku strony z dostawą jedzenia, aby odpowiedzieć na pytanie:„czy jest różnica między ekstrakcją cech podczas treningu a punktacją”, potrzebujemy informacji o rodowodzie. To tylko jeden przykład użyteczności metadanych rodowodu w świecie uczenia maszynowego.

Apache Atlas jako narzędzie do zarządzania

Oczywiste jest, że zbudowanie kompletnej, kompleksowej linii przepływów pracy ML — od zestawów danych szkoleniowych po wdrożenia modeli — staje się kluczowym wymogiem rozwiązywania zidentyfikowanych problemów związanych z zarządzaniem. Integracja zarządzania danymi i uczenia maszynowego musi umożliwiać wyjaśnianie, interpretację i odtwarzalność.

Gromadzenie, przechowywanie i wizualizacja metadanych ML wymaga standardowego systemu oprogramowania zaplecza. Otwarta i rozszerzalna definicja metadanych umożliwi standaryzację operacji zarządzania niezależnie od tego, gdzie modele są opracowywane lub obsługiwane. Oczywistym kandydatem do Cloudera (i naszych klientów) jest Apache Atlas.

Apache Atlas to już zestaw powszechnie używanych narzędzi do zarządzania ze wstępnie zdefiniowanymi typami metadanych do zarządzania danymi. W kontekście zarządzania ML dobrze nadaje się do definiowania i przechwytywania metadanych wymaganych dla koncepcji uczenia maszynowego. Ponadto Apache Atlas zapewnia zaawansowane możliwości, takie jak klasyfikacje, integracja z Apache Ranger (do autoryzacji i tagowania), aby wymienić tylko kilka, oraz posiada rozszerzalny system dodatków, który pozwala społeczności na współpracę i stopniowe definiowanie integracji z różnymi innymi narzędziami w ML przestrzeń. Jako ćwiczenie dla czytelnika pozostaje zbadanie interfejsu użytkownika Apache Atlas i zobaczenie, jak korzystać z tych możliwości.

Definicja metadanych ML w Apache Atlas

Apache Atlas Type System spełnia wszystkie nasze potrzeby w zakresie definiowania obiektów metadanych ML. Jest open-source, rozszerzalny i ma wstępnie wbudowane funkcje zarządzania. Typ w Atlasie to definicja sposobu przechowywania i uzyskiwania dostępu do określonego typu obiektu metadanych. Reprezentuje również jeden lub więcej atrybutów, które definiują właściwości obiektu metadanych. W przypadku zarządzania ML, Atlas Type System może być używany do definiowania nowych typów, przechwytując jednostki i procesy ML jako obiekty metadanych Atlas. Oprócz definicji typów, relacja między bytami i procesami jest również wymagana do wizualizacji przepływu linii od końca do końca.

Jeśli odniesiemy to do opisanego wcześniej przykładu witryny z dostawami żywności, Atlas Type System stanowi dobrą podstawę do zdefiniowania linii uczenia maszynowego. Uogólniony system linii ML jest wizualizowany w następujący sposób:

Jak widać na powyższym diagramie, definicja metadanych dla uczenia maszynowego jest ściśle zgodna z rzeczywistym przepływem pracy uczenia maszynowego. Zbiory danych uczących są punktem wyjścia dla przepływu linii modelu. Te zestawy danych mogą być tabelami z hurtowni danych lub osadzonym plikiem csv. Po zidentyfikowaniu zestawu danych rodowód przechodzi do szkolenia, budowania i wdrażania modelu.

Tworzenie funkcji ML to równoległa i wyspecjalizowana działalność, którą można określić jako inżynierię funkcji (inną niż inżynieria modelowa). Obecnie w wielu przypadkach te dwie czynności (projektowanie modeli i inżynieria funkcji) są wykonywane przez tę samą osobę lub zespół. Wraz z demokratyzacją i uprzemysłowieniem funkcji może się to zmienić w przyszłości, dzięki wyspecjalizowanym zespołom do opracowywania modeli i opracowywania funkcji.

System typów ML można teraz zdefiniować za pomocą następujących nowych typów:

„Utwórz projekt uczenia maszynowego” i „projekt uczenia maszynowego”

Pojedynczy projekt uczenia maszynowego reprezentuje jeden biznesowy przypadek użycia. Projekt uczenia maszynowego reprezentuje kontener plików i innych zasobów osadzonych. Metadane projektu zawierają co najmniej:

  • Lista plików używanych w modelu
  • Historyczna wersja wszystkich plików
    • Najprostszą implementacją byłoby utrzymanie projektu jako repozytorium git polegającego na Git do przechowywania historii wszystkich plików.
„Zestaw danych treningowych”

Podtyp DataSet w Atlasie, który reprezentuje treningowy zestaw danych. Jednostka Training Data Set jest używana w procesie uczenia modelu. Może być powiązany z cechą, jeśli wygenerowane dane są wynikiem zastosowania ekstrakcji (lub przekształcenia) cech do innego zestawu danych.

„Trenuj i buduj”

Proces reprezentujący akcję uczenia i budowania modelu. Obejmuje przeprowadzanie eksperymentów, strojenie i finalizowanie wyboru algorytmu treningowego. Proces trenowania i budowania może opcjonalnie zużywać dane wyjściowe kompilacji funkcji; na przykład funkcja biblioteczna definiująca ekstrakcję cech wykorzystywaną wewnętrznie przez model.

„Budowa modelu”

Model jest wzmacniany i wersjonowany, gdy naukowiec danych zakończy eksperymentowanie i trenowanie modelu. Wynikiem tego przetwarzania jest kompilacja modelu, która jest niezmiennym artefaktem, który stanowi blok konstrukcyjny do produkcji modeli. Obraz Dockera jest przykładem encji Model Build.

„Wdrażanie modelu” i „Wdrażanie modelu”

Kompilacja modelu przechodzi przez proces wdrażania, który tworzy wdrożenie modelu. Wdrożenie modelu reprezentuje aktywne wystąpienie modelu. Usługa REST oparta na Kubernetes (wdrożenie w stylu FaaS) jest przykładem encji Model Deployment.

„Funkcja funkcji”

Funkcja uczenia maszynowego ma dwie interpretacje:1) Funkcja funkcji i 2) Przekształcony zbiór danych.

Jednostka Funkcja funkcji jest funkcją niestandardową (wyrażoną w kodzie), która definiuje sposób wyodrębnienia zidentyfikowanej funkcji z danych wejściowych. Reprezentuje kod funkcji, podobnie jak ML Project reprezentuje kontener dla kodu ML.

Funkcja Feature Function jest najpierw pakowana jako biblioteka (wersjonowana i hartowana). Biblioteka jest następnie zużywana i stosowana w danym DataSet w celu przekształcenia go w nowy DataSet (z wyodrębnionymi funkcjami). Przekształcony zbiór danych jest reprezentowany przez zdefiniowany powyżej zestaw danych treningowych.

„Funkcja pakietu” i „Budowa funkcji”

Kod w funkcji funkcji jest pakowany do udostępniania (z innymi modelami) lub do oceniania w czasie wykonywania. Te pakiety są nazywane kompilacjami funkcji. Na przykład kompilacja funkcji może zawierać spakowaną bibliotekę (w języku Python) lub plik jar (w języku Java). Ten pakiet może zostać wchłonięty podczas procesu uczenia modelu i budowania, aby zapewnić, że ta sama funkcja jest używana podczas ekstrakcji i prognozowania.

Wypróbuj i zaangażuj się w definiowanie przyszłości definicji metadanych ML

Rozpoczęliśmy prace nad ATLAS-3432, który jest pierwszym wdrożeniem systemu Machine Learning Type System wykorzystującym Cloudera Data Science Workbench (CDSW) jako klienta pilotażowego. Podziękowania dla Na Li z zespołu inżynierskiego Cloudera za prowadzenie prac nad budową integracji CDSW. ATLAS-3432 umożliwi przekazanie metadanych modelu z instancji CDSW do instancji Apache Atlas w celu zbadania rodowodu. CDSW obecnie nie obsługuje funkcji (ani magazynu funkcji), więc rodowód związany z funkcjami będzie niedostępny.

W Cloudera nie chcemy po prostu rozwiązywać tego problemu dla naszych klientów – uważamy, że definicje metadanych ML powinny być uniwersalne, podobnie jak tabele, kolumny itp. są bardzo standardowe dla struktur danych. Mamy nadzieję, że społeczności przyczynią się do zdefiniowania tego standardu, aby pomóc firmom w pełni wykorzystać ich platformy ML.

Czy masz przypadek użycia uczenia maszynowego, który nie pasuje do modelu metadanych? Dołącz do rozmowy, publikując swoje sugestie na [email protected].


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Koncepcje rozwoju aplikacji operacyjnej bazy danych Cloudera

  2. Przyszłość Hadoop – wynagrodzenia i prognozy pracy w analizie Big Data

  3. Budowanie skalowalnego procesu przy użyciu NiFi, Kafka i HBase na CDP

  4. Ścieżka zapisu Apache HBase

  5. Tworzenie aplikacji do uczenia maszynowego za pomocą środowiska pracy i operacyjnej bazy danych Cloudera Data Science, część 1:Konfiguracja i podstawy