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
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.
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:
- Nicholas Moore | Architekt rozwiązań w chmurze
Następne kroki
Dokumentacja produktu:
- Co to jest usługa Azure Databricks?
- Przewodnik dotyczący biblioteki MLflow
- Azure Kubernetes Service
- Wprowadzenie do prywatnych rejestrów kontenerów platformy Docker na platformie Azure
- Informacje o usłudze API Management
- Co to jest aplikacja systemu Azure Gateway?
- Wprowadzenie do usługi Azure Data Lake Storage Gen2
- Omówienie usługi Azure Monitor
- Azure DevOps documentation (Dokumentacja usługi Azure DevOps)
- Integracja z platformą Azure i usługą GitHub
Moduły microsoft Learn:
- Wykonywanie nauki o danych za pomocą usługi Azure Databricks
- Tworzenie i obsługa rozwiązań uczenia maszynowego za pomocą usługi Azure Databricks
- Wprowadzenie do platformy Kubernetes na platformie Azure
- Tworzenie i wdrażanie aplikacji na platformie Kubernetes
- Automatyzowanie przepływu pracy za pomocą funkcji GitHub Actions
Powiązane zasoby
Przydatne mogą być również następujące artykuły centrum architektury: