Produkcyjne systemy ML: trenowanie statyczne a dynamiczne

Ogólnie model można wytrenować na 2 sposoby:

  • Statyczne trenowanie (nazywane też trenowaniem offline) oznacza, że model trenujesz tylko raz. Następnie przez jakiś czas używasz tego samego wytrenowanego modelu.
  • Dynamiczne szkolenie (nazywane też szkoleniem online) oznacza, że model jest trenowany stale lub przynajmniej często. Zwykle serwujesz ostatnio wytrenowany model.
Rysunek 2.  Z surowego ciasta powstają 3 identyczne bochenki chleba.
Rysunek 2. Trening statyczny. Trenuj raz, a następnie wyświetlaj ten sam zbudowany model wielokrotnie. (zdjęcia: Pexels i fancycrave1)

 

Rysunek 3.  Z surowego ciasta za każdym razem powstają nieco inne bochenki chleba.
Rysunek 3. Dynamiczne szkolenie. Często dostosowuj model, aby korzystać z najnowszego modelu. (zdjęcia z Pexels i Couleur)

 

Tabela 1. Główne zalety i wady.

Trening statyczny Dynamiczny trening
Zalety Prostsza. Model trzeba opracować i przetestować tylko raz. Większa elastyczność. Twój model będzie uwzględniać wszelkie zmiany w zależnościach między cechami a etykietami.
Wady Czasami szybciej. Jeśli związek między cechami a etykietami zmienia się z czasem, prognozy modelu będą mniej dokładne. Więcej pracy. Musisz stale tworzyć, testować i publikować nowe produkty.

Jeśli Twój zbiór danych nie zmienia się z czasem, wybierz trenowanie statyczne, ponieważ jest tańsze w tworzeniu i utrzymywaniu niż trenowanie dynamiczne. Zbiory danych zmieniają się jednak z czasem, nawet te, które zawierają cechy, które według Ciebie są tak stałe jak np. poziom morza. Wnioski: nawet w przypadku statycznego szkolenia musisz sprawdzać, czy dane wejściowe nie uległy zmianie.

Rozważ np. model wytrenowany do przewidywania prawdopodobieństwa, że użytkownicy kupią kwiaty. Ze względu na presję czasu model jest trenowany tylko raz, przy użyciu zbioru danych o zachowaniu klientów kupujących kwiaty w lipcu i sierpniu. Model działa prawidłowo przez kilka miesięcy, ale w okresie Walentynek jego prognozy są fatalne, ponieważ zachowanie użytkowników w tym okresie znacznie się zmienia.

Więcej informacji o szkoleniu statycznego i dynamicznego znajdziesz w tym kursie.

Ćwiczenia: sprawdź swoją wiedzę

Które 2 z tych stwierdzeń dotyczących statycznego (offline) szkolenia są prawdziwe?
Model jest aktualizowany wraz z przybyciem nowych danych.
W rzeczywistości, jeśli trenujesz model offline, nie ma on możliwości uwzględniania nowych danych w miarę ich pojawiania się. Może to spowodować przestarzałość modelu, jeśli dystrybucja, z której próbujesz się uczyć, zmienia się w czasie.
Możesz zweryfikować model przed jego zastosowaniem w wersji produkcyjnej.
Tak. Trening offline daje wiele możliwości weryfikacji skuteczności modelu przed wprowadzeniem go do produkcji.
Trening offline wymaga mniej monitorowania zadań trenowania niż trening online.
Ogólnie wymagania dotyczące monitorowania w czasie treningu są mniej rygorystyczne w przypadku treningu offline, co chroni przed wieloma problemami związanymi z produkcją. Im częściej jednak trenujesz model, tym więcej musisz poświęcać czasu na monitorowanie. Warto też regularnie przeprowadzać weryfikację, aby mieć pewność, że zmiany w kodzie (i jego zależnościach) nie wpływają negatywnie na jakość modelu.
W czasie wnioskowania nie trzeba zbytnio monitorować danych wejściowych.
Wbrew pozorom, dane wejściowe trzeba monitorować w momencie wyświetlania. Jeśli dystrybucje danych wejściowych ulegną zmianie, prognozy naszego modelu mogą stać się niewiarygodne. Wyobraź sobie np., że model wytrenowany tylko na podstawie danych o odzieży na lato jest nagle używany do przewidywania zachowań związanych z kupowaniem odzieży zimą.
Które z tych stwierdzeń jest prawdziwe w przypadku dynamicznego (internetowego) szkolenia?
Model jest aktualizowany wraz z przybyciem nowych danych.
Jest to główna zaleta trenowania online. Dzięki temu możesz uniknąć wielu problemów z nieaktualnością, ponieważ model będzie się uczyć na podstawie nowych danych w miarę ich pojawiania się.
Nie trzeba zbytnio monitorować zadań trenowania.
W rzeczywistości musisz stale monitorować zadania treningowe, aby mieć pewność, że działają one prawidłowo i zgodnie z oczekiwaniami. Potrzebujesz też infrastruktury pomocniczej, takiej jak możliwość przywrócenia modelu do poprzedniego stanu w przypadku wystąpienia błędu podczas trenowania, np. błędu w zadaniu lub uszkodzenia danych wejściowych.
W czasie wnioskowania nie trzeba zbytnio monitorować danych wejściowych.
Podobnie jak w przypadku statycznych modeli offline ważne jest, aby monitorować dane wejściowe dynamicznie aktualizowanych modeli. Prawdopodobnie nie będziesz narażony(-a) na duże efekty sezonowości, ale nagłe, duże zmiany w danych wejściowych (np. awaria źródła danych) mogą spowodować niewiarygodne prognozy.