다음을 통해 공유


Python 및 Jupyter Notebook을 사용하여 데이터 과학을 교육하기 위한 랩 설정

Important

Azure Lab Services는 2027년 6월 28일에 사용 중지됩니다. 자세한 내용은 사용 중지 가이드를 참조하세요.

이 문서에서는 학생들이 Jupyter Notebook을 사용하도록 교육하는 도구를 포함하는 Azure Lab Services에서 템플릿 VM(가상 머신)을 설정하는 방법을 설명합니다. 또한 랩 사용자가 가상 머신의 Notebook에 연결하는 방법도 알아봅니다.

Jupyter Notebooks는 Notebook이라고 알려진 단일 캔버스에서 서식 있는 텍스트와 실행 가능한 Python 소스 코드를 쉽게 결합할 수 있는 오픈 소스 프로젝트입니다. Notebook을 실행하여 입력 및 출력의 선형 레코드를 만듭니다. 이러한 출력에는 텍스트, 정보 테이블, 분산형 플롯 등이 포함될 수 있습니다.

참고 항목

이 문서에서는 랩 계정을 바꾼 랩 계획에서 사용할 수 있는 기능을 참조하세요.

필수 조건

  • 이 랩을 설정하려면 Azure 구독에 대한 액세스 권한이 필요합니다. 조직의 관리자와 논의하여 기존 Azure 구독에 대한 액세스 권한을 가져올 수 있는지 확인합니다. Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.

랩 계획 설정 구성

Azure 구독이 있으면 Azure Lab Services에서 랩 플랜을 만들 수 있습니다. 새 랩 계획 만들기에 대한 자세한 내용은 빠른 시작: 랩을 만들 리소스 설정을 참조하세요. 기존 랩 계획을 사용할 수도 있습니다.

이 랩에서는 Data Science Virtual Machine 이미지 중 하나를 기본 VM 이미지로 사용합니다. 이러한 이미지는 Azure Marketplace에서 사용할 수 있습니다. 이 옵션을 사용하면 랩 작성자가 해당 랩의 기본 이미지로 이미지를 선택할 수 있습니다. 랩 계획에서 이러한 이미지를 사용하도록 설정해야 합니다.

랩 작성자가 사용할 수 있는 이러한 Azure Marketplace 이미지를 사용하도록 설정하려면 다음 단계를 수행합니다.

  • 운영 체제 요구 사항에 따라 다음 Azure Marketplace 이미지 중 하나를 선택합니다.

    • Data Science Virtual Machine – Windows Server 2019/Windows Server 2022
    • Data Science Virtual Machine – Ubuntu 20.04
  • 또는 사용자 지정 VM 이미지를 만듭니다.

    Azure Marketplace의 데이터 과학 VM 이미지는 Jupyter Notebooks과 함께 이미 구성되어 있습니다. 이러한 이미지에는 데이터 과학을 위한 다른 개발 및 모델링 도구도 포함되어 있습니다. 이러한 추가 도구가 필요하지 않고 Jupyter Notebook만 사용하여 간단한 설정을 원하는 경우 사용자 지정 VM 이미지를 만듭니다. 예를 들어 Azure JupyterHub 설치를 참조하세요.

    사용자 지정 이미지를 만든 후 이미지를 컴퓨팅 갤러리에 업로드하여 Azure Lab Services와 함께 사용합니다. Azure Lab Services에서 컴퓨팅 갤러리 사용에 대해 자세히 알아보세요.

랩 만들기

템플릿 머신 구성

랩을 만든 후 선택한 가상 머신 크기와 이미지를 기반으로 하는 템플릿 VM을 만듭니다. 이 클래스의 학생들에게 제공하려는 모든 항목을 사용하여 템플릿 VM을 구성합니다. 자세한 내용은 Azure Lab Services에서 템플릿 만들기 및 관리를 참조하세요.

Data Science VM 이미지는 이러한 종류의 클래스에 필요한 여러 데이터 과학 프레임워크 및 도구를 함께 제공합니다. 예를 들어 이미지에 다음과 같은 것들이 포함됩니다.

  • Jupyter Notebook: 데이터 과학자가 원시 데이터를 가져와 계산을 실행하고 동일한 환경에서 결과를 볼 수 있는 웹 애플리케이션입니다. 템플릿 VM에서 로컬로 실행됩니다.
  • Visual Studio Code: Notebook을 작성하고 테스트할 때 풍부한 대화형 환경을 제공하는 IDE(통합 개발 환경)입니다. 자세한 내용은 Visual Studio Code에서 Jupyter Notebook 작업을 참조하세요.

Data Science Virtual Machine – Ubuntu 이미지는 랩 사용자가 그래픽 데스크톱 환경을 사용할 수 있도록 X2Go 서버로 프로비전됩니다.

도구에서 GPU를 사용하도록 설정

대체 소형 GPU(컴퓨팅) 크기를 사용하는 경우 Data Science 프레임워크 및 라이브러리가 GPU를 사용하도록 올바르게 설정되었는지 확인하는 것이 좋습니다. 다른 버전의 NVIDIA 드라이버 및 CUDA 도구 키트를 설치해야 할 수도 있습니다. GPU를 구성하려면 프레임워크 또는 라이브러리 설명서를 참조해야 합니다.

예를 들어 TensorFlow가 GPU를 사용하는지 확인하려면 템플릿 VM에 연결하고 Jupyter Notebook에서 다음 Python-TensorFlow 코드를 실행하면 됩니다.

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

print(device_lib.list_local_devices())

이 코드의 출력이 다음 결과와 같으면 TensorFlow는 GPU를 사용하지 않습니다.

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

이 예제를 계속 진행하려면 TensorFlow GPU 지원을 참조하세요. TensorFlow 지침에서는 다음을 다룹니다.

TensorFlow의 단계에 따라 GPU를 구성한 후 테스트 코드를 다시 실행하면 다음 출력과 유사한 결과가 표시됩니다.

[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"
]

클래스에서 사용할 Notebook 제공

그 다음 작업은 랩 사용자가 사용할 Notebook을 제공하는 것입니다. 각 랩 사용자에게 고유한 복사본이 있도록 템플릿 VM에 로컬로 Notebook을 저장할 수 있습니다.

Azure Machine Learning의 샘플 Notebook을 사용하려면 Jupyter Notebook을 사용하여 환경을 구성하는 방법을 참조하세요.

템플릿 머신 게시

랩 사용자가 랩 VM을 사용할 수 있도록 하려면 템플릿을 게시합니다. 랩 VM에는 이전에 구성한 모든 로컬 도구와 Notebook이 있습니다.

Jupyter Notebook에 연결

다음 섹션에서는 랩 사용자가 해당 랩 VM에서 Jupyter Notebook에 연결하는 다양한 방법을 보여줍니다.

랩 VM에서 Jupyter Notebook 사용

랩 사용자는 로컬 컴퓨터에서 랩 VM으로 연결한 다음 랩 VM 내에서 Jupyter Notebook을 사용할 수 있습니다.

Windows 기반 랩 VM을 사용하는 경우 랩 사용자는 RDP(원격 데스크톱)를 통해 랩 VM에 연결할 수 있습니다. 자세한 내용은 Windows 랩 VM에 연결하는 방법을 참조하세요.

Linux 기반 랩 VM을 사용하는 경우 랩 사용자는 SSH를 통해 또는 X2Go를 사용하여 랩 VM에 연결할 수 있습니다. 자세한 내용은 Linux 랩 VM에 연결 방법을 참조하세요.

VM의 Jupyter 서버에 SSH 터널링

Linux 기반 랩의 경우 로컬 컴퓨터에서 랩 VM 내의 Jupyter 서버에 직접 연결할 수도 있습니다. SSH 프로토콜을 사용하면 로컬 컴퓨터와 원격 서버 간에 포트 전달이 가능합니다. 사용자의 랩 VM입니다. 서버의 특정 포트에서 실행되는 애플리케이션은 로컬 컴퓨터의 매핑 포트에 터널되었습니다.

다음 단계에 따라 랩 VM의 사용자 로컬 컴퓨터와 Jupyter 서버 간에 SSH 터널을 구성합니다.

  1. Azure Lab Services 웹 사이트로 이동합니다.

  2. Linux 기반 랩 VM이 실행 중인지 확인합니다.

  3. 연결 아이콘 >SSH를 통해 연결을 선택하여 SSH 연결 명령을 가져옵니다.

    SSH 연결 명령은 다음 예제와 같습니다.

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

    Linux VM에 연결하는 방법에 대해 자세히 알아봅니다.

  4. 로컬 컴퓨터에서 터미널 또는 명령 프롬프트를 시작하고 SSH 연결 문자열을 복사합니다. 그런 다음 명령 문자열에 -L 8888:localhost:8888(을)를 추가하여 포트 간에 터널을 만듭니다.

    마지막 명령은 다음 예제와 같습니다.

    ssh –L 8888:localhost:8888 -p 12345 student@ml-lab-00000000-0000-0000-0000-000000000000.eastus.cloudapp.azure.com
    
  5. Enter를 눌러 명령을 실행합니다.

  6. 랩 VM 암호를 입력하라는 메시지가 표시되면 암호를 입력하여 랩 VM에 연결합니다.

  7. VM에 연결할 때 다음 명령을 사용하여 Jupyter 서버를 시작합니다.

    jupyter notebook
    

    명령은 터미널에서 Jupyter 서버의 URL을 출력합니다. URL은 다음 예제와 같습니다.

    http://localhost:8888/?token=8c09ecfc93e6a8cbedf9c66dffdae19670a64acc1d37
    
  8. Jupyter Notebook에 연결하고 작업하려면 이 URL을 로컬 컴퓨터의 브라우저에 붙여넣습니다.

    참고 항목

    Visual Studio Code를 사용하면 강력한 Jupyter Notebook 편집 환경도 사용할 수 있습니다. 원격 Jupyter 서버에 연결하고 이전 단계와 동일한 URL을 사용하여 브라우저 대신 VS Code에서 연결하는 방법에 대한 지침을 따르면 됩니다.

예상 비용

이 섹션에서는 25명의 랩 사용자에 대해 이 클래스를 실행하기 위한 예상 비용을 제공합니다. 예약된 클래스 시간은 20시간입니다. 예약된 클래스 시간 외에도 숙제 또는 과제에 사용하도록 각 사용자에게 10시간이 할당됩니다. 선택한 VM 크기는 139개의 랩 단위인 대체 소형 GPU(컴퓨팅)였습니다. 작은(20개의 랩 단위) 또는 중간 크기(42개의 랩 단위)를 사용하려는 경우 수식의 랩 단위 부분을 올바른 숫자로 바꿀 수 있습니다.

다음은 이 클래스에 대한 가능한 비용 예측 예입니다. 25 lab users * (20 scheduled hours + 10 quota hours) * 139 lab units * 0.01 USD per hour = 1042.5 USD.

Important

이 예상 비용은 예시용으로만 사용됩니다. 가격 책정에 대한 최신 세부 정보는 Azure Lab Services 가격 책정을 참조하세요.

이 문서에서는 Jupyter Notebooks 클래스에 대한 랩을 만드는 방법과 사용자가 랩 VM에서 Notebook에 연결하는 방법을 알아보았습니다. 비슷한 설정을 다른 기계 학습 클래스에도 사용할 수 있습니다.

이제 템플릿 이미지를 랩에 게시할 수 있습니다. 자세한 내용은 템플릿 VM 게시를 참조하세요.

랩을 설정할 때 다음 문서를 참조하세요.