华为云用户手册

  • 处理方法 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."
  • 处理方法 进入到“Terminal”界面。在“/tmp”目录下,执行命令du -sh *,查看该目录下的空间占用情况。 sh-4.3$cd /tmp sh-4.3$du -sh * 4.0K core-js-banners 0 npm-19-41ed4c62 6.7M v8-compile-cache-1000 请删除不用的大文件。 删除示例文件“test.txt”:rm -f /home/ma-user/work/data/test.txt 删除示例文件夹“data”:rm -rf /home/ma-user/work/data/
  • 原因分析及处理方法 服务预测需要经过客户端、外部网络、APIG、Dispatch、模型服务多个环节。每个环节出现都会导致服务预测失败。 图1 推理服务流程图 出现APIG.XXXX类型的报错,表示请求在APIG(API网关)出现问题而被拦截。 常见问题请参见服务预测失败,报错APIG.XXXX。 其他被APIG(API网关)拦截的场景: Method Not Allowed 请求超时返回Timeout 出现ModelArts.XXXX类型的报错,表示请求在Dispatcher出现问题而被拦截。 常见报错: 在线服务预测报错ModelArts.4302 在线服务预测报错ModelArts.4206 在线服务预测报错ModelArts.4503 当使用推理的镜像并且出现MR.XXXX类型的错误时,表示已进入模型服务,一般是模型推理代码编写有问题。 请根据构建日志报错信息,定位服务预测失败原因,修改模型推理代码后,重新导入模型进行预测。 经典案例:在线服务预测报错MR.0105 出现其他情况,优先检查客户端和外部网络是否有问题。 以上方法均未解决问题,请联系系统管理员。
  • 预测分析作业失败的排查思路 检查用于预测分析的数据是否满足要求。 由于预测分析任务未使用数据管理的功能发布数据集,因此当数据不满足训练作业要求时,会出现训练作业运行失败的错误。 建议检查用于训练的数据,是否满足预测分析作业的要求。要求如下所示,如果数据满足要求,执行下一步检查。如果不满足要求,请根据要求进行数据调整后再重新训练。 文件规范:名称由以字母数字及中划线下划线组成,以'.csv'结尾,且文件不能直接放在OBS桶的根目录下,应该存放在OBS桶的文件夹内。如:“/obs-xxx/data/input.csv”。 文件内容:文件保存为“csv”文件格式,文件内容以换行符(即字符“\n”,或称为LF)分隔各行,行内容以英文逗号(即字符“,”)分隔各列。文件内容不能包含中文字符,列内容不应包含英文逗号、换行符等特殊字符,不支持引号语法,建议尽量以字母及数字字符组成。 训练数据:训练数据列数一致,总数据量不少于100条不同数据(有一个特征取值不同,即视为不同数据)。训练数据列内容不能有时间戳格式(如:yy-mm-dd、yyyy-mm-dd等)的数据。确保指定标签列的取值至少有两个且无数据缺失,除标签列外数据集中至少还应包含两个有效特征列(列的取值至少有两个且数据缺失比例低于10%)。训练数据的csv文件不能包含表头,否则会导致训练失败。当前由于特征筛选算法限制,标签列建议放在数据集最后一列,否则可能导致训练失败。 由于ModelArts会自动对数据进行一些过滤,过滤后再启动训练作业。当预处理后的数据不满足训练要求时,也会导致训练作业运行失败。 对于数据集中列的过滤策略如下所示: 如果某一列空缺的比例大于系统设定的阈值(0.9),此列数据在训练时将被剔除。 如果某一列只有一种取值(即每一行的数据都是一样的),此列数据在训练时将被剔除。 对于非纯数值列,如果此列的取值个数等于行数(即每一行的数值都是不一样的),此列数据在训练时将被剔除。 经过上述过滤后,如果数据集不再满足第一点中关于训练数据的要求,则会导致训练失败或无法进行。建议完善数据后,再启动训练。 数据集文件有以下限制: 如果您使用2u8g规格,测试建议数据集文件应小于10MB。当文件大小符合限制要求,如果存在极端的数据规模(行数列数之积)时,仍可能会导致训练失败,建议的数据规模低于10000。 如果您使用8u32g规格,测试建议数据集文件应小于100MB。当文件大小符合限制要求,如果存在极端的数据规模(行数列数之积)时,仍可能会导致训练失败,建议的数据规模低于1000000。 如果上述排查操作仍无法解决,请联系华为云技术支持。
  • 镜像中配置的端口错误 模型可以正常启动,但是因为镜像中启用的端口非8080,或者镜像启用的端口与创建模型时配置的端口不一致,导致部署服务时register-agent无法与模型通信,超过一定时间后(最长20分钟)认为模型启动失败。 需要检查两个地方:自定义镜像中的代码开放的端口和创建模型界面上配置的端口。确认两处端口保持一致。模型创建界面如果不填端口信息,则ModelArts会默认监听8080端口,即镜像代码中启用的端口必须是8080。 图2 自定义镜像中的代码开放的端口 图3 创建模型界面上配置的端口
  • 健康检查配置有问题 镜像如果配置了健康检查,服务启动失败,从以下两个方面进行排查: 健康检查端口是否可以正常工作 自定义镜像中配置了健康检查,需要在测试镜像时,同步测试健康检查接口是否可以正常工作,具体参考从0-1制作自定义镜像并创建AI应用中的本地验证镜像方法。 创建模型界面上配置的健康检查地址与实际配置的是否一致 如果使用的是ModelArts提供的基础镜像创建模型,健康检查URL默认必须为/health。 图4 设置健康检查URL
  • 解决方案 在Terminal里执行命令排查实例存在几个Conda环境。 conda env list 执行如下命令分别切换到对应环境查看是否有ipykernel包。 conda activate base # base替换为实际使用的python环境 pip show ipykernel 对应conda环境没有ipykernel,直接在Notebook中添加自定义IPython Kernel安装。
  • ModelArts.4342 标注信息不满足切分条件 出现此故障时,建议根据如下建议,修改标注数据后重试。 多标签的样本(即一张图片包含多个标签),至少需要有2张。如果启动训练时,设置了数据集切分功能,如果多标签的数据少于2张,会导致数据集切分失败。建议检查您的标注信息,保证标注多标签的图片,超过2张。 数据集切分后,训练集和验证集包含的标签类别不一样。出现这种情况的原因:多标签场景下时,做随机数据切分后,包含某一类标签的样本均被划分到训练集,导致验证集无该标签样本。由于这种情况出现的概率比较小,可尝试重新发布版本来解决。
  • 处理方法 可以参照日志提示"write line error"文档进行修复。 如果是分布式作业有的节点有错误,有的节点正常,建议提工单请求隔离有问题的节点。 如果是触发了欧拉操作系统的限制,有如下建议措施。 分目录处理,减少单个目录文件量。 减慢创建文件的速度。 关闭ext4文件系统的dir_index属性,具体可参考:https://access.redhat.com/solutions/29894,(可能会影响文件检索性能)。
  • 原因分析 出现该问题的可能原因如下。 磁盘空间不足。 分布式作业时,有些节点的docker base size配置未生效,容器内“/”根目录空间未达到50GB,只有默认的10GB,导致作业训练失败。 实际存储空间足够,却依旧报错“No Space left on device”。 同一目录下创建较多文件,为了加快文件检索速度,内核会创建一个索引表,短时间内创建较多文件时,会导致索引表达到上限,进而报错。 触发条件和下面的因素有关: 文件名越长,文件数量的上限越小 blocksize越小,文件数量的上限越小。( blocksize,系统默认 4096B。总共有三种大小:1024B、2048B、4096B) 创建文件越快,越容易触发(机制大概是:有一个缓存,这块大小和上面的1和2有关,目录下文件数量比较大时会启动,使用方式是边用边释放)
  • 问题现象 在Notebook里保存镜像时报错“there are processes in 'D' status, please check process status using 'ps -aux' and kill all the 'D' status processes”。 在Notebook里保存镜像时报错“Buildimge,False,Error response from daemon: Cannot pause container xxx”。
  • 解决方法 在VS Code中使用命令方式进行远程连接时,增加参数"-o StrictHostKeyChecking=no" ssh -tt -o StrictHostKeyChecking=no -i ${IdentityFile} ${User}@${HostName} -p ${Port} 参数说明: - IdentityFile:本地密钥路径 - User:用户名,例如:ma-user - HostName:IP地址 - Port:端口号 在VS Code中手工配置远程连接时,在本地的ssh config文件中增加配置参数“StrictHostKeyChecking no”和“UserKnownHostsFile=/dev/null” Host xxx HostName x.x.x.x #IP地址 Port 22522 User ma-user IdentityFile C:/Users/my.pem StrictHostKeyChecking no UserKnownHostsFile=/dev/null ForwardAgent yes 提示:增加参数后SSH登录时会忽略known_hosts文件,有安全风险。
  • 原因分析 可以从以下角度排查: 请检查CUDA_VISIBLE_DEVI CES 设置的值是否与作业规格匹配。例如您选择4卡规格的作业,实际可用的卡ID为0、1、2、3,但是您在进行cuda相关的运算时,例如"tensor.to(device="cuda:7")",将张量搬到了7号GPU卡上,超过了实际可用的ID号。 如果cuda相关运算设置的卡ID号在所选规格范围内,但是依旧出现了上述报错。可能是该资源节点中存在GPU卡损坏的情况,导致实际能检测到的卡少于所选规格。
  • 处理方法 查看虚拟机所使用的存储空间,再查看回收站文件占用内存,根据实际删除回收站里不需要的大文件。 在Notebook实例详情页,查看实例的存储容量。 执行如下命令,排查虚拟机所使用的存储空间,一般接近存储容量,请排查回收站占用内存。 cd /home/ma-user/work du -h --max-depth 0 执行如下命令,排查回收站占用内存(回收站文件默认在/home/ma-user/work/.Trash-1000/files下)。 cd /home/ma-user/work/.Trash-1000/ du -ah 根据实际删除回收站不需要的大文件。(注:请谨慎操作,文件删除后不可恢复) rm {文件路径} 如果删除的文件夹或者文件中带有空格,需要给文件夹或文件加上单引号。如图示例: 执行如下命令,再次检查虚拟机所使用的存储空间。 cd /home/ma-user/work du -h --max-depth 0 如果Notebook实例的存储配置采用的是云硬盘EVS,可在Notebook详情页申请扩容磁盘。
  • 模型发布失败 模型发布任务提交失败和模型发布失败问题,一般是因为后台服务故障导致的,建议稍等片刻,然后重新创建训练作业。如果重试超过3次仍无法解决,请获取如下信息,并联系华为云技术支持协助解决故障。 获取模型ID。 进入“模型管理”页面,在模型管理页面找到自动学习任务中自动创建的模型,自动学习产生的模型都是以“exeML-”开头的。单击模型名称进入模型详情页面,在“基本信息”区域,获取“ID”的值。 图1 获取模型ID 获取模型事件信息。 进入模型详情页面后,单击“事件”页签,将事件信息表截图后反馈给技术支持人员。 图2 获取事件信息 父主题: 模型发布
  • 问题现象 用户创建模型时,构建镜像失败,失败日志中提示下载obs文件失败(Get object size from OBS failed!)。 图1 下载obs文件失败 用户创建模型时,事件提示:复制模型文件失败,请检查OBS权限是否正常(Failed to copy model file due to obs exception. Please Check your obs access right.)或用户%s没有OBS的obs:object:PutObjectAcl权限(User %s does not have obs:object:PutObjectAcl permission.)。 图2 复制模型文件失败
  • 处理方法 在Euler2.8操作系统,NetworkManagre-config-server是一个无用的软件包,无需安装 。执行以下命令卸载NetworkManagre-config-server,并重启NetworkManager服务,重新尝试SSH连接,验证网络是否恢复。 # 卸载 NetworkManagre-config-server rpm -e NetworkManager-config-server # 重启 NetworkManager 服务 systemctl restart NetworkManager
  • 原因分析 查看yum命令历史,发现执行了“yum update -y”,“yum update -y”命令是用于在Linux操作系统上更新软件包的命令。其中,选项-y表示在更新时自动确认所有提示信息,而不需要手动输入“y”确认。 请注意,使用此命令将会检查您系统中已安装的软件包并更新至最新版本。 图1 yum命令历史 查看NetworkManager配置: NetworkManager --print-config 配置内容如下: # NetworkManager configuration: /etc/NetworkManager/NetworkManager.conf (lib: 00-server.conf) [main] # plugins=ifcfg-rh,ibft # rc-manager=symlink # auth-polkit=true # dhcp=dhclient no-auto-default=* ignore-carrier=* [logging] # backend=journal # audit=false 发现“no-auto-default=*”是打开的状态,“no-auto-default=*”含义是关闭DH Client,无法使用DHCP获取IP。正常情况下裸金属服务器这个参数是被注释的状态。 当服务器有网卡配置文件, NetworkManager.service实现将VPC子网分配的私有IP写入网卡配置文件中。NetworkManager.service会优先读取网卡配置文件中的IP设置为主机IP, 此时无论DH Cient是否关闭,服务器都可以获取分配IP。 当服务器没有网卡配置文件时,DH Client开启,此时服务器会分配私有IP。如果关闭DH Client,则服务器无法获取私有IP。 图2 查看NetworkManager配置 图3 查看网络配置 命令“yum update -y”或“yum update NetworkManagre-config-server”,都会将NetworkManagre-config-server软件升级,高版本的NetworkManagre-config-server会将参数no-auto-default=*是打开的状态,又因当前镜像无网卡配置文件导致ip获取不到,从而使得SSH连接失败。
  • APIG.0201 请求体内容过大 请求体内容过大时,APIG(API网关)会拦截请求,报错“APIG.0201”:“Request entity too large”。请减少预测请求内容后重试。 当使用API调用地址预测时,请求体的大小限制是12MB,超过12MB时,请求会被拦截。 使用ModelArts console的预测页签进行的预测,由于console的网络链路的不同,要求请求体的大小不超过8MB。 图2 请求报错APIG.0201
  • APIG.0301 鉴权失败 通过API进行服务预测,或者使用Token进行APP认证,需要获取正确的Token鉴权,当Token不合法时,APIG(API网关)拦截请求,报错“APIG.0301”:“Incorrect IAM authentication information: decrypt token fail”。请获取正确的token填入X-Auth-Token,进行预测。如何 获取Token 请参考获取IAM用户Token。
  • APIG.0101 预测地址错误 当预测的地址有问题时,APIG(API网关)将拦截请求,报错“APIG.0101”:“The API does not exist or has not been published in the environment”,请到在线服务详情界面,“调用指南”页签中获取正确的API接口地址。 如果您在配置文件url中有定义路径,需要在API调用body体中调用路径后拼接自定义路径,例如:您定义url为“/predictions/poetry”,那么在API调用时路径为“{API接口地址}/predictions/poetry”。 图1 获取API接口地址
  • 解决方法 方法一(本地):打开命令面板(Windows: Ctrl+Shift+P,macOS:Cmd+Shift+P),搜索“Kill VS Code Server on Host”,选择出问题的实例进行自动清除,然后重新进行连接。 图1 清除异常的实例 方法二(远端):在VS Code的Terminal中删除“/home/ma-user/.vscode-server/bin/”下正在使用的文件,然后重新进行连接。 ssh -tt -o StrictHostKeyChecking=no -i ${IdentityFile} ${User}@${HostName} -p ${Port} rm -rf /home/ma-user/.vscode-server/bin/ 参数说明: - IdentityFile:本地密钥路径 - User:用户名,例如:ma-user - HostName:IP地址 - Port:端口号 vscode-server相关问题也可以使用上述的解决方法。
  • 解决方案 专属资源池的Ascend驱动版本需与训练基础镜像中的Cann软件版本匹配。 ModelArts上支持的Ascend驱动版本可以在ModelArts专属资源池(NEW)的列表页查看“加速卡驱动”获取。 Ascend驱动版本与Cann软件版本的兼容关系如下表所示: 表1 Ascend驱动版本与Cann软件版本的兼容关系 Ascend驱动版本 支持Cann软件版本 基础镜像 c81-22.0.0.3 5.1.0 mindspore_1.7.0-cann_5.1.0-py_3.7-euler_2.8.3-aarch64 tensorflow_1.15.0-cann_5.1.0-py_3.7-euler_2.8.3-aarch64 pytorch_1.8.1-cann_5.1.0-py_3.7-euler_2.8.3-aarch64
  • 处理方法 请您根据报错原因排查创建训练作业时指定的代码目录,即OBS桶的路径是否正确。有两种方法判断是否存在。 使用当前账户登录OBS管理控制台,去查找对应的OBS桶、文件夹、文件是否存在。 通过接口判断路径是否存在。在代码中执行如下命令,检查路径是否存在。 import moxing as mox mox.file.exists('obs://obs-test/ModelArts/examples/')
  • 原因分析及处理方法 服务预测报错ModelArts.4503有多种场景,常见场景如下: 通信出错 请求报错:{"error_code":"ModelArts.4503","error_msg":"Failed to respond due to backend service not found or failed to respond"} 基于高性能考虑,ModelArts会复用同模型服务的连接。根据tcp协议,连接的断开可以由该连接的client端发起,也可以由server端发起。断开连接需要经过四次握手,所以可能会存在作为服务端的模型服务侧发起断开连接,但是该连接正在被作为客户端的ModelArts使用,从而导致通信出错,返回此错误信息。 如果您使用的是自定义镜像导入的模型,请增大自定义镜像中所使用的web server的keep-alive的参数值,尽量避免由服务端发起关闭连接。如您使用的Gunicorn来作为web server,可以通过Gunicorn命令的--keep-alive参数来设置该值。其他方式导入的模型,服务内部已做处理。 协议错误 请求报错:{"error_code":"ModelArts.4503", "error_msg":"Failed to find backend service because SSL error in the backend service, please check the service is https"} 部署在线服务使用的模型是从容器镜像中导入时,容器调用接口协议填写错误,会导致此错误信息。 出于安全考虑,ModelArts提供的推理请求都是https请求,从容器镜像中选择导入模型时,ModelArts允许使用的镜像提供https或http服务,但必须在“容器调用接口”中明确指定该镜像使用的是https或http服务。如下图所示: 图1 容器调用接口 如果您在“容器调用接口”中选择的结果跟您镜像实际提供的结果不匹配,例如您在这里选择的是https,但镜像里面实际提供的是http,就会遇到上述错误。反之,如果您选择的是http,但镜像里面实际提供的是https,也会遇到类似错误。 您可以创建一个新的模型版本,选择正确的协议(http或者https),重新部署在线服务或更新已有在线服务。 请求预测时间过长 报错:{"error_code": "ModelArts.4503", "error_msg": "Backend service respond timeout, please confirm your service is able to process the request without timeout. "}及报错:{"error_code": "ModelArts.4503", "error_msg": "Failed to find backend service because response timed out, please confirm your service is able to process the request without timeout. "} 因APIG(API网关)限制,平台每次请求预测的时间不超过40秒。数据从平台发送到服务,服务预测推理,再将结果返回的时间不超过限制,可以成功返回预测结果。当服务预测的时间过长或者频繁预测导致服务接收不过来请求,即会出现该报错。 可以通过以下方式解决问题: 服务预测请求内容过大时,会因数据处理慢导致请求超时,优化预测代码,缩短预测时间。 推理速度与模型复杂度强相关,优化模型,缩短预测时间。 扩容实例数或者选择性能更好的“计算节点规格”,例如使用GPU资源代替CPU资源,提升服务处理能力。 服务出错 报错:{"error_code": "ModelArts.4503","error_msg": "Backend service respond timeout, please confirm your service is able to process the request without timeout. "} 服务日志输出: [2022-10-24 11:37:31 +0000] [897] [INFO] Booting worker with pid: 897 [2022-10-24 11:41:47 +0000] [1997] [INFO] Booting worker with pid: 1997 [2022-10-24 11:41:22 +0000] [1897] [INFO] Booting worker with pid: 1897 [2022-10-24 11:37:54 +0000] [997] [INFO] Booting worker with pid: 997 服务异常进程反复重启导致预测请求无法发送到服务实例。 可以通过以下方式解决问题: 缩小预测请求数量看是否问题还复现,如果不复现是因为负载过大导致服务进程退出,需要扩容实例数量或者提升规格。 推理代码本身存在错误,请排查推理代码解决。
  • 解决方案 打开MobaXterm,单击菜单栏“Settings”,如图1 打开“Settings”所示。 图1 打开“Settings” 在打开的“MobaXterm Configuration”配置页面,选择“SSH”选项卡,勾选“SSH keepalive”,如图2 勾选“SSH keepalive”所示。 图2 勾选“SSH keepalive” 如果使用的是专业版的MobaXterm工具,请执行步骤3。 如果使用的是专业版的MobaXterm工具,请参考图3 设置“Stop server after”,此参数默认值为360s,将其设置为3600s或更大值。 图3 设置“Stop server after”
  • 原因分析 出现该问题的可能原因如下。 磁盘空间不足。 分布式作业时,有些节点的docker base size配置未生效,容器内“/”根目录空间未达到50G,只有默认的10GB,导致作业训练失败。 实际存储空间足够,却依旧报错“No Space left on device”。 同一目录下创建较多文件,为了加快文件检索速度,内核会创建一个索引表,短时间内创建较多文件时,会导致索引表达到上限,进而报错。 触发条件和下面的因素有关: 文件名越长,文件数量的上限越小。 blocksize越小,文件数量的上限越小。( blocksize,系统默认 4096B。总共有三种大小:1024B、2048B、4096B) 创建文件越快,越容易触发。
  • 处理方法 可以参照日志提示"write line error"文档进行修复。 如果是分布式作业有的节点有错误,有的节点正常,建议提工单请求隔离有问题的节点。 如果是触发了欧拉操作系统的限制,有如下建议措施。 分目录处理,减少单个目录文件量。 减慢创建文件的速度。 关闭ext4文件系统的dir_index属性,具体可参考:https://access.redhat.com/solutions/29894,(可能会影响文件检索性能)。
  • 问题现象 训练作业的状态“运行失败”,查看训练作业的“日志”,存在NCCL的报错,例如“NCCL timeout”、“RuntimeError: NCCL communicator was aborted on rank 7”、“NCCL WARN Bootstrap : no socket interface found”或“NCCL INFO Call to connect returned Connection refused, retrying”。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全