华为云用户手册

  • 处理方法 尽量代码里不要去修改CUDA_VISIBLE_DEVI CES 变量,用系统默认里面自带的。 如果必须指定卡ID,需要注意一下1/2/4规格下,指定的卡ID与实际分配的卡ID不匹配的情况。 如果上述方法还出现了错误,可以去notebook里面调试打印CUDA_VISIBLE_DEVICES变量,或者用以下代码测试一下,查看结果是否返回的是True。 import torch torch.cuda.is_available()
  • 在线服务的API接口组成规则是什么? AI应用部署成在线服务后,用户可以获取API接口用于访问推理。 API接口组成规则如下: https://域名/版本/infer/服务ID 示例如下: https://6ac81cdfac4f4a30be95xxxbb682.apig.xxx.xxx.com/v1/infers/468d146d-278a-4ca2-8830-0b6fb37d3b72 图1 API接口 父主题: 在线服务
  • 为什么资源充足还是在排队? 如果是公共资源池,一般是由于其他用户占用资源导致,请耐心等待或根据训练作业一直在等待中(排队)?方法降低排队时间。 如果是专属资源池,建议您进行以下排查: 排查专属资源池中是否存在其他作业(包括推理作业、训练作业、开发环境作业等)。 可通过总览页面,快速判断是否有其他模块的作业或实例在运行中,并进入到相关作业或实例上,判断是否使用了专属资源池。如判断相关作业或实例可停止,则可以停止,释放出更多的资源。 图1 总览 单击进入专属资源池详情页面,查看作业列表。 观察队头是否有其他作业在排队,如果已有作业在排队,则新建的作业需要继续等待。 图2 作业排队列表 如果通过排查计算,发现资源确实足够,则考虑可能由于资源碎片化导致的。 例如,集群共2个节点,每个节点都空闲了4张卡,总剩余卡数为8张卡,但用户的作业要求为1节点8张卡,因此无法调度上。 父主题: 一般性问题
  • 解决方法一 方法一:检查VS Code网络是否正常。在VS Code插件市场上搜索ModelArts-HuaweiCloud,若显示如下则网络异常,请切换代理或使用其他网络。 操作完成后再次执行搜索,若显示如下则网络正常,请回到ModelArts控制台界面再次单击界面上的“VS Code接入”按钮。 方法二:出现如下图报错,是由于VS Code版本过低,建议升级VS Code版本为1.57.1或者最新版。
  • 解决措施 一、Region等信息配置不正确 配置正确的Region、Projects、Endpoint信息。 例如:Endpoint配置不正确也会导致认证失败。 错误示例:Endpoint参数前面带了https,正确的配置中不需要有https。 图1 配置ToolKit 二、未配置hosts文件或者hosts文件信息配置不正确 在本地PC的hosts文件中配置域名和IP地址的对应关系。 三、网络代理设置 如果用户使用的网络有代理设置要求,请检查代理配置是否正确。也可以使用手机热点网络连接进行测试排查。 检查代理配置是否正确。 图2 PyCharm网络代理设置 四、AK/SK不正确 获取到的AK/SK信息不正确,请确认获取到正确的AK/SK信息再进行尝试,具体请参考创建访问密钥(AK和SK)。 五、电脑时间设置错误 请设置电脑时间为正确时间。
  • 服务部署失败,报错ModelArts.3520,服务总数超限 部署服务时,ModelArts报错“ModelArts.3520: 在线服务总数超限,限制为20”,接口返回“A maximum of xxx real-time services are allowed.”,表示服务数量超限。 正常情况下,单个用户最多可创建20个在线服务。可采取以下方式处理: 删除状态为“异常”的服务。 删除长期不使用的服务。 因业务原因需申请更大配额,可提工单申请扩容。 父主题: 在线服务
  • 原因分析 本地挂载目录是在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
  • 解决方法 在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文件,有安全风险。
  • 1个节点的专属资源池,能否部署多个服务? 支持。 在部署服务时,选择专属资源池,在选择“计算节点规格”时选择“自定义规格”,设置小一些或者选择小规格的服务节点规格,当资源池节点可以容纳多个服务节点规格时,就可以部署多个服务。如果使用此方式进行部署推理,选择的规格务必满足模型的要求,当设置的规格过小,无法满足模型的最小推理要求时,则会出现部署失败或预测失败的情况。 图1 设置自定义规格 父主题: 资源池
  • 增量训练的操作步骤 登录ModelArts管理控制台,单击左侧导航栏的自动学习。 在自动学习项目管理页面,单击对应的项目名称,进入此项目的自动学习详情页。 在数据标注页面,单击未标注页签,在此页面中,您可以单击添加图片,或者增删标签。 如果增加了图片,您需要对增加的图片进行重新标注。如果您增删标签,建议对所有的图片进行排查和重新标注。对已标注的数据, 也需要检查是否需要增加新的标签。 在图片都标注完成后,单击右上角“开始训练”,在“训练设置”中,在“增量训练版本”中选择之前已完成的训练版本,在此版本基础上进行增量训练。其他参数请根据界面提示填写。 设置完成后,单击“确定”,即进行增量训练。系统将自动跳转至“模型训练”页面,待训练完成后,您可以在此页面中查看训练详情,如“训练精度”、“评估结果”、“训练参数”等。 图1 选择增量训练版本
  • 在线服务预测时,如何提高预测速度? 部署在线服务时,您可以选择性能更好的“计算节点规格”提高预测速度。例如使用GPU资源代替CPU资源。 部署在线服务时,您可以增加“计算节点个数”。 如果节点个数设置为1,表示后台的计算模式是单机模式;如果节点个数设置大于1,表示后台的计算模式为分布式的。您可以根据实际需求进行选择。 推理速度与模型复杂度强相关,您可以尝试优化模型提高预测速度。 ModelArts中提供了模型版本管理的功能,方便溯源和模型反复调优。 图1 部署在线服务 父主题: 在线服务
  • 建议与总结 鉴于模型服务有从 对象存储服务 (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信息,如果不符合预期,可以判断为模型服务返回的结果不符合预期。
  • 原因分析 在线服务启动后,ModelArts提供两种方式的预测: 方式1:在ModelArts的Console的预测页签进行预测; 方式2:在ModelArts的Console的调用指南页签获取到调用地址,然后通过cURL或者Postman等工具进行预测。 无论是方式1还是方式2,当推理请求发送出去后都有可能收到不符合预期的推理结果。 推理请求经过一系列传递后最终是会进入到模型服务中,模型服务可能是以自定义镜像的方式导入的,可能是因为模型服务在处理推理请求时候出现了问题导致结果不符合预期,能准确判断出来是否是在模型服务中出的问题对于快速解决问题帮助很大。
  • 使用python命令 执行nvidia-ml-py3命令(常用)。 !pip install nvidia-ml-py3 import nvidia_smi nvidia_smi.nvmlInit() deviceCount = nvidia_smi.nvmlDeviceGetCount() for i in range(deviceCount): handle = nvidia_smi.nvmlDeviceGetHandleByIndex(i) util = nvidia_smi.nvmlDeviceGetUtilizationRates(handle) mem = nvidia_smi.nvmlDeviceGetMemoryInfo(handle) print(f"|Device {i}| Mem Free: {mem.free/1024**2:5.2f}MB / {mem.total/1024**2:5.2f}MB | gpu-util: {util.gpu:3.1%} | gpu-mem: {util.memory:3.1%} |") 执行nvidia_smi + wapper + prettytable命令。 用户可以将GPU信息显示操作看作一个装饰器,在模型训练过程中就可以实时的显示GPU状态信息。 def gputil_decorator(func): def wrapper(*args, **kwargs): import nvidia_smi import prettytable as pt try: table = pt.PrettyTable(['Devices','Mem Free','GPU-util','GPU-mem']) nvidia_smi.nvmlInit() deviceCount = nvidia_smi.nvmlDeviceGetCount() for i in range(deviceCount): handle = nvidia_smi.nvmlDeviceGetHandleByIndex(i) res = nvidia_smi.nvmlDeviceGetUtilizationRates(handle) mem = nvidia_smi.nvmlDeviceGetMemoryInfo(handle) table.add_row([i, f"{mem.free/1024**2:5.2f}MB/{mem.total/1024**2:5.2f}MB", f"{res.gpu:3.1%}", f"{res.memory:3.1%}"]) except nvidia_smi.NVMLError as error: print(error) print(table) return func(*args, **kwargs) return wrapper 执行pynvml命令。 nvidia-ml-py3可以直接查询nvml c-lib库,而无需通过nvidia-smi。因此,这个模块比nvidia-smi周围的包装器快得多。 from pynvml import * nvmlInit() handle = nvmlDeviceGetHandleByIndex(0) info = nvmlDeviceGetMemoryInfo(handle) print("Total memory:", info.total) print("Free memory:", info.free) print("Used memory:", info.used) 执行gputil命令。 !pip install gputil import GPUtil as GPU GPU.showUtilization() import GPUtil as GPU GPUs = GPU.getGPUs() for gpu in GPUs: print("GPU RAM Free: {0:.0f}MB | Used: {1:.0f}MB | Util {2:3.0f}% | Total {3:.0f}MB".format(gpu.memoryFree, gpu.memoryUsed, gpu.memoryUtil*100, gpu.memoryTotal)) 注:用户在使用pytorch/tensorflow等深度学习框架时也可以使用框架自带的api进行查询。
  • 训练作业的启动文件如何获取训练作业中的参数? 训练作业参数有两种来源,包括后台自动生成的参数和用户手动输入的参数。具体获取方式如下: 创建训练作业时,“输入”支持配置训练的输入参数名称(一般设置为“data_url”),以及输入数据的存储位置,“输出”支持配置训练的输出参数名称(一般设置为“train_url”),以及输出数据的存储位置。 训练作业运行成功之后,在训练作业列表中,您可以单击作业名称,查看该作业的详情。可从日志中获取参数的传入方式,如图1所示。 图1 查看日志 如果需在训练中获取“train_url”、“data_url”和“test”参数的值,可在训练作业的启动文件中添加以下代码获取: import argparse parser = argparse.ArgumentParser() parser.add_argument('--data_url', type=str, default=None, help='test') parser.add_argument('--train_url', type=str, default=None, help='test') parser.add_argument('--test', type=str, default=None, help='test') 父主题: 编写训练代码
  • 解决方法 方法一(本地):打开命令面板(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相关问题也可以使用上述的解决方法。
  • 解决方案 打开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”
  • 背景说明 针对ModelArts中的数据集,在创建数据集时,需指定“数据集输入位置”和“数据集输出位置”。两个参数填写的均是OBS路径。 “数据集输入位置”即原始数据存储的OBS路径。 “数据集输出位置”,指在ModelArts完成数据标注后,执行数据集发布操作后,在此指定路径下,按数据集版本,生成相关目录。包含ModelArts中使用的Manifest文件(包含数据及标注信息)。详细文件说明可参见数据集发布后,相关文件的目录结构说明。
  • 新旧版Notebook使用存储差异说明 表1 新版旧版Notebook支持的存储配置说明 存储类型 旧版Notebook 新版Notebook 说明 OBS对象存储服务 支持 不支持 OBS为存储系统,而非文件系统。 在旧版Notebook使用过程中,OBS数据的远程复制以及本地复制容易混淆,造成用户对数据操作难以控制。因此,在新版Notebook中去掉了挂载OBS能力,用户可以通过代码操作OBS数据,灵活的获取和操作数据。 OBS并行文件系统 不支持 支持 新版Notebook提供了动态挂载OBS并行文件系统能力,用户在启动的Notebook详情页面中,可以添加数据存储。不涉及新旧版Notebook间的数据迁移。 云硬盘EVS 支持 支持 新旧版Notebook均支持使用,需要迁移保存旧版Notebook中的数据。 弹性文件服务SFS 不支持 支持 在专属资源池场景下使用。旧版Notebook中该功能已经下线,不涉及迁移。
  • 旧版Notebook使用EVS存储 旧版Notebook使用的是云硬盘EVS存储,建议将EVS中的数据保存并迁移,在新版Notebook中使用。 EVS存储中数据量较少:建议将数据下载到本地,创建新版Notebook后再上传。 EVS存储中数据量较大:建议将EVS中的数据上传至OBS桶中保存。创建新版Notebook时,通过OBS桶读取数据使用。 Notebook中的数据上传下载的具体操作请参见: Notebook中的数据上传下载。
  • 开发环境Notebook 开发环境的Notebook,根据不同的工作环境,对应支持的镜像和版本有所不同。 表3 新版Notebook支持的镜像 镜像名称 镜像描述 适配芯片 支持SSH远程开发访问 支持在线JupyterLab访问 pytorch1.8-cuda10.2-cudnn7-ubuntu18.04 CPU、GPU通用算法开发和训练基础镜像,预置AI引擎PyTorch1.8 CPU/GPU 是 是 mindspore1.7.0-cuda10.1-py3.7-ubuntu18.04 CPU and GPU general algorithm development and training, preconfigured with AI engine MindSpore1.7.0 and cuda 10.1 CPU/GPU 是 是 mindspore1.7.0-py3.7-ubuntu18.04 CPU general algorithm development and training, preconfigured with AI engine MindSpore1.7.0 CPU 是 是 pytorch1.10-cuda10.2-cudnn7-ubuntu18.04 CPU and GPU general algorithm development and training, preconfigured with AI engine PyTorch1.10 and cuda10.2 CPU/GPU 是 是 tensorflow2.1-cuda10.1-cudnn7-ubuntu18.04 CPU、GPU通用算法开发和训练基础镜像,预置AI引擎TensorFlow2.1 CPU/GPU 是 是 tensorflow1.13-cuda10.0-cudnn7-ubuntu18.04 GPU通用算法开发和训练基础镜像,预置AI引擎TensorFlow1.13.1 GPU 是 是 conda3-ubuntu18.04 Clean user customized base image only include conda CPU 是 是 pytorch1.4-cuda10.1-cudnn7-ubuntu18.04 CPU、GPU通用算法开发和训练基础镜像,预置AI引擎PyTorch1.4 CPU/GPU 是 是 conda3-cuda10.2-cudnn7-ubuntu18.04 Clean user customized base image include cuda10.2, conda CPU 是 是 tensorflow1.15-mindspore1.7.0-cann5.1.0-euler2.8-aarch64 Ascend+ARM算法开发和训练基础镜像,AI引擎预置TensorFlow和MindSpore Ascend 是 是 modelbox1.3.0-tensorrt7.1.3-cuda10.2-cudnn8-euler2.9.6 AI应用开发基础镜像,预置AI应用编排引擎ModelBox、AI引擎TensorRT,仅支持SSH连接 GPU 是 否 modelbox1.3.0-libtorch1.9.1-cuda10.2-cudnn8-euler2.9.6 AI应用开发基础镜像,预置AI应用编排引擎ModelBox、AI引擎LibTorch,仅支持SSH连接 GPU 是 否 spark2.4.5-ubuntu18.04 CPU algorithm development and training, prebuilt PySpark 2.4.5 and is able to attach to preconfigured spark cluster including MRS and DLI . CPU 否 是 mlstudio-pyspark2.3.2-ubuntu16.04 CPU算法开发和训练基础镜像,包含可以图形化机器学习算法开发和调测MLStudio工具,并预置PySpark2.3.2 CPU 否 是 mindspore_1.10.0-cann_6.0.1-py_3.7-euler_2.8.3 Ascend+ARM algorithm development and training. MindSpore is preset in the AI engine. Ascend 是 是 mindspore_1.9.0-cann_6.0.0-py_3.7-euler_2.8.3 Ascend+ARM algorithm development and training. MindSpore is preset in the AI engine. Ascend 是 是 mindspore1.7.0-cann5.1.0-py3.7-euler2.8.3 Ascend+ARM算法开发和训练基础镜像,AI引擎预置MindSpore Ascend 是 是 tensorflow1.15-cann5.1.0-py3.7-euler2.8.3 Ascend+ARM算法开发和训练基础镜像,AI引擎预置TensorFlow Ascend 是 是 mlstudio-pyspark2.4.5-ubuntu18.04 CPU算法开发和训练基础镜像,包含可以图形化机器学习算法开发和调测MLStudio工具,并预置PySpark2.4.5 CPU 否 是 mindspore1.2.0-cuda10.1-cudnn7-ubuntu18.04 GPU算法开发和训练基础镜像,预置AI引擎MindSpore-GPU GPU 是 是 rlstudio1.0.0-ray1.3.0-cuda10.1-ubuntu18.04 CPU、GPU强化学习算法开发和训练基础镜像,预置AI引擎 CPU/GPU 是 是 mindquantum0.9.0-mindspore2.0.0-cuda11.6-ubuntu20.04 MindSpore2.0.0 and MindQuantum0.9.0 CPU 是 是 mindspore1.2.0-openmpi2.1.1-ubuntu18.04 CPU算法开发和训练基础镜像,预置AI引擎MindSpore-CPU CPU 是 是 cylp0.91.4-cbcpy2.10-ortools9.0-cplex20.1.0-ubuntu18.04 CPU运筹优化求解器开发基础镜像,预置cylp,cbcpy,ortools及cplex CPU 是 是
  • 统一镜像列表 ModelArts提供了ARM+Ascend规格的统一镜像,包括MindSpore、PyTorch。适用于开发环境,模型训练,服务部署,请参考统一镜像列表。表1、表2所示镜像仅发布在西南-贵阳一区域。 表1 MindSpore 预置镜像 适配芯片 适用范围 mindspore_2.2.0-cann_7.0.1-py_3.9-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 mindspore_2.1.0-cann_6.3.2-py_3.7-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 mindspore_2.2.10-cann_7.0.0-py_3.9-hce_2.0.2312-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 表2 PyTorch 预置镜像 适配芯片 适用范围 pytorch_1.11.0-cann_6.3.2-py_3.7-euler_2.10.7-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 pytorch_2.1.0-cann_7.0.0-py_3.9-hce_2.0.2312-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署 pytorch_1.11.0-cann_7.0.0-py_3.9-hce_2.0.2312-aarch64-snt9b Ascend snt9b Notebook、训练、推理部署
  • 自定义python包中如果引用model目录下的文件,文件路径怎么写 如果容器中的文件实际路径不清楚,可以使用Python获取当前文件路径的方法获取。 os.getcwd() #获取文件当前工作目录路径(绝对路径) os.path.realpath(__ file __) #获得文件所在的路径(绝对路径) 也可在搜索引擎寻找其他获取文件路径的方式,使用获取到的路径进行文件读写。 父主题: 编写训练代码
  • 解决方法 手动安装vscode-server。 获取VS Code的commitID 下载相应版本vscode-server压缩包,请根据开发环境cpu架构选择arm版本或x86版本。 替换下面链接中${commitID}为步骤1 获取VS Code的commitID中commitID。 arm版本,下载vscode-server-linux-arm64.tar.gz https://update.code.visualstudio.com/commit:${commitID}/server-linux-arm64/stable x86版本,下载vscode-server-linux-x64.tar.gz https://update.code.visualstudio.com/commit:${commitID}/server-linux-x64/stable 进入远程环境。 打开VS Code中的Terminal。 在VS Code的Terminal中执行如下命令,连接到远端开发环境。 ssh -tt -o StrictHostKeyChecking=no -i ${IdentityFile} ${User}@${HostName} -p ${Port} 参数说明: - IdentityFile:本地密钥路径 - User:用户名,例如:ma-user - HostName:IP地址 - Port:端口号 手动安装vscode-server。 在VS Code的Terminal中执行如下命令,清空残留的vscode-server,注意替换命令中${commitID}为步骤1 获取VS Code的commitID中commitID。 rm -rf /home/ma-user/.vscode-server/bin/${commitID}/* mkdir -p /home/ma-user/.vscode-server/bin/${commitID} 上传vscode-server压缩包到开发环境。执行如下命令: exit scp -i xxx.pem -P 31205 本地vscode-server压缩包路径 ma-user@xxx:/home/ma-user/.vscode-server/bin ssh -tt -o StrictHostKeyChecking=no -i ${IdentityFile} ${User}@${HostName} -p ${Port} 参数说明: - IdentityFile:本地密钥路径 - User:用户名,例如:ma-user - HostName:IP地址 - Port:端口号 以arm版本为例,将vscode-server压缩包解压至$HOME/.vscode-server/bin文件夹,注意替换命令中${commitID}为步骤1 获取VS Code的commitID中commitID。 cd /home/ma-user/.vscode-server/bin tar -zxf vscode-server-linux-arm64.tar.gz mv vscode-server-linux-arm64/* ${commitID} 重新远程连接。
  • 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使用对象存储服务(Object Storage Service,简称OBS)存储数据和模型,实现安全、高可靠和低成本的存储需求。OBS的更多信息请参见《对象存储服务控制台指南》。 表1 ModelArts各环节与OBS的关系 功能 子任务 ModelArts与OBS的关系 自动学习 数据标注 ModelArts标注的数据存储在OBS中。 自动训练 训练作业结束后,其生成的模型存储在OBS中。 部署上线 ModelArts将存储在OBS中的模型部署上线为在线服务。 AI全流程开发 数据管理 数据集存储在OBS中。 数据集的标注信息存储在OBS中。 支持从OBS中导入数据。 开发环境 Notebook实例中的数据或代码文件存储在OBS中。 训练模型 训练作业使用的数据集存储在OBS中。 训练作业的运行脚本存储在OBS中。 训练作业输出的模型存储在指定的OBS中。 训练作业的过程日志存储在指定的OBS中。 AI应用管理 训练作业结束后,其生成的模型存储在OBS中,创建AI应用时,从OBS中导入已有的模型文件。 部署上线 将存储在OBS中的模型部署上线。 全局配置 - 获取访问授权(使用委托或访问密钥授权),以便ModelArts可以使用OBS存储数据、创建Notebook等操作。
  • 在Terminal中安装 例如,通过terminal在“TensorFlow-1.8”的环境中使用pip安装Shapely。 打开一个Notebook实例,进入到Launcher界面。 在“Other”区域下,选择“Terminal”,新建一个terminal文件。 在代码输入栏输入以下命令,获取当前环境的kernel,并激活需要安装依赖的python环境。 cat /home/ma-user/README source /home/ma-user/anaconda3/bin/activate TensorFlow-1.8 如果需要在其他python环境里安装,请将命令中“TensorFlow-1.8”替换为其他引擎。 图1 激活环境 在代码输入栏输入以下命令安装Shapely。 pip install Shapely
  • 如何安装C++的依赖库? 在训练作业的过程中,会使用到第三方库。以C++为例,请参考如下操作步骤进行安装: 将源码下载至本地并上传到OBS。使用OBS客户端上传文件的操作请参见上传文件。 将上传到OBS的源码使用Moxing复制到开发环境Notebook中。 以下为使用EVS挂载的开发环境,将数据复制至notebook中的代码示例: import moxing as mox mox.file.make_dirs('/home/ma-user/work/data') mox.file.copy_parallel('obs://bucket-name/data', '/home/ma-user/work/data') 在Jupyter页面的“Files”页签下,单击“New”,打开“Terminal”。执行如下命令进入目标路径,确认源码已下载,即“data”文件是否存在。 cd /home/ma-user/work ls 在“Terminal”环境进行编译,具体编译方式请您根据业务需求进行。 将编译结果使用Moxing复制至OBS中 。代码示例如下: import moxing as mox mox.file.make_dirs('/home/ma-user/work/data') mox.file.copy_parallel('/home/ma-user/work/data', 'obs://bucket-name/file) 在训练时,将OBS中的编译结果使用Moxing复制到容器中使用。代码示例如下: import moxing as mox mox.file.make_dirs('/cache/data') mox.file.copy_parallel('obs://bucket-name/data', '/cache/data') 父主题: 编写训练代码
  • 解决方法 若当前环境未安装OpenSSH,请下载并安装OpenSSH。 当通过“可选功能”未能成功安装时,请手动下载OpenSSH安装包,然后执行以下步骤: 下载zip包并解压放入“C:\Windows\System32”。 以管理员身份打开CMD,在“C:\Windows\System32\OpenSSH-xx”目录下,执行以下命令: powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1 添加环境变量:将“C:\Program Files\OpenSSH-xx”(路径中包含ssh可执行exe文件)添加到环境系统变量中。 重新打开CMD,并执行ssh,结果如下图即说明安装成功,如果还未装成功则执行5和6。 OpenSSH默认端口为22端口,开启防火墙22端口号,在CMD执行以下命令: netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22 启动OpenSSH服务,在CMD执行以下命令: Start-Service sshd 若OpenSSH未安装在默认路径下,打开命令面板(Windows: Ctrl+Shift+P,macOS:Cmd+Shift+P), 搜索“Open settings”。 然后将remote.SSH.path属性添加到settings.json中,例如:"remote.SSH.path": "本地OpenSSH的安装路径"
共100000条