Perspektywa platformy Azure Well-Architected Framework w usłudze Azure Machine Learning

Azure Machine Learning to zarządzana usługa w chmurze, której można użyć do trenowania, wdrażania modeli uczenia maszynowego i zarządzania nimi. Istnieje wiele opcji wyboru 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 podczas korzystania z usługi Machine Learning do trenowania, wdrażania modeli uczenia maszynowego i zarządzania nimi. Wskazówki są oparte na filarach platformy Azure Well-Architected Framework.

Ważne

Jak korzystać z tego przewodnika

Każda sekcja zawiera listę kontrolną projektu , która przedstawia obszary architektury, wraz ze strategiami projektowania zlokalizowanymi w zakresie technologii.

Uwzględnione są 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 wyświetlają listę kluczowych zaleceń mapowanych na perspektywy projektu. Skorzystaj z zaleceń, aby utworzyć weryfikację koncepcji lub zoptymalizować istniejące środowiska.

Podstawowa architektura bazowa interfejsu OpenAI — kompleksowa architektura referencyjna rozmów demonstruje wiele kluczowych zaleceń.

Zakres technologii

Ten przegląd koncentruje się na wzajemnie powiązanych decyzjach dotyczących tych zasobów platformy Azure:

  • Usługa Machine Learning
  • Klastry obliczeniowe usługi Machine Learning
  • Wystąpienia obliczeniowe usługi 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 przez utworzenie wystarczającej odporności i możliwość szybkiego odzyskiwania po awariach.

Zasady projektowania niezawodności zapewniają strategię projektowania wysokiego poziomu 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 jej znaczenie dla wymagań biznesowych. Rozszerz strategię, aby uwzględnić więcej podejść zgodnie z potrzebami.

  • Odporność: wdrażanie modeli w środowiskach obsługujących strefy dostępności, takie jak usługa AKS. Upewniając się, że wdrożenia są dystrybuowane w różnych strefach dostępności, zapewniasz, że wdrożenie jest dostępne nawet w przypadku awarii centrum danych. Aby zapewnić lepszą niezawodność i dostępność, rozważ topologię wdrożenia w wielu regionach.

  • Odporność: upewnij się, że masz wystarczającą ilość zasobów obliczeniowych na potrzeby trenowania i wnioskowania. Dzięki planowaniu zasobów upewnij się, że jednostka SKU obliczeniowa i ustawienia skalowania spełniają wymagania obciążenia.

  • Odporność: segreguj obszary robocze usługi Machine Learning używane do eksploracyjnej pracy z tych używanych w środowisku produkcyjnym.

  • Odporność: W przypadku korzystania z zarządzanych punktów końcowych online do wnioskowania użyj strategii wydania, takiej jak wdrożenia niebieskie-zielone, 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 dotyczących 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 usługę Machine Learning, podczas trenowania dużych modeli.

  • Odzyskiwanie: Upewnij się, że masz zdefiniowaną strategię odzyskiwania. Uczenie maszynowe nie ma automatycznego trybu failover. Dlatego należy zaprojektować strategię obejmującą obszar roboczy i wszystkie jego zależności, takie jak Key Vault, Azure Storage i Azure Container Registry.

Zalecenia
Zalecenie Korzyść
Wdrożenie modelu z wieloma regionami: 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 wtedy, gdy jeden region ulegnie awarii. Wdrożenie obejmujące wiele regionów zwiększa dystrybucję 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 dla 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. Punkty kontrolne modelu okresowo zapisują stan modelu uczenia maszynowego podczas trenowania, dzięki czemu można je przywrócić w przypadku przerwy, awarii lub zakończenia. Aby uzyskać więcej informacji, zobacz Boost checkpoint speed and reduce cost with Nebula (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 dedykowanej warstwy maszyny wirtualnej dla klastrów obliczeniowych na potrzeby wnioskowania wsadowego, aby upewnić się, że zadanie wsadowe nie jest wywłaszczone. Maszyny wirtualne o niskim priorytecie są dostępne w obniżonej cenie, ale są wywłaszane. Klastry korzystające z dedykowanej warstwy maszyny wirtualnej nie są wywłaszczone.

Zabezpieczenia

Celem filaru zabezpieczeń jest zapewnienie poufności, integralności i gwarancji dostępności dla obciążenia.

Zasady projektowania zabezpieczeń zapewniają strategię projektowania wysokiego poziomu na potrzeby realizacji tych celów, stosując podejścia do projektowania 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ę, aby uwzględnić więcej podejść zgodnie z potrzebami.

  • Dostępność: Zmniejsz powierzchnię ataków 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ą najmniejszych uprawnień, zapewniając, że obszary robocze są dostępne tylko dla osób, które wymagają dostępu do danych i zasobów 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 usługi Machine Learning mogą uzyskiwać 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. Regulacja pakietów języka Python gwarantuje, że są uruchamiane tylko zaufane pakiety.

  • Integralność: wymagaj kodu używanego do trenowania w środowiskach obliczeniowych usługi Machine Learning do podpisania. Wymaganie podpisywania kodu gwarantuje, że uruchomiony kod pochodzi z zaufanego źródła i nie został naruszony.

  • Poufność: przestrzegaj zasady najniższych uprawnień kontroli dostępu opartej na rolach (RBAC) do obszaru roboczego usługi Machine Learning i powiązanych zasobów, takich jak konto magazynu obszaru roboczego, aby zapewnić, że osoby mają tylko niezbędne uprawnienia do swojej 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.

Zalecenia
Zalecenie 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 zapewnić optymalne zabezpieczenia, użyj 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 topologii sieci , aby oddzielić zasoby obliczeniowe od dedykowanej podsieci z dala od reszty 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 dzięki izolacji 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 sieci usługi Machine Learning zwiększa bezpieczeństwo, zapewniając, że dostęp do obszaru roboczego jest bezpieczny i kontrolowany. W przypadku prywatnego punktu końcowego skonfigurowanego 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 potrzebnych do uzyskania dostępu. 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 przez ograniczenie dostępu do rozwiązań platformy Azure jako usługi (PaaS) 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ń i 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ść remoteLoginPortPublicAccessDisabledna . 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 aprowizuj publicznych adresów IP dla zasobów obliczeniowych usługi Machine Learning: ustaw wartość enableNodePublicIp na false podczas aprowizowania klastrów obliczeniowych lub wystąpień obliczeniowych usługi Machine Learning. Zastosuj podobną konfigurację, jeśli używasz innego środowiska obliczeniowego. Powstrzymaj się od aprowizowania publicznych adresów IP, aby zwiększyć bezpieczeństwo, ograniczając możliwość nieautoryzowanego dostępu do wystąpienia obliczeniowego 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 zapewnia utrzymanie spójnego, stabilnego i bezpiecznego środowiska, w tym zapewnienie najnowszych poprawek zabezpieczeń.
Ścisłe mechanizmy kontroli dostępu do obszaru roboczego usługi Machine Learning: użyj grup Tożsamość Microsoft Entra, aby zarządzać dostępem do obszaru roboczego i przestrzegać zasady najniższych uprawnień kontroli dostępu opartej na rolach. Ścisłe mechanizmy kontroli dostępu do obszaru roboczego zwiększają bezpieczeństwo, zapewniając, że użytkownicy mają tylko niezbędne uprawnienia do swojej roli. Analityk danych, na przykład, 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: ograniczanie wdrożeń modeli do określonych rejestrów. Ograniczenie wdrożeń z wykazu modeli do określonych rejestrów zapewnia wdrażanie tylko modeli 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 magazynowanych zwiększa bezpieczeństwo danych dzięki zapewnieniu, że poufne dane są szyfrowane przy użyciu kluczy zarządzanych bezpośrednio przez Ciebie. Jeśli masz wymaganie prawne dotyczące zarządzania własnymi kluczami szyfrowania, użyj tej funkcji, aby spełnić to wymaganie.
Zminimalizuj ryzyko eksfiltracji danych: zaimplementuj zapobieganie eksfiltracji danych. Na przykład utwórz zasady punktu końcowego usługi, aby filtrować ruch sieciowy wirtualny wychodzący 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.
Advisor

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ć Azure Private Link.
  • Obszary robocze powinny wyłączyć dostęp do sieci publicznej.
  • Obliczenia powinny znajdować się w sieci wirtualnej.
  • Wystąpienia obliczeniowe należy ponownie utworzyć, aby uzyskać najnowsze aktualizacje oprogramowania.
Azure Policy

Poniżej przedstawiono przykłady wbudowanych definicji Azure Policy dla zabezpieczeń usługi Machine Learning:

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, aby spełnić budżet organizacji przy jednoczesnym spełnieniu wymagań biznesowych.

Zapoznaj się z zasadami 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 swoich środowiskach.

Lista kontrolna projektu

Rozpocznij strategię projektowania na podstawie listy kontrolnej przeglądu projektu optymalizacji kosztów dla inwestycji i dostosuj projekt tak, aby obciążenie było dopasowane do budżetu przydzielonego dla obciążenia. 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. Na przykład wybierz między procesorami CPU lub procesorami GPU, różnymi jednostkami SKU lub maszynami wirtualnymi o niskim priorytcie a niskim priorytetem.

  • 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 ilości odpadów.

  • Optymalizacja użycia: zastosuj zasady i skonfiguruj limity przydziału, aby były zgodne z górnymi i dolnymi limitami projektu.

  • Optymalizacja użycia: przetestuj obciążenia trenowania równoległego, aby określić, czy wymagania dotyczące trenowania można spełnić w przypadku jednostek SKU o niższych kosztach.

  • Optymalizacja szybkości: kup wystąpienia zarezerwowane maszyn wirtualnych platformy Azure, jeśli masz dobre oszacowanie użycia w ciągu najbliższych od trzech lat.

  • Monitorowanie i optymalizowanie: monitoruj użycie zasobów, takie 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.

Zalecenia
Zalecenie Korzyść
Optymalizowanie zasobów obliczeniowych: optymalizowanie zasobów obliczeniowych na podstawie wymagań obciążenia. Wybierz jednostkę SKU, która najlepiej odpowiada obciążeniu:
  • Ogólnego przeznaczenia — zrównoważony stosunek procesora CPU do pamięci, dobry dla wszystkich celów.
  • Zoptymalizowane pod kątem obliczeń — wysoki współczynnik procesora CPU do pamięci, dobry w przypadku obliczeń o dużej mocy matematycznej.
  • Zoptymalizowane pod kątem pamięci — duża ilość pamięci do procesora CPU, dobra dla obliczeń w pamięci lub aplikacji bazy danych.
  • Seria M — bardzo duże maszyny, które mają ogromne ilości pamięci i procesora CPU.
  • Procesor GPU — lepszy w przypadku modeli z dużą liczbą zmiennych, które mogą korzystać z wyższych równoległości i wyspecjalizowanych instrukcji podstawowych. Typowe aplikacje to uczenie głębokie, przetwarzanie obrazów lub wideo, symulacje naukowe, eksploracja danych i korzystanie z platform programistycznych procesora GPU. Przetestuj z wieloma rodzinami i zdeksuj wyniki jako punkt odniesienia. W miarę rozwoju modelu i danych najbardziej odpowiedni zasób obliczeniowy może ulec zmianie. Monitoruj czasy wykonywania i przeszacuj je zgodnie z potrzebami.
Wybranie odpowiednich zasobów obliczeniowych ma kluczowe znaczenie, ponieważ ma bezpośredni wpływ na koszt uruchamiania obciążenia. Wybranie procesora GPU lub jednostki SKU o wysokiej wydajności bez odpowiedniego użycia może prowadzić do marnujących wydatków, podczas gdy wybranie niedostatecznie zdużonego środowiska obliczeniowego może prowadzić do zbyt długiego czasu trenowania i problemów z wydajnością.
Optymalizowanie skalowania obliczeniowego: skonfiguruj klastry obliczeniowe na potrzeby skalowania automatycznego , aby upewnić się, ż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. Aby uzyskać mniej iteracyjne eksperymenty, 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 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, jeśli nie są używane.
Ustaw zasady kończenia trenowania: ustaw zasady wczesnego zakończenia , aby ograniczyć czas trwania przebiegów trenowania lub zakończyć je wcześnie. Ustawienie zasad kończenia może pomóc zaoszczędzić koszty, zatrzymując wczesne uruchamianie nienależących do wartości.
Używaj maszyn wirtualnych o niskim priorytetu dla obciążeń wsadowych: rozważ użycie maszyn wirtualnych o niskim priorytetu dla obciążeń wsadowych , które nie są wrażliwe na czas i w których można odzyskać przerwy. Maszyny wirtualne o niskim priorytetu umożliwiają korzystanie z dużej ilości mocy obliczeniowej w przypadku niskich kosztów. Wykorzystują one nadwyżkę 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 wystąpienia obliczeniowe są dostępne dla Ciebie, naliczając koszty. 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łe obciążenia szkoleniowe: rozważ równoległe obciążenia trenowania. Przetestuj je za pomocą składników równoległych w usłudze Machine Learning. Obciążenia równoległe można uruchamiać na wielu mniejszych wystąpieniach, co może przynieść oszczędności kosztów.
Wystąpienia zarezerwowane maszyn wirtualnych platformy Azure: zakup wystąpień zarezerwowanych maszyn wirtualnych platformy Azure, jeśli masz dobre oszacowanie użycia w ciągu najbliższych od trzech lat. Korzystaj z opcji pojemności zarezerwowanej dla usług, gdy masz dobre oszacowania użycia. Kup wystąpienia zarezerwowane maszyn wirtualnych platformy Azure, aby z góry zapłacić za użycie maszyn wirtualnych i podać rabaty z cennikiem płatności zgodnie z rzeczywistym użyciem. Rabat jest automatycznie stosowany do użycia maszyn wirtualnych pasujących do 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 doskonałości operacyjnej stanowią strategię projektowania wysokiego poziomu w celu osiągnięcia tych celów w kierunku wymagań operacyjnych obciążenia.

Lista kontrolna projektu

Rozpocznij strategię projektowania na podstawie listy kontrolnej przeglądu projektu pod kątem doskonałości operacyjnej w celu zdefiniowania procesów do obserwowania, testowania i wdrażania związanego z uczeniem maszynowym.

  • Standardy programistyczne: korzystaj z katalogów modeli usługi Machine Learning i rejestrów do przechowywania, wersji 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 kompleksowe zautomatyzowane potoki na potrzeby procesów przygotowywania, trenowania i oceniania danych. W programowania używaj skryptów zamiast notesów do trenowania modeli, ponieważ skrypty są łatwiejsze do zintegrowania z zautomatyzowanymi potokami.

  • Wdrażanie z pewnością: zaimplementuj infrastrukturę jako kod (IaC) dla obszarów roboczych usługi Machine Learning, klastrów obliczeniowych, wystąpień obliczeniowych i innych środowisk wdrażania.

  • Wgląd: monitoruj wydajność wdrożonych modeli, w tym dryf danych.

  • Wgląd: 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 podstawowe wymagania.

  • Prostota: używaj wyselekcjonowanych środowisk zoptymalizowanych pod kątem uczenia maszynowego, jeśli są dostępne.

Zalecenia
Zalecenie Korzyść
Minimalizuj wystąpienia obszaru roboczego usługi Machine Learning: zminimalizuj liczbę obszarów roboczych, jeśli to możliwe, aby zmniejszyć konserwację. Ograniczenie liczby obszarów roboczych zmniejsza nakład pracy konserwacyjnych i koszty działania. W przypadku wymagań, takich jak zabezpieczenia, może być konieczne 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.

Katalogi modeli usługi Machine Learning ułatwiają implementowanie testowania i wdrażania modeli A/B.
Rejestry modeli usługi Machine Learning umożliwiają przechowywanie i przechowywanie wersji modeli uczenia maszynowego w celu śledzenia zmian i utrzymania pochodzenia danych używanych do trenowania.

Dzięki katalogom modeli usługi Machine Learning zespoły nauki o danych mogą odnajdywać, oceniać i dostosowywać wstępnie wytrenowane podstawowe modele uczenia maszynowego.

Przechowywanie wersji modeli w rejestrach modeli usługi Machine Learning obsługuje strategie wdrażania, takie jak wersje A/B, wydania kanary i wycofywanie.
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 pomaga wykrywać zmiany 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 podstawowe wymagania.

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ą otrzymywać alerty, jeśli zbliżasz się do limitów przydziału i zapobiegasz ograniczaniu przepustowości.

Podobnie monitorowanie środowiska szkoleniowego zapewnia informacje dotyczące wprowadzania zmian w środowisku trenowania. Użyj tych informacji, aby zdecydować się na skalowanie w poziomie lub w poziomie, skalowanie w górę lub w dół przy użyciu różnych wydajnych jednostek SKU lub wybór między procesorami CPU lub procesorami GPU.
Curate model training environments (Curate model training environments): Użyj wyselekcjonowanych środowisk zoptymalizowanych pod kątem 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 poprawia współczynniki powodzenia trenowania i wdrażania oraz pozwala uniknąć niepotrzebnych kompilacji obrazu.

Wyselekcjonowane środowiska, takie jak Azure Container for PyTorch, można również zoptymalizować pod kątem trenowania dużych modeli w usłudze Machine Learning.

Efektywność wydajności

Wydajność polega na utrzymaniu środowiska użytkownika nawet wtedy, gdy występuje wzrost obciążenia dzięki zarządzaniu pojemnoś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 wydajności stanowią ogólną strategię projektowania na potrzeby osiągnięcia tych celów pojemności w stosunku do oczekiwanego użycia.

Lista kontrolna projektu

Rozpocznij strategię projektowania na podstawie listy kontrolnej przeglądu projektu dotyczącej wydajności , aby zdefiniować punkt odniesienia na podstawie kluczowych wskaźników wydajności dla obciążeń usługi Machine Learning.

  • Cele dotyczące wydajności: określ akceptowalny czas trenowania i częstotliwość ponownego trenowania modelu. Ustawienie jasnego celu czasu trenowania wraz z testowaniem pomaga określić zasoby obliczeniowe, procesor CPU i procesor GPU oraz jednostki SKU procesora CPU wymagane do osiągnięcia celu czasu 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 określeniu procesora CPU i procesora GPU, wyborach jednostek SKU procesora CPU i wymaganiach dotyczących 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łnianie wymagań dotyczących pojemności: wybierz środowiska wdrażania z funkcjami skalowania automatycznego, aby dodać i usunąć pojemność w miarę wahań zapotrzebowania.

  • Osiągnięcie i utrzymanie wydajności: stale monitoruj wydajność wdrożonych modeli, przejrzyj wyniki i podejmij odpowiednie działania.

  • Osiągnięcie i utrzymanie wydajności: 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.

Zalecenia
Zalecenie Korzyść
Wybierz odpowiednie usługi obliczeniowe na potrzeby trenowania modelu: rozważ użycie klastrów obliczeniowych usługi Machine Learning w ramach wystąpień 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 procesory CPU, ale należy wziąć pod uwagę procesory GPU dla obciążeń, takich jak uczenie głębokie, przetwarzanie obrazów lub wideo lub duże ilości danych. Następnie wybierz jednostkę SKU obrazu, która najlepiej odpowiada 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. Wybranie odpowiedniej jednostki SKU i procesora CPU w porównaniu z procesorem GPU zapewnia, że trenowanie modelu może spełniać twoje wymagania i cele dotyczące wydajności. Wybranie jednostki SKU o niskiej wydajności, która jest nadmiernie generowana, może prowadzić do zbyt długiego czasu trenowania i problemów z wydajnością.

Klastry obliczeniowe zapewniają możliwość zwiększenia wydajności przez skalowanie w poziomie obciążeń obsługujących skalowanie w poziomie. 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 automatycznego skalowania klastra w celu skalowania w celu spełnienia wymagań. W przypadku punktów końcowych online automatyczne skalowanie za pośrednictwem integracji z funkcją automatycznego skalowania usługi Azure Monitor. Autoskalowanie dostosowuje liczbę wystąpień wdrożonego modelu w celu dopasowania go do zapotrzebowania.
Monitorowanie wydajności modelu: monitorowanie wydajności wdrożonych modeli. Śledzenie wydajności modeli w środowisku produkcyjnym powiadamia o potencjalnych problemach, takich jak dryf danych, dryf przewidywania, jakość danych i dryf autorstwa funkcji.

Monitorowanie dryfu danych pomaga wykrywać zmiany 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 usługą Monitor w celu śledzenia i monitorowania odpowiednich metryk i dzienników. Włącz usługę Application Insights podczas tworzenia wdrożeń online.

Monitorowanie infrastruktury szkoleniowej i przeglądanie użycia zasobów, takich jak pamięć i procesor CPU lub procesor GPU podczas trenowania 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ą otrzymywać alerty, jeśli zbliżasz się do limitów przydziału i zapobiegasz ograniczaniu przepustowości.

Podobnie monitorowanie środowiska szkoleniowego zapewnia informacje dotyczące wprowadzania zmian w środowisku trenowania. Użyj tych informacji, aby zdecydować się na skalowanie w poziomie lub w poziomie, skalowanie w górę lub w dół przy użyciu różnych wydajnych jednostek SKU lub wybór między procesorami CPU lub procesorami 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 powyższych zaleceń można przeprowadzać inspekcję za pomocą zasad platformy Azure. Rozważ następujące zasady związane z zabezpieczeniami:

Rozważ następujące zasady związane z optymalizacją kosztów:

Rozważ następujące zasady związane z doskonałością operacyjną:

Aby uzyskać kompleksowy nadzór, zapoznaj się z Azure Policy wbudowanymi definicjami usługi 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, zabezpieczeń, opłacalności, wydajności i doskonałości operacyjnej usługi Machine Learning.

Rozważ następujące zalecenia doradcy dotyczące zabezpieczeń:

  • Obszary robocze powinny być szyfrowane przy użyciu klucza zarządzanego przez klienta (CMK).
  • Obszary robocze powinny używać łącza prywatnego.
  • Obszary robocze powinny wyłączyć dostęp do sieci publicznej.
  • Obliczenia powinny znajdować się w sieci wirtualnej.
  • Aby uzyskać najnowsze aktualizacje oprogramowania, należy ponownie utworzyć wystąpienia obliczeniowe.

Rozważ następujące zalecenie doradcy dotyczące doskonałości operacyjnej:

  • Dzienniki zasobów w obszarach roboczych usługi Machine Learning powinny być włączone.

Następne kroki

Rozważ te artykuły jako zasoby, które przedstawiają zalecenia wyróżnione w tym artykule.