
# 使用JupyterLab在线开发和调试代码
在AI模型开发过程中，开发者们通常需要一个强大的交互式开发环境来支持多种开发需求，如编写Notebook、操作终端、编辑Markdown文本等。然而，传统的开发环境往往无法满足这些多样化的需求，导致开发效率低下。如何提高AI模型开发的效率和灵活性？ModelArts支持通过JupyterLab工具在线打开Notebook，开发基于PyTorch、TensorFlow和MindSpore等引擎的AI模型，这不仅满足了开发者的多样化需求，还极大地提高了开发效率。
图1使用JupyterLab在线开发调试代码   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002633615330.png "点击放大")
#### 前提条件
已[创建Notebook实例](https://support.huaweicloud.com/devtool-modelarts/devtool-modelarts_3495.html)，且状态为"运行中"。
#### 约束限制
- 在JupyterLab中加载文件并无严格的固定大小限制，但其实际处理能力受系统资源及配置影响。在JupyterLab左侧浏览器打开较大文本文件（如超过100MB）可能导致内存不足、界面响应迟缓或内核中断等问题。为保证使用流畅性与稳定性，建议打开的单个文件大小不超过100MB。
- 系统长期平均每秒可处理最多40个JupyterLab请求，并允许在短时间内突发处理最多10个JupyterLab请求。通常情况下，如果在短时间内对同一资源池中的JupyterLab进行超过10次操作，将会触发流量控制。
 
#### 使用JupyterLab
1. 登录[ModelArts管理控制台](https://console.huaweicloud.com/modelarts)，在左侧导航栏按需选择以下操作。
   - 新版控制台：选择"模型开发与训练 \> Notebook"，进入"Notebook"页面。
   
   - 旧版控制台：选择"开发空间 \> Notebook"，进入"Notebook"页面。
    
2. 在"Notebook"页面的"操作"列，单击"接入环境"，在"接入方式"对话框的"WebIDE"页签，单击"JupyterLab 接入"右侧的"接入"。
3. 进入JupyterLab页面后，自动打开ModelArts Launcher页面。您可以使用开源支持的所有功能，详细操作指导可参见[JupyterLab官网文档](https://jupyterlab.readthedocs.io/en/stable/)。
   图2JupyterLab主页   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002654268108.png "点击放大")
   ![](https://support.huaweicloud.com/devtool-modelarts/public_sys-resources/note_3.0-zh-cn.png)
   不同AI引擎的Notebook，打开后ModelArts Launcher页面呈现的Notebook和Console内核及版本均不同，[图2]仅作为示例，请以实际控制台为准。
   
4. 准备训练数据和代码文件，上传到JupyterLab中。具体参见[上传本地文件至JupyterLab](https://support.huaweicloud.com/devtool-modelarts/modelarts_30_0043.html)。
   您也可以直接在JupyterLab中新建文件来调试代码，代码示例请参见[JupyterLab代码示例]。
   图3文件上传按钮   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002654277840.png) 
5. 在左侧导航双击打开上传的代码文件，在JupyterLab中编写代码文件，并运行调试。关于JupyterLab的使用，请参见[JupyterLab常用功能介绍](https://support.huaweicloud.com/devtool-modelarts/devtool-modelarts_0013.html)。
   ![](https://support.huaweicloud.com/devtool-modelarts/public_sys-resources/note_3.0-zh-cn.png)
   如果您的代码文件是.py格式，请新打开一个.ipynb文件，执行**%load main.py** 命令将.py文件内容加载至.ipynb文件后进行编码、调试等**。**
   
6. 在JupyterLab中直接调用ModelArts提供的SDK，创建训练作业，上云训练。 调用SDK创建训练作业的操作请参见[调用SDK创建训练作业](https://support.huaweicloud.com/sdkreference-modelarts/modelarts_04_0422.html)。
   
 
 #### JupyterLab代码示例
本示例展示基本的数据处理和可视化。将生成一些随机数据，并使用线性回归模型进行拟合，最后绘制结果图。
1. 在"ModelArts Launcher"页面的"Notebook"区域，单击目标运行环境。 下文以PyTorch运行环境为例进行说明。
   图4打开PyTorch   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002634020652.png "点击放大") 
2. 执行以下命令，查看是否已安装numpy和pandas库。如果未安装，则自动安装指定版本的库（版本号可按需修改）。
   ```
   !pip show numpy pandas || pip install -q numpy==1.24.2 pandas==1.5.1
   ```
   如下图所示，出现版本信息，表明已安装numpy和pandas库。
   图5查看库信息   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002664359515.png "点击放大")
   ![](https://support.huaweicloud.com/devtool-modelarts/public_sys-resources/note_3.0-zh-cn.png)
   在命令左侧，单击![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002633798966.png)图标，执行命令。
   
3. 运行以下代码。
   这段代码将生成一些随机数据，使用线性回归模型进行拟合，并绘制结果图。
   ```
   # 导入必要的库
   import numpy as np
   import matplotlib.pyplot as plt
   from sklearn.linear_model import LinearRegression
   # 生成示例数据
   np.random.seed(0)  # 设置随机种子以确保结果可复现
   X = 2 * np.random.rand(100, 1)  # 生成100个随机数，范围在0到2之间
   y = 4 + 3 * X + np.random.randn(100, 1)  # 生成目标变量，添加一些噪声
   # 创建线性回归模型
   model = LinearRegression()
   # 训练模型
   model.fit(X, y)
   # 预测
   X_new = np.array([[0], [2]])  # 生成新的输入数据点
   y_pred = model.predict(X_new)  # 使用模型进行预测
   # 绘制结果
   plt.scatter(X, y, color='blue', label='Data')  # 绘制原始数据点
   plt.plot(X_new, y_pred, color='red', linewidth=2, label='Linear Regression')  # 绘制线性回归线
   plt.xlabel('X')  # 设置x轴标签
   plt.ylabel('y')  # 设置y轴标签
   plt.legend()  # 显示图例
   plt.show()  # 显示图形
   ```
   图6运行结果   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002664223763.png "点击放大") 
 
#### 相关文档
OpenClaw是一个开源的AI编程助手，可以运行在ModelArts Notebook实例中，通过浏览器访问Web UI进行交互。借助内置的ModelArts Skill可以快速使用和管理ModelArts服务，从而提高开发效率和简化模型管理。具体操作，请参见[开发环境最佳实践](https://support.huaweicloud.com/bestpractice-modelarts/modelarts_10_0037.html)。
