Przechowywanie pracowników za pomocą usług Databricks i Kubernetes

Azure Databricks
Azure Kubernetes Service (AKS)
Azure Container Registry
Azure Storage
Azure Monitor

To rozwiązanie pokazuje, jak zespół uczenia maszynowego może używać usług Azure Databricks i Azure Kubernetes Service do opracowywania i wdrażania uczenia maszynowego jako interfejsu API w celu przewidywania prawdopodobieństwa wystąpienia pracowników. Interfejs API można zintegrować z aplikacjami zewnętrznymi, które są używane przez zespół ds. zasobów ludzkich w celu zapewnienia dodatkowych szczegółowych informacji na temat prawdopodobieństwa pobrania danego pracownika w organizacji. Te informacje mogą służyć do utrzymania pracowników o dużym wpływie, którzy mogą opuścić organizację, zapewniając pracownikom możliwość aktywnego zachęcania takich pracowników do pozostaniu.

Apache®, Apache Ignite, Ignite i logo płomienia są zastrzeżonymi znakami towarowymi lub znakami towarowymi fundacji Apache Software Foundation w Stany Zjednoczone i/lub innych krajach. Użycie tych znaków nie jest dorozumiane przez fundację Apache Software Foundation.

Architektura

Diagram architektury w tym artykule przedstawiający programowanie, wdrażanie, ekspozycję interfejsu API oraz monitorowanie metryk i dzienników.

Pobierz plik programu PowerPoint dla wszystkich architektur.

Przepływ pracy

Na wysokim poziomie projekt tego rozwiązania dotyczy każdego etapu cyklu życia uczenia maszynowego:

  • Przygotowywanie danych, w tym określanie źródła, czyszczenie i przekształcanie danych na potrzeby przetwarzania i analizy. Dane mogą być przechowywane w magazynie danych typu data lake lub data warehouse po ich wyselekcjonowaniu.

  • Opracowywanie modeli, które obejmuje podstawowe składniki procesu tworzenia modelu, takie jak śledzenie eksperymentów i rejestracja modelu przy użyciu platformy MLflow.

  • Wdrażanie modelu, które obejmuje implementowanie potoku ciągłej integracji i ciągłego dostarczania (CI/CD) w celu konteneryzowania modeli uczenia maszynowego jako usług interfejsu API. Te usługi są wdrażane w klastrach usługi Azure Kubernetes, aby użytkownicy końcowi korzystali z nich.

  • Monitorowanie modelu, które obejmuje monitorowanie dryfu danych wydajności i modelu interfejsu API przez analizowanie danych telemetrycznych dziennika za pomocą usługi Azure Monitor.

Po wdrożeniu przez zespół uczenia maszynowego modelu uczenia maszynowego jako interfejsu API na potrzeby wnioskowania w czasie rzeczywistym deweloperzy mogą łatwo zintegrować interfejs API z aplikacjami zewnętrznymi, które są używane przez zespoły zewnętrzne, takie jak Human Resources. Dane telemetryczne są zbierane, gdy zewnętrzny zespół korzysta z usługi modelu. Zespół uczenia maszynowego może użyć tej telemetrii, aby określić, kiedy należy ponownie wdrożyć model. Takie podejście pozwala zespołom pracować niezależnie i umożliwia zewnętrznym zespołom korzystanie z umiejętności scentralizowanego zespołu uczenia maszynowego.

Uwaga

  • Podczas implementowania potoku ciągłej integracji/ciągłego wdrażania można użyć różnych narzędzi, takich jak Azure Pipelines i GitHub Actions.

  • Określone wymagania biznesowe przypadku użycia analizy mogą wymagać różnych usług lub funkcji, które nie są brane pod uwagę w tym projekcie.

Składniki

Następujące składniki są używane w ramach tego projektu:

  • Azure Databricks: usługa analizy danych big data, która jest łatwa w użyciu, ułatwia współpracę i jest oparta na platformie Apache Spark. Usługa Azure Databricks jest przeznaczona do nauki o danych i inżynierii danych.

  • Azure Kubernetes Service: usługa zapewniająca uproszczone wdrażanie i zarządzanie platformą Kubernetes przez odciążanie obciążeń operacyjnych na platformę Azure.

  • Azure Container Registry: prywatna usługa rejestru do zarządzania obrazami kontenerów i artefaktami. Ta usługa jest oparta na platformie Docker typu open source.

  • Azure Data Lake Storage: usługa zapewniająca skalowalny magazyn zoptymalizowany pod kątem ogromnych ilości danych bez struktury. Usługa Data Lake Storage Gen2 oferuje semantyka systemu plików, zabezpieczenia na poziomie plików i skalowanie.

  • Azure Monitor: kompleksowe rozwiązanie do zbierania, analizowania i działania na podstawie danych telemetrycznych z obciążeń.

  • MLflow: rozwiązanie typu open source zintegrowane w usłudze Databricks do zarządzania cyklem życia uczenia maszynowego od końca do końca.

  • Azure API Management: w pełni zarządzana usługa, która ułatwia klientom publikowanie, zabezpieczanie, przekształcanie, konserwację i monitorowanie interfejsów API.

  • aplikacja systemu Azure Gateway: moduł równoważenia obciążenia dla ruchu internetowego, który umożliwia zarządzanie ruchem do aplikacji internetowych.

  • Azure DevOps lub GitHub: rozwiązania do implementowania rozwiązań DevOps w celu wymuszania automatyzacji i zgodności z potokami tworzenia i wdrażania obciążeń.

Szczegóły scenariusza

Problem z wyniszczeniem pracowników stał się rosnący od czasu pandemii COVID-19. Ten trend, w którym pracownicy dobrowolnie rezygnują z pracy masowo, jest popularnie znany jako Wielka Rezygnacja. Problem można również powiększyć dla niektórych działów w organizacji, które mogą brakować dedykowanych zespołów wykonujących zaawansowane analizy, takie jak human resources.

W tym przykładowym scenariuszu przedstawiono model operacyjny scentralizowanego uczenia maszynowego. Obejmuje to centralny zespół odpowiedzialny za tworzenie i wdrażanie modeli uczenia maszynowego dla zespołów zewnętrznych w różnych działach w organizacji. Takie podejście jest przydatne, gdy działy są zbyt małe, aby utrzymać zespół przeznaczony do uczenia maszynowego, podczas gdy organizacja ma na celu dodanie zaawansowanej analizy do wszystkich produktów i procesów.

Potencjalne przypadki użycia

Ten scenariusz koncentruje się na tworzeniu modelu uczenia maszynowego pracowników i integrowaniu go z aplikacjami zewnętrznymi, które są używane przez zespoły kadr. Projekt można jednak uogólnić do wielu obciążeń uczenia maszynowego, które są tworzone zarówno przez scentralizowane, jak i zdecentralizowane zespoły.

To uogólnione podejście najlepiej nadaje się do:

  • Zespoły uczenia maszynowego, które ustandaryzowały usługę Databricks na potrzeby inżynierii danych lub aplikacji uczenia maszynowego.

  • Zespoły uczenia maszynowego, które mają doświadczenie w wdrażaniu obciążeń Platformy Kubernetes i zarządzaniu nimi oraz preferencjach dotyczących stosowania tych umiejętności na potrzeby operacjonalizacji obciążeń uczenia maszynowego.

  • Integrowanie obciążeń uczenia maszynowego z aplikacjami zewnętrznymi, które wymagają małych opóźnień i interaktywnych przewidywań modelu (na przykład wnioskowania w czasie rzeczywistym).

Kwestie wymagające rozważenia

Te zagadnienia implementują filary struktury Azure Well-Architected Framework, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.

Przed wdrożeniem tego rozwiązania należy wziąć pod uwagę niektóre czynniki:

  • To rozwiązanie jest przeznaczone dla zespołów, które wymagają wysokiego stopnia dostosowywania i mają obszerną wiedzę na temat wdrażania obciążeń Platformy Kubernetes i zarządzania nimi. Jeśli zespół ds. nauki o danych nie ma tej wiedzy, rozważ wdrożenie modeli w innej usłudze, takiej jak Azure Machine Learning.

  • Najlepsze rozwiązania dotyczące metodyki DevOps (MLOps) uczenia maszynowego w usłudze Azure Machine Learning przedstawiają najlepsze rozwiązania i zalecenia dotyczące wdrażania operacji uczenia maszynowego (MLOps) w przedsiębiorstwie za pomocą uczenia maszynowego.

  • Postępuj zgodnie z zaleceniami i wytycznymi zdefiniowanymi w strukturze Azure Well-Architected Framework , aby poprawić jakość rozwiązań platformy Azure.

  • Podczas implementowania potoku ciągłej integracji/ciągłego wdrażania można użyć różnych narzędzi niż w tym przykładzie, takich jak usługi Azure Pipelines i GitHub Actions. Aby uzyskać więcej informacji na temat ciągłej integracji/ciągłego wdrażania, zobacz Ciągła integracja/ciągłe wdrażanie dla architektur mikrousług.

  • Konkretne wymagania biznesowe dotyczące przypadku użycia analizy mogą wymagać użycia usług lub funkcji, które nie są brane pod uwagę w tym projekcie.

Optymalizacja kosztów

Optymalizacja kosztów polega na zmniejszeniu niepotrzebnych wydatków i poprawie wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca optymalizacji kosztów.

Wszystkie usługi wdrożone w tym rozwiązaniu korzystają z modelu cenowego opartego na użyciu. Kalkulator cen platformy Azure umożliwia oszacowanie kosztów dla określonego scenariusza. Aby zapoznać się z innymi zagadnieniami, zobacz Optymalizacja kosztów w dobrze zaprojektowanej strukturze.

Wdrażanie tego scenariusza

Implementacja weryfikacji koncepcji tego scenariusza jest dostępna w usłudze GitHub w temacie Przechowywanie pracowników w usłudze Databricks i Kubernetes.

Diagram przedstawiający wdrażanie architektury w tym artykule, pokazujący tworzenie, kompilowanie, wdrażanie i monitorowanie.

Pobierz plik programu PowerPoint dla całej architektury.

Ten dowód koncepcji ilustruje:

  • Jak wytrenować model MLflow na potrzeby pobierania pracowników w usłudze Azure Databricks.
  • Jak pakować modele jako usługę internetową przy użyciu narzędzi open source.
  • Jak wdrożyć na platformie Kubernetes za pośrednictwem ciągłej integracji/ciągłego wdrażania przy użyciu funkcji GitHub Actions.
  • Jak monitorować dryf danych wydajności i modelu interfejsu API w obszarach roboczych usługi Azure Monitor i Azure Log Analytics.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Główny autor:

Następne kroki

Dokumentacja produktu:

Moduły microsoft Learn:

Przydatne mogą być również następujące artykuły centrum architektury: