更新时间:2026-08-27 GMT+08:00

使用JupyterLab在线开发和调试代码

在AI模型开发过程中,开发者们通常需要一个强大的交互式开发环境来支持多种开发需求,如编写Notebook、操作终端、编辑Markdown文本等。然而,传统的开发环境往往无法满足这些多样化的需求,导致开发效率低下。如何提高AI模型开发的效率和灵活性?ModelArts支持通过JupyterLab工具在线打开Notebook,开发基于PyTorch、TensorFlow和MindSpore等引擎的AI模型,这不仅满足了开发者的多样化需求,还极大地提高了开发效率。

图1 使用JupyterLab在线开发调试代码

前提条件

创建Notebook实例,且状态为“运行中”。

约束限制

  • 在JupyterLab中加载文件并无严格的固定大小限制,但其实际处理能力受系统资源及配置影响。在JupyterLab左侧浏览器打开较大文本文件(如超过100MB)可能导致内存不足、界面响应迟缓或内核中断等问题。为保证使用流畅性与稳定性,建议打开的单个文件大小不超过100MB。
  • 系统长期平均每秒可处理最多40个JupyterLab请求,并允许在短时间内突发处理最多10个JupyterLab请求。通常情况下,如果在短时间内对同一资源池中的JupyterLab进行超过10次操作,将会触发流量控制。

使用JupyterLab

  1. 登录ModelArts管理控制台,在左侧导航栏按需选择以下操作。
    • 新版控制台:选择模型开发与训练 > Notebook,进入“Notebook”页面。
    • 旧版控制台:选择开发空间 > Notebook,进入“Notebook”页面。
  2. “Notebook”页面的“操作”列,单击“接入环境”,在“接入方式”对话框的“WebIDE”页签,单击“JupyterLab 接入”右侧的“接入”
  3. 进入JupyterLab页面后,自动打开ModelArts Launcher页面。您可以使用开源支持的所有功能,详细操作指导可参见JupyterLab官网文档
    图2 JupyterLab主页

    不同AI引擎的Notebook,打开后ModelArts Launcher页面呈现的Notebook和Console内核及版本均不同,图2仅作为示例,请以实际控制台为准。

  4. 准备训练数据和代码文件,上传到JupyterLab中。具体参见上传本地文件至JupyterLab
    您也可以直接在JupyterLab中新建文件来调试代码,代码示例请参见JupyterLab代码示例
    图3 文件上传按钮
  5. 在左侧导航双击打开上传的代码文件,在JupyterLab中编写代码文件,并运行调试。关于JupyterLab的使用,请参见JupyterLab常用功能介绍

    如果您的代码文件是.py格式,请新打开一个.ipynb文件,执行%load main.py命令将.py文件内容加载至.ipynb文件后进行编码、调试等

  6. 在JupyterLab中直接调用ModelArts提供的SDK,创建训练作业,上云训练。

    调用SDK创建训练作业的操作请参见调用SDK创建训练作业

JupyterLab代码示例

本示例展示基本的数据处理和可视化。将生成一些随机数据,并使用线性回归模型进行拟合,最后绘制结果图。

  1. “ModelArts Launcher”页面的“Notebook”区域,单击目标运行环境。

    下文以PyTorch运行环境为例进行说明。

    图4 打开PyTorch
  2. 执行以下命令,查看是否已安装numpy和pandas库。如果未安装,则自动安装指定版本的库(版本号可按需修改)。
    !pip show numpy pandas || pip install -q numpy==1.24.2 pandas==1.5.1

    如下图所示,出现版本信息,表明已安装numpy和pandas库。

    图5 查看库信息

    在命令左侧,单击图标,执行命令。

  3. 运行以下代码。

    这段代码将生成一些随机数据,使用线性回归模型进行拟合,并绘制结果图。

    # Import necessary libraries
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.linear_model import LinearRegression
    
    # Generate sample data
    np.random.seed(0)  # Set the random seed to ensure reproducibility
    X = 2 * np.random.rand(100, 1)  # Generate 100 random numbers in the range 0 to 2
    y = 4 + 3 * X + np.random.randn(100, 1)  # Generate the target variable with some noise
    
    # Create a linear regression model
    model = LinearRegression()
    
    # Train the model
    model.fit(X, y)
    
    # Predict
    X_new = np.array([[0], [2]])  # Generate new input data points
    y_pred = model.predict(X_new)  # Use the model to make predictions
    
    # Plot the results
    plt.scatter(X, y, color='blue', label='Data')  # Plot the original data points
    plt.plot(X_new, y_pred, color='red', linewidth=2, label='Linear Regression')  # Plot the linear regression line
    plt.xlabel('X')  # Set the x-axis label
    plt.ylabel('y')  # Set the y-axis label
    plt.legend()  # Show the legend
    plt.show()  # Display the plot
    图6 运行结果