Konfigurowanie laboratorium do nauki o danych za pomocą języka Python i notesów Jupyter Notebook

W tym artykule opisano sposób konfigurowania maszyny wirtualnej szablonu w usłudze Azure Lab Services, która zawiera narzędzia do nauczania uczniów do korzystania z notesów Jupyter Notebook. Dowiesz się również, jak użytkownicy laboratorium mogą łączyć się z notesami na swoich maszynach wirtualnych.

Jupyter Notebooks to projekt typu open source, który umożliwia łatwe łączenie tekstu sformatowanego i wykonywalnego kodu źródłowego języka Python na jednej kanwie znanej jako notes. Uruchom notes, aby utworzyć liniowy rekord danych wejściowych i wyjściowych. Te dane wyjściowe mogą zawierać tekst, tabele informacji, wykresy punktowe i nie tylko.

Uwaga

Ten artykuł odwołuje się do funkcji dostępnych w planach laboratorium, które zastąpiły konta laboratorium.

Wymagania wstępne

  • Aby skonfigurować to laboratorium, musisz mieć dostęp do subskrypcji platformy Azure. Porozmawiaj z administratorem organizacji, aby sprawdzić, czy możesz uzyskać dostęp do istniejącej subskrypcji platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Konfigurowanie ustawień planu laboratorium

Po utworzeniu subskrypcji platformy Azure możesz utworzyć plan laboratorium w usłudze Azure Lab Services. Aby uzyskać więcej informacji na temat tworzenia nowego planu laboratorium, zobacz Szybki start: konfigurowanie zasobów w celu tworzenia laboratoriów. Możesz również użyć istniejącego planu laboratorium.

To laboratorium używa jednego z obrazów maszyny wirtualnej Nauka o danych jako podstawowego obrazu maszyny wirtualnej. Te obrazy są dostępne w witrynie Azure Marketplace. Ta opcja umożliwia twórcom laboratorium wybranie obrazu jako obrazu podstawowego dla laboratorium. Należy włączyć te obrazy w planie laboratorium.

Wykonaj następujące kroki, aby włączyć te obrazy witryny Azure Marketplace dostępne dla twórców laboratorium.

  • Wybierz jeden z następujących obrazów witryny Azure Marketplace w zależności od wymagań systemu operacyjnego:

    • Nauka o danych Virtual Machine — Windows Server 2019/Windows Server 2022
    • maszyna wirtualna Nauka o danych — Ubuntu 20.04
  • Alternatywnie utwórz niestandardowy obraz maszyny wirtualnej:

    Obrazy maszyn wirtualnych Nauka o danych w witrynie Azure Marketplace są już skonfigurowane przy użyciu notesów Jupyter Notebook. Te obrazy obejmują również inne narzędzia do tworzenia i modelowania na potrzeby nauki o danych. Jeśli nie potrzebujesz tych dodatkowych narzędzi i chcesz mieć uproszczoną konfigurację tylko z notesami Jupyter, utwórz niestandardowy obraz maszyny wirtualnej. Aby zapoznać się z przykładem, zobacz Instalowanie aplikacji JupyterHub na platformie Azure.

    Po utworzeniu obrazu niestandardowego przekaż obraz do galerii obliczeniowej, aby używać go z usługami Azure Lab Services. Dowiedz się więcej o korzystaniu z galerii obliczeniowej w usłudze Azure Lab Services.

Tworzenie laboratorium

  • Utwórz laboratorium dla planu laboratorium:

    Aby uzyskać instrukcje dotyczące tworzenia laboratorium, zobacz Samouczek: konfigurowanie laboratorium. Określ następujące ustawienia laboratorium:

    Ustawienia laboratorium Wartość
    Rozmiar maszyny wirtualnej Wybierz pozycję Mały lub Średni, aby uzyskać dostęp do notesów Jupyter Notebook w warstwie Podstawowa. Wybierz pozycję Alternatywne małe procesory GPU (obliczenia) dla aplikacji intensywnie korzystających z obliczeń i sieci używanych w klasach sztucznej inteligencji i głębokiej Edukacja.
    Obraz maszyny wirtualnej Wybierz pozycję Nauka o danych Virtual Machine — Windows Server 2019, Nauka o danych Virtual Machine — Windows Server 2022 lub Nauka o danych Virtual Machine — Ubuntu.
    Ustawienia maszyny wirtualnej szablonu Wybierz pozycję Użyj maszyny wirtualnej bez dostosowywania.
  • Podczas tworzenia laboratorium o rozmiarze alternatywnego małego procesora GPU (obliczenia) zainstaluj sterowniki procesora GPU.

    Ten proces instaluje najnowsze sterowniki NVIDIA i zestaw narzędzi Compute Unified Device Architecture (CUDA), które należy włączyć obliczenia o wysokiej wydajności za pomocą procesora GPU. Aby uzyskać więcej informacji, zobacz Konfigurowanie laboratorium z maszynami wirtualnymi procesora GPU.

Konfiguracja maszyny szablonu

Po utworzeniu laboratorium utwórz maszynę wirtualną szablonu opartą na wybranym rozmiarze i obrazie maszyny wirtualnej. Skonfiguruj maszynę wirtualną szablonu ze wszystkimi elementami, które mają być udostępniane uczniom tej klasy. Aby uzyskać więcej informacji, zobacz Tworzenie szablonu i zarządzanie nim w usłudze Azure Lab Services.

Obrazy maszyn wirtualnych Nauka o danych są wyposażone w wiele struktur nauki o danych i narzędzi wymaganych dla tego typu klasy. Na przykład obrazy obejmują:

Obraz maszyny wirtualnej Nauka o danych — Ubuntu jest aprowizowany za pomocą serwera X2Go, aby umożliwić użytkownikom laboratorium korzystanie z graficznego środowiska pulpitu.

Włączanie narzędzi do korzystania z procesorów GPU

Jeśli używasz alternatywnego rozmiaru procesora GPU (obliczenia), zalecamy sprawdzenie, czy struktury i biblioteki Nauka o danych są prawidłowo skonfigurowane do używania procesorów GPU. Może być konieczne zainstalowanie innej wersji sterowników NVIDIA i zestawu narzędzi CUDA. Aby skonfigurować procesory GPU, należy zapoznać się z dokumentacją platformy lub biblioteki.

Aby na przykład sprawdzić, czy tensorFlow używa procesora GPU, połącz się z maszyną wirtualną szablonu i uruchom następujący kod Python-TensorFlow w notesach Jupyter Notebooks:

import tensorflow as tf
from tensorflow.python.client import device_lib

print(device_lib.list_local_devices())

Jeśli dane wyjściowe z tego kodu wyglądają następująco, tensorFlow nie korzysta z procesora GPU:

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 15833696144144374634
]

Kontynuując ten przykład, zobacz Obsługa procesora GPU TensorFlow, aby uzyskać wskazówki. Wskazówki dotyczące biblioteki TensorFlow obejmują:

Po wykonaniu kroków platformy TensorFlow w celu skonfigurowania procesora GPU podczas ponownego uruchamiania kodu testowego powinny zostać wyświetlone wyniki podobne do poniższych danych wyjściowych.

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 15833696144144374634
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 11154792128
locality {
  bus_id: 1
  links {
  }
}
incarnation: 2659412736190423786
physical_device_desc: "device: 0, name: NVIDIA Tesla K80, pci bus id: 0001:00:00.0, compute capability: 3.7"
]

Udostępnianie notesów dla klasy

Następnym zadaniem jest udostępnienie użytkownikom laboratorium notesów, których mają używać. Notesy można zapisywać lokalnie na maszynie wirtualnej szablonu, aby każdy użytkownik laboratorium miał własną kopię.

Jeśli chcesz użyć przykładowych notesów z usługi Azure Machine Edukacja, zobacz, jak skonfigurować środowisko za pomocą notesów Jupyter Notebook.

Publikowanie maszyny szablonu

Aby udostępnić maszynę wirtualną laboratorium użytkownikom laboratorium, opublikuj szablon. Maszyna wirtualna laboratorium ma wszystkie skonfigurowane wcześniej narzędzia lokalne i notesy.

Połączenie do notesów Jupyter Notebook

W poniższych sekcjach przedstawiono różne sposoby łączenia użytkowników laboratorium z notesami Jupyter Notebook na maszynie wirtualnej laboratorium.

Korzystanie z notesów Jupyter Na maszynie wirtualnej laboratorium

Użytkownicy laboratorium mogą łączyć się ze swojej maszyny lokalnej z maszyną wirtualną laboratorium, a następnie korzystać z notesów Jupyter Notebook wewnątrz maszyny wirtualnej laboratorium.

Jeśli używasz maszyny wirtualnej laboratorium opartej na systemie Windows, użytkownicy laboratorium mogą łączyć się ze swoimi maszynami wirtualnymi laboratorium za pośrednictwem pulpitu zdalnego (RDP). Aby uzyskać więcej informacji, zobacz jak nawiązać połączenie z maszyną wirtualną laboratorium z systemem Windows.

Jeśli używasz maszyny wirtualnej laboratorium opartej na systemie Linux, użytkownicy laboratorium mogą łączyć się ze swoimi maszynami wirtualnymi laboratorium za pośrednictwem protokołu SSH lub przy użyciu rozwiązania X2Go. Aby uzyskać więcej informacji, zobacz jak nawiązać połączenie z maszyną wirtualną laboratorium z systemem Linux.

Tunel SSH do serwera Jupyter na maszynie wirtualnej

W przypadku laboratoriów opartych na systemie Linux można również połączyć się bezpośrednio z komputera lokalnego z serwerem Jupyter na maszynie wirtualnej laboratorium. Protokół SSH umożliwia przekazywanie portów między komputerem lokalnym a serwerem zdalnym. Jest to maszyna wirtualna laboratorium użytkownika. Aplikacja działająca na określonym porcie na serwerze jest tunelowana do portu mapowania na komputerze lokalnym.

Wykonaj następujące kroki, aby skonfigurować tunel SSH między maszyną lokalną użytkownika a serwerem Jupyter na maszynie wirtualnej laboratorium:

  1. Przejdź do witryny internetowej usługi Azure Lab Services.

  2. Sprawdź, czy maszyna wirtualna laboratorium z systemem Linux jest uruchomiona.

  3. Wybierz ikonę >Połączenie Połączenie za pośrednictwem protokołu SSH, aby uzyskać polecenie połączenia SSH.

    Polecenie połączenia SSH wygląda podobnie do następującego przykładu:

    ssh -p 12345 student@ml-lab-00000000-0000-0000-0000-000000000000.eastus2.cloudapp.azure.com
    

    Dowiedz się więcej na temat nawiązywania połączenia z maszyną wirtualną z systemem Linux.

  4. Na komputerze lokalnym uruchom terminal lub wiersz polecenia i skopiuj do niego parametry połączenia SSH. Następnie dodaj -L 8888:localhost:8888 do ciągu polecenia, który tworzy tunel między portami.

    Ostatnie polecenie powinno wyglądać podobnie do poniższego przykładu.

    ssh –L 8888:localhost:8888 -p 12345 student@ml-lab-00000000-0000-0000-0000-000000000000.eastus.cloudapp.azure.com
    
  5. Naciśnij klawisz Enter, aby uruchomić polecenie .

  6. Po wyświetleniu monitu podaj hasło maszyny wirtualnej laboratorium, aby nawiązać połączenie z maszyną wirtualną laboratorium.

  7. Po nawiązaniu połączenia z maszyną wirtualną uruchom serwer Jupyter przy użyciu następującego polecenia:

    jupyter notebook
    

    Polecenie zwraca adres URL serwera Jupyter w terminalu. Adres URL powinien wyglądać następująco:

    http://localhost:8888/?token=8c09ecfc93e6a8cbedf9c66dffdae19670a64acc1d37
    
  8. Aby nawiązać połączenie z notesem Jupyter Notebook i pracować nad nim, wklej ten adres URL w przeglądarce na komputerze lokalnym.

    Uwaga

    Program Visual Studio Code umożliwia również doskonałe środowisko edycji notesu Jupyter Notebook. Możesz postępować zgodnie z instrukcjami dotyczącymi nawiązywania połączenia z zdalnym serwerem Jupyter i użyć tego samego adresu URL z poprzedniego kroku, aby nawiązać połączenie z programu VS Code zamiast z przeglądarki.

Szacowanie kosztów

Ta sekcja zawiera oszacowanie kosztów uruchamiania tej klasy dla 25 użytkowników laboratorium. Zaplanowany czas zajęć to 20 godzin. Ponadto każdy użytkownik otrzymuje limit przydziału 10 godzin dla pracy domowej lub przydziałów poza zaplanowanym czasem zajęć. Wybrany rozmiar maszyny wirtualnej to alternatywny mały procesor GPU (obliczenia), czyli 139 jednostek laboratorium. Jeśli chcesz użyć małej (20 jednostek laboratorium) lub średniej (42 jednostek laboratorium), możesz zastąpić część jednostki laboratorium w równaniu tutaj poprawną liczbą.

Oto przykład możliwego oszacowania kosztów dla tej klasy: 25 lab users * (20 scheduled hours + 10 quota hours) * 139 lab units * 0.01 USD per hour = 1042.5 USD.

Ważne

To oszacowanie kosztów jest przeznaczone tylko do celów przykładowych. Aby uzyskać szczegółowe informacje na temat cennika, zobacz Cennik usług Azure Lab Services.

W tym artykule pokazano, jak utworzyć laboratorium dla klasy Jupyter Notebooks i jak użytkownik może nawiązać połączenie z notesami na maszynie wirtualnej laboratorium. Możesz użyć podobnej konfiguracji dla innych klas uczenia maszynowego.

Obraz szablonu można teraz opublikować w laboratorium. Aby uzyskać więcej informacji, zobacz Publikowanie maszyny wirtualnej szablonu.

Podczas konfigurowania laboratorium zapoznaj się z następującymi artykułami: