云服务器内容精选

  • 标注音频(声音分类) 标注作业详情页中,展示了此标注作业中“未标注”和“已标注”的音频,默认显示“未标注”的音频列表。单击音频左侧,即可进行音频的试听。 在“未标注”页签,勾选需进行标注的音频。 手工点选:在音频列表中,单击音频,当右上角出现蓝色勾选框时,表示已勾选。可勾选同类别的多个音频,一起添加标签。 批量选中:如果音频列表的当前页,所有音频属于一种类型,可以在列表的右上角单击“选择当前页”,则当前页面所有的音频将选中。 添加标签。 在右侧的“添加标签”区域中,单击“标签”下侧的文本框设置标签。 方式一(已存在标签):单击“标签”下方的文本框,在快捷键下拉列表中选择快捷键,然后在标签文本输入框中选择已有的标签名称,然后单击“确定”。 方式二(新增标签):在“标签”下方的文本框中,在快捷键下拉列表中选择快捷键,然后在标签文本输入框中输入新的标签名称,然后单击“确定”。 选中的音频将被自动移动至“已标注”页签,且在“未标注”页签中,标签的信息也将随着标注步骤进行更新,如增加的标签名称、各标签对应的音频数量。 快捷键的使用说明:为标签指定快捷键后,当您选择一段音频后,在键盘中按快捷键,即可为此音频增加为此快捷键对应的标签。例如“aa”标签对应的快捷键是“1”,在数据标注过程中,选中1个或多个文件,按“1”,界面将提示是否需要将此文件标注为“aa”标签,单击确认即可完成标注。 快捷键对应的是标签,1个标签对应1个快捷键。不同的标签,不能指定为同一个快捷键。快捷键的使用,可以提升标注效率。 图2 添加音频标签
  • 标注音频(语音分割) 标注作业详情页中,展示了此标注作业中“未标注”和“已标注”的音频,默认显示“未标注”的音频列表。 在“未标注”页签左侧音频列表中,单击目标音频文件,在右侧的区域中出现音频,单击音频下方,即可进行音频播放。 根据播放内容,选取合适的音频段,在下方“语音内容”文本框中填写音频标签和内容。 图4 语音标签音频标注 输入内容后单击下方的“确认标注”按钮完成标注。音频将被自动移动至“已标注”页签。
  • ModelArts Standard资源监控概述 为了满足用户对资源使用的监控诉求,ModelArts Standard提供了多种监控查看方式。 方式一:通过ModelArts Standard控制台查看 您在可通过ModelArts控制台的总览页或各模块资源监控页签查看监控指标。具体涉及以下几个方面: 通过ModelArts控制台的总览页查看,具体请参见通过ModelArts控制台查看监控指标。 Standard训练作业:用户在运行训练作业时,可以查看训练作业占用的CPU、GPU或NPU资源使用情况。具体请参见训练资源监控章节。 Standard在线服务:用户将模型部署为在线服务后,可以通过监控功能查看该推理服务的CPU、内存或GPU等资源使用统计信息和模型调用次数统计,具体参见查看推理服务详情章节。 方式二:通过 AOM 查看所有监控指标 ModelArts Standard上报的所有监控指标都保存在AOM中,当ModelArts控制台可以查看的指标不满足诉求时,用户可以通过AOM服务提供的指标消费和使用的能力来查看指标。设置指标阈值告警、告警上报等,都可以直接在AOM控制台操作。具体参见通过AOM控制台查看ModelArts所有监控指标。 方式三:通过Grafana查看所有监控指标 当AOM的监控模板不能满足用户诉求时,用户可以使用Grafana可视化工具来查看与分析监控指标。Grafana支持灵活而又复杂多样的监控视图和模板,为用户提供基于网页仪表面板的可视化监控效果,使用户更加直观地查看到实时资源使用情况。 将Grafana的数据源配置完成后,就可以通过Grafana查看AOM保存的所有ModelArts Standard的所有指标。具体参见使用Grafana查看AOM中的监控指标。 通过Grafana插件查看AOM中的监控指标的操作流程如下: 安装配置Grafana 安装配置Grafana有在Windows上安装配置Grafana、在Linux上安装配置Grafana和在Notebook上安装配置Grafana三种方式,请您根据实际情况选择。 配置Grafana数据源 配置仪表盘查看指标数据 父主题: ModelArts Standard资源监控
  • 标注图片(物体检测) 标注作业详情页中,展示了此数据集中“全部”“未标注”和“已标注”的图片,默认显示“未标注”的图片列表。 在“未标注”页签图片列表中,单击图片,自动跳转到标注页面。在标注页面,常用按钮的使用可参见表2。 在页面上方工具栏选择合适的标注图形,系统默认的标注图形为矩形。本示例使用矩形工具进行标注。 页面左侧可以选择多种形状对图片进行标注。标注第一张图片时,一旦选择其中一种,其他图片默认使用此形状进行标注,用户可以根据自己需求再进行切换。 表1 支持的标注框 图标 使用说明 矩形。也可使用快捷键 【1】。鼠标单击标注对象左上角边缘位置,界面将出现矩形框,移动鼠标使得矩形框覆盖标注对象,然后单击完成标注。 多边形。也可使用快捷键【2】。在标注对象所在范围内,鼠标左键单击完成一个点的标注,沿着物体的形状边缘,通过鼠标指定多个点,最终单击到第一个点的位置,由所有的点组成一个多边形形状。使得需标注的对象在此标注框内。 圆形。也可使用快捷键【3】。在标注对象中,选择物体的中心点位置,单击鼠标确定圆心,然后移动鼠标,使得圆形框覆盖标注对象,然后再单击鼠标完成标注。 直线。也可使用快捷键【4】。在标注对象中,选择物体的起始点,单击鼠标确定直线的起始点,然后使得直线覆盖标注对象,然后再单击鼠标完成标注。 虚线。也可使用快捷键【5】。在标注对象中,选择物体的起始点,单击鼠标确定虚线的起始点,然后使得虚线覆盖标注对象,然后再单击鼠标完成标注。 点。也可使用快捷键【6】。单击图片中的物体所在位置,即可完成点的标注。 在弹出的添加标签文本框中,直接输入新的标签名,在文本框前面选中标签颜色,然后单击“添加”。如果已存在标签,从下拉列表中选择已有的标签,单击“添加”。 逐步标注图片中所有物体所在位置,一张图片可添加多个标签。完成一张图片标注后,可单击图片右上角来切换下一张(也可使用快捷键【D】直接切换),快速选中其他未标注的图片,然后在标注页面中执行标注操作。 图5 添加物体检测标签 单击页面上方“返回数据标注预览”查看标注信息,在弹框中单击“确定”保存当前标注并离开标注页面。 选中的图片被自动移动至“已标注”页签,且在“未标注”和“全部”页签中,标签的信息也将随着标注步骤进行更新,如增加的标签名称、标签对应的图片数量。 表2 标注界面的常用按钮 按钮图标 功能说明 撤销上一个操作。也可使用快捷键【Ctrl+Z】 重做上一个操作。也可使用快捷键【Ctrl+Shift+Z】 放大图片。也可以使用滚轮进行放大。 缩小图片。也可以使用滚轮进行缩小。 删除当前图片中的所有标注框。也可使用快捷键【Shift+Delete】 显示或隐藏标注框。只有在已标注图片中可使用此操作。也可使用快捷键【Shift+H】 拖动,可将标注好的框拖动至其他位置,也可以选择框的边缘,更改框的大小。也可使用【X+鼠标左键】 复位,与上方拖动为同组操作,当执行了拖动后,可以单击复位按钮快速将标注框恢复为拖动前的形状和位置。也可使用快捷键【Esc】
  • 标注图片(图像分割) 标注作业详情页中,展示了此标注作业中“全部”、“未标注”和“已标注”的图片,默认显示“未标注”的图片列表。 在“未标注”页签图片列表中,单击图片,自动跳转到标注页面。在标注页面,常用按钮的使用可参见表4。 选择标注方式。 在标注页面,上方工具栏提供了常用的表3及表4,系统默认的标注方式为多边形标注。选择多边形标注或极点标注。 标注第一张图片时,一旦选择其中一种,其他所有图片都需要使用此方式进行标注。 图6 工具栏 图7 工具栏 表3 标注方式 图标 使用说明 多边形。在标注对象所在范围内,鼠标左键单击完成一个点的标注,沿着物体的形状边缘,通过鼠标指定多个点,最终单击到第一个点的位置,由所有的点组成一个多边形形状。使得需标注的对象在此标注框内。 极点标注。在目标物体轮廓的最上、最左、最下、最右的位置分别标注四个极点,极点要在物体的轮廓上。系统将根据标注的极点推理出物体的轮廓。 表4 工具栏常用按钮 按钮图标 功能说明 撤销上一个操作。 重做上一个操作。 放大图片。 缩小图片。 删除当前图片中的所有标注框。 显示或隐藏标注框。只有在已标注图片中可使用此操作。 拖动,可将标注好的框拖动至其他位置,也可以选择框的边缘,更改框的大小。 复位,与上方拖动为同组操作,当执行了拖动后,可以单击复位按钮快速将标注框恢复为拖动前的形状和位置。 全屏显示标注的图片。 标注物体。 以极点标注为例。识别图片中的物体,单击左键分别定位物体的最上、最左、最下、最右的位置点。确定位置后,将弹出对话框,填入标签名称,单击确定添加物体的标签。确定后系统将自动推理出物体的轮廓。 完成一张图片标注后,可单击图片下方展开缩略图,查看图片列表,快速选中其他未标注的图片,然后在标注页面中执行标注操作。 图8 标注物体轮廓 单击页面上方“返回数据标注预览”查看标注信息,在弹框中单击“确定”保存当前标注并离开标注页面。 选中的图片被自动移动至“已标注”页签,且在“未标注”和“全部”页签中,标签的信息也将随着标注步骤进行更新,如增加的标签名称、标签对应的图片数量。
  • 数据发布 ModelArts训练管理模块支持通过ModelArts数据集或者OBS目录中的文件创建训练作业。如果选择通过数据集作为训练作业的数据源,则需要指定数据集及特定的版本。因此,用户需要为准备好的数据发布一个版本,具体操作参考发布ModelArts数据集中的数据版本。 为了便于后期的模型构建和开发,对同一数据源来说,将其不同时间对数据的处理和标注按照版本来进行区分,按照需求选择指定的版本使用。 图11 创建训练作业的数据来源
  • 数据导出 ModelArts训练管理模块支持通过ModelArts数据集或者OBS目录中的文件创建训练作业。如果选择通过OBS目录的方式创建训练作业,用户需要将数据集中准备好的数据导出到OBS中。 导出数据到OBS 在数据集详情页面中,选中需要导出的数据或筛选出需要导出的数据,然后单击右上角“导出”。 导出方式选择“OBS”,填写相关信息,然后单击“确定”,开始执行导出操作。 “保存路径”:即导出数据存储的路径。建议不要将数据存储至当前数据集所在的输入路径或输出路径。 图12 导出至OBS 数据导出成功后,您可以前往您设置的保存路径,查看到存储的数据。 查看任务历史 当您导出数据后,可以通过任务历史查看导出任务明细。 在数据集详情页面中,单击右上角“任务历史 ”。 在弹出的“任务历史”对话框中,可以查看该数据集之前的导出任务历史。包括“任务ID”、“创建时间”、“导出方式”、“导出路径”、“导出样本总数”和“导出状态”。 图13 导出任务历史
  • 数据标注 人工标注 在“未标注”页签图片列表中,单击图片,自动跳转到标注页面。 在标注页面的工具栏中选择合适的标注工具,本示例使用矩形框进行标注。 图6 标注工具 使用标注工具选中目标区域,在弹出的标签文本框中,直接输入新的标签名。如果已存在标签,从下拉列表中选择已有的标签。单击“添加”完成标注。 图7 添加物体检测标签 单击页面上方“返回数据标注预览”查看标注信息,在弹框中单击“确定”保存当前标注并离开标注页面。选中的图片被自动移动至“已标注”页签,且在“未标注”和“全部”页签中,标签的信息也将随着标注步骤进行更新,如增加的标签名称、标签对应的图片数量。 智能标注 通过人工标注完成少量数据标注后,可以通过智能标注对剩下的数据进行自动标注,提高标注的效率。 在数据集详情页面,单击右上角“启动智能标注”。 在“启动智能标注”窗口中,填写如下参数,然后单击“提交”。 智能标注类型:主动学习 算法类型:快速型 其他参数采用默认值。 图8 启动智能标注任务 查看智能标注任务进度 智能标注任务启动后,可以在“待确认”页签下查看智能标注任务进度。当任务完成后,即可在“待确认”页签下查看自动标注好的数据。 图9 查看智能标注任务进度 确认智能标注结果 在智能标注任务完成后,在“待确认”页签下,单击具体图片进入标注详情页面,可以查看或修改智能标注的结果。 如果智能标注的数据无误,可单击右侧的“确认标注”完成标注,如果标注信息有误,可直接删除错误标注框,然后重新标注,以纠正标注信息。针对物体检测任务,需一张一张确认。确保所有图片已完成确认,然后执行下一步操作。 图10 确认智能标注结果
  • 数据分析 数据集创建完成后,可以基于图片各项特征,如模糊度、亮度等进行分析,帮助用户更好的分析数据集的数据质量,判断数据集是否满足自己的算法和模型要求。 创建特征分析任务 在执行特征分析前,需先发布一个数据集版本。在“数据集概览”页单击右上角的“发布”,为数据集发布一个新版本。 版本发布完成后,进入数据集概览页。选择“数据特征”页签,单击“特征分析”,在弹窗中选择刚才发布的数据集版本,并单击“确定”,启动特征分析任务。 图3 启动特征分析 查看任务进度 任务执行过程中,可以单击“任务历史”,查看任务进度。当任务状态变为“成功”时,表示任务执行完成。 图4 特征分析任务进度 查看特征分析结果 特征分析任务执行完成后,可以在“数据特征”页签下,选择“数据集版本”、“类型”和“数据特征指标”,页面将自动呈现您选择对应版本及其指标数据,您可以根据呈现的图表了解数据分布情况,帮助您更好的理解您的数据。 “版本选择”:根据实际情况选择已执行过特征任务的版本,可以选多个进行对比,也可以只选择一个。 “类型”:根据需要分析的类型选择。支持“all”、“train”、“eval”和“inference”。分别表示所有、训练、评估和推理类型。 “数据特征指标”:选择您需要展示的指标。详细指标解释,可参见特征分析指标列表。 图5 查看特征分析结果 在特征分析结果中,例如图片亮度指标,数据分布中,分布不均匀,缺少某一种亮度的图片,而此指标对模型训练非常关键。此时可选择增加对应亮度的图片,让数据更均衡,为后续模型构建做准备。
  • 准备工作 在使用ModelArts数据管理的功能前,需要先完成以下准备工作。 用户在使用数据管理的过程中,ModelArts需要访问用户的OBS等依赖服务,需要用户进行在“权限管理”页面中进行委托授权。具体操作参考使用委托授权(推荐)。 数据标注功能仅在以下Region支持:华北-北京四、华北-北京一、华东-上海一、华南-广州、西南-贵阳一、中国-香港、亚太-新加坡、亚太-曼谷、亚太-雅加达、拉美-圣地亚哥、拉美-圣保罗一、拉美-墨西哥城二。
  • 数据准备使用流程 ModelArts是面向AI开发者的一站式开发平台,能够支撑开发者从数据到模型的全流程开发过程,包含数据处理、算法开发、模型训练、模型部署等操作。并且提供AI Gallery功能,能够在市场内与其他开发者分享数据、算法、模型等。为了能帮用户快速准备大量高质量的数据,ModelArts数据管理提供了全流程的数据准备、数据处理和数据标注能力。 图1 ModelArts数据准备全流程 ModelArts数据管理为用户准备高质量的AI数据提供了以下主要能力: 解决用户获取数据的问题。 用户可在AI Gallery上一键下载需要的数据资源到ModelArts数据集。 提供多种数据接入方式,支持用户从OBS, MRS DLI 以及DWS等服务导入用户的数据。 提供18+数据增强算子,帮助用户扩增数据,增加训练用的数据量。 帮助用户提高数据的质量。 提供图像、文本、音频、视频等多种格式数据的预览,帮助用户识别数据质量。 提供对数据进行多维筛选的能力,用户可以根据样本属性、标注信息等进行样本筛选。 提供12+标注工具,方便用户进行精细化、场景化和专业化的数据标注。 提供基于样本和标注结果进行特征分析,帮助用户整体了解数据的质量。 提升用户数据准备的效率。 提供数据版本管理能力,帮助用户提升数据管理的效率。 提供数据校验、数据选择、数据清洗等多种数据处理算子,帮助用户快速处理数据。 提供交互式标注、智能标注等能力,提升用户数据标注的效率。 提供团队标注以及团队标注流程管理能力,帮助用户提升大批量数据标注的能力。 父主题: 数据准备与处理
  • 控制多分支的部分执行 from modelarts import workflow as wf # 构建一个OutputStorage对象,对训练输出目录做统一管理 storage = wf.data.Storage(name="storage_name", title="title_info", with_execution_id=True, create_dir=True, description="description_info") # name字段必填,title, description可选填 # 定义输入的OBS对象 obs_data = wf.data.OBSPlaceholder(name="obs_placeholder_name", object_type="directory") condition_equal_a = wf.steps.Condition(condition_type=wf.steps.ConditionTypeEnum.EQ, left=wf.Placeholder(name="job_step_a_is_skip", placeholder_type=wf.PlaceholderType.BOOL), right=True) # 通过JobStep来定义一个训练节点,并将训练结果输出到OBS job_step_a = wf.steps.JobStep( name="training_job_a", # 训练节点的名称,命名规范(只能包含英文字母、数字、下划线(_)、中划线(-),并且只能以英文字母开头,长度限制为64字符),一个Workflow里的两个step名称不能重复 title="图像分类训练", # 标题信息,不填默认使用name algorithm=wf.AIGalleryAlgorithm( subscription_id="subscription_id", # 算法订阅ID item_version_id="item_version_id", # 算法订阅版本ID,也可直接填写版本号 parameters=[] ), # 训练使用的算法对象,示例中使用AIGallery订阅的算法;部分算法超参的值如果无需修改,则在parameters字段中可以不填写,系统自动填充相关超参值 inputs=wf.steps.JobInput(name="data_url", data=obs_data), outputs=[wf.steps.JobOutput(name="train_url", obs_config=wf.data.OBSOutputConfig(obs_path=storage.join("directory_path_a")))], spec=wf.steps.JobSpec( resource=wf.steps.JobResource( flavor=wf.Placeholder(name="train_flavor", placeholder_type=wf.PlaceholderType.JSON, description="训练资源规格") ) ), # 训练资源规格信息 policy=wf.steps.StepPolicy(skip_conditions=condition_equal_a) ) condition_equal_b = wf.steps.Condition(condition_type=wf.steps.ConditionTypeEnum.EQ, left=wf.Placeholder(name="job_step_b_is_skip", placeholder_type=wf.PlaceholderType.BOOL), right=True) # 通过JobStep来定义一个训练节点,并将训练结果输出到OBS job_step_b = wf.steps.JobStep( name="training_job_b", # 训练节点的名称,命名规范(只能包含英文字母、数字、下划线(_)、中划线(-),并且只能以英文字母开头,长度限制为64字符),一个Workflow里的两个step名称不能重复 title="图像分类训练", # 标题信息,不填默认使用name algorithm=wf.AIGalleryAlgorithm( subscription_id="subscription_id", # 算法订阅ID item_version_id="item_version_id", # 算法订阅版本ID,也可直接填写版本号 parameters=[] ), # 训练使用的算法对象,示例中使用AIGallery订阅的算法;部分算法超参的值如果无需修改,则在parameters字段中可以不填写,系统自动填充相关超参值 inputs=wf.steps.JobInput(name="data_url", data=obs_data), outputs=[wf.steps.JobOutput(name="train_url", obs_config=wf.data.OBSOutputConfig(obs_path=storage.join("directory_path_b")))], spec=wf.steps.JobSpec( resource=wf.steps.JobResource( flavor=wf.Placeholder(name="train_flavor", placeholder_type=wf.PlaceholderType.JSON, description="训练资源规格") ) ), # 训练资源规格信息 policy=wf.steps.StepPolicy(skip_conditions=condition_equal_b) ) # 定义模型名称参数 model_name = wf.Placeholder(name="placeholder_name", placeholder_type=wf.PlaceholderType.STR) model_step = wf.steps.ModelStep( name="model_registration", # 模型注册节点的名称,命名规范(只能包含英文字母、数字、下划线(_)、中划线(-),并且只能以英文字母开头,长度限制为64字符),一个Workflow里的两个step名称不能重复 title="模型注册", # 标题信息 inputs=wf.steps.ModelInput(name='model_input', data=wf.data.DataConsumptionSelector(data_list=[job_step_a.outputs["train_url"].as_input(), job_step_b.outputs["train_url"].as_input()])), # 选择job_step_a或者job_step_b的输出作为输入 outputs=wf.steps.ModelOutput(name='model_output', model_config=wf.steps.ModelConfig(model_name=model_name, model_type="TensorFlow")), # ModelStep的输出 depend_steps=[job_step_a, job_step_b], # 依赖的作业类型节点对象 ) workflow = wf.Workflow( name="new-condition-demo", desc="this is a demo workflow", steps=[job_step_a, job_step_b, model_step], storages=storage )
  • 控制单节点的执行 通过参数配置实现 from modelarts import workflow as wf condition_equal = wf.steps.Condition(condition_type=wf.steps.ConditionTypeEnum.EQ, left=wf.Placeholder(name="is_skip", placeholder_type=wf.PlaceholderType.BOOL), right=True) # 构建一个OutputStorage对象,对训练输出目录做统一管理 storage = wf.data.OutputStorage(name="storage_name", title="title_info", description="description_info") # name字段必填,title, description可选填 # 定义输入的OBS对象 obs_data = wf.data.OBSPlaceholder(name="obs_placeholder_name", object_type="directory") # 通过JobStep来定义一个训练节点,并将训练结果输出到OBS job_step = wf.steps.JobStep( name="training_job", # 训练节点的名称,命名规范(只能包含英文字母、数字、下划线(_)、中划线(-),并且只能以英文字母开头,长度限制为64字符),一个Workflow里的两个step名称不能重复 title="图像分类训练", # 标题信息,不填默认使用name algorithm=wf.AIGalleryAlgorithm( subscription_id="subscription_id", # 算法订阅ID item_version_id="item_version_id", # 算法订阅版本ID,也可直接填写版本号 parameters=[] ), # 训练使用的算法对象,示例中使用AIGallery订阅的算法;部分算法超参的值如果无需修改,则在parameters字段中可以不填写,系统自动填充相关超参值 inputs=wf.steps.JobInput(name="data_url", data=obs_data), # JobStep的输入在运行时配置;data字段也可使用data=wf.data.OBSPath(obs_path="fake_obs_path")表示 outputs=wf.steps.JobOutput(name="train_url", obs_config=wf.data.OBSOutputConfig(obs_path=storage.join("directory_path"))), # JobStep的输出 spec=wf.steps.JobSpec( resource=wf.steps.JobResource( flavor=wf.Placeholder(name="train_flavor", placeholder_type=wf.PlaceholderType.JSON, description="训练资源规格") ) ), # 训练资源规格信息 policy=wf.steps.StepPolicy( skip_conditions=[condition_equal] # 通过skip_conditions中的计算结果决定job_step是否跳过 ) ) workflow = wf.Workflow( name="new-condition-demo", desc="this is a demo workflow", steps=[job_step], storages=storage ) 案例中job_step配置了相关的跳过策略,并且通过一个bool类型的参数进行控制。当name为is_skip的Placeholder参数配置为True时,condition_equal的计算结果为True,此时job_step会被置为跳过,反之job_step正常执行,其中Condition对象详情可参考构建条件节点控制分支执行。 通过获取JobStep输出的相关metric指标信息实现 from modelarts import workflow as wf # 构建一个OutputStorage对象,对训练输出目录做统一管理 storage = wf.data.Storage(name="storage_name", title="title_info", with_execution_id=True, create_dir=True, description="description_info") # name字段必填,title, description可选填 # 定义输入的OBS对象 obs_data = wf.data.OBSPlaceholder(name="obs_placeholder_name", object_type="directory") # 通过JobStep来定义一个训练节点,并将训练结果输出到OBS job_step = wf.steps.JobStep( name="training_job", # 训练节点的名称,命名规范(只能包含英文字母、数字、下划线(_)、中划线(-),并且只能以英文字母开头,长度限制为64字符),一个Workflow里的两个step名称不能重复 title="图像分类训练", # 标题信息,不填默认使用name algorithm=wf.AIGalleryAlgorithm( subscription_id="subscription_id", # 算法订阅ID item_version_id="item_version_id", # 算法订阅版本ID,也可直接填写版本号 parameters=[] ), # 训练使用的算法对象,示例中使用AIGallery订阅的算法;部分算法超参的值如果无需修改,则在parameters字段中可以不填写,系统自动填充相关超参值 inputs=wf.steps.JobInput(name="data_url", data=obs_data), outputs=[ wf.steps.JobOutput(name="train_url",obs_config=wf.data.OBSOutputConfig(obs_path=storage.join("directory_path"))), wf.steps.JobOutput(name="metrics", metrics_config=wf.data.MetricsConfig(metric_files=storage.join("directory_path/metrics.json", create_dir=False))) # 指定metric的输出路径,相关指标信息由作业脚本代码根据指定的数据格式自行输出(示例中需要将metric信息输出到训练输出目录下的metrics.json文件中) ], spec=wf.steps.JobSpec( resource=wf.steps.JobResource( flavor=wf.Placeholder(name="train_flavor", placeholder_type=wf.PlaceholderType.JSON, description="训练资源规格") ) ) # 训练资源规格信息 ) # 定义模型名称参数 model_name = wf.Placeholder(name="placeholder_name", placeholder_type=wf.PlaceholderType.STR) # 定义条件对象 condition_lt = wf.steps.Condition( condition_type=wf.steps.ConditionTypeEnum.LT, left=wf.steps.MetricInfo(job_step.outputs["metrics"].as_input(), "accuracy"), right=0.5 ) model_step = wf.steps.ModelStep( name="model_registration", # 模型注册节点的名称,命名规范(只能包含英文字母、数字、下划线(_)、中划线(-),并且只能以英文字母开头,长度限制为64字符),一个Workflow里的两个step名称不能重复 title="模型注册", # 标题信息 inputs=wf.steps.ModelInput(name='model_input', data=job_step.outputs["train_url"].as_input()), # job_step的输出作为输入 outputs=wf.steps.ModelOutput(name='model_output', model_config=wf.steps.ModelConfig(model_name=model_name, model_type="TensorFlow")), # ModelStep的输出 depend_steps=[job_step], # 依赖的作业类型节点对象 policy=wf.steps.StepPolicy(skip_conditions=condition_lt) # 通过skip_conditions中的计算结果决定model_step是否跳过 ) workflow = wf.Workflow( name="new-condition-demo", desc="this is a demo workflow", steps=[job_step, model_step], storages=storage ) 案例中model_step配置了相关的跳过策略,并且通过获取job_step输出的accuracy指标信息与预置的值进行比较,决定是否需要进行模型注册。当job_step输出的accuracy指标数据小于阈值0.5时,condition_lt的计算结果为True,此时model_step会被置为跳过,反之model_step正常执行。 job_step输出的metric文件格式要求可参考创建Workflow训练作业节点部分,并且在Condition中只支持使用type为float类型的指标数据作为输入。 此案例中metrics.json的内容示例如下: [ { "key": "loss", // 指标数据名称,不支持特殊字符,长度限制为64字符 "title": "loss", // 指标数据标题,长度限制为64字符 "type": "float", // 指标数据类型,支持以下类型:浮点:float、折线图:line chart、柱状图:histogram、矩阵:table、一维表格:one-dimensional-table "data": { "value": 1.2 // 指标数据值,不同类型的使用示例可以参考创建Workflow训练作业节点 } }, { "key": "accuracy", "title": "accuracy", "type": "float", "data": { "value": 0.8 } } ]
  • 规格限制 除表格类型之外的数据集(如视频、文本、音频等),单个数据集的最大样本数量限制:1000000,最大标签数量限制:10000。 除图片类型之外的数据集(如视频、文本、音频等),单个样本大小限制:5GB。 针对图片类数据集(物体检测、图像分类、图像分割),单个图片大小限制:25MB。 单个manifest文件大小限制:5GB。 文本文件单行大小限制:100KB。 数据集标注结果文件大小限制:100MB。
  • 数据集的类型 当前ModelArts支持如下格式的数据集。 图片:对图像类数据进行处理,支持 .jpg、.png、.jpeg、.bmp四种图像格式,支持用户进行图像分类、物体检测、图像分割类型的标注。 音频:对音频类数据进行处理,支持.wav格式,支持用户进行声音分类、语音内容、语音分割三种类型的标注。 文本:对文本类数据进行处理,支持.txt、.csv格式,支持用户进行文本分类、命名实体、文本三元组三种类型的标注。 视频:对视频类数据进行处理,支持.mp4格式,支持用户进行视频标注。 自由格式:管理的数据可以为任意格式,目前不支持标注,适用于无需标注或开发者自行定义标注的场景。如果您的数据集需存在多种格式数据,或者您的数据格式不符合其他类型数据集时,可选择自由格式的数据集。 表格 表格:适合表格等结构化数据处理。数据格式支持csv。不支持标注,支持对部分表格数据进行预览,但是最多支持100条数据预览。