使用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镜像仓库
-
连接Alaya NeW镜像仓库:点击Environment-> Setting Registry,镜像仓库类型选择“AlayaNeW”后,配置镜像仓库用户名、密码后 可连接Alaya NeW镜像仓库,包含公共镜像项目和企业镜像仓库项目,点击Environment-> Setting Project可切换项目。
-
连接第三方Harbor镜像仓库:点击Environment-> Setting Registry,镜像仓库类型选择“Custom”后,配置镜像仓库地址、用户名及密码后可连接第三方镜像仓库,点击Environment-> Setting Project可切换项目。
创建workshop
-
点击创建workshop->Add Workshop,会弹出创建workshop的窗口。
- 输入workshop名称
- 选择已配置镜像仓库下的镜像
- 选择弹性容器集群
- 选择namespace
- 可选添加环境变量
- 可选添加挂载,可挂载存储内任意文件夹到容器中,可以是编写好的代码*
-
提交后等待启动成功后会自动打开一个新的vscode窗口,连接进入到workshop中,并下载vscode相关插件,等待插件安装完成,会看到aladdin的图标。
提示若打开的workshop工作窗口下未自动安装workshop,可右键目标workshop选择“Install Remote”进行手动安装。
-
在资源管理器下,单击打开文件夹,可选择工作的存储路径,推荐使用/root工作路径。可通过File -> Open Folder更换工作路径。
启动workshop时默认会将容器内的/root通过存储挂载,但是需要注意的是workshop删除后/root下存储的数据也会删除,重启workshop则不会删除。 添加的使用pvc的挂载删除和重启workshop均不删除挂载的数据。
-
工作路径选择完成后,可在当前工作路径下进行代码编写,或将已有项目拖拽至工作区进行项目的导入。
环境准备
打开工作目录/workspace即可开始开发, 在这里下载编写好的代码训练,直接拖到vscode中 示例代码
打开命令行执行以下命令配置环境
mkdir /workspace/envs
mkdir /tmp
conda init
#再次打开一个命令行窗口
conda create -n py311 python=3.11 -y
conda activate py311
pip install -r requirement.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
根据弹性容器集群所在的智算中心选择执行以下命令下载模型
- 北京一区
- 北京二区
- 北京三区
# 使用北京一区下载
export HF_ENDPOINT=http://hfmirror.mas.zetyun.cn:8082
huggingface-cli download --resume-download meta-llama/Meta-Llama-3-8B-Instruct \
--local-dir meta-llama/Meta-Llama-3-8B-Instruct
# 使用北京二区下载
export HF_ENDPOINT=http://hfmirrora01.hd-02.zetyun.cn:8082
huggingface-cli download --resume-download meta-llama/Meta-Llama-3-8B-Instruct \
--local-dir meta-llama/Meta-Llama-3-8B-Instruct
# 使用北京三区下载
export HF_ENDPOINT=http://hfmirror-1.hd-03.zetyun.cn:8082
huggingface-cli download --resume-download meta-llama/Meta-Llama-3-8B-Instruct \
--local-dir meta-llama/Meta-Llama-3-8B-Instruct
关于下载模型如何加速的详细使用,请参考 工具->模型下载加速
设置python解释器
选择虚拟环境
GPU Debug
GPU Debug会启动资源并进行远程调试,调试成功、失败或者手动关闭调试均会自动释放资源,调试时会产生session,调试完成或调试失败或手动关闭调试,不再展示session。
选择要调试的py文件右键选择GPU DEBUG。
选择镜像和需要的GPU资源,支持将参数设置保存为configration,保存后的configration会展示在Configration列表下,再次启动可选择Configration后直接填入参数。
在DEBUG COMSOLE中可以看到调试的日志,断点调试等。
点击关闭debug按钮两次即可退出调试,停止计费。
GPU RUN
GPU RUN会远程启动Python脚本,在任务运行成功或运行失败后均会自动释放资源,运行时会产生session,运行完成或运行失败会删除session。
选择要运行的py文件右键选择GPU RUN。
选择镜像和需要的GPU资源等,支持将参数设置保存为configration,保存后的configration会展示在Configration列表下,再次启动可选择Configration后直接填入参数。
在OUTPUT中可以看到运行的日志。
Run shell
Run shell会远程启动Shell脚本,运行成功或者失败均会自动释放资源,运行时会产生session,运行完成或运行失败不再展示session。
选择要运行的shell脚本右键选择RUN shell。
选择镜像和需要的GPU资源,支持将参数设置保存为configration,保存后的configration会展示在Configration列表下,再次启动可选择Configration后直接填入参数。
在OUTPUT中可以看到运行的日志。
Run Task
Run Task可以在workshop中直接提交分布式任务,运行成功或者失败均会自动释放资源,运行时会产生session,运行完成、失败均会保留session,可查看session日志。同时会产生Task,在本地VSCode-Task列表下可查看。
选择要运行的文件或右键选择Run Task。
选择镜像、设定worker数量,并设置每个worker的GPU资源,支持将参数设置保存为configration,保存后的configration会展示在Configration列表下,再次启动可选择Configration后直接填入参数。
产生运行中的session后,session列表下右键点击View Log可查看日志信息。
查看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日志等。
查看Task
执行Run Task后会产生一条task,在本地VSCode的Task可列表下可查看task信息。
打开本地VSCode,Aladdin插件的Task列表,下可查看task信息,支持停止、启动、删除task以及查看task日志等。
可进行任务资源监控,右键点击任务选择Monitor,可查看GPU使用率、CPU使用率等监控指标。
资源监控下点击Open Training Tracking可查看训练监控的详细信息。
保存镜像
操作过程中如果在容器中安装了一些包,未放在持久化目录,可以点击保存镜像按钮,会弹出保存镜像的窗口,输入镜像名称和tag名称,点击保存按钮即可保存镜像。
镜像保存成功后会提示是否需要使用保存的镜像替换当前workshop,如果需要点击yes,不需要no即可。