云服务器内容精选

  • 步骤三:创建OBS桶并上传文件 将上一步中的数据和代码文件、推理代码文件与推理配置文件,从本地上传到OBS桶中。在ModelArts上运行训练作业时,需要从OBS桶中读取数据和代码文件。 登录OBS管理控制台,按照如下示例创建OBS桶和文件夹。 创建的OBS桶所在区域和后续使用ModelArts必须在同一个区域Region,否则会导致训练时找不到OBS桶。具体操作可参见查看OBS桶与ModelArts是否在同一区域。 创建OBS桶时,桶的存储类别请勿选择“归档存储”,归档存储的OBS桶会导致模型训练失败。 OBS桶路径和文件夹命名要求如下: {OBS桶}:OBS对象桶,用户可以自定义名称,例如:test-modelarts-xx {OBS文件夹}:OBS文件夹,自定义名称,此处举例为pytorch - mnist-data:OBS文件夹,用于存放训练数据集,可以自定义名称,此处举例为mnist-data - mnist-code:OBS文件夹,用于存放训练脚本train.py,可以自定义名称,此处举例为mnist-code - infer:OBS文件夹,用于存放推理脚本customize_service.py和配置文件config.json - mnist-output :OBS文件夹,用于存放训练输出模型,可以自定义名称,此处举例为mnist-output 上传Step1 准备训练数据中下载的MNIST数据集压缩包文件到OBS的“mnist-data”文件夹中。 上传数据到OBS中时,请不要加密,否则会导致训练失败。 文件无需解压,直接上传压缩包至OBS中即可。 上传训练脚本“train.py”到“mnist-code”文件夹中。 上传推理脚本“customize_service.py”和推理配置文件“config.json”到“mnist-code”的“infer”文件中。
  • 步骤六 预测结果 在“在线服务”页面,单击在线服务名称,进入服务详情页面。 单击“预测”页签,请求类型选择“multipart/form-data”,请求参数填写“image”,单击“上传”按钮上传示例图片,然后单击“预测”。 预测完成后,预测结果显示区域将展示预测结果,根据预测结果内容,可识别出此图片的数字是“2”。 本案例中使用的MNIST是比较简单的用做demo的数据集,配套算法也是比较简单的用于教学的神经网络算法。这样的数据和算法生成的模型仅适用于教学模式,并不能应对复杂的预测场景。即生成的模型对预测图片有一定范围和要求,预测图片必须和训练集中的图片相似(黑底白字)才可能预测准确。 图8 示例图片 图9 预测结果展示
  • 步骤一:准备训练数据 本案例使用的数据是MNIST数据集,您可以在浏览器中搜索“MNIST数据集”下载如图3所示的4个文件。 图3 MNIST数据集 “train-images-idx3-ubyte.gz”:训练集的压缩包文件,共包含60000个样本。 “train-labels-idx1-ubyte.gz”:训练集标签的压缩包文件,共包含60000个样本的类别标签。 “t10k-images-idx3-ubyte.gz”:验证集的压缩包文件,共包含10000个样本。 “t10k-labels-idx1-ubyte.gz”:验证集标签的压缩包文件,共包含10000个样本的类别标签。 以上数据样例仅供参考。
  • 操作流程 开始使用如下样例前,请务必按准备工作指导完成必要操作。 步骤一:准备训练数据:下载MNIST数据集。 步骤二:准备训练文件和推理文件:编写训练与推理代码。 步骤三:创建OBS桶并上传文件:创建OBS桶和文件夹,并将数据集和训练脚本,推理脚本,推理配置文件上传到OBS中。 步骤四:创建训练作业:进行模型训练。 步骤五:推理部署:训练结束后,将生成的模型导入ModelArts用于创建AI应用,并将AI应用部署为在线服务。 步骤六 预测结果:上传一张手写数字图片,发起预测请求获取预测结果。 后续操作:清除资源:运行完成后,停止服务并删除OBS中的数据,避免不必要的扣费。
  • 准备工作 已 注册华为账号 并开通华为云,且在使用ModelArts前检查账号状态,账号不能处于欠费或冻结状态。 配置委托访问授权 ModelArts使用过程中涉及到OBS、SWR、IEF等服务交互,首次使用ModelArts需要用户配置委托授权,允许访问这些依赖服务。 使用华为云账号登录ModelArts管理控制台,在左侧导航栏单击“权限管理”,进入“权限管理”页面,单击“添加授权”。 在弹出的“添加授权”窗口中,选择: 授权对象类型:所有用户 委托选择:新增委托 权限配置:普通用户 选择完成后勾选“我已经详细阅读并同意《ModelArts服务声明》”,然后单击“创建”。 图1 配置委托访问授权 完成配置后,在ModelArts控制台的权限管理列表,可查看到此账号的委托配置信息。 图2 查看委托配置信息
  • 步骤3:部署模型服务 “llama3.1”模型创建成功后,在我的模型列表,单击操作列的“部署”,进入部署模型服务页面。 在部署模型服务页面,完成创建配置。 图5 资源设置 表2 部署模型服务 参数 说明 取值样例 服务设置 服务名称 自定义模型服务的名称。 service-llama3 描述 部署模型服务的简介。 - 模型设置 部署模型 当从“我的模型”进入部署模型服务页面时,此处默认呈现选择的模型。 llama3.1 资源设置 资源池类型 资源池分为公共资源池与专属资源池。 公共资源池供所有租户共享使用。 专属资源池需单独创建,不与其他租户共享。 公共资源池 实例规格 选择实例规格,规格中描述了服务器类型、型号等信息。 xxx 单实例流量限制(QPS) 设置待部署模型的单实例流量限制QPS。 3 实例数 设置服务器个数。增加实例个数可提高总QPS,“总QPS = 单实例QPS x 实例数”。 1 更多选项 事件通知 选择是否打开“事件通知”开关。 开关关闭(默认关闭):表示不启用 消息通知 服务。 开关打开:表示订阅消息通知服务,当任务发生特定事件(如任务状态变化或疑似卡死)时会发送通知。此时必须配置“主题名”和“事件”。 “主题名”:事件通知的主题名称。单击“创建主题”,前往消息通知服务中创建主题。 “事件”:选择要订阅的事件类型。例如“创建中”、“已完成”、“运行失败”等。 关闭 自动停止 当使用付费资源时,可以选择是否打开“自动停止”开关。 开关关闭(默认关闭):表示任务将一直运行。 开关打开:表示启用自动停止功能,此时必须配置自动停止时间,支持设置为“1小时”、“2小时”、“4小时”、6小时或“自定义”。启用该参数并设置时间后,运行时长到期后将会自动终止任务,准备排队等状态不扣除运行时长。 关闭 参数配置完成后,单击“提交”,创建部署任务。 在任务列表,当模型“状态”变成“运行中”时,表示模型部署完成。
  • 准备工作 已注册华为账号并开通华为云,且在使用ModelArts前检查账号状态,账号不能处于欠费或冻结状态。 配置委托访问授权 ModelArts使用过程中涉及到与OBS、SWR等服务交互,首次使用ModelArts需要用户配置委托授权,允许访问这些依赖服务。 使用华为云账号登录ModelArts管理控制台,在左侧导航栏单击“权限管理”,进入“权限管理”页面,单击“添加授权”。 在弹出的“访问授权”窗口中, 授权对象类型:所有用户(或根据实际情况配置) 委托选择:新增委托 权限配置:普通用户 选择完成后勾选“我已经详细阅读并同意《ModelArts服务声明》”,然后单击“创建”。 图1 配置委托访问授权 完成配置后,在ModelArts控制台的权限管理列表,可查看到此账号的委托配置信息。 图2 查看委托配置信息
  • 步骤1:创建我的模型 登录ModelArts管理控制台。 在左侧导航栏中,选择“ModelArts Studio”进入ModelArts Studio大模型即服务平台。 在ModelArts Studio左侧导航栏中,选择“模型广场”进入模型广场。 在模型广场搜索“Llama3.1-8B”,单击“立即使用”进入模型详情页。 在模型详情页,单击“创建模型”弹出创建模型页面。 在创建模型页面,配置参数。 图3 创建模型 表1 创建模型 参数 说明 取值样例 来源模型 当从“模型广场”进入创建模型页面时,此处默认呈现选择的模型。 Llama3.1-8B 模型名称 自定义模型名称。 llama3.1 描述 模型简介。 - 权重设置与词表 默认选择“使用推荐权重”,支持选择“自定义权重”。 使用平台推荐的权重文件,可提高模型的训练、压缩、部署和调优等服务的使用效率。 权重文件指的是模型的参数集合。 使用推荐权重 参数配置完成后,单击“创建”,创建自定义模型。 在模型列表,单击模型名称可以进入详情页查看模型详细信息和任务。 当模型“状态”变成“创建成功”时,表示模型创建完成。 图4 查看我的模型状态
  • ModelArts入门实践 本章节列举了一些常用的实践案例,方便您快速了解并使用ModelArts完成AI开发。 表1 常用最佳实践 分类 实践案例 描述 适用人群 ModelArts Studio 在ModelArts Studio基于Llama3-8B模型实现新闻自动分类 本案例介绍在ModelArts Studio大模型即服务平台(下面简称为MaaS),使用Llama3-8B模型框架实现新闻自动分类,能够高效处理和分类大量新闻内容。 面向AI大模型开发新手用户,了解AI大模型基础知识即可 ModelArts Standard模型训练 使用ModelArts Standard的专属资源池训练模型 本案例介绍了如何使用ModelArts Standard专属资源池提供的计算资源,结合SFS和OBS存储,在ModelArts Standard的训练环境中开展单机单卡、单机多卡、多机多卡分布式训练。 面向熟悉代码编写和调测的AI工程师,同时了解SFS和OBS云服务 示例:从 0 到 1 制作 自定义镜像 并用于训练(Pytorch+CPU/GPU) 本案例介绍如何从0开始制作镜像,并使用该镜像在ModelArts Standard平台上进行训练。镜像中使用的AI引擎是Pytorch,训练使用的资源是CPU或GPU。 面向熟悉代码编写和调测的AI工程师,同时熟悉docker容器知识 示例:从 0 到 1 制作自定义镜像并用于训练(MindSpore+Ascend) 本案例介绍如何从0开始制作镜像,并使用该镜像在ModelArts Standard平台上进行训练。镜像中使用的AI引擎是MindSpore,训练使用的资源是Ascend。 主流开源大模型基于Standard适配PyTorch NPU训练指导 本案例基于ModelArts Standard供的昇腾计算资源,指导用户完成Llama、Qwen、ChatGLM、Yi、Baichuan等常见开源大模型的预训练、SFT微调、LoRA微调训练过程。 面向熟悉代码编写和调测的AI工程师 ModelArts Standard推理部署 使用Standard一键完成商超商品识别模型部署 本案例以“商超商品识别”模型为例,介绍从AI Gallery订阅模型,一键部署到ModelArts Standard,并进行在线推理预测的体验过程。 面向AI开发零基础的用户 从0-1制作自定义镜像并创建AI应用 针对ModelArts不支持的AI引擎,您可以构建自定义镜像,并将镜像导入ModelArts,创建为AI应用。本案例详细介绍如何使用自定义镜像创建AI应用,并部署成在线服务。 面向熟悉代码编写和调测的AI工程师,同时熟悉docker容器知识 主流开源大模型基于Standard适配PyTorch NPU推理指导 本案例基于ModelArts Standard供的昇腾计算资源,指导用户完成Llama、Qwen、ChatGLM、Yi、Baichuan等常见开源大模型的推理部署、模型评测、模型量化等功能。 面向熟悉代码编写和调测的AI工程师 ModelArts Standard自动学习 使用Standard自动学习实现垃圾分类 本案例基于华为云AI开发者社区AI Gallery中的数据集资产,让零AI基础的开发者使用ModelArts Standard的自动学习功能完成“图像分类”AI模型的训练和部署。 面向AI开发零基础的用户 使用Standard自动学习实现口罩检测 本案例基于华为云AI开发者社区AI Gallery中的数据集资产,让零AI基础的开发者使用ModelArts Standard的自动学习功能完成“物体检测”AI模型的训练和部署。依据开发者提供的标注数据及选择的场景,无需任何代码开发,自动生成满足用户精度要求的模型。 ModelArts Standard开发环境 本地开发的MindSpore模型迁移至云上训练 本案例介绍了如何将本地开发好的MindSpore模型代码,通过PyCharm ToolKit连接到ModelArts Standard进行云上调试和训练。 面向熟悉代码编写和调测的AI工程师 使用ModelArts VS Code插件进行模型开发(Ascend) 本案例以Ascend Model Zoo为例,介绍如何通过VS Code插件及ModelArts Standard的Notebook进行云端数据调试及模型开发。 ModelArts Lite Server 主流开源大模型基于DevServer适配PyTorch NPU训练指导 本案例基于ModelArts Lite DevServer供的昇腾计算资源,指导用户完成Llama、Qwen、ChatGLM、Yi、Baichuan等常见开源大模型的预训练、SFT微调、LoRA微调训练过程。 面向熟悉代码编写和调测的AI工程师,同时熟悉Linux和Docker容器基础知识 主流开源大模型基于DevServer适配PyTorch NPU推理指导 本案例基于ModelArts Lite DecServer提供的昇腾计算资源,指导用户完成Llama、Qwen、ChatGLM、Yi、Baichuan等常见开源大模型的推理部署、模型评测、模型量化等功能。
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数;其它平台的Session鉴权请参考Session鉴权。 方式1:根据部署在线服务生成的服务对象进行更新服务配置 1 2 3 4 5 6 7 8 9 10 from modelarts.session import Session from modelarts.model import Predictor from modelarts.config.model_config import ServiceConfig session = Session() predictor_instance = Predictor(session, service_id="your_service_id") configs = [ServiceConfig(weight="100", instance_count=1, specification="modelarts.vm.cpu.2u",model_id="your_model_id")] service_config = predictor_instance.update_service_config(description="description", status="running", configs=configs) 方式2:根据查询服务对象列表返回的服务对象进行更新服务配置 1 2 3 4 5 6 7 8 9 10 11 from modelarts.session import Session from modelarts.model import Predictor from modelarts.config.model_config import ServiceConfig session = Session() predictor_object_list = Predictor.get_service_object_list(session) predictor_instance = predictor_object_list[0] configs = [ServiceConfig(weight="100", instance_count=1, specification="modelarts.vm.cpu.2u",model_id="your_model_id")] predictor_config = predictor_instance.update_service_config(description="description", status="running", configs=configs)
  • 参数说明 表1 部署predictor参数说明 参数 是否必选 参数类型 描述 description 否 String 服务描述,不超过100个字符,不设置此参数时,表示不更新。 status 否 String 服务状态,可设置状态为running或stopped来启动、停止服务,不设置此参数则不修改状态。status不可跟configs同时修改,同时存在则只修改status。 configs 否 包括predictor configs结构和transformer configs 服务配置,不设置此参数时,表示不更新。关于configs如何生成,请参见部署在线服务。 更新服务配置时,存在以下约束: 参数status指定的目标状态不允许和当前服务状态相同。 当前服务状态是deploying(部署中)、stopping(停止中)、deleteing(删除中)时,不允许参数status设置成running(启动)或设置参数configs(服务配置)。 当前服务状态是waiting(排队中)时,不允许参数status设置成running(启动)。 当前服务状态是concerning(告警)时,不允许参数status设置成running(启动)。
  • 示例代码 示例一:根据数据类型创建图像数据集 from modelarts.session import Session from modelarts.dataset import Dataset session = Session() dataset_name = "dataset-image" # 数据集名称 data_type = "IMAGE" # 数据集类型,图像类型数据集 data_sources = dict() # 数据集数据来源 data_sources["type"] = 0 # 数据来源类型,0表示OBS data_sources["path"] = "/obs-gaia-test/data/image/image-classification/" # 数据在OBS中的路径 work_path = dict() # 数据集输出位置,用于存放输出的标注信息等文件 work_path['type'] = 0 # 数据集工作目录的类型,0表示OBS work_path['path'] = "/obs-gaia-test/data/output/work_path/" # 数据集工作目录在OBS中的路径 create_dataset_resp = Dataset.create_dataset(session, dataset_name=dataset_name, data_type=data_type, data_sources=data_sources, work_path=work_path) 示例二:根据数据类型创建图像数据集(导入标注信息) from modelarts.session import Session from modelarts.dataset import Dataset session = Session() dataset_name = "dataset-image-with-annotations" data_type = "IMAGE" data_sources = dict() data_sources["type"] = 0 data_sources["path"] = "/obs-gaia-test/data/image/image-classification/" annotation_config = dict() # 源数据的标注格式 annotation_config['scene'] = "image_classification" # 数据标注场景为图像分类标注 annotation_config['format_name'] = "ModelArts image classification 1.0" # 标注格式为ModelArts image classification 1.0 data_sources['annotation_config'] = annotation_config work_path = dict() work_path['type'] = 0 work_path['path'] = "/obs-gaia-test/data/output/work_path/" create_dataset_resp = Dataset.create_dataset(session, dataset_name=dataset_name, data_type=data_type, data_sources=data_sources, work_path=work_path) 示例三:根据数据类型创建表格数据集 from modelarts.session import Session from modelarts.dataset import Dataset session = Session() dataset_name = "dataset-table" data_type = "TABLE" data_sources = dict() data_sources["type"] = 0 data_sources["path"] = "/obs-gaia-test/data/table/table0/" data_sources['with_column_header'] = True work_path = dict() work_path['type'] = 0 work_path['path'] = "/obs-gaia-test/data/output/work_path/" # 表格类型的数据集需要指定表格数据的schema信息 schema0 = dict() schema0['schema_id'] = 0 schema0['name'] = "name" schema0['type'] = "STRING" schema1 = dict() schema1['schema_id'] = 1 schema1['name'] = "age" schema1['type'] = "STRING" schema2 = dict() schema2['schema_id'] = 2 schema2['name'] = "label" schema2['type'] = "STRING" schemas = [] schemas.append(schema0) schemas.append(schema1) schemas.append(schema2) create_dataset_resp = Dataset.create_dataset(session, dataset_name=dataset_name, data_type=data_type, data_sources=data_sources, work_path=work_path, schema=schemas) 示例四:根据标注类型创建图像分类数据集 from modelarts.session import Session from modelarts.dataset import Dataset session = Session() dataset_name = "dataset-image-classification" dataset_type = 0 # 数据集的标注类型,0表示图像分类标注类型 data_sources = dict() data_sources["path"] = "/obs-gaia-test/data/image/image-classification/" data_sources["type"] = "0" work_path = dict() work_path['type'] = 0 work_path['path'] = "/obs-gaia-test/data/output/work_path/" create_dataset_resp = Dataset.create_dataset(session, dataset_name=dataset_name, dataset_type=dataset_type, data_sources=data_sources, work_path=work_path) 示例五:根据标注类型创建文本三元组数据集 dataset_name = "dataset-text-triplet" dataset_type = 102 # 数据集标注类型,102表示文本三元组标注类型 data_sources = dict() data_sources['type'] = 0 data_sources['path'] = "/obs-gaia-test/data/text/text-classification/" work_path = dict() work_path['type'] = 0 work_path['path'] = "/obs-gaia-test/data/output/work_path/" # 创建文本三元组标注类型的数据集,需要传入标签参数 label_entity1 = dict() # 标签对象 label_entity1['name'] = "疾病" # 标签名称 label_entity1['type'] = 101 # 标签类型,101表示实体类型标签 label_entity2 = dict() label_entity2['name'] = "疾病别称" label_entity2['type'] = 101 label_relation1 = dict() label_relation1['name'] = "又称为" label_relation1['type'] = 102 # 标签类型,102表示关系类型标签 property = dict() # 关系类型标签需要在标签属性中指定起始实体标签和终止实体标签 property['@modelarts:from_type'] = "疾病" # 起始实体标签 property['@modelarts:to_type'] = "疾病别称" # 终止实体标签 label_relation1['property'] = property labels = [] labels.append(label_entity1) labels.append(label_entity2) labels.append(label_relation1) create_dataset_resp = Dataset.create_dataset(session, dataset_name=dataset_name, dataset_type=dataset_type, data_sources=data_sources, work_path=work_path, labels=labels) 示例六:根据标注类型创建表格数据集 dataset_name = "dataset-table" dataset_type = 400 # 数据集标注类型,400表示表格数据集 data_sources = dict() data_sources['type'] = 0 data_sources['path'] = "/obs-gaia-test/data/table/table0/" data_sources['with_column_header'] = True # 用来指明表格数据中是否包含表头 work_path = dict() work_path['type'] = 0 work_path['path'] = "/obs-gaia-test/data/output/work_path/" # 表格数据集需要传入表格数据的表头参数 schema0 = dict() # 表格的表头 schema0['schema_id'] = 0 # 第一列表头 schema0['name'] = "name" # 表头名称,该列表头为name schema0['type'] = "STRING" # 表头数据类型,表示字符串 schema1 = dict() schema1['schema_id'] = 1 schema1['name'] = "age" schema1['type'] = "STRING" schema2 = dict() schema2['schema_id'] = 2 schema2['name'] = "label" schema2['type'] = "STRING" schemas = [] schemas.append(schema0) schemas.append(schema1) schemas.append(schema2) create_dataset_resp = Dataset.create_dataset(session, dataset_name=dataset_name, dataset_type=dataset_type, data_sources=data_sources, work_path=work_path, schema=schemas)
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 方式1:已部署为在线服务predictor的初始化 1 2 3 4 5 from modelarts.session import Session from modelarts.model import Predictor session = Session() predictor_instance = Predictor(session, service_id="your_service_id") 方式2:部署在线服务predictor 部署服务到公共资源池 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 from modelarts.session import Session from modelarts.model import Model from modelarts.config.model_config import ServiceConfig, TransformerConfig, Schedule session = Session() model_instance = Model(session, model_id='your_model_id') vpc_id = None # (可选)在线服务实例部署的虚拟私有云ID,默认为空 subnet_network_id = None # (可选)子网的网络ID,默认为空 security_group_id = None # (可选)安全组,默认为空 configs = [ServiceConfig(model_id=model_instance.model_id, weight="100", instance_count=1, specification="modelarts.vm.cpu.2u")] # 参考表3中specification字段 predictor_instance = model_instance.deploy_predictor( service_name="service_predictor_name", infer_type="real-time", vpc_id=vpc_id, subnet_network_id=subnet_network_id, security_group_id=security_group_id, configs=configs, # predictor配置参数, 参考下文configs参数格式说明 schedule = [Schedule(op_type='stop', time_unit='HOURS', duration=1)] # (可选)设置在线服务运行时间 ) 参数“model_id”代表将部署成在线服务的模型。“model_id”可以通过查询模型列表或者ModelArts管理控制台获取。 部署服务到专属资源池 from modelarts.config.model_config import ServiceConfig configs = [ServiceConfig(model_id=model_instance.model_id, weight="100", instance_count=1, specification="modelarts.vm.cpu.2u")] predictor_instance = model_instance.deploy_predictor( service_name="your_service_name", infer_type="real-time", configs=configs, cluster_id="your dedicated pool id" ) configs参数格式说明:SDK提供了ServiceConfig类对其定义,configs为list,list中的元组对象是ServiceConfig。定义代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 configs = [] envs = {"model_name":"mxnet-model-1", "load_epoch":"0"} service_config1 = ServiceConfig( model_id="model_id1", # model_id1和model_id2必须是同一个模型的不同版本对应的model_id weight="70", specification="modelarts.vm.cpu.2u", # 参考表3中specification字段 instance_count=2, envs=envs) # (可选)设置环境变量的值,如:envs = {"model_name":"mxnet-model-1", "load_epoch":"0"} service_config2 = ServiceConfig( model_id='model_id2', weight="30", specification="modelarts.vm.cpu.2u", # 参考表3中specification字段 instance_count=2, envs=envs) # (可选)设置环境变量的值,如:envs = {"model_name":"mxnet-model-1", "load_epoch":"0"} configs.append(service_config1) configs.append(service_config2) 方式3:部署批量服务transformer 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 from modelarts.session import Session from modelarts.model import Model from modelarts.config.model_config import TransformerConfig session = Session() model_instance = Model(session, model_id='your_model_id') vpc_id = None # (可选)批量服务实例部署的虚拟私有云ID,默认为空 subnet_network_id = None # (可选)子网的网络ID,默认为空 security_group_id = None # (可选)安全组,默认为空 transformer = model_instance.deploy_transformer( service_name="service_transformer_name", infer_type="batch", vpc_id=vpc_id, subnet_network_id=subnet_network_id, security_group_id=security_group_id, configs=configs # transformer配置参数, 参考下文configs参数格式说明 ) configs参数格式说明:SDK提供了TransformerConfig类对其定义,configs都是list,list中的元组对象是TransformerConfig。定义代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 configs = [] mapping_rule = None # (可选)输入参数与csv数据的映射关系 mapping_type= "file" # file或者csv envs = {"model_name":"mxnet-model-1", "load_epoch":"0"} transformer_config1 = TransformerConfig( model_id="model_id", specification="modelarts.vm.cpu.2u", # 参考表3中specification字段 instance_count=2, src_path="/shp-cn4/sdk-demo/", # 批量任务输入数据的OBS路径,如:"/your_obs_bucket/src_path" dest_path="/shp-cn4/data-out/", # 批量任务输出结果的OBS路径,如:"/your_obs_bucket/dest_path" req_uri="/", mapping_type=mapping_type, mapping_rule=mapping_rule, envs=envs) # (可选)设置环境变量的值,如:envs = {"model_name":"mxnet-model-1", "load_epoch":"0"} configs.append(transformer_config1)
  • 监控插件安装步骤 当前账户需要给 CES 授权委托,请参考创建用户并授权使用 云监控服务 。 当前还不支持在CES界面直接一键安装监控,需要登录到服务器上执行以下命令安装配置Agent。其它region的安装请参考单台主机下安装Agent。 cd /usr/local && curl -k -O https://obs.cn-north-4.myhuaweicloud.com/uniagent-cn-north-4/script/agent_install.sh && bash agent_install.sh 安装成功的标志如下: 图1 安装成功提示 在CES界面查看具体的监控项,加速卡类的监控项必须在主机安装加速卡驱动后才会有相关指标。 图2 监控界面 至此,监控插件已经安装完成,相关指标的采集可以在UI界面直接查看或者根据指标值配置相关告警。
  • 裸金属服务器监控介绍 监控概述请参考BMS官方文档。除文档所列支持的镜像之外,目前还支持Ubuntu20.04。 监控指标采样周期1分钟。当前监控指标项已经包含CPU、内存、磁盘、网络。在主机上安装加速卡驱动后,可以自动采集的如下指标: 表1 指标列表 指标英文名 指标中文名 说明 单位 维度 gpu_status gpu健康状态。 BMS上GPU健康状态,是一个综合指标,0代表健康,1代表亚健康,2代表故障。 - instance_id,gpu gpu_utilization gpu使用率。 该GPU的算力使用率。 % instance_id,gpu memory_utilization 显存使用率。 该GPU的显存使用率。 % instance_id,gpu gpu_performance gpu性能状态。 该GPU的性能状态。 - instance_id,gpu encoder_utilization 编码使用率。 该GPU的编码能力使用率。 % instance_id,gpu decoder_utilization 解码使用率。 该GPU的解码能力使用率。 % instance_id,gpu volatile_correctable 短期可纠正ECC错误数量。 该GPU重置以来可纠正的ECC错误数量,每次重置后归0。 个 instance_id,gpu volatile_uncorrectable 短期不可纠正ECC错误数量。 该GPU重置以来不可纠正的ECC错误数量,每次重置后归0。 个 instance_id,gpu aggregate_correctable 累计可纠正ECC错误数量。 该GPU累计的可纠正ECC错误数量。 个 instance_id,gpu aggregate_uncorrectable 累计不可纠正ECC错误数量。 该GPU累计的不可纠正ECC错误数量。 个 instance_id,gpu retired_page_single_bit retired page single bit错误数量。 retired page single bit错误数量,表示当前卡隔离的单比特页数。 个 instance_id,gpu retired_page_double_bit retired page double bit错误数量。 retired page double bit错误数量,表示当前卡隔离的双比特页的数量。 个 instance_id,gpu