Integracja modelu

Ukończone

Wskazówka

Aby uzyskać więcej szczegółów, zobacz kartę Tekst i obrazy .

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 endpoint. Model można wdrożyć w punkcie końcowym dla przewidywań w czasie rzeczywistym lub wsadowych.

Wdróż model do punktu końcowego

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

Aby łatwo zintegrować model z aplikacją, możesz użyć endpointów. Mówiąc prościej, punkt końcowy może być adresem internetowym, który aplikacja może odpytać, aby otrzymać komunikat w odpowiedzi.

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

  • Uzyskaj prognozy w czasie rzeczywistym
  • Pobierz przewidywania wsadowe

Uzyskaj prognozy w czasie rzeczywistym

Jeśli chcesz, aby model oceniał nowe dane w miarę ich napływu, 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 Twojej stronie internetowej, na przykład koszulę.
  2. Na podstawie wyboru klienta model natychmiast zaleca inne elementy z wykazu produktów. W witrynie internetowej są wyświetlane rekomendacje 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 rekomendacji lub przewidywań. Następnie po wyświetleniu koszuli można również wyświetlić zalecenia.

Pobierz prognozy wsadowe

Jeśli chcesz, aby model oceniał nowe dane w partiach i zapisywał wyniki jako plik lub w bazie danych, potrzebne są predykcje 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 z całego tygodnia. Kolekcja punktów danych jest określana jako wsad.

Wybierz między wdrożeniem w czasie rzeczywistym a 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 czy partiami?
  • Ile mocy obliczeniowej jest potrzebna do uruchomienia modelu?

Określ niezbędną częstotliwość oceniania

Typowy scenariusz polega na tym, że używasz modelu do oceniania nowych danych. Przed uzyskaniem predykcji w czasie rzeczywistym lub wsadowo 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 z Twojego 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 oceniać punktowo nowe dane, gdy tylko się pojawią.
  2. Możesz zaplanować lub wyzwolić model, aby ocenić nowe dane, które zbierałeś/-aś przez pewien czas.

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

To, czy chcesz prognoz w czasie rzeczywistym czy prognoz wsadowych, niekoniecznie zależy od tego, jak często zbierane są nowe dane. Zamiast tego zależy to od tego, jak często i jak szybko trzeba generować prognozy.

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.

Wybierz liczbę 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 kiedy dokonali ostatniego zakupu.

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

Po wytrenowaniu 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ą zestawione w tabeli zawierającej wszystkie przewidywania.

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

Rozważ koszt obliczeń

Oprócz używania mocy obliczeniowej podczas trenowania modelu potrzebna jest również moc obliczeniowa podczas wdrażania modelu. W zależności od tego, czy model jest wdrażany w endpointcie czasu rzeczywistego, czy wsadowym, użyjesz różnych typów zasobów obliczeniowych. 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 zasobów obliczeniowych.

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 czasu rzeczywistego 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łużyć 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ą przydzielane przez przestrzeń roboczą po wyzwoleniu punktacji wsadowej i skalowane w dół do 0 węzłów, gdy nie ma nowych danych do przetworzenia. Dzięki możliwości skalowania w dół bezczynnego klastra obliczeniowego przez obszar roboczy można zaoszczędzić znaczne koszty.