Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Machine Learning to zarządzana usługa w chmurze, której można używać do trenowania, wdrażania modeli uczenia maszynowego i zarządzania nimi. Istnieje wiele opcji i konfiguracji zarówno do trenowania, jak i wdrażania modeli, w tym jednostek SKU obliczeniowych i konfiguracji. Modele uczenia maszynowego można wdrażać w obliczeniach usługi Machine Learning lub w innych usługach platformy Azure, takich jak Azure Kubernetes Service (AKS).
Ten artykuł zawiera zalecenia dotyczące architektury do podejmowania świadomych decyzji w przypadku używania usługi Machine Learning do trenowania, wdrażania i zarządzania modelami uczenia maszynowego. Wskazówki są oparte na filarach platformy Azure Well-Architected Framework.
Ważne
Jak używać tego przewodnika
Każda sekcja zawiera listę kontrolną projektu, która przedstawia zagadnienia dotyczące architektury wraz ze strategiami projektowania odpowiednimi dla zakresu technologii.
Uwzględniono również zalecenia dotyczące możliwości technologicznych, które mogą pomóc zmaterializować te strategie. Zalecenia nie reprezentują wyczerpującej listy wszystkich konfiguracji dostępnych dla usługi Machine Learning i jej zależności. Zamiast tego przedstawiają listę kluczowych zaleceń dopasowywanych do perspektyw projektowych. Skorzystaj z zaleceń, aby utworzyć weryfikację koncepcji lub zoptymalizować istniejące środowiska.
Podstawowa architektura podstawowa, kompleksowa architektura referencyjna czatu OpenAI demonstruje wiele kluczowych zaleceń.
Zakres technologii
Ten przegląd koncentruje się na powiązanych decyzjach dotyczących tych zasobów platformy Azure:
- Uczenie Maszynowe
- Klastry obliczeniowe Machine Learning
- Instancje obliczeniowe Machine Learning
Przegląd nie dotyczy połączonych zasobów, takich jak magazyny danych ani usługa Azure Key Vault.
Niezawodność
Celem filaru niezawodności jest zapewnienie ciągłej funkcjonalności dzięki tworzeniu wystarczającej odporności i możliwości szybkiego odzyskiwania po awariach.
Zasady projektowania niezawodności zapewniają ogólną strategię projektowania stosowaną dla poszczególnych składników, przepływów systemowych i całego systemu.
Lista kontrolna projektu
Rozpocznij strategię projektowania na podstawie listy kontrolnej przeglądu projektu pod kątem niezawodności i określ jego znaczenie dla wymagań biznesowych. Rozszerz strategię w celu uwzględnienia większej liczby podejść zgodnie z potrzebami.
Odporność: wdrażanie modeli w środowiskach obsługujących strefy dostępności, takie jak usługa AKS. Zapewniając dystrybucję wdrożeń w różnych strefach dostępności, zapewniasz, że wdrożenie jest dostępne nawet w przypadku awarii centrum danych. Aby zwiększyć niezawodność i dostępność, rozważ topologię wdrożenia w wielu regionach.
Odporność: upewnij się, że masz wystarczające zasoby obliczeniowe na potrzeby trenowania i wnioskowania. Podczas planowania zasobów upewnij się, że SKU jednostki obliczeniowej i ustawienia skalowania spełniają wymagania twojego obciążenia.
Odporność: Oddzielanie obszarów roboczych usługi Machine Learning używanych do pracy eksploracyjnej od tych wykorzystywanych w środowisku produkcyjnym.
Odporność: w przypadku korzystania z zarządzanych punktów końcowych online na potrzeby wnioskowania użyj strategii wydania, takiej jak wdrożenia typu blue-green, aby zminimalizować przestoje i zmniejszyć ryzyko związane z wdrażaniem nowych wersji.
Wymagania biznesowe: wybierz użycie klastrów obliczeniowych, wystąpień obliczeniowych i hostów wnioskowania zewnętrznego na podstawie potrzeb związanych z niezawodnością, biorąc pod uwagę umowy dotyczące poziomu usług (SLA) jako czynnik.
Odzyskiwanie: Upewnij się, że masz możliwości samonaprawiania, takie jak funkcje tworzenia punktów kontrolnych obsługiwane przez uczenie maszynowe, podczas trenowania dużych modeli.
Odzyskiwanie: Upewnij się, że masz zdefiniowaną strategię odzyskiwania. Uczenie maszynowe nie ma automatycznego trybu failover. W związku z tym należy zaprojektować strategię obejmującą obszar roboczy i wszystkie jego zależności, takie jak Key Vault, Azure Storage i Azure Container Registry.
Rekomendacje
Rekomendacja | Korzyść |
---|---|
Wdrożenie modelu w wielu regionach: w celu zwiększenia niezawodności i dostępności należy rozważyć środowisko wdrażania w wielu regionach, jeśli jest to możliwe. | Wdrożenie obejmujące wiele regionów gwarantuje, że obciążenia usługi Machine Learning będą nadal działać, nawet jeśli w jednym regionie wystąpi awaria. Wdrożenie w wielu regionach zwiększa rozkład obciążenia między regionami, co potencjalnie zwiększa wydajność użytkowników znajdujących się w różnych obszarach geograficznych. Aby uzyskać więcej informacji, zobacz Tryb failover na potrzeby ciągłości działania i odzyskiwania po awarii. |
Odporność trenowania modelu: użyj funkcji tworzenia punktów kontrolnych obsługiwanych przez usługę Machine Learning, w tym kontenera platformy Azure dla PyTorch, klasy narzędzia do szacowania TensorFlow lub obiektu Run i klasy FileDataset, która obsługuje tworzenie punktów kontrolnych modelu. | Punkt kontrolny modelu okresowo zapisuje stan modelu uczenia maszynowego podczas trenowania, aby można było go przywrócić w przypadku przerwy, awarii lub zakończenia. Aby uzyskać więcej informacji, zobacz Zwiększanie szybkości punktu kontrolnego i obniżanie kosztów za pomocą mgławicy. |
Użyj warstwy Dedykowanej Maszyny Wirtualnej dla klastrów obliczeniowych: Użyj warstwy Dedykowanej Maszyny Wirtualnej dla klastrów obliczeniowych w celu wnioskowania wsadowego, aby zapewnić, że Twoje zadanie wsadowe nie zostanie przerwane. | Maszyny wirtualne o niskim priorytecie są dostępne w obniżonej cenie, ale mogą być przerywane. Klastry korzystające z dedykowanej warstwy maszyny wirtualnej nie są wywłaszczone. |
Bezpieczeństwo
Celem filaru Zabezpieczenia jest zapewnienie gwarancji dotyczących poufności, integralności i dostępności obciążenia.
Zasady projektowania zabezpieczeń zapewniają strategię projektowania wysokiego poziomu w celu osiągnięcia tych celów, stosując podejścia do projektu technicznego wokół uczenia maszynowego.
Lista kontrolna projektu
Rozpocznij strategię projektowania na podstawie listy kontrolnej przeglądu projektu pod kątem zabezpieczeń i identyfikowania luk w zabezpieczeniach i mechanizmów kontroli w celu poprawy stanu zabezpieczeń. Rozszerz strategię w celu uwzględnienia większej liczby podejść zgodnie z potrzebami.
Dostępność: Zmniejsz obszar narażony na ataki obszaru roboczego usługi Machine Learning, ograniczając dostęp do obszaru roboczego do zasobów w sieci wirtualnej.
Poufność: ochrona przed eksfiltracją danych z obszaru roboczego usługi Machine Learning przez zaimplementowanie izolacji sieciowej. Upewnij się, że dostęp do wszystkich zasobów zewnętrznych jest jawnie zatwierdzony, a dostęp do wszystkich innych zasobów zewnętrznych nie jest dozwolony.
Integralność: zaimplementuj mechanizmy kontroli dostępu, które uwierzytelniają i autoryzują obszar roboczy usługi Machine Learning dla zasobów zewnętrznych na podstawie zasady najniższych uprawnień.
Integralność: zaimplementuj segregację przypadków użycia dla obszarów roboczych usługi Machine Learning, konfigurując obszary robocze na podstawie określonych przypadków użycia lub projektów. Takie podejście jest zgodne z zasadą najniższych uprawnień, zapewniając, że obszary robocze są dostępne tylko dla osób, które wymagają dostępu do zasobów danych i eksperymentowania w przypadku użycia lub projektu.
Integralność: regulowanie dostępu do podstawowych modeli. Upewnij się, że tylko zatwierdzone rejestry mają dostęp do modeli w rejestrze modeli.
Integralność: regulowanie dostępu do zatwierdzonych rejestrów kontenerów. Upewnij się, że zasoby obliczeniowe dla uczenia maszynowego mają dostęp tylko do zatwierdzonych rejestrów.
Integralność: regulowanie pakietów języka Python, które można uruchamiać w obliczeniach usługi Machine Learning. Regulowanie pakietów języka Python gwarantuje, że są uruchamiane tylko zaufane pakiety.
Integralność: Wymagane jest podpisanie kodu używanego do trenowania w środowiskach obliczeniowych uczenia maszynowego. Wymaganie podpisywania kodu gwarantuje, że uruchomiony kod pochodzi z zaufanego źródła i nie został naruszony.
Poufność: Przestrzegaj zasady najmniejszych uprawnień kontroli dostępu opartej na rolach (RBAC) do obszaru roboczego usługi Machine Learning i powiązanych zasobów, takich jak konto magazynowe obszaru roboczego, zapewniając osobom tylko niezbędne uprawnienia wymagane do pełnienia ich roli, co minimalizuje potencjalne zagrożenia bezpieczeństwa.
Integralność: ustanów zaufanie i zweryfikowany dostęp przez zaimplementowanie szyfrowania danych magazynowanych i przesyłanych danych.
Rekomendacje
Rekomendacja | Korzyść |
---|---|
Punkt odniesienia zabezpieczeń: aby zwiększyć bezpieczeństwo i zgodność usługi Machine Learning Service, zastosuj punkt odniesienia zabezpieczeń platformy Azure dla usługi Machine Learning. | Punkt odniesienia zabezpieczeń zawiera dostosowane wskazówki dotyczące kluczowych aspektów zabezpieczeń, takich jak zabezpieczenia sieci, zarządzanie tożsamościami, ochrona danych i uprzywilejowany dostęp. Aby uzyskać optymalne zabezpieczenia, użyj usługi Microsoft Defender dla Chmury, aby monitorować te aspekty. |
Izolacja zarządzanej sieci wirtualnej: skonfiguruj izolację zarządzanej sieci wirtualnej na potrzeby usługi Machine Learning. Po włączeniu izolacji zarządzanej sieci wirtualnej zostanie utworzona zarządzana sieć wirtualna dla obszaru roboczego. Zarządzane zasoby obliczeniowe tworzone dla obszaru roboczego automatycznie używają tej zarządzanej sieci wirtualnej. Jeśli nie możesz zaimplementować izolacji zarządzanej sieci wirtualnej, należy postępować zgodnie z zaleceniami dotyczącymi topologii sieci , aby oddzielić obliczenia od dedykowanej podsieci od pozostałych zasobów w rozwiązaniu, w tym prywatnych punktów końcowych dla zasobów obszaru roboczego. | Izolacja zarządzanej sieci wirtualnej zwiększa bezpieczeństwo przez izolowanie obszaru roboczego z innych sieci, co zmniejsza ryzyko nieautoryzowanego dostępu. W scenariuszu, w którym naruszenie występuje w innej sieci w organizacji, izolowana sieć obszaru roboczego usługi Machine Learning pozostaje nienaruszona, chroniąc obciążenia uczenia maszynowego. |
Izolacja sieci usługi Machine Learning: skonfiguruj prywatny punkt końcowy dla obszaru roboczego usługi Machine Learning i połącz się z obszarem roboczym za pośrednictwem tego prywatnego punktu końcowego. | Izolacja sieciowa usługi Machine Learning zwiększa bezpieczeństwo, zapewniając, że dostęp do twojego obszaru roboczego jest bezpieczny i kontrolowany. Po skonfigurowaniu prywatnego punktu końcowego dla obszaru roboczego można ograniczyć dostęp do obszaru roboczego tylko w przypadku prywatnych adresów IP. |
Zezwalaj tylko na zatwierdzony dostęp wychodzący: skonfiguruj tryb wychodzący w obszarze roboczym usługi Machine Learning zarządzany dostęp wychodzący, aby Allow only approved outbound zminimalizować ryzyko eksfiltracji danych. Skonfiguruj prywatne punkty końcowe, tagi usługi lub w pełni kwalifikowane nazwy domen (FQDN) dla zasobów, do których chcesz uzyskać dostęp. |
Ta konfiguracja minimalizuje ryzyko eksfiltracji danych, zwiększając bezpieczeństwo danych. Po włączeniu tej konfiguracji złośliwy aktor, który uzyskuje dostęp do systemu, nie może wysłać danych do niezatwierdzonego zewnętrznego miejsca docelowego. |
Izolacja sieci wirtualnej dla usług zależnych: skonfiguruj usługi zależne, takie jak Storage, Key Vault i Container Registry z prywatnymi punktami końcowymi i wyłącz dostęp publiczny. | Izolacja sieci wzmacnia zabezpieczenia, ograniczając dostęp do rozwiązań PaaS (Platform as a Service) platformy Azure tylko do prywatnych adresów IP. |
Tożsamość zarządzana: użyj tożsamości zarządzanych do uwierzytelniania między usługą Machine Learning i innymi usługami. | Tożsamości zarządzane zwiększają bezpieczeństwo, eliminując konieczność przechowywania poświadczeń oraz ręcznego zarządzania jednostkami usługi i obracania ich. |
Wyłącz uwierzytelnianie lokalne: wyłącz uwierzytelnianie lokalne dla klastrów obliczeniowych i wystąpień usługi Machine Learning. | Wyłączenie uwierzytelniania lokalnego zwiększa bezpieczeństwo zasobów obliczeniowych usługi Machine Learning i zapewnia scentralizowaną kontrolę tożsamości i poświadczenia zasobów oraz zarządzanie nimi. |
Wyłącz publiczny port SSH: upewnij się, że publiczny port protokołu Secure Shell (SSH) jest zamknięty w klastrze obliczeniowym usługi Machine Learning, ustawiając wartość remoteLoginPortPublicAccess .Disabled Zastosuj podobną konfigurację, jeśli używasz innego środowiska obliczeniowego. |
Wyłączenie dostępu SSH pomaga uniemożliwić nieautoryzowanym osobom uzyskanie dostępu i potencjalnie spowodowanie szkody w systemie oraz ochronę przed atakami siłowymi. |
Nie przydzielaj publicznych adresów IP dla obliczeń usługi Machine Learning: ustaw wartość enableNodePublicIp na false podczas konfigurowania klastrów obliczeniowych lub instancji obliczeniowych usługi Machine Learning. Zastosuj podobną konfigurację, jeśli używasz innego środowiska obliczeniowego. |
Powstrzymaj się od przydzielania publicznych adresów IP, aby zwiększyć bezpieczeństwo, ograniczając możliwość nieautoryzowanego dostępu do instancji obliczeniowej lub klastrów. |
Pobierz najnowszy obraz systemu operacyjnego: Utwórz ponownie wystąpienia obliczeniowe, aby uzyskać najnowszy obraz systemu operacyjnego. | Użycie najnowszych obrazów gwarantuje utrzymanie spójnego, stabilnego i bezpiecznego środowiska, w tym zapewnienia, że masz najnowsze poprawki zabezpieczeń. |
Ścisłe mechanizmy kontroli dostępu do obszaru roboczego usługi Machine Learning: użyj grup Microsoft Entra ID, aby zarządzać dostępem do obszaru roboczego i przestrzegać zasady najmniejszych uprawnień dla RBAC. | Ścisłe mechanizmy kontroli dostępu do obszarów roboczych zwiększają bezpieczeństwo, zapewniając, że osoby mają tylko niezbędne uprawnienia do swojej roli. Na przykład analityk danych może mieć dostęp do uruchamiania eksperymentów, ale nie do modyfikowania ustawień zabezpieczeń, minimalizując potencjalne zagrożenia bezpieczeństwa. |
Ograniczanie wdrożeń wykazu modeli: ogranicz wdrożenia modeli do określonych rejestrów. | Ograniczenie wdrożeń z wykazu modeli do określonych rejestrów zapewnia wdrażanie modeli tylko w zatwierdzonych rejestrach. Takie podejście pomaga regulować dostęp do podstawowych modeli typu open source. |
Szyfrowanie danych magazynowanych: rozważ użycie kluczy zarządzanych przez klienta za pomocą usługi Machine Learning. | Szyfrowanie danych w stanie spoczynku zwiększa bezpieczeństwo danych, ponieważ umożliwia szyfrowanie poufnych informacji kluczami zarządzanymi bezpośrednio przez użytkownika. Jeśli masz wymaganie prawne dotyczące zarządzania własnymi kluczami szyfrowania, użyj tej funkcji, aby spełnić to wymaganie. |
Minimalizuj ryzyko eksfiltracji danych: Zaimplementuj zapobieganie eksfiltracji danych. Na przykład utwórz zasady punktu końcowego usługi, aby filtrować ruch wychodzący sieci wirtualnej i zezwalać na eksfiltrację danych tylko do określonych kont usługi Azure Storage. | Zminimalizuj ryzyko eksfiltracji danych, ograniczając wymagania dotyczące ruchu przychodzącego i wychodzącego. |
Opiekun
Poniżej przedstawiono kilka przykładów zaleceń dotyczących najlepszych rozwiązań w zakresie zabezpieczeń usługi Advisor dotyczących uczenia maszynowego:
- Obszary robocze powinny być szyfrowane przy użyciu klucza zarządzanego przez klienta (CMK).
- Obszary robocze powinny używać usługi Azure Private Link.
- Obszary robocze powinny wyłączyć dostęp do sieci publicznej.
- Obliczenia powinny znajdować się w sieci wirtualnej.
- Aby uzyskać najnowsze aktualizacje oprogramowania, należy zrekreować wystąpienia obliczeniowe.
Azure Policy
Poniżej przedstawiono przykłady wbudowanych definicji usługi Azure Policy dla zabezpieczeń usługi Machine Learning :
- Skonfiguruj dozwolone rejestry dla określonych zasobów obliczeniowych Machine Learning.
- Skonfiguruj dozwolone pakiety języka Python dla określonych obliczeń usługi Machine Learning.
- Obszary robocze usługi Machine Learning powinny wyłączyć dostęp do sieci publicznej.
- Aby uzyskać najnowsze aktualizacje oprogramowania, należy ponownie utworzyć wystąpienia obliczeniowe usługi Machine Learning.
- Obliczenia Machine Learning powinny znajdować się w sieci wirtualnej.
- Obliczenia usługi Machine Learning powinny mieć wyłączone lokalne metody uwierzytelniania.
- Obszary robocze usługi Machine Learning powinny być szyfrowane za pomocą klucza zarządzanego przez klienta (CMK).
- Obszary robocze usługi Machine Learning powinny używać usługi Private Link.
- Obszary robocze usługi Machine Learning powinny używać tożsamości zarządzanej przypisanej przez użytkownika.
- Wymagaj punktu końcowego zatwierdzenia, który należy wywołać przed uruchomieniem zadań dla określonych zasobów obliczeniowych Machine Learning.
- Wymagaj podpisywania kodu na potrzeby kodu szkoleniowego dla obliczeń.
- Ogranicz wdrażanie modelu do określonych rejestrów.
Optymalizacja kosztów
Optymalizacja kosztów koncentruje się na wykrywaniu wzorców wydatków, określaniu priorytetów inwestycji w krytycznych obszarach i optymalizacji w innych w celu spełnienia budżetu organizacji przy jednoczesnym spełnieniu wymagań biznesowych.
Przeczytaj zasady projektowania optymalizacji kosztów , aby zrozumieć podejścia do osiągnięcia tych celów i niezbędne kompromisy w wyborach projektowych technicznych związanych z trenowaniem i wdrażaniem modeli w ich środowiskach.
Lista kontrolna projektu
Rozpocznij opracowywanie strategii projektowania na podstawie listy kontrolnej przeglądu projektu dla optymalizacji kosztów w przypadku inwestycji i dopracuj projekt tak, aby obciążenie było zgodne z przydzielonym budżetem. Projekt powinien korzystać z odpowiednich możliwości platformy Azure, monitorować inwestycje i znajdować możliwości optymalizacji w czasie.
Optymalizacja użycia: wybierz odpowiednie zasoby, aby upewnić się, że są one zgodne z wymaganiami dotyczącymi obciążenia. Można na przykład wybrać między CPU lub GPU, różnymi SKU lub maszynami wirtualnymi o niskim priorytecie.
Optymalizacja użycia: upewnij się, że zasoby obliczeniowe, które nie są używane, są skalowane w dół lub zamykane w przypadku bezczynności w celu zmniejszenia strat.
Optymalizacja użycia: zastosuj zasady i skonfiguruj limity przydziału, aby zachować zgodność z górnymi i dolnymi limitami projektu.
Optymalizacja użycia: Przetestuj równoległe wykonywanie obciążeń szkoleniowych, aby określić, czy wymagania dotyczące szkolenia mogą być spełnione w przypadku SKU o niższej cenie.
Optymalizacja kosztów: zakup wystąpień zarezerwowanych maszyn wirtualnych platformy Azure, jeśli masz dobre oszacowanie użycia w ciągu najbliższego roku do trzech lat.
Monitorowanie i optymalizowanie: monitorowanie użycia zasobów, takich jak użycie procesora CPU i procesora GPU podczas trenowania modeli. Jeśli zasoby nie są w pełni używane, zmodyfikuj kod, aby lepiej używać zasobów lub skalować w dół do mniejszych lub tańszych rozmiarów maszyn wirtualnych.
Rekomendacje
Rekomendacja | Korzyść |
---|---|
Optymalizowanie zasobów obliczeniowych: Zoptymalizuj zasoby obliczeniowe na podstawie wymagań obciążenia. Wybierz jednostkę SKU, która najlepiej odpowiada obciążeniu:
|
Wybór odpowiednich zasobów obliczeniowych ma kluczowe znaczenie, ponieważ ma bezpośredni wpływ na koszt uruchamiania zadań. Wybranie procesora graficznego GPU lub wariantu SKU o wysokiej wydajności bez odpowiedniego wykorzystania może prowadzić do niepotrzebnych wydatków, podczas gdy wybór niedostatecznej mocy obliczeniowej może prowadzić do zbyt długiego czasu trenowania i problemów z wydajnością. |
Optymalizowanie skalowania zasobów obliczeniowych: skonfiguruj klastry obliczeniowe na potrzeby skalowania automatycznego , aby mieć pewność, że używasz tylko potrzebnych elementów. W przypadku klastrów szkoleniowych ustaw minimalną liczbę węzłów na 0 i skonfiguruj czas bezczynności węzła do odpowiedniego czasu. W przypadku mniej iteracyjnych eksperymentów zmniejsz czas, aby zaoszczędzić koszty. Aby uzyskać więcej iteracyjnych eksperymentów, użyj wyższego czasu, aby zapobiec płaceniu za skalowanie w górę lub w dół po każdej zmianie. |
Skonfiguruj skalowanie automatyczne dla klastrów obliczeniowych, aby skalować w dół, gdy ich użycie jest niskie. Ustaw minimalną liczbę węzłów na 0 dla klastrów szkoleniowych, aby skalować w dół do 0, gdy nie są używane. |
Ustawianie zasad kończenia trenowania: ustaw zasady wczesnego zakończenia , aby ograniczyć czas trwania przebiegów trenowania lub zakończyć je wcześnie. | Ustawienie polityk zakończenia może pomóc zmniejszyć koszty, przerywając nieefektywne procesy na wczesnym etapie. |
Używaj maszyn wirtualnych o niskim priorytcie dla obciążeń wsadowych: rozważ użycie maszyn wirtualnych o niskim priorytcie dla obciążeń wsadowych , które nie są wrażliwe na czas i w których można odzyskać przerwy. | Maszyny wirtualne o niskim priorytcie umożliwiają korzystanie z dużej ilości mocy obliczeniowej w celu uzyskania niskich kosztów. Korzystają z nadwyżkowej pojemności na platformie Azure. |
Włącz zamykanie bezczynności dla wystąpień obliczeniowych: włącz bezczynne zamykanie dla wystąpień obliczeniowych lub zaplanuj czas rozpoczęcia i zatrzymania , jeśli jest znany czas użycia. | Domyślnie masz dostęp do wystąpień obliczeniowych, co wiąże się z naliczaniem kosztów. Konfigurowanie wystąpień obliczeniowych do zamykania w przypadku bezczynności lub skonfigurowania harmonogramu dla nich pozwala zaoszczędzić koszty, gdy nie są używane. |
Równoległa realizacja treningowych obciążeń: rozważ równoległe realizowanie treningowych obciążeń. Przetestuj je za pomocą składników równoległych w uczeniu maszynowym. | Obciążenia równoległe mogą być uruchamiane na wielu mniejszych wystąpieniach, co może potencjalnie przynieść oszczędności kosztów. |
Wystąpienia zarezerwowane maszyn wirtualnych platformy Azure: Kup wystąpienia zarezerwowanych maszyn wirtualnych platformy Azure, jeśli masz dobre oszacowanie użycia na najbliższe od jednego do trzech lat. Skorzystaj z opcji pojemności zarezerwowanej dla usług, gdy masz dobre szacunki użycia. | Kup zarezerwowane instancje maszyn wirtualnych Azure, aby z góry opłacić użycie maszyn wirtualnych i zapewnić rabaty przy zachowaniu ceny płatności zgodnie z rzeczywistym użytkowaniem. Rabat jest automatycznie stosowany w przypadku korzystania z maszyny wirtualnej, które odpowiada rezerwacji. |
Doskonałość operacyjna
Doskonałość operacyjna koncentruje się przede wszystkim na procedurach dotyczących praktyk programistycznych, możliwości obserwacji i zarządzania wydaniami.
Zasady projektowania operacyjnej doskonałości zapewniają strategię projektowania na wysokim poziomie dla osiągnięcia wskazanych celów zgodnie z wymaganiami operacyjnymi obciążenia.
Lista kontrolna projektu
Rozpocznij strategię projektowania na podstawie listy kontrolnej przeglądu projektu dla doskonałości operacyjnej w celu zdefiniowania procesów do obserwowania, testowania i wdrażania związanego z usługą Machine Learning.
Standardy rozwoju: korzystaj z katalogów modeli i rejestrów uczenia maszynowego do przechowywania, wersjonowania i udostępniania zasobów uczenia maszynowego.
Automatyzowanie pod kątem wydajności: postępuj zgodnie z dobrymi rozwiązaniami dotyczącymi operacji uczenia maszynowego (MLOps ). Jeśli to możliwe, twórz zautomatyzowane potoki od końca do końca na potrzeby przygotowania danych, trenowania modeli i ich oceniania. Podczas programowania używaj skryptów zamiast notesów do trenowania modeli, ponieważ skrypty są łatwiejsze do zintegrowania z zautomatyzowanymi potokami.
Wdrażaj z ufnością: Wdrażaj infrastrukturę jako kod (IaC) dla obszarów roboczych Machine Learning, klastrów obliczeniowych, instancji obliczeniowych i innych środowisk wdrożeniowych.
Obserwowanie: monitoruj wydajność wdrożonych modeli, w tym dryf danych.
Możliwość obserwowania: jeśli modele są wdrażane w punktach końcowych online, włącz usługę Application Insights w celu monitorowania punktów końcowych i wdrożeń online. Monitoruj infrastrukturę szkoleniową, aby upewnić się, że spełniasz wymagania punktu odniesienia.
Prostota: używaj wyselekcjonowanych środowisk zoptymalizowanych pod kątem uczenia maszynowego, jeśli są dostępne.
Rekomendacje
Rekomendacja | Korzyść |
---|---|
Minimalizuj wystąpienia obszarów roboczych usługi Machine Learning: zmniejsz liczbę obszarów roboczych, jeśli to możliwe, aby zmniejszyć koszty utrzymania. | Ograniczenie liczby obszarów roboczych zmniejsza nakład pracy konserwacyjnych i koszty operacji. W przypadku wymagań, takich jak zabezpieczenia, może być potrzebnych wiele oddzielnych obszarów roboczych. Zminimalizuj liczbę obszarów roboczych, jeśli to możliwe. |
Korzystaj z katalogów modeli i rejestrów: korzystaj z katalogów modeli i rejestrów usługi Machine Learning w celu przechowywania, wersji i udostępniania zasobów uczenia maszynowego. Użyj katalogów modeli Machine Learning, aby ułatwić implementowanie testowania A/B i wdrażanie modeli. |
Rejestry modeli uczenia maszynowego pozwalają na przechowywanie i wersjonowanie modeli, śledzenie zmian oraz utrzymanie powiązań z zadaniami i zbiorami danych użytymi do treningu. Dzięki katalogom modeli uczenia maszynowego zespoły nauki o danych mogą odnajdywać, oceniać i dostosowywać wstępnie wytrenowane podstawowe modele uczenia maszynowego. Przechowywanie wersji modeli w rejestrach modeli Machine Learning wspiera strategie wdrażania, takie jak wersje A/B, wersje kanarkowe i wycofania. |
Monitorowanie wydajności modelu: monitoruj wydajność wdrożonych modeli i wykrywaj dryf danych w zestawach danych. | Monitorowanie wdrożonych modeli gwarantuje, że modele spełniają wymagania dotyczące wydajności. Monitorowanie dryfu danych ułatwia wykrywanie zmian w danych wejściowych, które mogą prowadzić do spadku wydajności modelu. Zarządzanie dryfem danych pomaga zapewnić, że model zapewnia dokładne wyniki w czasie. |
Monitorowanie infrastruktury: jeśli modele są wdrażane w punktach końcowych online, włącz usługę Application Insights , aby monitorować punkty końcowe i wdrożenia online. Monitoruj infrastrukturę szkoleniową, aby upewnić się, że spełniasz wymagania punktu odniesienia. Upewnij się, że zbierasz dzienniki zasobów dla usługi Machine Learning. |
Monitorowanie punktów końcowych zapewnia wgląd w metryki, takie jak opóźnienie żądań i żądania na minutę. Możesz porównać wydajność z punktem odniesienia i użyć tych informacji, aby odpowiednio wprowadzić zmiany w zasobach obliczeniowych. Metryki monitorowania, takie jak bajty sieciowe, mogą ostrzec, jeśli zbliżasz się do limitów kwoty i zapobiegać ograniczaniu przepustowości. Podobnie monitorowanie środowiska szkoleniowego zapewnia informacje dotyczące wprowadzania zmian w środowisku treningowym. Użyj tych informacji, aby zdecydować się na skalowanie wewnątrz lub na zewnątrz, skalowanie w górę lub w dół przy użyciu różnych wydajnych jednostek SKU lub wybrać między CPU a GPU. |
Zarządzaj środowiskami treningowymi modeli: Wykorzystuj optymalizowane środowiska dla uczenia maszynowego, jeśli są dostępne. |
Wyselekcjonowane środowiska to wstępnie utworzone środowiska udostępniane przez usługę Machine Learning, które przyspieszają czas wdrażania i zmniejszają opóźnienie wdrażania i trenowania. Korzystanie z wyselekcjonowanych środowisk zwiększa współczynniki powodzenia trenowania i wdrażania i pozwala uniknąć niepotrzebnych kompilacji obrazu. Wyselekcjonowane środowiska, takie jak Azure Container for PyTorch, można również zoptymalizować na potrzeby trenowania dużych modeli w uczeniu maszynowym. |
Efektywność operacyjna
Efektywność wydajności polega na utrzymywaniu doświadczenia użytkownika nawet wtedy, gdy występuje wzrost obciążenia dzięki zarządzaniu wydajnością. Strategia obejmuje skalowanie zasobów, identyfikowanie i optymalizowanie potencjalnych wąskich gardeł oraz optymalizowanie pod kątem szczytowej wydajności.
Zasady projektowania wydajności operacyjnej zapewniają ogólną strategię projektowania w celu osiągnięcia tych celów wydajności w stosunku do oczekiwanego użycia.
Lista kontrolna projektu
Rozpocznij strategię projektowania na podstawie listy kontrolnej przeglądu projektu efektywności wydajności, aby zdefiniować punkt odniesienia na podstawie kluczowych wskaźników efektywności obciążeń związanych z uczeniem maszynowym.
Cele wydajności: określ akceptowalny czas trenowania i częstotliwość ponownego trenowania modelu. Ustawienie jasnego celu dla czasu trenowania, wraz z testowaniem, pomaga określić zasoby obliczeniowe oraz wymaganą konfigurację CPU i GPU, a także SKU CPU potrzebne do osiągnięcia celu czasowego trenowania.
Cele wydajności: zdefiniuj dopuszczalne cele wydajności dla wdrożonych modeli, w tym czas odpowiedzi, żądania na sekundę, szybkość błędów i czas pracy. Cele wydajności działają jako test porównawczy wydajności wdrożonego modelu. Cele mogą pomóc w porównaniu procesora CPU względem procesora GPU, wyborze odpowiednich modeli CPU oraz wymaganiach skalowania.
Spełnianie wymagań dotyczących pojemności: wybierz odpowiednie zasoby obliczeniowe na potrzeby trenowania modelu.
Spełnianie wymagań dotyczących pojemności: wybierz odpowiednie zasoby obliczeniowe dla wdrożeń modelu.
Spełnij wymagania dotyczące pojemności: wybierz środowiska wdrażania z funkcjami skalowania automatycznego, aby dodać i usunąć pojemność w miarę wahań zapotrzebowania.
Osiągaj i podtrzymuje wydajność: stale monitoruj wydajność wdrożonych modeli, przejrzyj wyniki i podejmij odpowiednie działania.
Osiągnij i utrzymaj wydajność: stale monitoruj wydajność infrastruktury wdrożonych modeli, przejrzyj wyniki i podejmij odpowiednie działania. Monitoruj infrastrukturę szkoleniową, aby upewnić się, że spełniasz wymagania dotyczące czasu trenowania.
Rekomendacje
Rekomendacja | Korzyść |
---|---|
Wybierz odpowiednie usługi obliczeniowe na potrzeby trenowania modelu: rozważ użycie klastrów obliczeniowych usługi Machine Learning w wystąpieniach obliczeniowych na potrzeby trenowania modelu, jeśli potrzebujesz skalowania automatycznego. Zoptymalizuj zasoby obliczeniowe na podstawie wymagań szkoleniowych. Najpierw wybierz między procesorami CPU i procesorami GPU. Domyślnie wybierz CPU, ale rozważ GPU dla obciążeń, takich jak uczenie głębokie, przetwarzanie obrazów lub wideo, lub przetwarzanie dużej ilości danych. Następnie wybierz SKU obrazu, który najlepiej odpowiada Twojemu obciążeniu. Użyj testowania, aby wybrać opcję obliczeniową, która optymalizuje koszt względem czasu trenowania podczas określania punktu odniesienia. |
Wybranie odpowiedniego środowiska obliczeniowego ma kluczowe znaczenie, ponieważ ma bezpośredni wpływ na czas trenowania. Wybór odpowiedniej jednostki SKU oraz procesora CPU lub GPU zapewnia, że trenowanie modelu spełni Twoje wymagania i cele dotyczące wydajności. Wybranie nisko wydajnego SKU, który jest nadmiernie używany, może prowadzić do niezmiernie długiego czasu trenowania i problemów z wydajnością. Klastry obliczeniowe umożliwiają poprawę wydajności poprzez skalowanie poziome obciążeń, które obsługują skalowalność poziomą. Ta metoda zapewnia elastyczność obsługi obciążeń z różnymi wymaganiami i umożliwia dodawanie lub usuwanie maszyn zgodnie z potrzebami. |
Skalowanie środowiska wdrażania modelu: użyj możliwości automatycznego skalowania środowiska wdrażania. W przypadku środowisk wdrażania usługi AKS użyj narzędzia do skalowania automatycznego klastra w celu spełnienia wymagań. W przypadku punktów końcowych online automatyczne skalowanie odbywa się za pośrednictwem integracji z funkcją automatycznego skalowania usługi Azure Monitor. | Skalowanie automatyczne dostosowuje liczbę wystąpień wdrożonego modelu w celu dopasowania go do zapotrzebowania. |
Monitorowanie wydajności modelu: monitoruj wydajność wdrożonych modeli. | Śledzenie wydajności modeli w środowisku produkcyjnym ostrzega o potencjalnych problemach, takich jak dryf danych, dryf przewidywania, jakość danych i dryf autorstwa funkcji. Monitorowanie dryfu danych ułatwia wykrywanie zmian w danych wejściowych, które mogą prowadzić do spadku wydajności modelu. Zarządzanie dryfem danych pomaga zapewnić, że model zapewnia dokładne wyniki w czasie. |
Monitorowanie infrastruktury: Monitorowanie punktów końcowych online i integracja z Monitor, aby śledzić i monitorować odpowiednie metryki oraz dzienniki. Włącz usługę Application Insights podczas tworzenia wdrożeń online. Monitoruj infrastrukturę szkoleniową i przeglądaj zużycie zasobów, takich jak pamięć oraz procesor CPU lub GPU podczas szkolenia modeli, aby upewnić się, że spełniasz podstawowe wymagania. |
Monitorowanie punktów końcowych zapewnia wgląd w metryki, takie jak opóźnienie żądań i żądania na minutę. Możesz porównać wydajność z punktem odniesienia i użyć tych informacji, aby odpowiednio wprowadzić zmiany w zasobach obliczeniowych. Metryki monitorowania, takie jak bajty sieciowe, mogą ostrzec, jeśli zbliżasz się do limitów kwoty i zapobiegać ograniczaniu przepustowości. Podobnie monitorowanie środowiska szkoleniowego zapewnia informacje dotyczące wprowadzania zmian w środowisku treningowym. Użyj tych informacji, aby zdecydować się na skalowanie wewnątrz lub na zewnątrz, skalowanie w górę lub w dół przy użyciu różnych wydajnych jednostek SKU lub wybrać między CPU a GPU. |
Zasady platformy Azure
Platforma Azure udostępnia obszerny zestaw wbudowanych zasad związanych z usługą Machine Learning i jej zależnościami. Niektóre z poprzednich zaleceń można kontrolować za pomocą zasad Azure. Rozważ następujące zasady związane z zabezpieczeniami:
- Dozwolone rejestry dla określonych obliczeń Machine Learning.
- Skonfiguruj dozwolone pakiety języka Python dla określonych obliczeń usługi Machine Learning.
- Obliczenia Machine Learning powinny znajdować się w sieci wirtualnej.
- Obliczenia usługi Machine Learning powinny mieć wyłączone lokalne metody uwierzytelniania.
- Obszary robocze usługi Machine Learning powinny wyłączyć dostęp do sieci publicznej.
- Aby uzyskać najnowsze aktualizacje oprogramowania, należy ponownie utworzyć wystąpienia obliczeniowe usługi Machine Learning.
- Obszary robocze usługi Machine Learning powinny być szyfrowane przy użyciu klucza zarządzanego przez klienta.
- Obszary robocze usługi Machine Learning powinny używać łącza prywatnego.
- Obszary robocze usługi Machine Learning powinny używać tożsamości zarządzanej przypisanej przez użytkownika.
- Wymagaj punktu końcowego zatwierdzenia, który należy wywołać przed uruchomieniem zadań dla określonych zasobów obliczeniowych Machine Learning.
- Wymagaj podpisywania kodu na potrzeby kodu szkoleniowego dla obliczeń.
- Ogranicz wdrażanie modelu do określonych rejestrów.
Rozważ następujące zasady związane z optymalizacją kosztów:
Rozważ następujące zasady związane z doskonałością operacyjną:
- Wymagaj użycia wyrażeń filtrów dzienników i magazynu danych dla pełnych dzienników dla określonych komputerów Machine Learning.
- Dzienniki zasobów w obszarach roboczych Machine Learning powinny być włączone.
Aby uzyskać kompleksowe zarządzanie, zapoznaj się z wbudowanymi definicjami Azure Policy dla Machine Learning.
Zalecenia doradcy
Advisor to spersonalizowany konsultant ds. chmury, który pomaga stosować najlepsze rozwiązania w celu zoptymalizowania wdrożeń platformy Azure. Rekomendacje doradcy mogą pomóc w zwiększeniu niezawodności, bezpieczeństwa, efektywności kosztów, wydajności i doskonałości operacyjnej usługi Machine Learning.
Rozważ następujące zalecenia usługi Advisor dotyczące zabezpieczeń:
- Obszary robocze powinny być szyfrowane przy użyciu klucza zarządzanego przez klienta (CMK).
- Obszary robocze powinny korzystać z prywatnych łączy.
- Obszary robocze powinny wyłączyć dostęp do sieci publicznej.
- Obliczenia powinny znajdować się w sieci wirtualnej.
- Aby uzyskać najnowsze aktualizacje oprogramowania, należy zrekreować wystąpienia obliczeniowe.
Rozważ następujące zalecenie doradcy dotyczące doskonałości operacyjnej:
- Dzienniki zasobów w środowiskach uczenia maszynowego powinny być włączone.
Dalsze kroki
Rozważ te artykuły jako zasoby, które przedstawiają zalecenia wyróżnione w tym artykule.
- Skorzystaj z od końca do końca architektury referencyjnej czatu OpenAI jako przykładu, jak można zastosować te zalecenia do obciążenia roboczego.
- Skorzystaj z dokumentacji produktu Machine Learning , aby utworzyć wiedzę na temat implementacji.