W tym artykule wyjaśniono, jak utworzyć klaster obliczeniowy i zarządzać nim w obszarze roboczym usługi Azure Machine Learning.
Za pomocą klastra obliczeniowego usługi Azure Machine Learning można dystrybuować proces trenowania lub wnioskowania wsadowego w klastrze węzłów obliczeniowych procesora CPU lub procesora GPU w chmurze. Aby uzyskać więcej informacji na temat rozmiarów maszyn wirtualnych, które obejmują procesory GPU, zobacz Rozmiary maszyn wirtualnych zoptymalizowane pod kątem procesora GPU.
Instrukcje:
Utwórz klaster obliczeniowy.
Obniż koszt klastra obliczeniowego przy użyciu maszyn wirtualnych o niskim priorytcie.
Zamiast tworzyć klaster obliczeniowy, użyj bezserwerowych zasobów obliczeniowych , aby odciążyć zarządzanie cyklem życia obliczeń w usłudze Azure Machine Learning.
Wymagania wstępne
Obszar roboczy usługi Azure Machine Learning. Aby uzyskać więcej informacji, zobacz Zarządzanie obszarami roboczymi usługi Azure Machine Learning.
Wybierz odpowiednią kartę dla pozostałych wymagań wstępnych w oparciu o preferowaną metodę tworzenia klastra obliczeniowego.
Jeśli nie uruchamiasz kodu w wystąpieniu obliczeniowym, zainstaluj zestaw SDK języka Python usługi Azure Machine Learning. Ten zestaw SDK jest już zainstalowany w wystąpieniu obliczeniowym.
Dołącz do obszaru roboczego w skrypsie języka Python:
Uruchom ten kod, aby nawiązać połączenie z obszarem roboczym usługi Azure Machine Learning.
Zastąp identyfikator subskrypcji, nazwę grupy zasobów i nazwę obszaru roboczego w poniższym kodzie. Aby znaleźć następujące wartości:
# Enter details of your AML workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AML_WORKSPACE_NAME>"
# get a handle to the workspace
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
ml_client = MLClient(
DefaultAzureCredential(), subscription_id, resource_group, workspace
)
ml_client jest procedurą obsługi obszaru roboczego używanego do zarządzania innymi zasobami i zadaniami.
Uwierzytelnianie i ustawianie domyślnego obszaru roboczego i grupy zasobów. Pozostaw otwarty terminal, aby uruchomić pozostałe polecenia w tym artykule.
Jeśli korzystasz z wystąpienia obliczeniowego:
az login --identity
# next line needed only if you have multiple subscriptions:
az account set --subscription "<SUBSCRIPTION-NAME>" # replace with your subscription name
az configure --defaults group=$CI_RESOURCE_GROUP workspace=$CI_WORKSPACE
Jeśli uruchamiasz polecenia lokalnie, pomiń --identity i postępuj zgodnie z instrukcjami dotyczącymi uwierzytelniania. Zastąp $CI_RESOURCE_GROUP również wartościami i $CI_WORKSPACE .
Podczas konfigurowania sieci wirtualnej znajdującej się w innej grupie zasobów z obszaru roboczego usługi Azure Machine Learning należy pamiętać, że zasoby, takie jak sieciowe grupy zabezpieczeń, publiczne adresy IP i moduły równoważenia obciążenia zostaną utworzone w tej samej grupie zasobów co sieć wirtualna. To zachowanie zapewnia prawidłowe zarządzanie siecią i izolację.
Co to jest klaster obliczeniowy?
Klaster obliczeniowy usługi Azure Machine Learning to zarządzana infrastruktura obliczeniowa, która umożliwia łatwe tworzenie pojedynczego lub wielowęźleowego środowiska obliczeniowego. Klaster obliczeniowy to zasób, który może być udostępniany innym użytkownikom w obszarze roboczym. Obliczenia są skalowane automatycznie w górę po przesłaniu zadania i można je umieścić w usłudze Azure Virtual Network. Klaster obliczeniowy nie obsługuje również wdrożenia publicznego adresu IP w sieci wirtualnej. Obliczenia są wykonywane w środowisku konteneryzowanym i pakują zależności modelu w kontenerze platformy Docker.
Klastry obliczeniowe mogą bezpiecznie uruchamiać zadania w zarządzanej sieci wirtualnej lub sieci wirtualnej platformy Azure bez konieczności otwierania portów SSH przez przedsiębiorstwa. Zadanie jest wykonywane w środowisku konteneryzowanym i pakuje zależności modelu w kontenerze platformy Docker.
Ograniczenia
Klastry obliczeniowe można tworzyć w innym regionie niż obszar roboczy. Ta funkcja jest dostępna tylko dla klastrów obliczeniowych, a nie wystąpień obliczeniowych.
Ostrzeżenie
W przypadku korzystania z klastra obliczeniowego w innym regionie niż obszar roboczy lub magazyny danych mogą pojawić się zwiększone opóźnienia sieci i koszty transferu danych. Opóźnienie i koszty mogą wystąpić podczas tworzenia klastra i uruchamiania w nim zadań.
Usługa Azure Machine Learning Compute ma domyślne limity, takie jak liczba rdzeni, które można przydzielić. Aby uzyskać więcej informacji, zobacz Zarządzanie limitami przydziałów i żądania dla zasobów platformy Azure.
Platforma Azure umożliwia umieszczenie blokad w zasobach , dzięki czemu nie można ich usunąć ani nie są tylko do odczytu.
Nie należy stosować blokad zasobów do grupy zasobów zawierającej obszar roboczy. Zastosowanie blokady do grupy zasobów zawierającej obszar roboczy uniemożliwia skalowanie operacji dla klastrów obliczeniowych usługi Azure Machine Learning. Aby uzyskać więcej informacji na temat blokowania zasobów, zobacz Blokowanie zasobów, aby zapobiec nieoczekiwanym zmianom.
Przestroga
Stosowanie blokad zasobów, takich jak "Usuwanie" lub "Tylko do odczytu", do grupy zasobów zawierającej obszar roboczy usługi Machine Learning lub do oddzielnej grupy zasobów, w której skonfigurowano sieć wirtualną, może uniemożliwić operacje, takie jak tworzenie, skalowanie lub usuwanie tych klastrów. Upewnij się, że blokady zasobów są odpowiednio skonfigurowane, aby uniknąć niezamierzonych zakłóceń.
Utworzenie
Szacowanie czasu: około pięciu minut.
Uwaga
Jeśli używasz bezserwerowych obliczeń, nie musisz tworzyć klastra obliczeniowego.
Środowisko obliczeniowe usługi Azure Machine Learning można używać ponownie w ramach przebiegów. Obliczenia mogą być udostępniane innym użytkownikom w obszarze roboczym i są zachowywane między przebiegami, automatycznie skalując węzły w górę lub w dół na podstawie liczby przesłanych przebiegów i max_nodes zestawu w klastrze. Ustawienie min_nodes steruje minimalnymi dostępnymi węzłami.
Dedykowane rdzenie na region na przydział rodziny maszyn wirtualnych i całkowity limit przydziału regionalnego, który ma zastosowanie do tworzenia klastra obliczeniowego, jest ujednolicony i współużytkowany z limitem przydziału wystąpienia obliczeniowego trenowania usługi Azure Machine Learning.
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.
Obliczenia są skalowane automatycznie do zera węzłów, gdy nie są używane. Dedykowane maszyny wirtualne są tworzone w celu uruchamiania zadań zgodnie z potrzebami.
Skorzystaj z poniższych przykładów, aby utworzyć klaster obliczeniowy:
Aby utworzyć trwały zasób obliczeniowy usługi Azure Machine Learning w języku Python, określ size właściwości i max_instances . Następnie usługa Azure Machine Learning używa inteligentnych wartości domyślnych dla innych właściwości.
size: rodzina maszyn wirtualnych węzłów utworzonych przez usługę Azure Machine Learning Compute.
max_instances: maksymalna liczba węzłów do automatycznego skalowania do momentu uruchomienia zadania w usłudze Azure Machine Learning Compute.
Podczas tworzenia usługi Azure Machine Learning Compute można również skonfigurować kilka zaawansowanych właściwości. Właściwości umożliwiają utworzenie trwałego klastra o stałym rozmiarze lub w istniejącej sieci wirtualnej platformy Azure w ramach subskrypcji. Aby uzyskać szczegółowe informacje, zobacz klasę AmlCompute.
Ostrzeżenie
W przypadku ustawiania parametru location , jeśli jest to inny region niż obszar roboczy lub magazyny danych, może wystąpić zwiększone opóźnienie sieci i koszty transferu danych. Opóźnienie i koszty mogą wystąpić podczas tworzenia klastra i uruchamiania w nim zadań.
W przypadku korzystania z klastra obliczeniowego w innym regionie niż obszar roboczy lub magazyny danych może wystąpić zwiększone opóźnienie sieci i koszty transferu danych. Opóźnienie i koszty mogą wystąpić podczas tworzenia klastra i uruchamiania w nim zadań.
Utwórz klaster obliczeniowy z jednym lub wieloma węzłami na potrzeby obciążeń uczenia wsadowego lub uczenia wsadowego.
W obszarze Zarządzanie wybierz pozycję Obliczenia.
Jeśli nie masz zasobów obliczeniowych, wybierz pozycję Nowy w środku strony.
Jeśli zostanie wyświetlona lista zasobów obliczeniowych, wybierz pozycję +Nowy powyżej listy.
Na kartach u góry wybierz pozycję Klaster obliczeniowy.
Wypełnij formularz w następujący sposób:
Pole
opis
Lokalizacja
Region świadczenia usługi Azure, w którym jest tworzony klaster obliczeniowy. Domyślnie jest to ta sama lokalizacja co obszar roboczy. Jeśli nie masz wystarczającego limitu przydziału w regionie domyślnym, przejdź do innego regionu, aby uzyskać więcej opcji. W przypadku korzystania z innego regionu niż obszar roboczy lub magazyny danych mogą pojawić się zwiększone opóźnienia sieci i koszty transferu danych. Opóźnienie i koszty mogą wystąpić podczas tworzenia klastra i uruchamiania w nim zadań.
Typ maszyny wirtualnej
Wybierz procesor CPU lub procesor GPU. Tego typu nie można zmienić po utworzeniu.
Priorytet maszyny wirtualnej
Wybierz pozycję Dedykowany lub Niski priorytet. Maszyny wirtualne o niskim priorytcie są tańsze, ale nie gwarantują węzłów obliczeniowych. Zadanie może zostać wywłaszczone.
Wybierz przycisk Dalej , aby przejść do pozycji Ustawienia zaawansowane i wypełnij formularz w następujący sposób:
Pole
opis
Nazwa obiektu obliczeniowego
* Nazwa jest wymagana i musi mieć długość od 3 do 24 znaków.
* Prawidłowe znaki to wielkie i małe litery, cyfry i - znak.
* Nazwa musi zaczynać się literą.
* Nazwa musi być unikatowa we wszystkich istniejących obliczeniach w regionie świadczenia usługi Azure. Jeśli wybrana nazwa nie jest unikatowa, zostanie wyświetlony alert.
* Jeśli - jest używany znak, należy po nim wpisać co najmniej jedną literę w dalszej części nazwy.
Minimalna liczba węzłów
Minimalna liczba węzłów, które chcesz aprowizować. Jeśli chcesz mieć dedykowaną liczbę węzłów, ustaw w tym miejscu liczbę. Oszczędzaj pieniądze, ustawiając wartość minimalną na 0, więc nie płacisz za żadne węzły, gdy klaster jest bezczynny.
Maksymalna liczba węzłów
Maksymalna liczba węzłów, które chcesz aprowizować. Obliczenia są automatycznie skalowane do maksymalnej liczby tych węzłów po przesłaniu zadania.
Bezczynność sekund przed skalowaniem w dół
Czas bezczynności przed skalowaniem klastra w dół do minimalnej liczby węzłów.
Włączanie dostępu SSH
Użyj tych samych instrukcji, jak Włączanie dostępu SSH dla wystąpienia obliczeniowego.
Ustawienia zaawansowane
Opcjonalny. Konfigurowanie ustawień sieciowych.
* Jeśli sieć wirtualna platformy Azure, określ grupę zasobów, sieć wirtualną i podsieć, aby utworzyć wystąpienie obliczeniowe wewnątrz sieci. Aby uzyskać więcej informacji, zobacz wymagania dotyczące sieci.
* Żaden publiczny adres IP nie konfiguruje, czy klaster obliczeniowy ma publiczny adres IP w sieci.
* Przypisz tożsamość zarządzaną, aby udzielić dostępu do zasobów.
Wybierz pozycję Utwórz.
Włączanie dostępu SSH
Dostęp za pomocą protokołu SSH jest domyślnie wyłączony. Nie można zmienić dostępu SSH po utworzeniu. Pamiętaj, aby włączyć dostęp, jeśli planujesz debugowanie interakcyjne za pomocą programu VS Code Remote.
Po wybraniu pozycji Dalej: Ustawienia zaawansowane:
Włącz dostęp SSH.
W źródle klucza publicznego SSH wybierz jedną z opcji z listy rozwijanej:
W przypadku generowania nowej pary kluczy:
Wprowadź nazwę klucza w polu Nazwa pary kluczy.
Wybierz pozycję Utwórz.
Wybierz pozycję Pobierz klucz prywatny i utwórz obliczenia. Klucz jest zwykle pobierany do folderu Pobrane .
Jeśli wybierzesz pozycję Użyj istniejącego klucza publicznego przechowywanego na platformie Azure, wyszukaj i wybierz klucz w polu Przechowywany klucz.
W przypadku wybrania pozycji Użyj istniejącego klucza publicznego podaj klucz publiczny RSA w formacie jednowierszowym (począwszy od formatu "ssh-rsa") lub wielowierszowego formatu PEM. Klucze SSH można wygenerować przy użyciu narzędzia ssh-keygen w systemach Linux i OS X lub PuTTYGen w systemie Windows.
Nawiązywanie połączenia przy użyciu dostępu SSH
Po utworzeniu zasobów obliczeniowych z włączonym dostępem za pomocą protokołu SSH wykonaj te kroki w celu uzyskania dostępu.
Znajdź zasoby obliczeniowe w zasobach obszaru roboczego:
Po lewej stronie wybierz pozycję Obliczenia.
Użyj kart u góry, aby wybrać wystąpienie obliczeniowe lub klaster obliczeniowy, aby znaleźć maszynę.
Wybierz nazwę obliczeniową na liście zasobów.
Znajdź parametry połączenia:
W przypadku wystąpienia obliczeniowego wybierz pozycję Połącz w górnej części sekcji Szczegóły.
W przypadku klastra obliczeniowego wybierz pozycję Węzły u góry, a następnie wybierz parametry połączenia w tabeli dla węzła.
Skopiuj parametry połączenia.
W systemie Windows otwórz program PowerShell lub wiersz polecenia:
Przejdź do katalogu lub folderu, w którym jest przechowywany klucz
Dodaj flagę -i do parametry połączenia, aby zlokalizować klucz prywatny i wskazać miejsce przechowywania:
ssh -i <keyname.pem> azureuser@... (rest of connection string)
Obniżanie kosztów klastra obliczeniowego przy użyciu maszyn wirtualnych o niskim priorytcie
Możesz również użyć maszyn wirtualnych o niskim priorytcie do uruchamiania niektórych lub wszystkich obciążeń. Te maszyny wirtualne nie mają gwarantowanej dostępności i mogą zostać wywłaszczone podczas używania. Musisz ponownie uruchomić zadanie wywłaszczone.
Korzystanie z maszyn wirtualnych o niskim priorytcie platformy Azure umożliwia korzystanie z nieużywanej pojemności platformy Azure przy znaczących oszczędnościach kosztów. W dowolnym momencie, gdy platforma Azure potrzebuje pojemności z powrotem, infrastruktura platformy Azure eksmituje maszyny wirtualne platformy Azure o niskim priorytcie. W związku z tym maszyna wirtualna o niskim priorytcie platformy Azure doskonale nadaje się do obsługi obciążeń, które mogą obsługiwać przerwy. Ilość dostępnej pojemności może się różnić w zależności od rozmiaru, regionu, godziny dnia i innych. Podczas wdrażania maszyn wirtualnych z niskim priorytetem platformy Azure platforma Azure przydziela maszyny wirtualne, jeśli jest dostępna pojemność, ale nie ma umowy SLA dla tych maszyn wirtualnych. Maszyna wirtualna o niskim priorytcie platformy Azure nie oferuje gwarancji wysokiej dostępności. W dowolnym momencie, gdy platforma Azure potrzebuje pojemności z powrotem, infrastruktura platformy Azure eksmituje maszyny wirtualne platformy Azure o niskim priorytcie.
Użyj dowolnego z tych sposobów, aby określić maszynę wirtualną o niskim priorytcie:
Jeśli używasz bezserwerowych obliczeń, nie musisz tworzyć klastra obliczeniowego. Aby określić obliczenia bezserwerowe o niskim priorytcie, ustaw job_tier wartość na Spot wartość w ustawieniach kolejki.
W studio wybierz pozycję Niski priorytet podczas tworzenia maszyny wirtualnej.
Delete
Podczas gdy klaster obliczeniowy jest skalowany w dół do zera, gdy nie jest używany, nieprowizowane węzły przyczyniają się do użycia limitu przydziału. Usunięcie klastra obliczeniowego powoduje usunięcie docelowego obiektu obliczeniowego z obszaru roboczego i zwalnia limit przydziału.
Istnieje prawdopodobieństwo, że niektórzy użytkownicy, którzy utworzyli swój obszar roboczy usługi Azure Machine Learning z witryny Azure Portal przed wydaniem ogólnie dostępnej wersji, mogą nie być w stanie utworzyć aplikacji AmlCompute w tym obszarze roboczym. Możesz zgłosić wniosek o pomoc techniczną dla usługi lub utworzyć nowy obszar roboczy za pośrednictwem portalu lub zestawu SDK, aby natychmiast odblokować siebie.
Ważne
Jeśli wystąpienie obliczeniowe lub klastry obliczeniowe są oparte na dowolnej z tych serii, utwórz ponownie inny rozmiar maszyny wirtualnej.
Jeśli klaster obliczeniowy usługi Azure Machine Learning jest zablokowany przy zmianie rozmiaru (0–> 0) dla stanu węzła, blokady zasobów platformy Azure mogą być przyczyną.
Platforma Azure umożliwia umieszczanie blokad w zasobach , dzięki czemu nie można ich usunąć lub są tylko do odczytu. Zablokowanie zasobu może prowadzić do nieoczekiwanych wyników. W przypadku niektórych operacji może wydawać się, że nie modyfikują one zasobu, ale w rzeczywistości wymagają one działań blokowanych przez blokadę.
Dzięki usłudze Azure Machine Learning zastosowanie blokady usuwania do grupy zasobów dla obszaru roboczego uniemożliwi operacje skalowania dla klastrów obliczeniowych usługi Azure ML. Aby obejść ten problem, zalecamy usunięcie blokady z grupy zasobów i zastosowanie jej do poszczególnych elementów w grupie.
Ważne
Nie należy stosować blokady do następujących zasobów:
Te zasoby są używane do komunikowania się i wykonywania operacji, takich jak skalowanie w klastrze obliczeniowym. Usunięcie blokady zasobów z tych zasobów powinno zezwalać na skalowanie automatyczne dla klastrów obliczeniowych.
Azure HPC to specjalnie utworzona funkcja chmury dla obciążeń HPC i sztucznej inteligencji przy użyciu wiodących procesorów i połączeń między firmami HPC klasy InfiniBand w celu zapewnienia najlepszej wydajności aplikacji, skalowalności i wartości. Usługa Azure HPC umożliwia użytkownikom odblokowanie innowacji, produktywności i elastyczności biznesowej dzięki szerokiej gamie technologii HPC i sztucznej inteligencji, które mogą być dynamicznie przydzielane w miarę zmian potrzeb biznesowych i technicznych. Ta
Zarządzanie pozyskiwaniem i przygotowywaniem danych, trenowanie i wdrażanie modelu oraz monitorowaniem rozwiązań uczenia maszynowego za pomocą języka Python, usługi Azure Machine Learning i MLflow.
Dowiedz się, jak utworzyć wystąpienie obliczeniowe usługi Azure Machine Learning i zarządzać nim za pomocą interfejsu wiersza polecenia w wersji 1. Użyj jako środowiska programistycznego lub jako celu obliczeniowego na potrzeby tworzenia i testowania.
Dowiedz się, jak zarządzać wystąpieniem obliczeniowym usługi Azure Machine Learning. Użyj jako środowiska programistycznego lub jako celu obliczeniowego na potrzeby tworzenia i testowania.
Trenowanie modelu uczenia maszynowego w różnych środowiskach szkoleniowych (cele obliczeniowe). Można łatwo przełączać się między środowiskami treningowymi.
Nie musisz już tworzyć własnego klastra obliczeniowego, aby wytrenować model w sposób skalowalny. Teraz możesz użyć klastra obliczeniowego udostępnionego przez usługę Azure Machine Learning.