Integrowanie modelu

Ukończone

Należy zaplanować sposób integracji modelu, ponieważ wpływa to na sposób trenowania modelu lub używanych danych treningowych. Aby zintegrować model, należy wdrożyć model w punkcie końcowym. Model można wdrożyć w punkcie końcowym dla przewidywań w czasie rzeczywistym lub wsadowych.

Wdrażanie modelu w punkcie końcowym

Podczas trenowania modelu celem jest często zintegrowanie modelu z aplikacją.

Aby łatwo zintegrować model z aplikacją, możesz użyć punktów końcowych. Mówiąc mówiąc, punkt końcowy może być adresem internetowym, który aplikacja może wywołać, aby odzyskać komunikat.

Podczas wdrażania modelu w punkcie końcowym dostępne są dwie opcje:

  • Uzyskiwanie przewidywań w czasie rzeczywistym
  • Pobieranie przewidywań wsadowych

Uzyskiwanie przewidywań w czasie rzeczywistym

Jeśli chcesz, aby model oceniał nowe dane w miarę ich tworzenia, potrzebujesz przewidywań w czasie rzeczywistym.

Przewidywania w czasie rzeczywistym są często potrzebne, gdy model jest używany przez aplikację, taką jak aplikacja mobilna lub witryna internetowa.

Załóżmy, że masz witrynę internetową zawierającą katalog produktów:

  1. Klient wybiera produkt na swojej stronie internetowej, taki jak koszula.
  2. Na podstawie wyboru klienta model natychmiast zaleca inne elementy z wykazu produktów. W witrynie internetowej są wyświetlane zalecenia dotyczące modelu.

Diagram przedstawiający witrynę internetową sklepu internetowego. Koszula jest wyświetlana u góry, a zalecenia, na podstawie koszuli, są wyświetlane u dołu.

Klient może wybrać produkt w sklepie internetowym w dowolnym momencie. Chcesz, aby model znalazł zalecenia niemal natychmiast. Czas potrzebny na załadowanie strony internetowej i wyświetlenie szczegółów koszuli to czas potrzebny na uzyskanie zaleceń lub przewidywań. Następnie po wyświetleniu koszuli można również wyświetlić zalecenia.

Pobieranie przewidywań wsadowych

Jeśli chcesz, aby model oceniał nowe dane w partiach i zapisywał wyniki jako plik lub w bazie danych, potrzebne są przewidywania wsadowe.

Na przykład można wytrenować model, który przewiduje sprzedaż soku pomarańczowego dla każdego przyszłego tygodnia. Przewidując sprzedaż soku pomarańczowego, możesz upewnić się, że podaż jest wystarczająca do spełnienia oczekiwanego zapotrzebowania.

Wyobraź sobie, że wizualizujesz wszystkie historyczne dane sprzedaży w raporcie. W tym samym raporcie należy uwzględnić przewidywaną sprzedaż.

Diagram przedstawiający raport z kilkoma wykresami. Jeden graf to wykres liniowy z niebieską strzałką wyróżniającą prognozowane wartości.

Chociaż sok pomarańczowy jest sprzedawany przez cały dzień, chcesz obliczyć prognozę tylko raz w tygodniu. Dane sprzedaży można zbierać przez cały tydzień i wywoływać model tylko wtedy, gdy masz dane sprzedaży przez cały tydzień. Kolekcja punktów danych jest określana jako partia.

Wybieranie między wdrożeniem w czasie rzeczywistym lub wsadowym

Aby zdecydować, czy projektować rozwiązanie wdrażania w czasie rzeczywistym, czy wsadowe, należy wziąć pod uwagę następujące pytania:

  • Jak często powinny być generowane przewidywania?
  • Jak szybko są potrzebne wyniki?
  • Czy przewidywania powinny być generowane indywidualnie lub w partiach?
  • Ile mocy obliczeniowej jest potrzebne do wykonania modelu?

Identyfikowanie niezbędnej częstotliwości oceniania

Typowy scenariusz polega na tym, że używasz modelu do oceniania nowych danych. Przed uzyskaniem przewidywań w czasie rzeczywistym lub w partii należy najpierw zebrać nowe dane.

Istnieją różne sposoby generowania lub zbierania danych. Nowe dane można również zbierać w różnych odstępach czasu.

Można na przykład zbierać dane temperatury z urządzenia Internetu rzeczy (IoT) co minutę. Dane transakcyjne można pobierać za każdym razem, gdy klient kupuje produkt ze sklepu internetowego. Możesz też wyodrębnić dane finansowe z bazy danych co trzy miesiące.

Ogólnie rzecz biorąc, istnieją dwa typy przypadków użycia:

  1. Potrzebujesz modelu, aby ocenić nowe dane, gdy tylko się pojawią.
  2. Możesz zaplanować lub wyzwolić model, aby ocenić nowe dane zebrane w czasie.

Diagram przedstawiający wizualną reprezentację przewidywań w czasie rzeczywistym i wsadowych.

Niezależnie od tego, czy chcesz przewidywać w czasie rzeczywistym, czy wsadowe , niekoniecznie zależy od częstotliwości zbierania nowych danych. Zamiast tego zależy to od tego, jak często i jak szybko potrzebne są przewidywania do wygenerowania.

Jeśli potrzebujesz przewidywań modelu natychmiast po zebraniu nowych danych, potrzebujesz przewidywań w czasie rzeczywistym. Jeśli przewidywania modelu są używane tylko w określonych momentach, potrzebne są przewidywania wsadowe.

Wybieranie liczby przewidywań

Innym ważnym pytaniem, które należy zadać sobie, jest to, czy potrzebujesz przewidywań, które mają być generowane indywidualnie, czy w partiach.

Prostym sposobem zilustrowania różnicy między poszczególnymi i wsadowymi przewidywaniami jest wyobrażanie sobie tabeli. Załóżmy, że masz tabelę danych klientów, w której każdy wiersz reprezentuje klienta. Dla każdego klienta masz pewne dane demograficzne i dane behawioralne, takie jak liczba produktów zakupionych w sklepie internetowym i czas ich ostatniego zakupu.

Na podstawie tych danych można przewidzieć współczynnik zmian klientów: czy klient będzie kupował w sklepie internetowym ponownie, czy nie.

Po wytrenowanym modelu możesz zdecydować, czy chcesz wygenerować przewidywania:

  • Indywidualnie: model otrzymuje pojedynczy wiersz danych i zwraca, czy pojedynczy klient kupi ponownie.
  • Batch: model otrzymuje wiele wierszy danych w jednej tabeli i zwraca, czy każdy klient kupi ponownie. Wyniki są sortowane w tabeli zawierającej wszystkie przewidywania.

Można również wygenerować indywidualne lub wsadowe przewidywania podczas pracy z plikami. Na przykład podczas pracy z modelem przetwarzania obrazów może być konieczne indywidualne ocenianie pojedynczego obrazu lub kolekcja obrazów w jednej partii.

Rozważenie kosztów obliczeń

Oprócz używania obliczeń podczas trenowania modelu potrzebne są również obliczenia podczas wdrażania modelu. W zależności od tego, czy model jest wdrażany w punkcie końcowym w czasie rzeczywistym, czy wsadowym, użyjesz różnych typów obliczeń. Aby zdecydować, czy model ma zostać wdrożony w punkcie końcowym w czasie rzeczywistym, czy wsadowym, należy wziąć pod uwagę koszt każdego typu obliczeń.

Jeśli potrzebujesz przewidywań w czasie rzeczywistym, potrzebujesz obliczeń, które są zawsze dostępne i mogą natychmiast zwracać wyniki (prawie). Technologie kontenerów , takie jak Azure Container Instance (ACI) i Azure Kubernetes Service (AKS), są idealne dla takich scenariuszy, ponieważ zapewniają uproszczoną infrastrukturę dla wdrożonego modelu.

Jednak podczas wdrażania modelu w punkcie końcowym w czasie rzeczywistym i używania takiej technologii kontenera obliczenia są zawsze włączone. Po wdrożeniu modelu stale płacisz za zasoby obliczeniowe, ponieważ nie możesz wstrzymać lub zatrzymać obliczeń, ponieważ model musi być zawsze dostępny dla natychmiastowych przewidywań.

Alternatywnie, jeśli potrzebujesz przewidywań wsadowych, potrzebujesz obliczeń, które mogą obsługiwać duże obciążenie. W idealnym przypadku należy użyć klastra obliczeniowego, który może oceniać dane w równoległych partiach przy użyciu wielu węzłów.

Podczas pracy z klastrami obliczeniowymi, które mogą przetwarzać dane w równoległych partiach, obliczenia są aprowizowane przez obszar roboczy po wyzwoleniu oceniania wsadowego i skalowane w dół do 0 węzłów, gdy nie ma nowych danych do przetworzenia. Dzięki możliwości skalowania obszaru roboczego w dół bezczynnego klastra obliczeniowego można zaoszczędzić znaczne koszty.