Zdecyduj o wdrożeniu w czasie rzeczywistym lub wsadowym

Ukończone

Gdy wdrażasz model na końcowym punkcie w celu integracji z aplikacją, możesz zaprojektować go na potrzeby przewidywań w czasie rzeczywistym lub wsadowych.

Typ potrzebnych przewidywań zależy od tego, jak chcesz używać przewidywań modelu

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 uruchomić model, aby ocenić nowe dane zebrane przez pewien czas.

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

Niezależnie od tego, czy chcesz przewidywania w czasie rzeczywistym czy wsadowe, to 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 widzenia komputerowego może być konieczne indywidualne ocenianie pojedynczego obrazu lub ocenianie kolekcji obrazów jednocześnie.

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 wdrożyć model 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 mocy obliczeniowej, która może 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, zasoby obliczeniowe są dostarczane przez obszar roboczy w momencie wyzwolenia skorowania wsadowego i automatycznie skalowane do 0 węzłów, kiedy 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.

Zdecyduj o wdrożeniu w czasie rzeczywistym lub wsadowym

Wybór strategii wdrażania dla modeli uczenia maszynowego może być trudny, ponieważ różne czynniki mogą mieć wpływ na twoją decyzję.

Ogólnie rzecz biorąc, jeśli potrzebujesz indywidualnych przewidywań natychmiast po zebraniu nowych danych, potrzebujesz przewidywań w czasie rzeczywistym.

Jeśli potrzebujesz modelu, aby ocenić nowe dane, gdy dostępna jest partia danych, należy uzyskać przewidywania dla partii danych.

Istnieją scenariusze, w których można oczekiwać przewidywań w czasie rzeczywistym, gdy przewidywania wsadowe mogą być bardziej ekonomiczne. Pamiętaj, że stale płacisz za obliczenia przy użyciu wdrożeń w czasie rzeczywistym, nawet jeśli nie są generowane żadne nowe przewidywania.

Jeśli możesz pozwolić na opóźnienie od 5 do 10 minut, gdy potrzebujesz pilnych przewidywań, możesz zdecydować się na wdrożenie modelu do endpointu wsadowego. Opóźnienie wynika z czasu potrzebnego na uruchomienie klastra obliczeniowego po wyzwoleniu punktu końcowego. Jednak klaster obliczeniowy również zatrzyma się po wygenerowaniu przewidywania, minimalizując koszty i potencjalnie będąc bardziej opłacalnym rozwiązaniem.

Na koniec należy również wziąć pod uwagę wymagane obliczenia dla modelu, aby ocenić nowe dane. Prostsze modele wymagają mniejszego kosztu i czasu generowania przewidywań. Bardziej złożone modele mogą wymagać większej mocy obliczeniowej i czasu przetwarzania w celu generowania przewidywań. W związku z tym należy rozważyć sposób wdrażania modelu przed podjęciem decyzji o sposobie trenowania modelu.