云服务器内容精选

  • 处理方法 ModelArts.3551:到obs检查输入数据目录是否存在,如果不存在,请按照实际需要创建obs目录;如果检查发现目录存在,但依然报同样的错,可以提工单申请技术支持 ModelArts.3567:用户只能访问自己账号下的obs目录,ModelArts在读取其他用户obs下的数据时,需要用户委托权限,没有创建委托,就没有权限使用其他用户obs中的数据。 登录ModelArts控制台,管理控制台,在左侧导航栏中选择“权限管理”,单击“查看权限”,检查是否配置了obs的委托权限。 图1 查看权限 如果检查后已经存在委托,但是仍然无法访问,可以提工单寻求技术支持。
  • 问题现象 输入输出目录不存在,报如下错误 "error_code": "ModelArts.3551", "error_msg": "OBS path xxxx does not exist." 当访问目录权限不足时,报如下错误 "error_code": "ModelArts.3567", "error_msg": "OBS error occurs because Access Denied."
  • 处理方法1 在ModelArts管理控制台,选择“权限管理”。 在用户名对应的“授权内容”列,单击“查看权限”,确认用户的委托权限是否已包含Tenant Administrator。 图1 查看委托权限详情 是,重新“启动”边缘服务,若还是“异常”则联系技术支持处理。 否,执行下一步,给用户添加委托权限。 添加委托权限。 如果是 IAM 子账号,没有修改委托权限,请联系管理员添加Tenant Adiministrator委托权限。 登录 统一身份认证 服务IAM管理控制台。 单击导航栏的“委托”,进入委托页面。 搜索ModelArts使用的委托,例如“modelarts_agency”,单击委托名称进入“基本信息”页面。 单击“授权”,添加Tenant Adiministrator权限,按操作指引完成授权。 授权完成后,重新“启动”边缘服务,观察状态是否正常。
  • 解决方法 ModelArts权限管理的委托权限不足,导致创建失败? 解决方法请参见ModelArts创建委托授权。 申请的资源中包含受限购买的资源规格,导致购买失败? 当前modelarts.bm.npu.arm.8snt9b3.d为受限购买,需要提前联系ModelArts运营或提工单申请开通资源规格。 图2 报错信息 E CS 、EVS配额不足,导致创建失败? 集群所需的ECS实例数、内存大小、CPU核数和EVS硬盘大小资源会超出华为云默认提供的资源配额,因此需要申请扩大配额。解决方法请参见申请扩大资源配额。 图3 报错信息(1) 图4 报错信息(2) 资源售罄或容量不足,导致创建失败? 减少资源池节点数量,或提工单给ModelArts申请更多资源。 图5 报错信息 ECS、BMS节点创建失败? 查看资源池失败报错信息: 包含错误码,如:Ecs.0000时,可查看弹性云服务器 ECS_错误码查看详细的错误信息及处理措施。 包含错误码,如:BMS.0001时,可查看裸金属服务器 BMS_错误码查看详细的错误信息及处理措施。 包含错误码,如:CCE.01400001时,可查看云容器引擎 CCE_错误码查看详细的错误信息及处理措施 其他报错请提工单联系ModelArts运维进一步定位解决。 集群纳管节点失败? 查看资源池失败报错信息: 查看资源池失败报错信息,包含错误码,如:CCE.01400001时,可查看云容器引擎 CCE_错误码查看详细的错误信息及处理措施。 其他报错请提工单联系ModelArts运维进一步定位解决。 集群容器网段不足,导致创建失败? 图6 报错信息 用户可根据实际业务场景和节点规模,自定义配置容器网段,配置方式如下: ModelArts Standard池,资源池创建阶段指定容器网段,根据实际需要设置更大的容器网段。 图7 设置容器网段 ModelArts Lite池,选择/创建具有更大容器网段的CCE集群。CCE容器网段配置参见网络规划。 账号冻结导致创建失败? 查看资源池失败报错信息,存在"frozen deposit fail",表示账号冻结导致资源创建失败。检查账号状态和资源欠费情况,账号解冻后重新购买资源。 订单取消导致资源创建失败? 查看资源池失败报错信息,存在"the operation is canceled by customer",表示资源池对应订单已取消,取消原因可能为超时未支付、用户自主取消,需重新购买。 其他错误 可通过F12查看浏览器请求信息,选择标红的pools接口,查看响应里的详细报错信息,如下图所示。通过错误提示修正输入参数后再次提交订单。 图8 报错信息 如CCE集群不可用,请检查CCE集群版本和状态。报错信息如下: { "error_code": "ModelArts.50004000", "error_msg": "Bad request. spec.clusters[0].providerId: Invalid value: \"77f6f112-a631-11eb-8dae-0255ac100b0d\": the cluster 77f6f112-a631-11eb-8dae-0255ac100b0d is not available" }
  • 处理方法 到SWR检查下对应的镜像是否存在,对应镜像的镜像地址是否和实际地址一致,大小写,拼写等是否一致。 检查用户给ModelArts的委托中是否有SWR的权限,可以在权限管理中查看对应用户的授权内容,查看授权详情。如果没有对应权限,需要到统一身份认证服务给对应委托中加上对应权限。 图1 权限管理 图2 查看权限详情和去IAM修改委托权限 图3 给委托添加授权 将镜像设置成私有镜像 登录 容器镜像服务 (SWR),左侧导航栏选择“我的镜像”,查看镜像详情,单击右上角“编辑”按钮,把镜像类型修改为“私有”。 图4 修改镜像类型为私有
  • 数据校验算子说明(MetaValidation算子) ModelArts的数据校验通过MetaValidation算子实现。当前ModelArts支持jpg、jpeg、bmp、png四种图片格式。物体检测场景支持xml标注格式,不支持“非矩形框”标注。针对您提供的数据集,MetaValidation算子支持对图片和xml文件进行数据校验: 表1 图片类数据校验 异常情况 处理方案 图片本身损坏无法解码 过滤掉不能解码的图片 图片通道可能是1通道、2通道,不是常用的3通道 转换图片成RGB三通道 图片格式不在ModelArts支持的格式范围内 转换图片格式至jpg格式 图片后缀与实际格式不符,但格式在ModelArts支持的格式内 后缀转换成与实际格式一致 图片后缀与实际格式不符,且格式不在ModelArts支持的格式内 转换图片格式至jpg格式 图片分辨率过大 宽、高按指定大小同比例进行裁剪 表2 标注类文件数据校验 异常情况 处理方案 xml结构残缺,无法解析 过滤xml文件 xml中没有标注“object” 过滤xml文件 xml中没有矩形框“bndbox” 过滤xml文件 某些标注“object”中没有矩形框“bndbox” 过滤标注“object” 图片经过裁剪后,xml文件中宽高不符 修改错误宽高参数为图片真实宽高 xml中没有“width”、“height”字段 根据图片真实宽高补全xml中的“width”、“height”字段和值 图片经过裁剪后,xml中矩形框“bndbox”大小不符 按图片裁剪比例缩放xml文件中“bnxbox”值 xml中矩形框“bndbox”宽或高值过小,显示为一条线 矩形框宽或高差值小于2,移除当前“object” xml中矩形框“bndbox”最小值大于最大值 移除当前“object” 矩形框“bndbox”超出图片边界,且超出部分占框面积50%以上 移除当前“object” 矩形框“bndbox”超出图片边界,但超出部分小于框面积50% 矩形框“bndbox”拉回到图片边界 数据校验过程不会改动原始数据,通过校验的图片或xml文件保存在指定的输出路径下。 参数说明 表3 数据校验-MetaValidation算子参数说明 参数名 是否必选 默认值 参数说明 image_max_width 否 -1 输入图片宽度最大值,如果输入图片宽度超过设定值则按比例裁剪。单位为px。 默认值 -1 表示不做裁剪。 image_max_height 否 -1 输入图片长度最大值,如果输入图片长度超过设定值则按比例裁剪。单位为px。 默认值 -1 表示不做裁剪。 输入要求 算子输入分为两种,“数据集”或“OBS目录”。 选择“数据集”,请从下拉框中选择ModelArts中管理的数据集及其版本。要求数据集类型与您在本任务中选择的场景类别一致。 选择“OBS目录”,存放结构又分两种情况,“仅包含图片”或“包含图片和标注信息”。 “仅包含图片”:当目录下全是图片时,支持jpg、jpeg、png、bmp格式,嵌套子目录的图片也将全部读入。 “包含图片和标注信息”:根据不同场景类型,结构不同。 图像分类场景,其目录结构如下所示。如下目录结构,仅支持单标签场景。 input_path/ --label1/ ----1.jpg --label2/ ----2.jpg --../ 物体检测场景,其目录结构如下所示。支持jpg、jpeg、png、bmp格式的图片,xml为标准的PACAL VOC格式标注文件。 input_path/ --1.jpg --1.xml --2.jpg --2.xml ... 输出说明 图像分类 输出数据的目录结构如下所示。 output_path/ --Data/ ----class1/ # 如果输入数据有标注信息会一并输出,class1为标注类别 ------1.jpg ------2_checked.jpg ----class2/ ------3.jpg ------4_checked.jpg ----5_checked.jpg --output.manifest 其中manifest文件内容示例如下所示。会给每一条数据加上一个校验属性"property":{"@modelarts:data_checked":true} { "id": "xss", "source": "obs://hard_example_path/Data/fc8e2688015d4a1784dcbda44d840307_14_checked.jpg", "property": { "@modelarts:data_checked": true }, "usage": "train", "annotation": [ { "name": "Cat", "type": "modelarts/image_classification" } ] } 物体检测 在输出目录下,文件结构如下所示。 output_path/ --Data/ ----1_checked.jpg ----1_checked.xml # 如果输入数据在校验过程中经过了转换,文件名会加上'_checked' ----2.jpg # 如果输入数据未经过转换,则以原来的名字保存 ----2.xml --output.manifest 其中manifest文件内容示例如下所示。会给每一条数据加上一个校验属性"property":{"@modelarts:data_checked":true} { "source": "obs://hard_example_path/Data/be462ea9c5abc09f_checked.jpg", "property": { "@modelarts:data_checked": true }, "annotation": [ { "annotation-loc": "obs://hard_example_path/Data/be462ea9c5abc09f_checked.xml", "type": "modelarts/object_detection", "annotation-format": "PASCAL VOC", "annotated-by": "modelarts/hard_example_algo" } ] }
  • 镜像版本 本教程中用到基础镜像地址和配套版本关系如下表所示,请提前了解。 表2 基础容器镜像地址 镜像用途 镜像地址 Cann版本 基础镜像 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.2312-aarch64-snt9b-20240824153350-cebb080 cann_8.0.rc3
  • 软件配套版本 本方案支持的软件配套版本和依赖包获取地址如表1所示。 表1 软件配套版本和获取地址 软件名称 说明 下载地址 插件代码包 AscendCloud-3rdAIGC-6.3.908-xxx.zip 文件名中的xxx表示具体的时间戳,以包名的实际时间为准。 获取路径:Support-E 说明: 如果上述软件获取路径打开后未显示相应的软件信息,说明您没有下载权限,请联系您所在企业的华为方技术支持下载获取。
  • Step2 权重格式离线转换(可选) AutoAWQ量化完成后,使用int32对int4的权重进行打包。昇腾上使用int8对权重进行打包,在线转换会增加启动时间,可以提前对权重进行转换以减少启动时间,转换步骤如下: 进入llm_tools/AutoAWQ代码目录下执行以下脚本: 执行时间预计10分钟。执行完成后会将权重路径下的原始权重替换成转换后的权重。如需保留之前权重格式,请在转换前备份。 python convert_awq_to_npu.py --model /home/ma-user/Qwen1.5-72B-Chat-AWQ 参数说明: model:模型路径。
  • Step2 修改训练yaml文件配置 LlamaFactroy配置文件为Yaml文件,启动训练前需修改Yaml配置文件,Yaml配置文件在代码目录下的{work_dir}/llm_train/LLaMAFactory/demo.yaml。修改详细步骤如下所示。 选择训练策略类型。 sft,复制sft_yaml样例模板内容覆盖demo.yaml文件内容。 lora,复制lora_yaml样例模板内容覆盖demo.yaml文件内容。 dpo,复制dpo_yaml样例模板内容覆盖demo.yaml文件内容。 修改yaml文件(demo.yaml)的参数如表1所示。 表1 修改重要参数 参数 示例值 参数说明 model_name_or_path /home/ma-user/ws/tokenizers/Qwen2-72B 必须修改。加载tokenizer与Hugging Face权重时存放目录绝对或相对路径。请根据实际规划修改。 template qwen 必须修改。用于指定模板。如果设置为"qwen",则使用Qwen模板进行训练,模板选择可参照表1中的template列 output_dir /home/ma-user/ws/Qwen2-72B/sft-4096 必须修改。指定输出目录。训练过程中生成的模型参数和日志文件将保存在这个目录下。用户根据自己实际要求适配。 per_device_train_batch_size 1 指定每个设备的训练批次大小 gradient_accumulation_steps 8 可修改。指定梯度累积的步数,这可以增加批次大小而不增加内存消耗。可根据自己要求适配。取值可参考表1中梯度累积值列。 num_train_epochs 5 表示训练轮次,根据实际需要修改。一个Epoch是将所有训练样本训练一次的过程。可根据自己要求适配 cutoff_len 4096 文本处理时的最大长度,此处为4096,用户可根据自己要求适配 dataset identity,alpaca_en_demo 【可选】注册在dataset_info.json文件数据集名称。如选用定义数据请参考准备数据(可选)配置dataset_info.json文件,并将数据集存放于dataset_info.json同目录下。 dataset_dir /home/ma-user/ws/LLaMAFactory/LLaMA-Factory/data 【可选】dataset_info.json配置文件所属的绝对路径;如使用自定义数据集,yaml配置文件需添加此参数。 是否选择加速深度学习训练框架Deepspeed,可参考表1选择不同的框架。 是,选用ZeRO (Zero Redundancy Optimizer)优化器。 ZeRO-0,配置以下参数 deepspeed: examples/deepspeed/ds_z0_config.json ZeRO-1,配置以下参数,并复制ds_z1_config.json样例模板至工作目录/home/ma-user/LLaMAFactory/LLaMA-Factory/examples/deepspeed deepspeed: examples/deepspeed/ds_z1_config.json ZeRO-2,配置以下参数 deepspeed: examples/deepspeed/ds_z2_config.json ZeRO-3,配置以下参数 deepspeed: examples/deepspeed/ds_z3_config.json ZeRO-3-Offload,配置以下参数 deepspeed: examples/deepspeed/ds_z3_offload_config.json 否,默认选用Accelerate加速深度学习训练框架,注释掉deepspeed参数。 是否开启NPU FlashAttention融合算子,具体约束详见NPU_Flash_Attn融合算子约束 是,配置以下参数。 flash_attn: sdpa 否,注释掉flash_attn: sdpa参数 是否使用固定句长。 是,配置以下参数 packing: true 否,默认使用动态句长,注释掉packing参数。 选用数据精度格式,以下参数二选一。 bf16,配置以下参数 bf16: true fp16,配置以下参数 fp16: true 是否使用自定义数据集。 是,参考准备数据(可选)后,配置以下参数:参考表1dataset_dir和dataset参数说明;如alpaca_gpt4_data.json数据集前缀则为alpaca_gpt4_data。 dataset: alpaca_gpt4_data dataset_dir: /home/ma-user/ws/llm_train/LLaMAFactory/LLaMA-Factory/data 否,使用代码包自带数据集,注释掉dataset_dir参数,配置参数如下: sft或lora dataset: identity,alpaca_en_demo dpo dataset: dpo_en_demo 是否使用chatglm4-9b、falcon-11b模型。 是,更新配置或命令。 chatglm4-9b,更新transformers为4.41.2版本。 pip install transformers==4.41.2 falcon-11b,参考falcon-11B模型替换文件。 否,忽略此步骤,执行下一步。 如需其他配置参数,可参考表1按照实际需求修改。
  • 模型软件包结构说明 本教程需要使用到的AscendCloud-6.3.906中的AscendCloud-LLM-xxx.zip软件包和算子包AscendCloud-OPP,AscendCloud-LLM关键文件介绍如下。 |——AscendCloud-LLM ├──llm_inference # 推理代码 ├──ascend_vllm ├── vllm_npu # 推理源码 ├── ascend_vllm-0.4.2-py3-none-any.whl # 推理安装包 ├── build.sh # 推理构建脚本 ├── vllm_install.patch # 社区昇腾适配的补丁包 ├──llm_tools # 推理工具包 ├──AutoSmoothQuant # W8A8量化工具 ├── ascend_autosmoothquant_adapter # 昇腾量化使用的算子模块 ├── autosmoothquant # 量化代码 ├── build.sh # 安装量化模块的脚本 ├──awq # W4A16量化工具 ├──convert_awq_to_npu.py # awq权重转换脚本 ├──llm_evaluation # 推理评测代码包 ├──benchmark_tools #性能评测 ├── benchmark.py # 可以基于默认的参数跑完静态benchmark和动态benchmark ├── benchmark_parallel.py # 评测静态性能脚本 ├── benchmark_serving.py # 评测动态性能脚本 ├── benchmark_utils.py # 抽离的工具集 ├── generate_datasets.py # 生成自定义数据集的脚本 ├── requirements.txt # 第三方依赖 ├──benchmark_eval #精度评测 ├──opencompass.sh #运行opencompass脚本 ├──start.sh #安装opencompass脚本 ├──vllm_api.py #启动vllm api服务器 ├──vllm.py #构造vllm评测配置脚本名字
  • 支持的模型列表和权重文件 本方案支持vLLM的v0.4.2版本。不同vLLM版本支持的模型列表有差异,具体如表3所示。 表3 支持的模型列表和权重获取地址 序号 模型名称 是否支持fp16/bf16推理 是否支持W4A16量化 是否支持W8A8量化 是否支持 kv-cache-int8量化 开源权重获取地址 1 llama-7b √ √ √ √ https://huggingface.co/huggyllama/llama-7b 2 llama-13b √ √ √ √ https://huggingface.co/huggyllama/llama-13b 3 llama-65b √ √ √ √ https://huggingface.co/huggyllama/llama-65b 4 llama2-7b √ √ √ √ https://huggingface.co/meta-llama/Llama-2-7b-chat-hf 5 llama2-13b √ √ √ √ https://huggingface.co/meta-llama/Llama-2-13b-chat-hf 6 llama2-70b √ √ √ √ https://huggingface.co/meta-llama/Llama-2-70b-hf https://huggingface.co/meta-llama/Llama-2-70b-chat-hf (推荐) 7 llama3-8b √ √ √ √ https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct 8 llama3-70b √ √ √ √ https://huggingface.co/meta-llama/Meta-Llama-3-70B-Instruct 9 yi-6b √ √ √ √ https://huggingface.co/01-ai/Yi-6B-Chat 10 yi-9b √ √ √ √ https://huggingface.co/01-ai/Yi-9B 11 yi-34b √ √ √ √ https://huggingface.co/01-ai/Yi-34B-Chat 12 deepseek-llm-7b √ x x x https://huggingface.co/deepseek-ai/deepseek-llm-7b-chat 13 deepseek-coder-33b-instruct √ x x x https://huggingface.co/deepseek-ai/deepseek-coder-33b-instruct 14 deepseek-llm-67b √ x x x https://huggingface.co/deepseek-ai/deepseek-llm-67b-chat 15 qwen-7b √ √ √ x https://huggingface.co/Qwen/Qwen-7B-Chat 16 qwen-14b √ √ √ x https://huggingface.co/Qwen/Qwen-14B-Chat 17 qwen-72b √ √ √ x https://huggingface.co/Qwen/Qwen-72B-Chat 18 qwen1.5-0.5b √ √ √ x https://huggingface.co/Qwen/Qwen1.5-0.5B-Chat 19 qwen1.5-7b √ √ √ x https://huggingface.co/Qwen/Qwen1.5-7B-Chat 20 qwen1.5-1.8b √ √ √ x https://huggingface.co/Qwen/Qwen1.5-1.8B-Chat 21 qwen1.5-14b √ √ √ x https://huggingface.co/Qwen/Qwen1.5-14B-Chat 22 qwen1.5-32b √ √ √ x https://huggingface.co/Qwen/Qwen1.5-32B/tree/main 23 qwen1.5-72b √ √ √ x https://huggingface.co/Qwen/Qwen1.5-72B-Chat 24 qwen1.5-110b √ √ √ x https://huggingface.co/Qwen/Qwen1.5-110B-Chat 25 qwen2-0.5b √ √ √ x https://huggingface.co/Qwen/Qwen2-0.5B-Instruct 26 qwen2-1.5b √ √ √ x https://huggingface.co/Qwen/Qwen2-1.5B-Instruct 27 qwen2-7b √ √ √ x https://huggingface.co/Qwen/Qwen2-7B-Instruct 28 qwen2-72b √ √ √ x https://huggingface.co/Qwen/Qwen2-72B-Instruct 29 baichuan2-7b √ x x x https://huggingface.co/baichuan-inc/Baichuan2-7B-Chat 30 baichuan2-13b √ x x x https://huggingface.co/baichuan-inc/Baichuan2-13B-Chat 31 gemma-2b √ x x x https://huggingface.co/google/gemma-2b 32 gemma-7b √ x x x https://huggingface.co/google/gemma-7b 33 chatglm2-6b √ x x x https://huggingface.co/THUDM/chatglm2-6b 34 chatglm3-6b √ x x x https://huggingface.co/THUDM/chatglm3-6b 35 glm-4-9b √ x x x https://huggingface.co/THUDM/glm-4-9b-chat 36 mistral-7b √ x x x https://huggingface.co/mistralai/Mistral-7B-v0.1 37 mixtral-8x7b √ x x x https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1 说明:当前版本中yi-34b、qwen1.5-32b模型暂不支持单卡启动。
  • 约束限制 本方案目前仅适用于部分企业客户。 本文档适配昇腾云ModelArts 6.3.906版本,请参考软件配套版本获取配套版本的软件包,请严格遵照版本配套关系使用本文档。 资源规格推荐使用“西南-贵阳一”Region上的DevServer和昇腾Snt9B资源。 推理部署使用的服务框架是vLLM。vLLM支持v0.4.2版本。 支持FP16和BF16数据类型推理。 DevServer驱动版本要求23.0.5。
  • 镜像版本 本教程中用到基础镜像地址和配套版本关系如下表所示,请提前了解。 表1 基础容器镜像地址 镜像用途 镜像地址 配套版本 基础镜像 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-20240606190017-b881580 cann_8.0.rc2
  • 软件配套版本 本方案支持的软件配套版本和依赖包获取地址如表2所示。 表2 软件配套版本和获取地址 软件名称 说明 下载地址 AscendCloud-6.3.906-xxx.zip 说明: 软件包名称中的xxx表示时间戳。 包含了本教程中使用到的推理部署代码和推理评测代码、推理依赖的算子包。代码包具体说明请参见模型软件包结构说明。 获取路径:Support-E 说明: 如果没有下载权限,请联系您所在企业的华为方技术支持下载获取。