Udostępnij za pośrednictwem


Wprowadzenie do docelowego obiektu obliczeniowego platformy Kubernetes w usłudze Azure Machine Learning

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (current)Zestaw PYTHON SDK azure-ai-ml v2 (bieżąca)

Interfejs wiersza polecenia usługi Azure Machine Learning i zestaw PYTHON SDK w wersji 2 zapewniają obsługę docelowego środowiska obliczeniowego Kubernetes. Możesz włączyć istniejący klaster usługi Azure Kubernetes Service (AKS) lub klaster Kubernetes z obsługą usługi Azure Arc (Arc Kubernetes) jako docelowy obiekt obliczeniowy kubernetes. Używanie obliczeń w usłudze Machine Learning do trenowania lub wdrażania modeli.

Diagram ilustrujący sposób łączenia usługi Azure Machine Learning z platformą Kubernetes.

W tym artykule opisano sposób użycia docelowego obliczeniowego rozwiązania Kubernetes w usłudze Machine Learning, w tym scenariuszy użycia, zalecanych najlepszych rozwiązań i porównania KubernetesCompute starszych celów.AksCompute

Jak działa docelowy obiekt obliczeniowy kubernetes

Środowisko obliczeniowe kubernetes usługi Azure Machine Learning obsługuje dwa rodzaje klastra Kubernetes.

Compute Lokalizacja opis
Klaster usługi AKS Na platformie Azure Dzięki własnemu klastrowi usługi AKS na platformie Azure możesz uzyskać zabezpieczenia i mechanizmy kontroli, aby spełnić wymagania dotyczące zgodności i elastyczność zarządzania obciążeniem uczenia maszynowego zespołu.
Klaster Kubernetes usługi Arc Poza platformą Azure Za pomocą klastra Arc Kubernetes można trenować lub wdrażać modele w dowolnej infrastrukturze lokalnej lub wielochmurowej albo brzegowej.

Dzięki prostemu wdrożeniu rozszerzenia klastra w klastrze AKS lub Arc Kubernetes klaster Kubernetes jest bezproblemowo obsługiwany w usłudze Machine Learning w celu uruchamiania obciążenia trenowania lub wnioskowania. Łatwo jest włączyć i użyć istniejącego klastra Kubernetes dla obciążenia usługi Machine Learning przy użyciu następującego procesu:

  • Krok 1. Przygotowanie klastra usługi Azure Kubernetes Service lub klastra Usługi Arc Kubernetes.

  • Krok 2. Wdrażanie rozszerzenia klastra usługi Azure Machine Learning.

  • Krok 3. Dołączanie klastra Kubernetes do obszaru roboczego usługi Azure Machine Learning.

  • Krok 4. Używanie docelowego środowiska obliczeniowego Kubernetes z interfejsu wiersza polecenia w wersji 2, zestawu SDK w wersji 2 lub interfejsu użytkownika usługi Azure Machine Learning Studio.

Oto główne obowiązki w tym procesie:

  • Zespół ds. operacji IT jest odpowiedzialny za kroki 1, 2 i 3. Ten zespół przygotowuje klaster AKS lub Arc Kubernetes, wdraża rozszerzenie klastra usługi Machine Learning i dołącza klaster Kubernetes do obszaru roboczego usługi Machine Learning. Oprócz tych podstawowych kroków konfiguracji obliczeniowej zespół ds. operacji IT używa również znanych narzędzi, takich jak interfejs wiersza polecenia platformy Azure lub narzędzie kubectl, aby wykonać następujące zadania dla zespołu ds. nauki o danych:

    • Skonfiguruj opcje sieci i zabezpieczeń, takie jak połączenie serwera proxy ruchu wychodzącego lub zapora platformy Azure, konfiguracja routera wnioskowania (azureml-fe), kończenie żądań SSL/TLS i konfiguracja sieci wirtualnej.

    • Tworzenie typów wystąpień dla różnych scenariuszy obciążeń uczenia maszynowego i zarządzanie nimi oraz uzyskiwanie wydajnego wykorzystania zasobów obliczeniowych.

    • Rozwiązywanie problemów z obciążeniami związanych z klastrem Kubernetes.

  • Zespół ds. nauki o danych rozpoczyna swoje zadania po zakończeniu konfiguracji obliczeń i utworzenia celów obliczeniowych przez zespół ds. operacji IT. Ten zespół odnajduje listę dostępnych celów obliczeniowych i typów wystąpień w obszarze roboczym usługi Machine Learning. Zasoby obliczeniowe mogą służyć do trenowania lub wnioskowania obciążenia. Zespół ds. nauki o danych określa nazwę docelową obliczeń i nazwę typu wystąpienia przy użyciu preferowanych narzędzi lub interfejsów API. Mogą używać interfejsu wiersza polecenia usługi Azure Machine Learning w wersji 2, zestawu Python SDK w wersji 2 lub interfejsu użytkownika usługi Machine Learning Studio.

Scenariusze użycia platformy Kubernetes

Dzięki klastrowi Usługi Arc Kubernetes można tworzyć, trenować i wdrażać modele w dowolnej infrastrukturze lokalnej i wielochmurowej przy użyciu platformy Kubernetes. Ta strategia otwiera niektóre nowe wzorce użycia, które wcześniej nie były możliwe w środowisku ustawień chmury. Poniższa tabela zawiera podsumowanie nowych wzorców użycia, które są włączone podczas pracy z obliczeniami platformy Kubernetes w usłudze Azure Machine Learning:

Wzorzec użycia Lokalizacja danych Cele i wymagania Konfiguracja scenariusza
Trenowanie modelu w chmurze, wdrażanie modelu lokalnego Chmura Używanie obliczeń w chmurze do obsługi elastycznych potrzeb obliczeniowych lub specjalnego sprzętu, takiego jak procesor GPU.

Wdrożenie modelu musi być lokalne na potrzeby wymagań dotyczących zabezpieczeń, zgodności lub opóźnień.
— Obliczenia zarządzane przez platformę Azure w chmurze
— Lokalnie zarządzana przez klienta platforma Kubernetes
— W pełni zautomatyzowane operacje uczenia maszynowego w trybie hybrydowym, w tym kroki trenowania i wdrażania modelu, które bezproblemowo przechodzą między chmurą a środowiskiem lokalnym
— Powtarzalne, wszystkie zasoby prawidłowo śledzone, model ponownie trenowany zgodnie z potrzebami, wdrożenie zostało automatycznie zaktualizowane po ponownym trenowaniu
Trenowanie modelu lokalnego i w chmurze, wdrażanie zarówno w chmurze, jak i lokalnie Chmura Łączenie inwestycji lokalnych ze skalowalnością chmury.

Korzystanie z chmury i zasobów obliczeniowych lokalnych w jednym okienku szkła.

Uzyskiwanie dostępu do pojedynczego źródła danych w chmurze i replikacja lokalnie (z opóźnieniem w użyciu lub proaktywnie).

Włącz podstawowe użycie zasobów obliczeniowych w chmurze, gdy zasoby lokalne nie są dostępne (w użyciu lub w konserwacji) lub nie spełniają określonych wymagań sprzętowych (GPU).
— Zarządzane przez platformę Azure obliczenia w chmurze.
Lokalnie zarządzana przez klienta platforma Kubernetes
— W pełni zautomatyzowane operacje uczenia maszynowego w trybie hybrydowym, w tym kroki trenowania i wdrażania modelu, które bezproblemowo przechodzą między chmurą a środowiskiem lokalnym
— Powtarzalne, wszystkie zasoby prawidłowo śledzone, model ponownie trenowany zgodnie z potrzebami, wdrożenie zostało automatycznie zaktualizowane po ponownym trenowaniu
Trenowanie modelu lokalnego, wdrażanie modelu w chmurze Lokalne Przechowywanie danych w środowisku lokalnym w celu spełnienia wymagań dotyczących rezydencji danych.

Wdróż model w chmurze na potrzeby dostępu do usług globalnych lub w celu włączenia elastyczności obliczeniowej w celu skalowania i przepływności.
— Obliczenia zarządzane przez platformę Azure w chmurze
— Lokalnie zarządzana przez klienta platforma Kubernetes
— W pełni zautomatyzowane operacje uczenia maszynowego w trybie hybrydowym, w tym kroki trenowania i wdrażania modelu, które bezproblemowo przechodzą między chmurą a środowiskiem lokalnym
— Powtarzalne, wszystkie zasoby prawidłowo śledzone, model ponownie trenowany zgodnie z potrzebami, wdrożenie zostało automatycznie zaktualizowane po ponownym trenowaniu
Korzystanie z własnej usługi AKS na platformie Azure Chmura Zyskaj więcej zabezpieczeń i mechanizmów kontroli.

Ustanów wszystkie prywatne uczenie maszynowe IP, aby zapobiec eksfiltracji danych.
— Klaster AKS za siecią wirtualną platformy Azure
— Prywatne punkty końcowe w tej samej sieci wirtualnej dla obszaru roboczego usługi Azure Machine Learning i skojarzonych zasobów
W pełni zautomatyzowane operacje uczenia maszynowego
Cały cykl życia uczenia maszynowego w środowisku lokalnym Lokalne Zabezpieczanie poufnych danych lub zastrzeżonych adresów IP, takich jak modele uczenia maszynowego, kod i skrypty. - Połączenie serwera proxy ruchu wychodzącego lokalnie
— Prywatne połączenie usługi Azure ExpressRoute i usługi Azure Arc z zasobami platformy Azure
— Lokalnie zarządzana przez klienta platforma Kubernetes
- W pełni zautomatyzowane operacje uczenia maszynowego

Ograniczenia dotyczące docelowego obiektu obliczeniowego platformy Kubernetes

Element KubernetesCompute docelowy w obciążeniach usługi Azure Machine Learning (trenowanie i wnioskowanie modelu) ma następujące ograniczenia:

  • Dostępność funkcji w wersji zapoznawczej w usłudze Azure Machine Learning nie jest gwarantowana.
  • Modele (w tym podstawowy model) z wykazu modeli i rejestru nie są obsługiwane w punktach końcowych online platformy Kubernetes.

W tej sekcji przedstawiono podsumowanie zalecanych najlepszych rozwiązań dotyczących pracy z obliczeniami kubernetes.

Rozdzielenie obowiązków między zespołem ds. operacji IT i zespołem ds. nauki o danych. Jak opisano wcześniej, zarządzanie własnymi obliczeniami i infrastrukturą dla obciążenia uczenia maszynowego jest złożonym zadaniem. Najlepszym rozwiązaniem jest to, aby zespół ds. operacji IT obsługiwał to zadanie, więc zespół ds. nauki o danych może skupić się na modelach uczenia maszynowego pod kątem wydajności organizacyjnej.

Tworzenie typów wystąpień dla różnych scenariuszy obciążeń uczenia maszynowego i zarządzanie nimi. Każde obciążenie uczenia maszynowego używa różnych ilości zasobów obliczeniowych, takich jak procesor CPU/procesor GPU i pamięć. Usługa Azure Machine Learning implementuje typ wystąpienia jako niestandardową definicję zasobu platformy Kubernetes (CRD) z właściwościami nodeSelector i resource request/limit. Dzięki starannie wyselekcjonowanej liście typów wystąpień operacje IT mogą kierować obciążenie uczenia maszynowego na określonych węzłach i efektywnie zarządzać wykorzystaniem zasobów obliczeniowych.

Wiele obszarów roboczych usługi Azure Machine Learning współużytkuje ten sam klaster Kubernetes. Klaster Kubernetes można dołączyć wiele razy do tego samego obszaru roboczego usługi Machine Learning lub różnych obszarów roboczych. Ten proces tworzy wiele obiektów docelowych obliczeniowych w jednym obszarze roboczym lub wielu obszarach roboczych. Ponieważ wielu klientów organizuje projekty nauki o danych w obszarze roboczym usługi Machine Learning, wiele projektów nauki o danych może teraz współużytkować ten sam klaster Kubernetes. Takie podejście znacznie zmniejsza nakłady pracy związane z zarządzaniem infrastrukturą uczenia maszynowego i zwiększa oszczędności związane z zasobami IT.

Izolacja obciążenia zespołu/projektu przy użyciu przestrzeni nazw kubernetes. Po dołączeniu klastra Kubernetes do obszaru roboczego usługi Machine Learning można określić przestrzeń nazw kubernetes dla docelowego obiektu obliczeniowego. Wszystkie obciążenia uruchamiane przez docelowy obiekt obliczeniowy są umieszczane w określonej przestrzeni nazw.

Porównanie elementów docelowych platformy KubernetesCompute i starszych elementów docelowych usługi AksCompute

Za pomocą interfejsu wiersza polecenia usługi Azure Machine Learning/zestawu SDK języka Python w wersji 1 można wdrażać modele w usłudze AKS przy użyciu starszego AksCompute elementu docelowego. Obie metody KubernetesCompute i AksCompute obsługują integrację usługi AKS, ale podejście do obsługi jest inne. Poniższa tabela zawiera podsumowanie kluczowych różnic:

Możliwość AksCompute (starsza wersja) KubernetesCompute
Korzystanie z interfejsu wiersza polecenia/zestawu SDK w wersji 1 Tak Nie.
Korzystanie z interfejsu wiersza polecenia/zestawu SDK w wersji 2 Nie. Tak
Konfigurowanie trenowania Nie. Tak
Stosowanie wnioskowania w czasie rzeczywistym Tak Tak
Stosowanie wnioskowania wsadowego Nie. Tak
Uzyskiwanie dostępu do nowych funkcji wnioskowania w czasie rzeczywistym Brak nowych funkcji w opracowaniu Dostępny jest aktywny plan działania

Biorąc pod uwagę te różnice, a ogólna ewolucja uczenia maszynowego do korzystania z interfejsu wiersza polecenia/zestawu SDK w wersji 2, zalecaną metodą jest użycie docelowego obiektu obliczeniowego Kubernetes (KubernetesCompute) na potrzeby wdrażania modelu usługi AKS.

Aby uzyskać więcej informacji, zapoznaj się z następującymi artykułami:

Przykłady uczenia maszynowego

Przykłady uczenia maszynowego są dostępne w repozytorium usługi Azure Machine Learning (azureml-examples) w witrynie GitHub. W dowolnym przykładzie zastąp nazwę docelową obliczeniową platformy Kubernetes docelową i uruchom przykład.

Oto kilka opcji: