你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

设置实验室以使用 Python 和 Jupyter Notebook 讲授数据科学

本文介绍如何使用工具在 Azure 实验室服务中设置一个模板虚拟机 (VM),其中包含的工具可以指导学生使用 Jupyter Notebook。 本文还介绍实验室用户如何连接到其虚拟机上的笔记本。

Jupyter Notebook 是一个开源项目,可让你轻松地在称为“笔记本”的单张画布上组合使用丰富的文本和可执行的 Python 源代码。 运行笔记本可创建输入和输出的线性记录。 这些输出可能包括文本、信息表、散点图等。

注意

本文引用了实验室计划中可用的功能,该计划取代了实验室帐户。

先决条件

  • 若要设置此实验室,你需要能够访问 Azure 订阅。 与组织的管理员讨论,了解是否可以访问现有的 Azure 订阅。 如果没有 Azure 订阅,请在开始之前创建一个免费帐户

配置实验室计划设置

获取 Azure 订阅后,可以在 Azure 实验室服务中创建实验室计划。 有关创建新实验室计划的详细信息,请参阅快速入门:设置资源以创建实验室。 也可以使用现有实验室计划。

本实验室使用其中一个 Data Science Virtual Machine 映像作为基础 VM 映像。 这些映像在 Azure 市场中提供。 使用此选项,实验室创建者可以选择此映像作为实验室的基础映像。 需要在实验室计划中启用这些映像。

请按照以下步骤使这些 Azure 市场映像可供实验室创建者使用

  • 根据操作系统要求,选择以下 Azure 市场映像之一:

    • Data Science Virtual Machine - Windows Server 2019/Windows Server 2022
    • Data Science Virtual Machine - Ubuntu 20.04
  • 或者,创建自定义 VM 映像:

    Azure 市场中的 Data Science VM 映像已使用 Jupyter Notebook 进行配置。 这些映像还包括其他用于数据科学的开发和建模工具。 如果不需要这些额外的工具,而只想用 Jupyter Notebook 进行简单设置,则可以创建一个自定义的 VM 映像。 有关示例,请参阅在 Azure 上安装 JupyterHub

    创建自定义映像后,将映像上传到计算库,以供在 Azure 实验室服务中使用。 详细了解如何在 Azure 实验室服务中使用计算库

创建实验室

模板计算机配置

创建实验室后,将根据所选的虚拟机大小和映像创建模板 VM。 为模板 VM 配置课堂的所有教授内容。 有关详细信息,请参阅在 Azure 实验室服务中创建和管理模板

Data Science VM 映像附带了此类课程所需的许多数据科学框架和工具。 例如,映像包括:

  • Jupyter Notebook:这是一种 Web 应用程序,数据科学家通过这种应用可获取原始数据、运行计算,并查看相同环境中的结果。 该应用程序在模板 VM 中本地运行。
  • Visual Studio Code:这是一种集成开发环境 (IDE),可在编写和测试笔记本时提供丰富的交互式体验。 有关详细信息,请参阅在 Visual Studio Code 中使用 Jupyter Notebook

“Data Science Virtual Machine - Ubuntu”映像在 X2Go 服务器中预配,实验室用户可以通过它来使用图形桌面体验

启用工具以使用 GPU

如果你使用的是“备用小型 GPU (计算)”大小,我们建议验证是否已正确地将数据科学框架和库设置为使用 GPU。 可能需要安装不同版本的 NVIDIA 驱动程序和 CUDA 工具包。 若要配置 GPU,请查阅框架或库的文档。

例如,要验证 TensorFlow 是否使用 GPU,请连接到模板 VM 并在 Jupyter Notebooks 中运行以下 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"
]

为课堂提供笔记本

接下来的任务是向实验室用户提供适用的笔记本。 可将笔记本保存在模板 VM 本地,使每个实验室用户都有自己的副本。

如果要使用 Azure 机器学习中的示例笔记本,请参阅如何使用 Jupyter Notebook 配置环境

发布模板虚拟机

若要使实验室 VM 可供实验室用户使用,请发布模板。 实验室 VM 具有以前配置的所有本地工具和笔记本。

连接到 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

通过 SSH 隧道连接到 VM 上 Jupyter 服务器

对于基于 Linux 的实验室,还可以直接从本地计算机连接到实验室 VM 中的 Jupyter 服务器。 SSH 协议支持在本地计算机和远程服务器之间进行端口转发。 这是用户的实验室 VM。 在服务器上某个端口上运行的应用程序通过隧道连接到本地计算机上的映射端口

请按照以下步骤在用户本地计算机和实验室 VM 上的 Jupyter 服务器之间配置 SSH 隧道:

  1. 转到 Azure 实验室服务网站

  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 大小是“备用小型 GPU (计算)”,即 139 个实验室单位。 如果使用小型(20 个实验室单位)或中型(42 个实验室单位),则可以将此处的公式中的实验室单元部分替换为正确的数字。

下面是此课程可能的成本估算示例:25 lab users * (20 scheduled hours + 10 quota hours) * 139 lab units * 0.01 USD per hour = 1042.5 USD

重要

此成本估算仅用于示例。 有关定价的最新详细信息,请参阅 Azure 实验室服务定价

本文介绍了如何为 Jupyter Notebooks 课堂创建实验室,以及用户如何连接到实验室 VM 上的笔记本。 对于其他机器学习课程,可以使用类似的设置。

现在可以将模板映像发布到实验室。 有关详细信息,请参阅发布模板 VM

设置实验室时,请参阅以下文章: