云服务器内容精选
-
Step10 推理部署 使用官方权重文件推理 官方权重下载链接:https://huggingface.co/LanguageBind/Open-Sora-Plan-v1.0.0/tree/main 创建文件夹存放官方权重文件, mkdir weights_inference cd weights_inference mkdir vae mkdir 65x512x512 以65x512x512为例: 1,进入链接https://huggingface.co/LanguageBind/Open-Sora-Plan-v1.0.0/tree/main 2,手动下载65x512x512目录下的权重文件diffusion_pytorch_model.safetensors和配置文件config.json,并放到weights_inference/65x512x512目录下 3,手动下载vae目录下的权重文件diffusion_pytorch_model.safetensors和配置文件config.json,并放到weights_inference/vae目录下。 4,执行如下命令使用官方权重推理。 bash sample_video_65.sh 使用训练生成的权重文件推理 在Step7 启动训练服务完成后,会在工作目录/home/ma-user/Open-Sora-Plan1.0/下自动生成一个t2v-f17-256-img4-videovae488-bf16-ckpt-xformers-bs4-lr2e-5-t5文件夹,训练后生成的权重文件存放在t2v-f17-256-img4-videovae488-bf16-ckpt-xformers-bs4-lr2e-5-t5文件夹中,例如t2v-f17-256-img4-videovae488-bf16-ckpt-xformers-bs4-lr2e-5-t5/010-F16S3-STDiT-XL-2/checkpoint-2000/model。 修改推理配置文件中的权重文件sample_video_65.sh中的路径参数:--model_path,并执行如下推理命令。 bash sample_video_65.sh
-
Step7 下载数据集 先创建文件夹用来存放数据集。 mkdir datasets cd datasets 训练使用的开源数据集链接:https://huggingface.co/datasets/LanguageBind/Open-Sora-Plan-v1.0.0/tree/main。 由于数据集比较大,可以自行选择部分数据集手动下载解压,并放入 ./datasets文件夹下。 例如:这里下载了上述链接中mixkit.tar.gz和sharegpt4v_path_cap_64x512x512.json。 (备注:如果只下载了部分数据集,需要对应修改sharegpt4v_path_cap_64x512x512.json文件) 解压数据集: tar -xzvf mixkit.tar.gz 解压后的数据集结果如图所示。 图5 解压后的数据集文件
-
Step8 下载权重文件 建议手动下载所需的权重文件,在/home/ma-user/Open-Sora-Plan1.0/目录下进行操作。 创建文件夹存放不同的权重文件。 mkdir weights mkdir weights_t5 mkdir cache_dir 下载基础模型权重t2v.pt放到cache_dir文件夹下。 mkdir Latte cd Latte git clone -c http.sslVerify=false https://huggingface.co/maxin-cn/Latte cd Latte git reset --hard 83bdc71f7211963153464859d03d46d707e77865 然后将该目录下的t2v.pt文件复制到/home/ma-user/Open-Sora-Plan1.0/cache_dir目录下。 下载VAE权重vae-ft-mse-840000-ema-pruned.ckpt和配置文件config.json,放在weights文件夹下。 下载链接:https://huggingface.co/stabilityai/sd-vae-ft-ema/tree/main 下载text_encoder权重,放在weights_t5文件夹下。 下载链接:https://huggingface.co/DeepFloyd/t5-v1_1-xxl/tree/main,手动下载如图6所示文件,并放到weights_t5文件夹下 图6 Huggingface中t5-v1_1-xxl模型目录内容
-
Step9 启动训练服务 在/home/ma-user/Open-Sora-Plan1.0/目录下进行操作 训练至少需要单机8卡。 命令启动训练脚本。 例如:训练65帧的视频,拼接4张图片,则执行如下命令: bash train_videoae_65x512x512.sh 正常训练过程如下图所示。训练完成后,关注loss值,loss曲线收敛,记录总耗时和单步耗时。训练过程中,训练日志会在最后的Rank节点打印。可以使用可视化工具TrainingLogParser查看loss收敛情况。 图7 正常训练过程 训练完成后权重保存在自动生成的目录,例如:t2v-f17-256-img4-videovae488-bf16-ckpt-xformers-bs4-lr2e-5-t5/epoch1-global_step2000/checkpoint-2000/model。
-
Step4 启动镜像 启动容器镜像,推理只需要启动单卡,启动前可以根据实际需要增加修改参数。 docker run -itd --name ${container_name} -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /etc/localtime:/etc/localtime -v /usr/local/Ascend/driver:/usr/local/Ascend/driver -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi --shm-size 60g --device=/dev/davinci_manager --device=/dev/hisi_hdc --device=/dev/devmm_svm --device=/dev/davinci0 --security-opt seccomp=unconfined --network=bridge Open-Sora-Plan1.0:1.0 bash 参数说明: --name ${container_name}:容器名称,进入容器时会用到,此处可以自己定义一个容器名称。 --device=/dev/davinci0:挂载NPU设备,该推理示例中挂载了1张卡davinci0。 driver及npu-smi需同时挂载至容器。 不要将多个容器绑到同一个NPU上,会导致后续的容器无法正常使用NPU功能。
-
Step3 构建镜像 基于官方提供的基础镜像构建 自定义镜像 Open-Sora-Plan1.0:1.0。参考如下命令编写Dockerfile文件。镜像地址{image_url}请参见表2。 FROM {image_url} COPY --chown=ma-user:ma-group OpenSoraPlan1.0/* /home/ma-user/Open-Sora-Plan1.0 RUN cd /home/ma-user/Open-Sora-Plan1.0 && bash prepare.sh WORKDIR /home/ma-user/Open-Sora-Plan1.0
-
Step1 检查环境 请参考DevServer资源开通,购买DevServer资源,并确保机器已开通,密码已获取,能通过SSH登录,不同机器之间网络互通。 购买DevServer资源时如果无可选资源规格,需要联系华为云技术支持申请开通。 当容器需要提供服务给多个用户,或者多个用户共享使用该容器时,应限制容器访问Openstack的管理地址(169.254.169.254),以防止容器获取宿主机的元数据。具体操作请参见禁止容器获取宿主机元数据。 SSH登录机器后,检查NPU卡状态。运行如下命令,返回NPU设备信息。 npu-smi info # 在每个实例节点上运行此命令可以看到NPU卡状态 npu-smi info -l | grep Total # 在每个实例节点上运行此命令可以看到总卡数 如出现错误,可能是机器上的NPU设备没有正常安装,或者NPU镜像被其他容器挂载。请先正常安装固件和驱动,或释放被挂载的NPU。 检查是否安装docker。 docker -v #检查docker是否安装 如尚未安装,运行以下命令安装docker。 yum install -y docker-engine.aarch64 docker-engine-selinux.noarch docker-runc.aarch64 配置IP转发,用于容器内的网络访问。执行以下命令查看net.ipv4.ip_forward配置项的值,如果为1,可跳过此步骤。 sysctl -p | grep net.ipv4.ip_forward 如果net.ipv4.ip_forward配置项的值不为1,执行以下命令配置IP转发。 sed -i 's/net\.ipv4\.ip_forward=0/net\.ipv4\.ip_forward=1/g' /etc/sysctl.conf sysctl -p | grep net.ipv4.ip_forward
-
镜像版本 本教程中用到基础镜像地址和配套版本关系如下表所示,请提前了解。 表2 基础容器镜像地址 配套软件版本 镜像用途 镜像地址 配套 获取方式 6.3.907版本 基础镜像 swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_2_1_ascend:pytorch_2.1.0-cann_8.0.rc2-py_3.9-hce_2.0.2312-aarch64-snt9b-20240727152329-0f2c29a cann_8.0.rc2 pytorch_2.1.0 驱动23.0.6 从SWR拉取 不同软件版本对应的基础镜像地址不同,请严格按照软件版本和镜像配套关系获取基础镜像。
-
获取软件和镜像 表2 获取软件和镜像 分类 名称 获取路径 插件代码包 AscendCloud-6.3.911-xxx.zip软件包中的AscendCloud-AIGC-6.3.911-xxx.zip 说明: 包名中的xxx表示具体的时间戳,以包名的实际时间为准。 获取路径:Support-E,在此路径中查找下载ModelArts 6.3.911 版本。 说明: 如果上述软件获取路径打开后未显示相应的软件信息,说明您没有下载权限,请联系您所在企业的华为方技术支持下载获取。 基础镜像 西南-贵阳一: swr.cn-southwest-2.myhuaweicloud.com/atelier/pytorch_2_1_ascend:pytorch_2.1.0-cann_8.0.rc3-py_3.9-hce_2.0.2409-aarch64-snt9b-20241112192643-c45ac6b 从SWR拉取。
-
步骤三:启动容器镜像 启动容器镜像。启动前请先按照参数说明修改${}中的参数。 export work_dir="自定义挂载的工作目录" export container_work_dir="自定义挂载到容器内的工作目录" export container_name="自定义容器名称" export image_name="镜像名称或ID" // 启动一个容器去运行镜像 docker run -itd --net=bridge \ --device=/dev/davinci0 \ --device=/dev/davinci1 \ --device=/dev/davinci2 \ --device=/dev/davinci3 \ --device=/dev/davinci4 \ --device=/dev/davinci5 \ --device=/dev/davinci6 \ --device=/dev/davinci7 \ --device=/dev/davinci_manager \ --device=/dev/devmm_svm \ --device=/dev/hisi_hdc \ --shm-size=32g \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /var/log/npu/:/usr/slog \ -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \ -v ${work_dir}:${container_work_dir} \ --name ${container_name} \ ${image_name} \ /bin/bash 参数说明: -v ${work_dir}:${container_work_dir}:代表需要在容器中挂载宿主机的目录。宿主机和容器使用不同的文件系统。work_dir为宿主机中工作目录,目录下可存放项目所需代码、数据等文件。container_work_dir为要挂载到的容器中的目录。为方便两个地址可以相同。 容器不能挂载到/home/ma-user目录,此目录为ma-user用户家目录。如果容器挂载到/home/ma-user下,拉起容器时会与基础镜像冲突,导致基础镜像不可用。 driver及npu-smi需同时挂载至容器。 --name ${container_name}:容器名称,进入容器时会用到,此处可以自己定义一个容器名称。 ${image_name}:容器镜像的名称。 --device=/dev/davinci0 :挂载对应卡到容器,当需要挂载多卡,请依次添加多项该配置 通过容器名称进入容器中。默认使用ma-user用户,后续所有操作步骤都在ma-user用户下执行。 docker exec -it ${container_name} bash
-
步骤四:安装依赖和软件包 git clone和git lfs下载大模型可以参考如下操作。 由于欧拉源上没有git-lfs包,所以需要从压缩包中解压使用,在浏览器中输入如下地址下载git-lfs压缩包并上传到容器的/home/ma-user目录下。 https://github.com/git-lfs/git-lfs/releases/download/v3.2.0/git-lfs-linux-arm64-v3.2.0.tar.gz 或直接下载到容器,这样在容器中可以直接使用。 cd /home/ma-user wget https://github.com/git-lfs/git-lfs/releases/download/v3.2.0/git-lfs-linux-arm64-v3.2.0.tar.gz 进入容器,执行安装git lfs命令。 cd /home/ma-user tar -zxvf git-lfs-linux-arm64-v3.2.0.tar.gz cd git-lfs-3.2.0 sudo sh install.sh 设置git配置去掉ssl校验。 git config --global http.sslVerify false 从github拉取CogVideoX代码。 cd /home/ma-user git clone https://github.com/THUDM/CogVideo.git cd /home/ma-user/CogVideo git checkout v1.0 若进行训练微调需依赖decord和triton包,arm版本可参考附录安装编译。 安装CogVideo Ascend软件包。 将获取到的CogVideo Ascend软件包AscendCloud-AIGC-*.zip文件上传到容器的/home/ma-user目录下。获取路径参见获取软件和镜像。 解压AscendCloud-AIGC-*.zip文件,解压后将里面指定文件与对应CogVideo文件进行替换,执行以下命令即可。 cd /home/ma-user unzip AscendCloud-AIGC-*.zip -d ./AscendCloud cd AscendCloud/multimodal_algorithm/CogVideo_v1_sft/ dos2unix install.sh bash install.sh AscendCloud-AIGC-*.zip后面的*表示时间戳,请按照实际替换。 CogVideo Ascend软件包内容如下: . |---- install.sh 安装torch-npu适配修改脚本 |---- modify.patch 适配CogVideo训练代码git patch文件 |---- README.md 适配文档基于官方代码commit id说明 |---- requirements.txt python依赖包 |---- vae_cache.py vae_cache文件 |---- vae_cache.sh vae_cache脚本
-
步骤一:准备环境 请参考DevServer资源开通,购买DevServer资源,并确保机器已开通,密码已获取,能通过SSH登录,不同机器之间网络互通。 当容器需要提供服务给多个用户,或者多个用户共享使用该容器时,应限制容器访问Openstack的管理地址(169.254.169.254),以防止容器获取宿主机的元数据。具体操作请参见禁止容器获取宿主机元数据。 SSH登录机器后,检查NPU设备检查。运行如下命令,返回NPU设备信息。 npu-smi info # 在每个实例节点上运行此命令可以看到NPU卡状态 npu-smi info -l | grep Total # 在每个实例节点上运行此命令可以看到总卡数 如出现错误,可能是机器上的NPU设备没有正常安装,或者NPU镜像被其他容器挂载。请先正常安装固件和驱动,或释放被挂载的NPU。 检查docker是否安装。 docker -v #检查docker是否安装 如尚未安装,运行以下命令安装docker。 yum install -y docker-engine.aarch64 docker-engine-selinux.noarch docker-runc.aarch64 配置IP转发,用于容器内的网络访问。执行以下命令查看net.ipv4.ip_forward配置项的值,如果为1,可跳过此步骤。 sysctl -p | grep net.ipv4.ip_forward 如果net.ipv4.ip_forward配置项的值不为1,执行以下命令配置IP转发。 sed -i 's/net\.ipv4\.ip_forward=0/net\.ipv4\.ip_forward=1/g' /etc/sysctl.conf sysctl -p | grep net.ipv4.ip_forward
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格