更新时间:2026-06-16 GMT+08:00
分享

通过Code Server在线使用Notebook实例

Code Server是一个开源项目,它将Visual Studio Code完整运行在远程服务器上,并通过浏览器提供访问能力。主要支持以下能力:

  • 完整VS Code体验:支持扩展市场、调试器、终端、Git等几乎所有原生功能。
  • 跨平台访问:只需浏览器即可在任何设备上编写代码。
  • 统一开发环境:代码、配置和依赖项均部署在服务器上,确保环境一致性。
  • 私有部署:数据完全由用户掌控。

本文介绍如何在Notebook实例一键启动Code Server进行代码开发。

约束限制

您创建的Notebook实例需满足如下条件:

  • 已配置Code Server。
    • 未创建Notebook实例:创建Notebook实例时,“环境配置”中需选中Code Server。
      图1 选中Code Server

    • 已创建Notebook实例:在Notebook实例详情页的“基本信息”页签,可查看是否配置Code Server。
      图2 Notebook实例详情页

  • 部分容器镜像版本的操作系统暂不支持Code Server。具体限制如下:
    查看容器镜像的操作系统:假设预置镜像的地址为pytorch_cuda: pytorch_2.7.0-cuda_12.8-py_3.11.10-ubuntu_22.04-x86_64-20251215163925-4e5422a,其中“ubuntu_22.04”为镜像的操作系统。
    表1 操作系统支持情况

    容器镜像的操作系统

    架构

    是否支持Code Server

    ubuntu_18.04

    x86

    不支持

    ubuntu_20.04

    x86

    支持

    ubuntu_22.04

    x86

    支持

    hce_2.0/hce2.0

    ARM

    支持

    euler_2.8.3/euler2.8.3

    ARM

    支持

    euler_2.10/euler2.10

    ARM

    支持

启动Code Server

  1. 登录ModelArts管理控制台,在左侧导航栏按需选择以下操作。
    • 新版控制台:选择模型开发与训练 > Notebook,进入“Notebook”页面。
    • 旧版控制台:选择开发空间 > Notebook,进入“Notebook”页面。
  2. “状态”“运行中”的Notebook实例的操作列,单击“接入环境”,在“接入方式”对话框的“WebIDE”页签,单击“Code Server 接入”右侧的“接入”
    图3 Code Server接入

    接入成功后,可以看到其界面布局、操作逻辑和功能都和桌面版VS Code高度一致。

Code Server功能介绍

下文介绍Code Server的界面布局及功能、核心功能特性、插件扩展市场。

界面布局及功能

Code Server的界面分为以下几个主要区域:

表2 Code Server区域说明

区域

说明

顶部标题栏

显示当前打开的文件或文件夹名称,以及窗口控制按钮。

左侧活动栏

包含多个图标按钮,用于切换不同的视图,支持如下功能:

  • 文件资源管理器(Explorer):浏览和管理项目文件。
  • 搜索(Search):在项目中搜索文件内容和符号。
  • 源代码管理(Source Control):集成Git操作,支持提交、分支管理、查看差异等。
  • 调试(Run and Debug):配置和运行调试任务。
  • 扩展(Extensions):管理插件安装和配置。
  • 测试(Testing):配置和运行测试用例。
  • GitLens:强大的Git操作插件,支持代码历史、差异查看等。
  • Cline:AI编程助手,基于大语言模型的智能开发插件。

左侧边栏

显示活动栏选中视图的具体内容,如文件树、搜索结果、插件列表等。

编辑器区域

代码编辑的主区域,支持多标签页同时打开、代码高亮、语法提示等功能。

底部状态栏

显示当前文件的语言模式、行号、列号,以及Git分支、错误警告等信息。

集成终端

位于底部,支持创建多个终端实例,可以同时运行多个命令。

核心功能特性

  • 完整的扩展生态:Code Server默认使用Open-VSX扩展市场,您可以通过左侧的图标搜索并安装绝大多数流行的开源扩展,例如Python、GitLens、Prettier等。
  • 内置终端与Git:集成的终端是其一大亮点,您可以在浏览器中完成从编码到构建、测试、部署的全部流程,体验如同本地开发。同时,源代码管理视图集成了Git操作,方便您进行代码的提交、分支管理和查看差异。
  • 便捷的端口转发:当您开发Web应用或需要访问服务器上的特定服务端口时,Code Server内置了端口转发功能。您可以在端口 (PORTS)面板中轻松地将远程端口映射到本地,方便调试。
  • 设置同步与持久化:Code Server的配置、主题、快捷键和已安装的扩展都保存在服务器的配置目录中。这意味着您无论在哪台设备上登录,都能获得完全一致的开发环境。

插件扩展市场

Code Server的插件市场提供了丰富的开发工具,Notebook实例预装了一些常用插件,您也可以按需下载其他插件。

图4 插件市场

Notebook实例预装的常用插件及说明如下:

表3 预装插件说明

插件名称

版本

说明

Python

2025.6.1

Python语言支持,提供代码补全、语法检查等功能。

Python Debugger

2025.18.0

Python调试器,支持断点调试、变量查看等。

Python Environments

1.10.0

自动检测、管理并激活不同的Python解释器和虚拟环境。

Code Spell Checker

4.1.0

实时检测源代码、注释和文档中的英文拼写错误,遵循驼峰命名法(camelCase)和蛇形命名法(snake_case)。

EditorConfig for VS Code

0.16.6

团队定义和维护统一的编码样式。

GitLens

17.1.1

强大的Git操作插件,支持代码历史、差异查看等。

isort

2023.11.0-dev

对代码中的import语句进行自动排序、分组和格式化。

Jupyter

2024.8.1

Jupyter Notebook支持。

Jupyter Cell Tags

0.1.9

Jupyter单元格标签管理。

Jupyter Keymap

1.1.2

Jupyter键盘快捷键。

Jupyter Notebook Renderers

1.0.19

Jupyter Notebook渲染器。

Jupyter Slide Show

0.1.6

Jupyter幻灯片演示。

Pyright

1.1.400

标准的Python静态类型检查器,旨在提升大型Python代码库的类型安全性、开发效率和代码质量。

Cline

3.75.0

AI编程助手,基于大语言模型的智能开发插件。

您也可以在插件市场下载所需的其他插件。以Markdown相关插件为例,在搜索栏中输入Markdown,选中需要下载的插件,单击“Install”

Python代码调试

Notebook已在Code Server中预装了Python相关的依赖插件,您可以直接进行Python代码调试。

代码准备

  1. 在工作区右键新建Python文件,文件名称后缀为.py,例如test.py。
    图5 新建Python文件
  2. 将如下Python代码拷贝至Python文件中。
    import os 
    print(os.environ.get('PATH'))
    print("Hello World")
    print("Welcome to Code Server")
    图6 拷贝Python代码

运行Python文件

在Python文件右上角,单击图标,下方“TERMINAL”页签会展示运行的结果。

图7 TERMINAL运行结果

调试Python文件

  1. 在Python文件中添加断点。在文件行号左侧,单击鼠标左键添加或删除断点。
    图8 添加断点
  2. 在左侧活动栏,单击图标,单击“Run and Debug” ,选择“Python Debugger”,在“Select a debug configuration”弹窗,选择“Python File Debug the currently active Python file”,进入调试模式。
  3. 代码运行至第一个断点处停止,可以在左侧变量区查看变量,也可以在上方操作栏执行重试、继续等操作。

项目开发

Nanochat是AI领域的Andrej Karpathy发布的一个开源项目,是一套极简、完整且低成本的训练框架,可以用不到100美元的成本,在几个小时内从零训练出一个属于自己的、能对话的迷你版ChatGPT。

本节以nanochat项目为例,介绍如何在Code Server中快速开发,包括文件上传、环境准备、项目运行等能力的演示。

演示环境配置

  • 实例规格:8 vCPUs | 32 GB (modelarts.vm.cpu.8u)

  • 演示镜像:pytorch_2_1:pytorch_2.1.0-cuda_12.1-py_3.9.11-ubuntu_22.04-x86_64-20240313165241-219655b

项目加载

您可以任选以下方式加载项目。

  • 方式一:Git命令下载
    1. 打开Terminal。
      图9 New Terminal
    2. 使用命令下载。
      git clone https://github.com/karpathy/nanochat.git
      cd nanochat
  • 方式二:拖拽上传
    1. 进入工作目录,打开文件夹。
      图10 Open Folder
    2. 将本地文件夹拖到Code Server工作目录下,自动上传文件夹下内容。

nanochat环境准备

  1. 安装uv。

    uv是一个用Rust编写的极速Python包和项目管理工具,旨在成为Python生态系统中一个统一、高效的工具链。nanochat项目中使用uv来管理Python环境,所以需先安装uv。

    curl -LsSf https://astral.sh/uv/install.sh | sh
    source $HOME/.local/bin/env
  2. 安装nanochat环境。

    本教程基于CPU环境演示,所以执行如下命令安装nanochat。

    export UV_INDEX_URL="https://pypi.tuna.tsinghua.edu.cn/simple
    uv sync --extra cpu

    注意:如果无法访问HuggingFace服务,需将dataset.py代码中硬编码数据地址切换为国内源。

在CPU环境执行模型训练

本文档主要为演示Code Server功能,非大模型的训练调试,所以将训练脚本中的迭代步数减少以缩短训练耗时。对模型的训练结果也未做调参处理,如果想获得更好的训练效果,可调整参数或在GPU环境运行本项目。

启动训练脚本。

# 启动运行脚本
bash runs/runcpu.sh

之后TERMINAL上即可显示大模型的主要训练流程日志,主要包括如下步骤:

  1. 训练数据下载:数据集默认下载至 /home/ma-user/.cache/nanochat路径下。
  2. Tokenizer训练。

  3. 模型初始化。

  4. 自监督训练过程:可以观察到Loss逐步降低,模型从随机开始,逐渐学会预测下一个Token。在第100步时,模型输出重复的无意义结果;第3000步,模型输出具备一定的逻辑。

  5. SFT过程:可以看到SFT过程出现Loss异常,说明CPU上训练SFT需要进行更专业的调参。

  6. 模型对话。

    执行以下脚本 ,可以获得模型的对话输出。

    python -m scripts.chat_cli -p "What is the capital of France?"

AI助手

Cline是一款基于大语言模型的Code Server插件,能够理解自然语言指令,自动完成代码生成、文件编辑、终端命令执行等复杂开发任务。您可以借助Cline作为AI编程助手,自动化完成各种项目的环境配置、依赖安装及使用,大幅提升开发效率。

在Cline配置模型服务信息

  • 免费模型

    Cline提供免费的模型调用,选择Absolutely Free,之后选择一个免费的模型,登录Cline账号使用。

  • 第三方模型厂商

    Cline支持多种模型接入方式,覆盖面非常广泛,包括Huawei Cloud MaaS、Claude Code、DeepSeek、OpenAI等。

    以Huawei Cloud MaaS为例:

    1. 在API Provider中搜索Huawei Cloud MaaS。
    2. API Key输入在华为云已创建的API Key。关于如何创建API Key,请参见创建API Key
    图11 配置模型信息

    配置完成后,在对话框即可与大模型对话。

    图12 与大模型对话

项目实践

本节以项目开发中nanochat项目为例,介绍如何使用AI助手Cline,提升开发效率。

  1. 使用Plan模型设定计划。

    在Cline对话框中输入问题,Cline会制定一个执行计划。

    图13 输入问题
    图14 制定计划
  2. 使用Act模式执行计划。单击“Act”切换为Act模式,Cline会帮助用户执行对应的计划。

    Cline执行需要一定的操作权限,可以通过对话框上方图标设置。

    图15 Act模型
    图16 设置操作权限

    Cline根据Plan指定的计划,自动执行如下流程:

    1. 下载项目。

    2. nanochat环境初始化。

    3. 运行nanochat。

    4. 打开日志文件,可以看到脚本在正常运行。

    5. 修改训练步数后重新训练。

      可以看到Cline停止了刚才的训练脚本,自动修改了步数后再次触发训练脚本。

    6. 问题定位。
      1. 脚本运行一段时间后异常停止,使用Cline进行问题定位,识别到为OOM错误,使用Cline解决后重新运行。

      2. 让Cline修改脚本,减小模型大小,再次训练。

      3. Cline自动修改模型大小后,成功运行项目。

相关文档