Udostępnij za pośrednictwem


Zarządzanie i optymalizowanie kosztów usługi Azure Machine Learning

W tym artykule pokazano, jak zarządzać kosztami i optymalizować je podczas trenowania i wdrażania modeli uczenia maszynowego w usłudze Azure Machine Learning.

Skorzystaj z poniższych wskazówek, aby ułatwić zarządzanie kosztami zasobów obliczeniowych i optymalizowanie ich.

  • Korzystanie z klastra obliczeniowego usługi Azure Machine Learning
  • Konfigurowanie klastrów szkoleniowych na potrzeby skalowania automatycznego
  • Konfigurowanie zarządzanych punktów końcowych online na potrzeby skalowania automatycznego
  • Ustawianie limitów przydziału dla subskrypcji i obszarów roboczych
  • Ustawianie zasad kończenia zadań szkoleniowych
  • Korzystanie z maszyn wirtualnych o niskim priorytcie
  • Planowanie wystąpień obliczeniowych w celu automatycznego zamykania i uruchamiania
  • Korzystanie z wystąpienia zarezerwowanej maszyny wirtualnej platformy Azure
  • Równoległe trenowanie
  • Ustawianie zasad przechowywania i usuwania danych
  • Wdrażanie zasobów w tym samym regionie
  • Usuwanie nieudanych wdrożeń

Aby uzyskać informacje na temat planowania i monitorowania kosztów, zobacz Planowanie zarządzania kosztami usługi Azure Machine Learning.

Ważne

Elementy oznaczone (wersja zapoznawcza) w tym artykule są obecnie dostępne w publicznej wersji zapoznawczej. Wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług. Nie zalecamy wersji zapoznawczych dla obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.

Korzystanie z klastra obliczeniowego usługi Azure Machine Learning

Dzięki stale zmieniającym się danym potrzebne jest szybkie i usprawnione trenowanie i ponowne trenowanie modelu w celu zachowania dokładnych modeli. Jednak ciągłe szkolenie wiąże się z kosztami, szczególnie w przypadku modeli uczenia głębokiego na procesorach GPU.

Użytkownicy usługi Azure Machine Learning mogą używać zarządzanego klastra obliczeniowego usługi Azure Machine Learning, nazywanego również AmlCompute. Funkcja AmlCompute obsługuje różne opcje procesora GPU i procesora CPU. Aplikacja AmlCompute jest wewnętrznie hostowana w imieniu subskrypcji przez usługę Azure Machine Learning. Zapewnia te same zabezpieczenia, zgodność i ład klasy korporacyjnej w skali chmury IaaS platformy Azure.

Ponieważ te pule obliczeniowe znajdują się w infrastrukturze IaaS platformy Azure, możesz wdrażać, skalować i zarządzać szkoleniami przy użyciu tych samych wymagań dotyczących zabezpieczeń i zgodności co pozostała część infrastruktury. Te wdrożenia są wykonywane w ramach subskrypcji i przestrzegać reguł ładu. Aby uzyskać więcej informacji, zobacz Planowanie zarządzania kosztami usługi Azure Machine Learning.

Konfigurowanie klastrów szkoleniowych na potrzeby skalowania automatycznego

Skalowanie automatyczne klastrów na podstawie wymagań obciążenia pomaga zmniejszyć koszty, dzięki czemu można używać tylko potrzebnych elementów.

Klastry AmlCompute są przeznaczone do dynamicznego skalowania na podstawie obciążenia. Klaster można skalować w górę do maksymalnej liczby skonfigurowanych węzłów. Po zakończeniu każdego zadania klaster zwalnia węzły i skaluje do skonfigurowanej minimalnej liczby węzłów.

Ważne

Aby uniknąć naliczania opłat w przypadku braku uruchomionych zadań, ustaw minimalną wartość węzłów na 0. To ustawienie umożliwia usłudze Azure Machine Learning anulowanie przydzielania węzłów, gdy nie są one używane. Każda wartość większa niż 0 zachowa liczbę uruchomionych węzłów, nawet jeśli nie są używane.

Można również skonfigurować czas bezczynności węzła przed skalowaniem w dół. Domyślnie czas bezczynności przed ustawieniem skalowania w dół wynosi 120 sekund.

  • Jeśli wykonasz mniej iteracyjne eksperymenty, zmniejsz ten czas, aby zaoszczędzić koszty.
  • Jeśli przeprowadzasz wysoce iteracyjne eksperymenty deweloperskie/testowe, może być konieczne zwiększenie czasu, aby nie płacić za stałe skalowanie w górę i w dół po każdej zmianie skryptu trenowania lub środowiska.

Klastry AmlCompute można skonfigurować pod kątem zmieniających się wymagań dotyczących obciążenia przy użyciu następujących elementów:

Konfigurowanie zarządzanych punktów końcowych online na potrzeby skalowania automatycznego

Automatyczne skalowanie uruchamia odpowiednią ilość zasobów na potrzeby obsługi obciążenia aplikacji. Zarządzane punkty końcowe online obsługują skalowanie automatyczne za pośrednictwem integracji z funkcją automatycznego skalowania usługi Azure Monitor. Aby uzyskać więcej informacji, zobacz Online endpoints and deployments for real-time inference (Punkty końcowe i wdrożenia online na potrzeby wnioskowania w czasie rzeczywistym).

Skalowanie automatyczne usługi Azure Monitor obsługuje bogaty zestaw reguł:

  • Skalowanie oparte na metrykach, na przykład użycie >procesora CPU 70%
  • Skalowanie oparte na harmonogramie, na przykład reguły skalowania dla godzin szczytu pracy
  • Kombinacja tych dwóch

Aby uzyskać więcej informacji, zobacz Autoskaluj punkty końcowe online.

Ustawianie limitów przydziału zasobów

Element AmlCompute zawiera konfigurację limitu przydziału lub limitu. Ten limit przydziału jest według rodziny maszyn wirtualnych, na przykład serii Dv2 lub serii NCv3. Limit przydziału różni się w zależności od regionu dla każdej subskrypcji. Subskrypcje zaczynają się od małych wartości domyślnych. Użyj tego ustawienia, aby kontrolować ilość dostępnych zasobów AmlCompute do spun up w ramach subskrypcji. Aby uzyskać więcej informacji, zobacz Azure Machine Learning Compute.

Ponadto można skonfigurować limit przydziału na poziomie obszaru roboczego według rodziny maszyn wirtualnych dla każdego obszaru roboczego w ramach subskrypcji. Takie podejście zapewnia bardziej szczegółową kontrolę nad kosztami, które mogą wiązać się z poszczególnymi obszarami roboczymi i ograniczają niektóre rodziny maszyn wirtualnych. Aby uzyskać więcej informacji, zobacz Przydziały na poziomie obszaru roboczego.

Aby ustawić limity przydziału na poziomie obszaru roboczego:

  1. Otwórz witrynę Azure Portal , a następnie wybierz dowolny obszar roboczy w subskrypcji.

  2. Wybierz pozycję Pomoc techniczna i rozwiązywanie problemów z>użyciem i limitami przydziału w menu obszaru roboczego.

  3. Wybierz pozycję Wyświetl limit przydziału, aby wyświetlić limity przydziału w usłudze Azure Machine Learning Studio.

  4. Na tej stronie możesz znaleźć subskrypcję i region, aby ustawić limity przydziału.

    Ponieważ to ustawienie ma wpływ na wiele obszarów roboczych, musisz mieć uprawnienia w zakresie subskrypcji, aby ustawić limit przydziału.

Ustawianie zasad kończenia zadań

W niektórych przypadkach należy skonfigurować przebiegi trenowania, aby ograniczyć ich czas trwania lub zakończyć je wcześnie. Na przykład w przypadku korzystania z wbudowanego dostrajania hiperparametrów usługi Azure Machine Learning lub zautomatyzowanego uczenia maszynowego.

Oto kilka opcji, które masz:

  • Zdefiniuj parametr o nazwie max_run_duration_seconds w elemecie RunConfiguration, aby kontrolować maksymalny czas trwania przebiegu, który można rozszerzyć na wybrane obliczenia lokalne lub zdalne w chmurze.
  • W przypadku dostrajania hiperparametrów zdefiniuj zasady wczesnego zakończenia z zasad bandytu, zasady zatrzymywania mediany lub zasady wyboru obcięcia. Aby dokładniej kontrolować zamiatania hiperparametrów, użyj parametrów, takich jak max_total_runs lub max_duration_minutes. Aby uzyskać więcej informacji, zobacz Określanie zasad wczesnego zakończenia.
  • W przypadku zautomatyzowanego uczenia maszynowego ustaw podobne zasady kończenia przy użyciu flagi enable_early_stopping . Można również użyć właściwości, takich jak iteration_timeout_minutes i experiment_timeout_minutes , aby kontrolować maksymalny czas trwania zadania lub dla całego eksperymentu. Aby uzyskać więcej informacji, zobacz Kryteria zakończenia.

Używanie maszyn wirtualnych o niskim priorytcie

Platforma Azure umożliwia korzystanie z nadmiarowej nieużywanej pojemności jako maszyn wirtualnych o niskim priorytcie w zestawach skalowania maszyn wirtualnych, usłudze Batch i usłudze Machine Learning. Te alokacje są wywłasze, ale są dostępne w obniżonej cenie w porównaniu z dedykowanymi maszynami wirtualnymi. Ogólnie rzecz biorąc, zalecamy używanie maszyn wirtualnych o niskim priorytcie dla obciążeń usługi Batch. Należy również użyć tych elementów, w których można odzyskać przerwy za pośrednictwem ponownego instalowania wsadowego lub ponownego uruchamiania na potrzeby trenowania uczenia głębokiego za pomocą punktów kontrolnych.

Maszyny wirtualne o niskim priorytcie mają pojedynczy limit przydziału oddzielony od wartości dedykowanego limitu przydziału, która jest rodziną maszyn wirtualnych. Aby uzyskać więcej informacji na temat przydziałów usługi AmlCompute, zobacz Zarządzanie przydziałami i zwiększanie ich limitów przydziału .

Maszyny wirtualne o niskim priorytcie nie działają w przypadku wystąpień obliczeniowych, ponieważ muszą obsługiwać interaktywne środowiska notesów.

Planowanie wystąpień obliczeniowych

Podczas tworzenia wystąpienia obliczeniowego maszyna wirtualna pozostaje włączona, aby była dostępna dla Twojej pracy.

  • Włącz zamykanie bezczynności (wersja zapoznawcza), aby zaoszczędzić na kosztach bezczynności maszyny wirtualnej przez określony okres. Zobacz Konfigurowanie zamykania bezczynności.
  • Skonfiguruj harmonogram automatycznego uruchamiania i zatrzymywania wystąpienia obliczeniowego (wersja zapoznawcza), gdy nie jest używany w celu zaoszczędzenia kosztów. Zobacz Planowanie automatycznego uruchamiania i zatrzymywania.

Użycie wystąpień zarezerwowanych

Innym sposobem oszczędzania pieniędzy na zasobach obliczeniowych jest wystąpienie zarezerwowane maszyny wirtualnej platformy Azure. Dzięki tej ofercie zobowiązujesz się do terminów jednorocznych lub trzyletnich. Te rabaty wahają się do 72% cen płatności zgodnie z rzeczywistym użyciem i są stosowane bezpośrednio do miesięcznego rachunku za korzystanie z platformy Azure.

Usługa Azure Machine Learning Compute z założenia obsługuje wystąpienia zarezerwowane. W przypadku zakupu wystąpienia zarezerwowanego na rok lub trzy lata automatycznie stosujemy rabat na zarządzane zasoby obliczeniowe usługi Azure Machine Learning.

Równoległe trenowanie

Jedną z kluczowych metod optymalizacji kosztów i wydajności jest równoległe zrównanie obciążenia przy użyciu składnika równoległego w usłudze Azure Machine Learning. Składnik równoległy umożliwia równoległe uruchamianie zadania za pomocą wielu mniejszych węzłów, co umożliwia skalowanie w poziomie. Istnieje obciążenie związane z równoległym przetwarzaniem równoległym. W zależności od obciążenia i stopnia równoległości, które można osiągnąć, takie podejście może być opcją. Aby uzyskać więcej informacji, zobacz ParallelComponent Class (Klasa ParallelComponent).

Ustawianie zasad przechowywania i usuwania danych

Za każdym razem, gdy potok jest uruchamiany, pośrednie zestawy danych są generowane w każdym kroku. W czasie te pośrednie zestawy danych zajmują miejsce na koncie magazynu. Rozważ skonfigurowanie zasad zarządzania danymi w całym cyklu życia w celu archiwizowania i usuwania zestawów danych. Aby uzyskać więcej informacji, zobacz Optymalizowanie kosztów przez automatyczne zarządzanie cyklem życia danych.

Wdrażanie zasobów w tym samym regionie

Obliczenia znajdujące się w różnych regionach mogą mieć opóźnienie sieci i zwiększyć koszty transferu danych. Koszty sieci platformy Azure są naliczane z przepustowości wychodzącej z centrów danych platformy Azure. Aby zmniejszyć koszty sieci, wdróż wszystkie zasoby w regionie. Aprowizowanie obszaru roboczego usługi Azure Machine Learning i zasobów zależnych w tym samym regionie, w którym dane mogą pomóc obniżyć koszty i zwiększyć wydajność.

W przypadku scenariuszy chmury hybrydowej, takich jak te korzystające z usługi Azure ExpressRoute, czasami bardziej ekonomiczne może być przeniesienie wszystkich zasobów na platformę Azure w celu zoptymalizowania kosztów sieci i opóźnień.

Usuwanie nieudanych wdrożeń

Zarządzane punkty końcowe online używają maszyn wirtualnych dla wdrożeń. Jeśli przesłano żądanie utworzenia wdrożenia w trybie online i nie powiodło się, żądanie mogło przejść etap podczas tworzenia obliczeń. W takim przypadku wdrożenie, które zakończyło się niepowodzeniem, spowoduje naliczanie opłat. Po zakończeniu debugowania lub badania awarii usuń nieudane wdrożenia, aby zmniejszyć koszty.