华为云用户手册

  • Notebook实例出现“Server Connection Error”错误 在Terminal中执行命令时,出现错误如图1 报错信息截图所示,此问题可能由于CPU/GPU或显存等占满,可在JupyterLab界面下方查看内存使用情况,如图2所示。 此时Kernel会自动重启,存储在“/home/ma-user/work”目录下的数据会被保留,其他目录的数据均不会保留。 图1 报错信息截图 图2 查看内存使用情况 父主题: Notebook实例常见错误
  • 操作步骤 创建conda env。 在Notebook的Terminal中执行如下命令。其中,my-env是虚拟环境名称,用户可自定义。conda详细参数可参考conda官网。 conda create --quiet --yes -n my-env python=3.6.5 创建完成后,执行conda info --envs命令查看现有的虚拟环境列表,可以看到my-env虚拟环境: sh-4.4$conda info --envs # conda environments: # base * /home/ma-user/anaconda3 TensorFlow-2.1 /home/ma-user/anaconda3/envs/TensorFlow-2.1 my-env /home/ma-user/anaconda3/envs/my-env python-3.7.10 /home/ma-user/anaconda3/envs/python-3.7.10 /opt/conda/envs/my-env 执行如下命令进入conda env。 source /home/ma-user/anaconda3/bin/activate /home/ma-user/anaconda3/envs/my-env 执行如下命令在my env里安装如下依赖包。 pip install jupyter pip install jupyter_core==5.3.0 pip install jupyter_client==8.2.0 pip install ipython==8.10.0 pip install ipykernel==6.23.1 执行下述命令添加虚拟环境为IPython Kernel。 其中--name的值可自定义。 python3 -m ipykernel install --user --name "my-py3-tensorflow-env" 执行完毕后,可以看到下述提示信息。 (my-env) sh-4.4$python3 -m ipykernel install --user --name "my-py3-tensorflow-env" Installed kernelspec my-py3-tensorflow-env in /home/ma-user/.local/share/jupyter/kernels/my-py3-tensorflow-env 自定义虚拟环境Kernel的环境变量。 执行cat /home/ma-user/.local/share/jupyter/kernels/my-py3-tensorflow-env/kernel.json,可以看到默认配置如下: { "argv": [ "/home/ma-user/anaconda3/envs/my-env/bin/python3", "-m", "ipykernel_launcher", "-f", "{connection_file}" ], "display_name": "my-py3-tensorflow-env", "language": "python" } 按需添加env字段的值,可参考下述配置。其中,PATH中增加了该虚拟环境python包所在路径: { "argv": [ "/home/ma-user/anaconda3/envs/my-env/bin/python3", "-m", "ipykernel_launcher", "-f", "{connection_file}" ], "display_name": "my-py3-tensorflow-env", "language": "python", "env": { "PATH": "/home/ma-user/anaconda3/envs/my-env/bin:/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/ma-user/modelarts/ma-cli/bin", "http_proxy": "http://proxy-notebook.modelarts-dev-proxy.com:8083", "https_proxy": "http://proxy-notebook.modelarts-dev-proxy.com:8083", "ftp_proxy": "http://proxy-notebook.modelarts-dev-proxy.com:8083", "HTTP_PROXY": "http://proxy-notebook.modelarts-dev-proxy.com:8083", "HTTPS_PROXY": "http://proxy-notebook.modelarts-dev-proxy.com:8083", "FTP_PROXY": "http://proxy-notebook.modelarts-dev-proxy.com:8083" } } 进入虚拟环境的IPython Kernel。 刷新JupyterLab页面,可以看到自定义的虚拟环境Kernel。如下所示: 单击my-py3-tensorflow-env图标,验证是否为当前环境,如下所示: 清理环境。 删除虚拟环境的IPython Kernel。 jupyter kernelspec uninstall my-py3-tensorflow-env 删除虚拟环境。 conda env remove -n my-env
  • 预测分析对数据集的要求 训练数据: 训练数据列数一致,总数据量不少于100条不同数据(有一个特征取值不同,即视为不同数据)。 训练数据列内容不能有时间戳格式(如:yy-mm-dd、yyyy-mm-dd等)的数据。 如果某一列的取值只有一种,会被视为无效列。请确保标签列的取值至少有两个且无数据缺失。 标签列指的是在训练任务中被指定为训练目标的列,即最终通过该数据集训练得到模型时的输出(预测项)。 除标签列外数据集中至少还应包含两个有效特征列(列的取值至少有两个且数据缺失比例低于10%)。 当前由于特征筛选算法限制,预测数据列建议放在数据集最后一列,否则可能导致训练失败。
  • 图像分类对数据集的要求 文件名规范:不能有+、空格、制表符。 保证图片质量:不能有损坏的图片,目前支持的格式包括jpg、jpeg、bmp、png。 不要把明显不同的多个任务数据放在同一个数据集内。 每一类数据尽量多,尽量均衡。期望获得良好效果,图像分类项目中,至少有两种以上的分类,每种分类的样本不少于20张。 为了保证模型的预测准确度,训练样本跟真实使用场景尽量相似。 为保证模型的泛化能力,数据集尽量覆盖可能出现的各种场景。 在上传数据时,请选择非加密桶进行上传,否则会由于加密桶无法解密导致后期的训练失败。 用于训练的图片,至少有2种以上的分类,每种分类的图片数不少20张。
  • 物体检测对数据集的要求 文件名规范,不能有中文,不能有+、空格、制表符。 保证图片质量:不能有损坏的图片;目前支持的格式包括jpg、jpeg、bmp、png。 不要把明显不同的多个任务数据放在同一个数据集内。 为了保证模型的预测准确度,训练样本跟真实使用场景尽量相似。 为保证模型的泛化能力,数据集尽量覆盖可能出现的各种场景。 物体检测数据集中,如果标注框坐标超过图片,将无法识别该图片为已标注图片。 在上传数据时,请选择非加密桶进行上传,否则会由于加密桶无法解密导致后期的训练失败。 用于训练的图片,至少有1种以上的分类,每种分类的图片数不少50张。
  • 声音分类对数据集的要求 音频只支持16bit的WAV格式。支持WAV的所有子格式。 单条音频时长应大于1s,大小不能超过4MB。 适当增加训练数据,会提升模型的精度。声音分类建议每类音频至少20条,每类音频总时长至少5分钟。 建议训练数据和真实识别场景的声音保持一致并且每类的音频尽量覆盖真实环境的所有场景。 训练集的数据质量对于模型的精度有很大影响,建议训练集音频的采样率和采样精度保持一致。 标注质量对于最终的模型精度有极大的影响,标注过程中尽量不要出现误标情况。
  • 使用从OBS选择的数据创建表格数据集如何处理Schema信息? Schema信息表示表格的列名和对应类型,需要跟导入数据的列数保持一致。 若您的原始表格中已包含表头,需要开启“导入是否包含表头”开关,系统会导入文件的第一行(表头)作为列名,无需再手动修改Schema信息。 若您的原始表格中没有表头,需要关闭“导入是否包含表头”开关,从OBS选择数据后,Schema信息的列名默认为表格中的第一行数据,请更改Schema信息中的“列名”为attr_1、attr_2、……、attr_n,其中attr_n为最后一列,代表预测列。 父主题: 准备数据
  • 资源超分对Notebook实例有什么影响? Notebook超分,是指一个节点中CPU、内存共享的场景。为了充分利用资源,在专属池中存在超分情况。 举例:一个专属池中有1个8U64G的CPU节点,如创建2U8G规格的Notebook,因为超分最多可启动 8U/(2U*0.6)= 6.67个Notebook实例。这里的0.6就是超分比率。即启动该Notebook实例最少需要1.2U的CPU,运行Notebook时最大使用到2U的资源;内存同理,最少需要4.8G的内存,运行时最大使用到8U的内存。 超分情况下会存在实例终止的风险。如1个8U的节点上同时启动了6个2U的实例,如果其中一个实例CPU使用增大到超过节点的上限(8U)时,k8S会将使用资源最多的实例终止掉。 因此超分会带来实例重启的风险,请不要超分使用。 父主题: 更多功能咨询
  • 解决方案 打开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”
  • 自定义python包中如果引用model目录下的文件,文件路径怎么写 如果容器中的文件实际路径不清楚,可以使用Python获取当前文件路径的方法获取。 os.getcwd() #获取文件当前工作目录路径(绝对路径) os.path.realpath(__ file __) #获得文件所在的路径(绝对路径) 也可在搜索引擎寻找其他获取文件路径的方式,使用获取到的路径进行文件读写。 父主题: 编写训练代码
  • 问题现象 报错“Bad owner or permissions on C:\Users\Administrator/.ssh/config”或“Connection permission denied (publickey). Please make sure the key file is correctly selected and the file permission is correct. You can view the instance keypair information on ModelArts console.”
  • 解决方案 找到.ssh文件夹。一般位于“C:\Users”,例如“C:\Users\xxx”。 “C:\Users”目录下的文件名必须和Windows登录用户名完全一致。 右键单击.ssh文件夹,选择“属性”。然后单击“安全”页签。 单击“高级”,在弹出的高级安全设置界面单击“禁用继承”, 在弹出的“阻止继承”窗口单击“从此对象中删除所有继承的权限”。此时所有用户都将被删除。 添加所有者:在同一窗口中,单击“添加”,在弹出的新窗口中,单击“主体”后面的“选择主体”,弹出“选择用户,计算机,服务账户或组”窗口,单击“高级”,输入用户名, 单击“立即查找”按钮,显示用户搜索结果列表。 选择您的用户账户,然后单击“确定”(大约四个窗口)以关闭所有窗口。 图1 添加所有者 完成所有操作后,再次关闭并打开VS Code并尝试连接到远程SSH主机。备注:此时密钥需放到.ssh文件夹中。
  • 为什么资源充足还是在排队? 如果是公共资源池,一般是由于其他用户占用资源导致,请耐心等待或根据训练作业一直在等待中(排队)?方法降低排队时间。 如果是专属资源池,建议您进行以下排查: 排查专属资源池中是否存在其他作业(包括推理作业、训练作业、开发环境作业等)。 可通过总览页面,快速判断是否有其他模块的作业或实例在运行中,并进入到相关作业或实例上,判断是否使用了专属资源池。如判断相关作业或实例可停止,则可以停止,释放出更多的资源。 图1 总览 单击进入专属资源池详情页面,查看作业列表。 观察队头是否有其他作业在排队,如果已有作业在排队,则新建的作业需要继续等待。 图2 作业排队列表 如果通过排查计算,发现资源确实足够,则考虑可能由于资源碎片化导致的。 例如,集群共2个节点,每个节点都空闲了4张卡,总剩余卡数为8张卡,但用户的作业要求为1节点8张卡,因此无法调度上。 父主题: 一般性问题
  • Step3 在TMS中根据资源类型查询ModelArts资源使用情况 登录TMS控制台,在资源标签页面根据资源类型和资源标签查询指定区域的资源任务。 区域:使用华为云的具体Region,区域概念请参见什么是区域、可用区? 资源类型:ModelArts支持查询的资源类型如表1所示。 资源标签:不填写标签时,表示查询所有资源,无论此资源是否有配置标签。选择相应标签查询资源,用户可以通过多个标签组合查询资源使用情况。 表1 ModelArts的资源类型 资源类型 说明 ModelArts-Notebook ModelArts的开发环境Notebook对应的资源类型。 ModelArts-TrainingJob ModelArts的训练作业对应的资源类型。 ModelArts-RealtimeService ModelArts的推理在线服务对应的资源类型。 ModelArts-ResourcePool ModelArts的专属资源池对应的资源类型。 如您的组织已经设定ModelArts的相关标签策略,则需按照标签策略规则为资源添加标签。标签如果不符合标签策略的规则,则可能会导致资源创建失败,请联系组织管理员了解标签策略详情。
  • Step2 在ModelArts任务中添加标签 在ModelArts中创建Notebook、创建训练作业、创建推理在线服务时,对这些任务配置标签。 在ModelArts的Notebook中添加标签。 可以在创建Notebook页面添加标签,也可以在已经创建完成的Notebook详情页面的“标签”页签中添加标签。 在ModelArts的训练作业中添加标签。 可以在创建训练作业页面添加标签,也可以在已经创建完成的训练作业详情页面的“标签”页签中添加标签。 在ModelArts的在线服务中添加标签。 可以在创建在线服务页面添加标签,也可以在已经创建完成的在线服务详情页面的“标签”页签中添加标签。 在ModelArts的专属资源池中添加标签。 可以在创建弹性集群的时候添加标签,也可以在已经创建完成的资源池详情页面的“标签”页签中添加标签。 图1 添加标签 用户也可以在ModelArts任务中添加标签时,创建新的标签,直接输入标签键和标签值即可。此处创建的标签仅当前的项目Project可见。不同的项目中查看不到。
  • 配置了合理的服务部署超时时间,服务还是部署失败,无法启动 服务部署成功的标志是模型启动完成,如果没有配置健康检查,就无法检测到模型是否真实的启动。 在 自定义镜像 健康检查接口中,用户可以实现实际业务是否成功的检测。在创建AI应用时配置健康检查延迟时间,保证容器服务的初始化。 因此,推荐在创建AI应用时配置健康检查,并设置合理的延迟检测时间, 实现实际业务的是否成功的检测,确保服务部署成功。 父主题: 在线服务
  • 服务部署失败,报错ModelArts.3520,服务总数超限 部署服务时,ModelArts报错“ModelArts.3520: 在线服务总数超限,限制为20”,接口返回“A maximum of xxx real-time services are allowed.”,表示服务数量超限。 正常情况下,单个用户最多可创建20个在线服务。可采取以下方式处理: 删除状态为“异常”的服务。 删除长期不使用的服务。 因业务原因需申请更大配额,可提工单申请扩容。 父主题: 在线服务
  • AI Gallery的入口在哪里 控制台入口 登录ModelArts管理控制台。 在左侧导航栏中选择“AI Gallery”跳转到AI Gallery首页。 直接网址访问 旧版AI Gallery将下线,已不再更新,建议使用新版AI Gallery。 旧版AI Gallery地址:https://developer.huaweicloud.com/develop/aigallery/home.html 新版AI Gallery地址:https://pangu.huaweicloud.com/gallery/home.html 父主题: AI Gallery
  • 原因分析 本地挂载目录是在Notebook容器的“~/data”目录下创建的demo-yf文件夹,而JupyterLab左侧导航默认路径为“~/work”目录,相当于/data和/work是同一层级,所以在JupyterLab中看不到。 打开Terminal后,默认为~work目录,执行如下命令进入~data目录查看本地挂载路径: (PyTorch-1.8) [ma-user work]$cd (PyTorch-1.8) [ma-user ~]$cd /data (PyTorch-1.8) [ma-user data]$ls
  • 在Terminal中安装 在Terminal里激活需要的anaconda python环境后再进行安装。 例如,通过terminal在“TensorFlow-1.8”的环境中使用pip安装Shapely。 在总览页面进入CodeLab。 在“Other”区域下,选择“Terminal”,新建一个terminal文件。 在代码输入栏输入以下命令,获取当前环境的kernel,并激活需要安装依赖的python环境。 cat /home/ma-user/README source /home/ma-user/anaconda3/bin/activate TensorFlow-1.8 如果需要在其他python环境里安装,请将命令中“TensorFlow-1.8”替换为其他引擎。 在代码输入栏输入以下命令安装Shapely。 pip install Shapely
  • Jupyter可以安装插件吗? Jupyter可以安装插件。 目前jupyter插件多数采用wheel包的形式发布,一次性完成前后端插件的安装,安装时注意使用jupyter服务依赖的环境“/modelarts/authoring/notebook-conda/bin/pip”进行安装,不要使用默认的anaconda(kernel依赖的python环境)的pip进行安装。 使用命令jupyter labextension list --app-dir=/home/ma-user/.lab/console查询 前端插件安装目录为:/home/ma-user/.local/share/jupyter/labextensions 后端插件代码安装目录:/home/ma-user/.local/lib/python3.7/site-packages 配置文件目录:/home/ma-user/.jupyter/ 后端插件使用jupyter server extension list命令查询。 父主题: CodeLab
  • 部署服务如何选择计算节点规格? 部署服务时,用户需要指定节点规格进行服务部署,界面目前显示的节点规格是ModelArts根据用户的AI应用和资源池的节点规格计算得到,用户可以选择ModelArts提供的规格,也可以使用自定义规格(公共资源池不支持)。 计算节点规格主要是根据用户AI应用实际需要的资源进行选择,如AI应用正常运行需要3U10G的资源,那么需要选择大于3U10G的计算节点规格。确保服务能够部署成功正常运行。 图1 选择计算节点规格 规格的使用注意事项如下: 1、权限控制 通用的计算节点规格是未做权限控制的,如modelarts.vm.cpu.2u,只要资源池有资源,就可以选择使用。一些特殊的规格需要联系系统管理员增加权限。 2、公共资源池的规格无法选择 共享池的资源是有限的,显示置灰表示当前规格的资源已经被用完。请选择未置灰的规格,也可以创建自己的专属资源池。 3、自定义规格 只有在专属资源池部署服务时,支持自定义资源规格。公共资源池部署服务不支持。 图2 自定义规格 4、免费规格 只有公共资源池支持使用免费节点规格。免费规格有使用数量和使用时长的限制。目前仅在“华北-北京四”区域提供了免费规格。 父主题: 功能咨询
  • 开发环境中不同Notebook规格资源“/cache”目录的大小 创建Notebook时,可以根据业务数据量的大小选择资源。 ModelArts会挂载硬盘至“/cache”目录,用户可以使用此目录来储存临时文件。“/cache”与代码目录共用资源,不同资源规格有不同的容量。 映射规则:当前不支持CPU配置cache盘;GPU与昇腾资源为单卡时,cache目录保持500G大小限制;除单卡外,cache盘大小与卡数有关,计算方式为卡数*500G,上限为3T。详细表1所示。 表1 不同Notebook规格资源“/cache”目录的大小 规格类别 cache盘大小 GPU-0.25卡 500G*0.25 GPU-0.5卡 500G*0.5 GPU-单卡 500G GPU-双卡 500G*2 GPU-四卡 500G*4 GPU-八卡 3T 昇腾-单卡 500G 昇腾-双卡 500G*2 昇腾-四卡 500G*4 昇腾-八卡 3T CPU -- 父主题: 更多功能咨询
  • 数据集如何切分 在发布数据集时,仅“图像分类”、“物体检测”、“文本分类”和“声音分类”类型数据集支持进行数据切分功能。 一般默认不启用该功能。启用后,需设置对应的训练验证比例。 输入“训练集比例”,数值只能是0~1区间内的数。设置好“训练集比例”后,“验证集比例”自动填充。“训练集比例”加“验证集比例”等于1。 “训练集比例”即用于训练模型的样本数据比例;“验证集比例”即用于验证模型的样本数据比例。“训练验证比例”会影响训练模板的性能。 父主题: Standard数据管理
  • 原因分析 在线服务部署完成且服务处于运行中状态后,可以通过调用指南页签的调用地址对模型发起预测请求,出于安全考虑,ModelArts会通过相关的认证鉴权机制避免在线服务被无关人员非法调用。所以在预测请求的header信息中包含的是调用者的身份信息,在body部分是需要进行预测的内容。 header的部分需要按照华为云的相关机制进行认证,body部分需要根据模型的要求如前处理脚本的要求,如自定义镜像的要求进行输入。
  • 处理方法 Header: 在调用指南页签上最多可以获取到两个api地址,分别是支持 IAM /AKSK认证的地址以及支持APP认证的地址,对于支持不同认证方式的地址, 对header的组织也不同,具体如下: IAM/AKSK认证方式:需要在header的X-Auth-Token字段上填入该租户在该region的domain级别的token。具体指导参见连接:获取IAM用户Token。 APP认证的方式:APP认证方式又可以细分为AppCode认证和APP签名认证。 AppCode认证需要在header的X-Apig-AppCode字段上填入绑定给该在线服务的APP的AppCode。 APP签名认证需要在header的X-Sdk-Date和Authorization字段中填入通过sdk或者工具使用该在线服务绑定的APP的AppKey和AppSecret所生产的这两个字段的值,以完成对该请求的签名认证。具体指导参见链接:访问在线服务(APP认证)。 Body: body的组装和模型强相关,不同来源的模型body的组装方式不同。 模型为从容器镜像中导入的:需要按照自定义镜像的要求组织,请咨询该镜像的制作人。 模型为从对象存储(OBS)导入的:此时对body的要求会在推理代码中体现,具体在推理代码的_preprocess方法中,该方法将输入的http body转换成模型期望的输入,具体的指导可以查看文档:模型推理代码编写说明。 模型从AI Gallery中获取的:请查看AI Gallery中的调用说明或者咨询该模型的提供方。
  • 原因分析 在线服务启动后,ModelArts提供两种方式的预测: 方式1:在ModelArts的Console的预测页签进行预测; 方式2:在ModelArts的Console的调用指南页签获取到调用地址,然后通过cURL或者Postman等工具进行预测。 无论是方式1还是方式2,当推理请求发送出去后都有可能收到不符合预期的推理结果。 推理请求经过一系列传递后最终是会进入到模型服务中,模型服务可能是以自定义镜像的方式导入的,可能是因为模型服务在处理推理请求时候出现了问题导致结果不符合预期,能准确判断出来是否是在模型服务中出的问题对于快速解决问题帮助很大。
  • 建议与总结 鉴于模型服务有从 对象存储服务 (OBS)中导入,从容器镜像中导入,从AI Gallery中获取等多种途径,对于上述不同模型服务的来源所产生的常见问题及处理方法建议如下: 从容器镜像中导入:由于此种方式镜像为用户完全自定义的镜像,错误原因会因自定义镜像的不同而不同,建议查看模型日志确定错误原因。 从对象存储服务(OBS)中导入:如您收到的返回是MR系列错误码,如MR.0105,请查看在线服务详情页面的日志页签查看对应的错误日志。 从AI Gallery中获取:请咨询该模型在AI Gallery中的发布者。
  • 处理方法 不管是用方式1还是方式2,要判断是否是模型服务返回的不合预期的结果都需要获取到本次推理请求的response header及response body。 如果是方式1,可以通过浏览器的 开发者工具 获取到推理请求的response信息。以Chrome浏览器为例,可以使用快捷键F12打开开发者工具,然后选择“Network”页签,再单击“预测”,可以在Network页签窗口中看到本次推理请求的response信息如下图。 图1 推理请求的response信息 在name栏找到推理请求,其中推理请求的URL包含“/v1/infers”的关键字,可以在header栏中的url看到完整url,分别在Headers页签及Response页签中查看response的信息。 如果是方式2可以根据不同的工具查看response header及body信息,比如CURL命令可以通过-I选项查看response header。 如果查看到的response header中Server字段为ModelArts且response body中没有显示ModelArts.XXXX的错误码,此时收到的response信息为模型服务返回的response信息,如果不符合预期,可以判断为模型服务返回的结果不符合预期。
  • 服务预测请求体大小限制是多少? 服务部署完成且服务处于运行中后,可以往该服务发送推理的请求,请求的内容根据模型的不同可以是文本,图片,语音,视频等内容。 当使用调用指南页签中显示的调用地址(华为云APIG网关服务的地址)预测时,对请求体的大小限制是12MB,超过12MB时,请求会被拦截。 如果是从ModelArts console的预测页签进行的预测,由于console的网络链路的不同,此时要求请求体的大小不超过8MB。 因此,尽量避免请求体大小超限。如果有高并发的大流量推理请求,请提工单联系专业服务支持。 父主题: 功能咨询
共100000条