跳到主要内容

使用Aladdin

产品介绍

Aladdin(Alaya AI addin)是开发者必备的大模型开发利器,是基于Serverless架构的IDE插件的自研IDE插件,可适配VScode,Cursor等代码开发编辑器。

算力包+Severless架构的强强结合,让开发者无缝使用AlayaNeW云端GPU算力,一键开启大模型的远程开发、调试和微调。成本直降75%,实现开发效率和资源利用率双效提升。

前置条件

在每个应用,可分别对应用中的资源使用状态进行监控。

  • AlayaNeW平台完成企业账户注册,参考快速入门->注册账户及用户管理。
  • 企业下有可用弹性容器集群,参考使用指南->弹性容器集群->快速开始。
  • 企业下有可用文件存储和镜像仓库,参考快速入门->存储开通及管理。
  • VSCode安装Aladdin插件, 可在此处下载 Aladdin插件。
  • Cursor安装Aladdin插件, 可在此处下载 Aladdin插件。

build镜像

提示

如果有镜像可以忽略此步骤。

Dockerfile 示例

FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel
ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Shanghai
RUN sed -i 's|http://ports.ubuntu.com|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list

RUN apt update -y && \
apt install -y curl wget net-tools git cmake poppler-utils tesseract-ocr tesseract-ocr-chi-sim libopenblas-dev ninja-build build-essential pkg-config

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ENV TIME_ZONE Asia/Shanghai
RUN apt-get update && apt-get install tzdata -y && apt-get install openssh-server -y
RUN apt-get update && apt-get install -y vim telnet iputils-ping unzip bzip2
RUN mkdir -p /workspace/envs
RUN rm -rf /opt/conda/envs
RUN ln -s /workspace/envs /opt/conda/envs
RUN ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh
ENV PATH /opt/conda/bin:$PATH
RUN /opt/conda/bin/conda init bash --system && \
echo ". /opt/conda/etc/profile.d/conda.sh" >> /etc/profile && \
echo "conda activate base" >> /etc/profile && \
conda info --envs
RUN apt-get install pip -y

RUN echo "export PATH=/usr/local/cuda/bin:$PATH" >> /etc/profile.d/cuda.sh && \
echo "export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH" >> /etc/profile.d/cuda.sh && \
chmod +x /etc/profile.d/cuda.sh

build镜像,上传到镜像仓库,关于如何上传请参考存储->镜像仓库->镜像仓库的使用

提示

弹性容器集群中Pod中安装软件所占用磁盘不能超过32GB,所以需要将容器内大文件安装挂载到存储,如/tmp, conda/envs等。

  • Dockerfile中需要安装openssh-server,如您使用其他基础镜像使用Aladdin,需安装此软件
  • Dockerfile中将conda虚拟环境做了映射到workspace/envs中,启动容器时持久化/workspace即可

Workshop创建与使用

镜像仓库

启动workshop前,需配置启动workshop和调试和运行程序所需的镜像,镜像仓库提供预置的公共镜像,支持连接企业镜像仓库和以及第三方Harbor镜像仓库

  1. 连接Alaya NeW镜像仓库:点击Environment-> Setting Registry,镜像仓库类型选择“AlayaNeW”后,配置镜像仓库用户名、密码后 可连接Alaya NeW镜像仓库,包含公共镜像项目和企业镜像仓库项目,点击Environment-> Setting Project可切换项目。

    alayanew_setting_registry

    alayanew_setting_project

  2. 连接第三方Harbor镜像仓库:点击Environment-> Setting Registry,镜像仓库类型选择“Custom”后,配置镜像仓库地址、用户名及密码后可连接第三方镜像仓库,点击Environment-> Setting Project可切换项目。

    custom_setting_registry

    custom_setting_project

创建workshop

  1. 点击创建workshop->Add Workshop,会弹出创建workshop的窗口。

    • 输入workshop名称
    • 选择已配置镜像仓库下的镜像
    • 配置资源,如需使用GPU可以选择GPU资源
    • 选择弹性容器集群
    • 选择namespace
    • 可选添加环境变量
    • 可选添加挂载,可挂载存储内任意文件夹到容器中,可以是编写好的代码*

    create_workshop

  2. 提交后等待启动成功后会自动打开一个新的vscode窗口,连接进入到workshop中,并下载vscode相关插件,等待插件安装完成,会看到aladdin的图标。

    remote_aladdin

    提示

    若打开的workshop工作窗口下未自动安装workshop,可右键目标workshop选择“Install Remote”进行手动安装。

  3. 在资源管理器下,单击打开文件夹,可选择工作的存储路径,推荐使用/root工作路径。可通过File -> Open Folder更换工作路径。

    open_folder

提示

启动workshop时默认会将容器内的/root通过存储挂载,但是需要注意的是workshop删除后/root下存储的数据也会删除,重启workshop则不会删除。 添加的使用pvc的挂载删除和重启workshop均不删除挂载的数据。

  1. 工作路径选择完成后,可在当前工作路径下进行代码编写,或将已有项目拖拽至工作区进行项目的导入。

    upload_folder

GPU Debug

GPU Debug会启动资源并进行远程调试,调试成功、失败或者手动关闭调试均会自动释放资源,调试时会产生session,调试完成或调试失败或手动关闭调试,不再展示session。

选择要调试的py文件右键选择GPU DEBUG。

debug1

选择镜像和需要的GPU资源,支持将参数设置保存为configration,保存后的configration会展示在Configration列表下,再次启动可选择Configration后直接填入参数。

debug2

在DEBUG COMSOLE中可以看到调试的日志,断点调试等。

debug3

点击关闭debug按钮两次即可退出调试,停止计费。

debug4

GPU RUN

GPU RUN会远程启动Python脚本,在任务运行成功或运行失败后均会自动释放资源,运行时会产生session,运行完成或运行失败会删除session。

选择要运行的py文件右键选择GPU RUN。

run1

选择镜像和需要的GPU资源等,支持将参数设置保存为configration,保存后的configration会展示在Configration列表下,再次启动可选择Configration后直接填入参数。

run2

在OUTPUT中可以看到运行的日志。

run3

Run shell

Run shell会远程启动Shell脚本,运行成功或者失败均会自动释放资源,运行时会产生session,运行完成或运行失败不再展示session。

选择要运行的shell脚本右键选择RUN shell。

shell1

选择镜像和需要的GPU资源,支持将参数设置保存为configration,保存后的configration会展示在Configration列表下,再次启动可选择Configration后直接填入参数。

shell2

在OUTPUT中可以看到运行的日志。

shell3

Run Task

Run Task可以在workshop中直接提交分布式任务,运行成功或者失败均会自动释放资源,运行时会产生session,运行完成、失败均会保留session,可查看session日志。同时会产生Task,在本地VSCode-Task列表下可查看。

选择要运行的文件或右键选择Run Task。

runtask1

选择镜像、设定worker数量,并设置每个worker的GPU资源,支持将参数设置保存为configration,保存后的configration会展示在Configration列表下,再次启动可选择Configration后直接填入参数。

runtask2

产生运行中的session后,session列表下右键点击View Log可查看日志信息。

runtask3

查看Develop Session

GPU RUN、 GPU DEBUG、RUN shell以及Run Task都会产生一个session,远程VScode的Develop Session列表下可查看session信息。GPU RUN、 GPU DEBUG、RUN shell运行完成或失败后,session不再展示。Run Task产生的session在运行中或运行完成、失败均会展示session信息。

点击GPU Debug 插件图标,Develop Session列表下,可查看session信息,支持停止、启动、删除session以及查看session日志等。

session

查看Task

执行Run Task后会产生一条task,在本地VSCode的Task可列表下可查看task信息。

打开本地VSCode,Aladdin插件的Task列表,下可查看task信息,支持停止、启动、删除task以及查看task日志等。

task1

可进行任务资源监控,右键点击任务选择Monitor,可查看GPU使用率、CPU使用率等监控指标。

task2

资源监控下点击Open Training Tracking可查看训练监控的详细信息。

task3

保存镜像

操作过程中如果在容器中安装了一些包,未放在持久化目录,可以点击保存镜像按钮,会弹出保存镜像的窗口,输入镜像名称和tag名称,点击保存按钮即可保存镜像。

saveimage1

镜像保存成功后会提示是否需要使用保存的镜像替换当前workshop,如果需要点击yes,不需要no即可。