bitcoin-mining-ban-in-iranie-do-zniesienia-w-wrzesniu-przez-autorytet.jpg

Model dryftu w uczeniu maszynowym – jak sobie z tym poradzić w Big Data

Węzeł źródłowy: 1864699

Model dryftu w uczeniu maszynowym – jak sobie z tym poradzić w Big Data

Architektura Rendezvous pomaga uruchamiać i wybierać dane wyjściowe z modelu Champion i wielu modeli Challenger działających równolegle bez wielu kosztów ogólnych. Oryginalne podejście sprawdza się dobrze w przypadku mniejszych zestawów danych, więc w jaki sposób ten pomysł można dostosować do potoków dużych zbiorów danych?


By Sai Gita, ekspert w dziedzinie Big Data Engineering i Data Science.

Połączenia Architektura spotkania zaproponowane przez Teda Dunninga i Ellen Friedman w ich książce pt Logistyka uczenia maszynowego było wspaniałym rozwiązaniem, które znalazłem dla konkretnego problemu architektonicznego, nad którym pracowałem. Szukałem wypróbowanego i przetestowanego wzorca projektowego lub wzorca architektonicznego, który pomógłby mi uruchomić razem modele Challenger i Champion w sposób możliwy do utrzymania i wsparcia. Architektura rendezvous była znacznie bardziej użyteczna w świecie dużych zbiorów danych, ponieważ masz do czynienia z dużymi ilościami danych i dużymi potokami.

Możliwość jednoczesnego uruchamiania modeli Challenger i Champion na wszystkich danych jest bardzo potrzebą w uczeniu maszynowym, gdzie wydajność modelu może zmieniać się w czasie i gdzie chcesz stale ulepszać wydajność swoich modeli, aby zawsze były lepsze.

Tak więc, zanim zagłębię się w tę architekturę, chciałbym wyjaśnić niektóre z żargonu, którego użyłem powyżej. Co to jest model Champion? Co to jest model Challengera? Co to jest dryf modelu i dlaczego występuje? Następnie możemy spojrzeć na samą architekturę spotkania i problemy, które rozwiązuje.

Dryf modelu

Gdy już wprowadzisz swój model do produkcji, zakładanie, że zawsze będzie dobrze działał, jest błędem. W rzeczywistości mówi się – „W momencie wprowadzenia modelu do produkcji zaczyna się on degradować". (Uwaga, najczęściejjest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,' w ML oznacza wydajność statystyczną — czy to dokładność, precyzja, przypominanie, czułość, specyficzność lub jakakolwiek inna miara odpowiednia dla twojego przypadku użycia).

Dlaczego to się zdarza? Model jest szkolony na niektórych danych z przeszłości. Doskonale radzi sobie z dowolnymi danymi o tych samych cechach. Jednak w miarę upływu czasu rzeczywista charakterystyka danych może się zmieniać, a model w ogóle nie jest świadomy tych zmian. Powoduje to dryf modelu, tj. degradację wydajności modelu.

Na przykład wyszkoliłeś model do wykrywania spamu w porównaniu z pocztą typu ham. Model dobrze się sprawdza po rozłożeniu. Z biegiem czasu rodzaje spamu zmieniają się, przez co dokładność przewidywania spada. To się nazywa model dryfu.

Dryf modelu może się zdarzyć z powodu a pojęcie dryfu lub dryf danych. Nie będę się tym dzisiaj zajmował, więc wystarczy, że zrozumiemy, że wydajność modelu nie jest stała. Dlatego musimy stale monitorować wydajność modelu. Najczęściej najlepiej jest przeszkolić model z nowszymi danymi częściej lub prawdopodobnie w oparciu o poziom progowy degradacji wydajności.

Czasami nawet ponowne uczenie modelu nie poprawia jeszcze bardziej wydajności. Oznaczałoby to, że być może będziesz musiał zrozumieć zmiany w charakterystyce problemu i przejść przez cały proces analizy danych, tworzenia funkcji i budowania modelu z bardziej odpowiednimi modelami.

Ten cykl można skrócić, jeśli możesz pracować z modelami Challengera, nawet jeśli obecnie mamy jeden model w produkcji. Jest to proces ciągłego doskonalenia uczenia maszynowego, który jest bardzo potrzebny.

Modele mistrz-pretendent

Zazwyczaj model w produkcji nazywa się Champion Model. A każdy inny model, który wydaje się dobrze działać w twoich mniejszych próbach i jest gotowy do wprowadzenia do produkcji, jest Challenger Model. Te modele Challenger zostały zaproponowane, ponieważ zakładamy, że istnieje szansa, że ​​będą działać lepiej niż model Champion. Ale jak to udowodnić?

Model Champion zwykle działa na wszystkich przychodzących danych, aby zapewnić prognozy. Jednak na jakich danych opiera się model Challengera?

Modele Challengera można testować na dwa sposoby. Idealnym przypadkiem byłoby uruchomienie modelu Challengera równolegle z modelem Championa na wszystkich danych i porównanie wyników. To naprawdę udowodniłoby, że model Challengera może działać lepiej lub nie. Wydaje się to jednak zaporowe, zwłaszcza w świecie dużych zbiorów danych, dlatego Challenger jest zawsze testowany na podzbiorze przychodzących danych. Gdy wydaje się, że działa dobrze, jest stopniowo wdrażany do coraz większej liczby danych, prawie jak testy alfa-beta.

Jak być może wiesz, w testach alfa-beta niewielki procent użytkowników lub przychodzących danych jest w tym przypadku wysyłany przez nowy test lub potok Challengera, a cała reszta przechodzi przez oryginalny potok Champion. Ten rodzaj testów alfa-beta jest dobry dla niektórych aplikacji, ale wyraźnie nie robi wrażenia w świecie uczenia maszynowego. Nie porównujesz modeli na tych samych danych i dlatego rzadko możesz z całą pewnością powiedzieć, że jeden jest lepszy od drugiego dla całości danych. Po wdrożeniu go dla wszystkich danych mogą pojawić się niespodzianki, a dryf modelu może rozpocząć się wcześniej niż oczekiwano.

Typowy rurociąg alfa-beta wyglądałby tak:

Dane są dzielone między dwa potoki na podstawie pewnych kryteriów, takich jak kategoria produktu. Ten podział danych stale rośnie w kierunku Challengera, ponieważ rośnie zaufanie do wydajności modelu Challengera.

Z punktu widzenia analityka danych nie jest to idealne rozwiązanie. Ideałem byłaby możliwość równoległego uruchamiania modelu Challengera wszystkie dane wraz z modelem Champion. Jak już wspomniałem, jest to bardzo drogie.

Rozważ najgorszy scenariusz. Jeśli chcesz, aby działały równolegle, musisz skonfigurować dwa potoki danych, które niezależnie przechodzą przez wszystkie kroki.

Wyglądałoby to mniej więcej tak:

Ma to ogromne implikacje inżynieryjne, a co za tym idzie, implikacje związane z czasem wprowadzenia produktu na rynek. Koszt tego może z czasem stać się wygórowany.

Niektóre z głównych implikacji to czas i wysiłek związany z ciągłym budowaniem tych potoków bez pewności, czy model Challengera rzeczywiście będzie działał zgodnie z oczekiwaniami. Proces CI/CD, wdrożenia, monitorowanie, mechanizmy uwierzytelniania itp. to tylko niektóre z nich. Ponadto inny koszt dotyczy infrastruktury, która musi być podwójnie udostępniana.

Biorąc pod uwagę, czy te potoki są potokami dużych zbiorów danych, staje się to jeszcze bardziej znaczące. Bardzo szybko zdajesz sobie sprawę, że nie jest to skalowalny model. Z pewnością musimy zobaczyć, jak możemy odejść od równoległych potoków, a nawet od metody testowania alfa-beta.

W rezultacie najlepszym scenariuszem byłoby ponowne wykorzystanie większości potoków danych. Chodzi o to, aby zminimalizować ilość, którą trzeba opracować i ponownie wdrożyć do produkcji. Zapewniłoby to również optymalizację wykorzystania infrastruktury. To jest jeden sposób myślenia o tym, jak zoptymalizować.

Jeszcze lepiej byłoby móc po prostu podłącz model Challenger, a reszta potoku gra tak, jakby nic się nie zmieniło. Czy to nie byłoby fantastyczne? A to jest możliwe dzięki Architektura spotkania.

Architektura spotkania

Architektura Rendezvous, jak napisano w książce, jest przechylona w stronę ML z mniejszymi danymi. Dostosowałem go, aby spełniał potrzeby świata dużych zbiorów danych i powiązanych potoków, jak pokazano na poniższym diagramie: (Odniesienia do książki i innego artykułu podano poniżej w sekcji referencje)

Pozwólcie, że teraz wyjaśnię sekcja po sekcji tej architektury.

1 część:

Składa się ze standardowego potoku danych do odbierania przychodzących danych, czyszczenia ich, przygotowywania i tworzenia wymaganych funkcji. Powinien to być tylko jeden potok dla każdego modelu, który ma zostać wdrożony. Przygotowane dane powinny utrzymywać standardowy interfejs, który ma wszystkie funkcje, które mogą być wymagane w tej dziedzinie, niezależnie od dostępnego modelu. (Rozumiem, że nie zawsze jest to możliwe i z czasem może wymagać drobnych poprawek. Ale w razie potrzeby możemy zająć się tym kawałkiem w odosobnieniu.)

2 część:

Jest to infrastruktura przesyłania wiadomości, taka jak Kafka, która wchodzi w grę, wprowadzając poczucie asynchroniczności. Dane przygotowane jako funkcje są publikowane na magistrali komunikatów. Teraz każdy model nasłuchuje tej magistrali komunikatów i uruchamia się, wykonując się z przygotowanymi danymi. Ta magistrala komunikatów umożliwia tutaj architekturę plug-and-play.

3 część:

Jest to część, w której wszystkie modele są wdrażane jeden po drugim. Nowy model Challengera można wdrożyć i zmusić do nasłuchiwania magistrali komunikatów, a gdy dane napływają, może on działać. Można tu rozmieścić dowolną liczbę modeli, a nie tylko jeden model Challengera! Ponadto wymaganie infra dotyczy tylko działania dodatkowego modelu. Ani potoki przed modelem, ani potoki po modelu nie muszą być oddzielnie opracowywane ani wdrażane.

Jak widać na rysunku, możesz mieć wiele modeli pretendentów, o ile analityk danych uzna je za wystarczająco dojrzałe, aby można je było przetestować na rzeczywistych danych.

Istnieje również specjalny model zwany modelem wabika. Aby żaden z procesów modelowych nie był obciążony uporczywością, przygotowane dane są również odczytywane przez tzw. model wabika, którego jedynym zadaniem jest odczyt przygotowanych danych i utrwalanie. Pomaga to w kontrolach, śledzeniu i debugowaniu, gdy jest to wymagane.

4 część:

Wszystkie te modele ponownie wysyłają swoje prognozy lub wyniki do innej szyny komunikatów, nie wprowadzając w ten sposób żadnej zależności między sobą. Ponadto ponownie odgrywa to ważną rolę w zapewnieniu możliwości podłączania modelu bez zakłócania czegokolwiek innego w potoku.

Stamtąd proces spotkania zbiera punkty i decyduje, co należy zrobić, jak opisano w części 5.

5 część:

W tym miejscu pojawiła się nowa koncepcja a Proces spotkania zostaje wprowadzony, który ma dwa ważne podprocesy. Jeden bezpośredni podproces zajmuje się przesyłaniem prawidłowych danych wyjściowych z potoku dla konsumenta spośród wielu otrzymanych ocen, a drugi proces polega na utrwalaniu danych wyjściowych ze wszystkich modeli w celu dalszego porównania i analizy.

Tak więc osiągnęliśmy tutaj dwie rzeczy:

  1. Najlepsza wydajność jest dostarczana konsumentowi.
  2. Wszystkie dane przeszły przez wszystkie modele, a zatem są one całkowicie porównywalne w podobnych okolicznościach pod względem ich wydajności.

W jaki sposób decyduje, które wyjście modelu powinno zostać wysłane? Może to opierać się na wielu kryteriach, na przykład podzbiór danych powinien zawsze pochodzić z firmy Challenger, a inny podzbiór powinien zawsze pochodzić od firmy Champion. To prawie jak przejście testów alfa-beta. Jednak zaletą jest to, że chociaż dla konsumenta brzmi to jak testy alfa-beta, dla analityka danych wszystkie dane przeszły przez oba modele, dzięki czemu mogą oni porównać dwa wyjścia i zrozumieć, który działa lepiej.

Innym kryterium może być to, że dane wyjściowe powinny być oparte na działaniu modelu. W takim przypadku proces spotkania czeka na zakończenie wszystkich modeli i opublikowanie ich w szynie komunikatów. Następnie wyszukuje najlepszą metrykę wydajności i wysyła ją jako wynik.

Tak, innym kryterium może być czas lub opóźnienie. Jeśli potrzebujemy uzyskać wynik w, powiedzmy, mniej niż 5 sekund, proces czeka na wszystkie wyniki z modeli, do 5 sekund, porównuje tylko te i zwraca najlepsze dane. Mimo że inny model powraca w 6. sekundzie, który mógł działać znacznie lepiej, jest to ignorowane, ponieważ nie spełnia kryteriów opóźnienia.

Ale skąd ten proces wie, jakie są kryteria, których należy przestrzegać dla jakich danych lub jakiego modelu? Można to wprowadzić jako część danych wejściowych do szyny komunikatów w części 2. Należy zauważyć, że proces Rendezvous również nasłuchuje tych komunikatów i dowiaduje się, co zrobić z danymi wyjściowymi odpowiadającymi danym wejściowym. Mogą istnieć również inne sprytne sposoby, ale jest to jeden z proponowanych sposobów.

Wnioski

Wprowadzając asynchroniczność za pośrednictwem magistrali komunikatów, wprowadzono poziom oddzielenia, który umożliwia podłączanie modeli typu plug-and-play do sztywnego potoku danych.

Wprowadzając proces spotkania, wprowadzono możliwość wyboru między różnymi wynikami modelu, utrwalania ich, porównywania. Dzięki temu wprowadzenie lub wspieranie dowolnej liczby nowych modeli dla tego samego zestawu danych nie wydaje się teraz herkulesowym zadaniem.

Podsumowanie

Architektura rendez-vous zapewnia dużą elastyczność na różnych poziomach.

  1. Można użyć różnych kryteriów, aby zdecydować, jaki wynik, dane wyjściowe lub predykcja mogą zostać wysłane z procesu predykcji. Kryteria te mogą być oparte na opóźnieniu, wydajności modelu lub prostym czasie.
  2. Zapewnia możliwość dynamicznego definiowania i zmiany tych kryteriów w procesie spotkania. Możesz przenieść to na inny poziom, wprowadzając tutaj silnik reguł.
  3. Zapewnia możliwość przejścia wszystkich danych przez wszystkie potoki lub wybrania tylko podzbioru do przejścia przez wiele potoków. Na przykład, jeśli prognozujesz produkty spożywcze i ogólne, artykuły spożywcze mogą przechodzić przez własne modele Champion i Challenger, podczas gdy towary ogólne, które zwykle sprzedają się wolno, mogą mieć własne rurociągi.
  4. Zapewnia również możliwość uruchamiania wielu modeli jednocześnie bez ponownego opracowywania lub ponownego wdrażania dużej części potoku dużych zbiorów danych. Oprócz oszczędności nakładu pracy i czasu optymalizuje się również koszty infrastruktury.

Referencje

  1. Logistyka uczenia maszynowego autorstwa Teda Dunninga; Ellen Friedman – 3. rozdział „Architektura Rendezvous dla uczenia maszynowego”
  2. Artykuł na temat w kierunkudatascience.com"Architektura Rendezvous dla Data Science w produkcji” Jana Teichmanna

Oryginalny. Przesłane za zgodą.

Bio: Sai Gita (@saigeethamn) jest architektem z doświadczeniem w tworzeniu strategicznych map drogowych i wprowadzaniu innowacji w oparciu o potrzeby przedsiębiorstwa i wiodące technologie. Specjalista Big Data z wiedzą Data Science, który może wypełnić lukę między dwoma światami i zapewnić sukces każdej inicjatywie związanej z dużymi danymi w Twojej firmie.

Związane z:

Źródło: https://www.kdnuggets.com/2021/08/model-drift-machine-learning-big-data.html

Znak czasu:

Więcej z Knuggety