华为云用户手册

  • 支持的模型结构框架 AI Gallery的Transformers库支持的开源模型结构框架如表1所示。 表1 支持的模型结构框架 模型结构 PyTorch MindSpore GPU 昇腾 Llama 支持 不支持 支持 支持 Bloom 支持 不支持 支持 不支持 Falcon 支持 不支持 支持 不支持 BERT 支持 不支持 支持 不支持 MPT 支持 不支持 支持 不支持 ChatGLM 支持 不支持 支持 支持
  • Transformers库介绍 AI Gallery使用的Transformers机器学习库是一个开源的基于Transformer模型结构提供的预训练语言库。Transformers库注重易用性,屏蔽了大量AI模型开发使用过程中的技术细节,并制定了统一合理的规范。使用者可以便捷地使用、下载模型。同时支持用户上传自己的预训练模型到在线模型资产仓库中,并发布上架给其他用户使用。AI Gallery在原有Transformers库的基础上,融入了对于昇腾硬件的适配与支持。对AI有使用诉求的企业、NLP领域开发者,可以借助这个库,便捷地使用昇腾算力进行 自然语言理解 (NLU)和自然 语言生成 (NLG)任务的SOTA模型开发与应用。
  • 我的Gallery介绍 登录AI Gallery,单击右上角“我的Gallery”进入我的Gallery页面,在“我的Gallery”页面可以查看个人资产、个人收藏、个人信息等内容。 表1 我的Gallery 分类 子类 功能说明 我的资产 模型 展示个人创建的模型,可以查看模型的发布时间、订阅量、收藏量等信息。 数据集 “我创建的数据集”:展示个人创建的数据集,可以查看数据集的发布时间、订阅量、收藏量等信息。 “我的下载”:可以查看个人下载的数据集信息(只有ModelArts发布的数据集支持下载)。单击下拉三角,可以查看数据集ID、目标区域等信息。 “我的订阅”:可以查看个人订阅的盘古数据集信息。 AI应用 展示个人创建的AI应用,可以查看AI应用的发布状态、发布时间、收藏量等信息。 示例 展示个人创建的Notebook示例,可以查看示例的发布时间、收藏量等信息。 AI说 展示个人发布的技术文章,可以查看文章浏览量、收藏量等信息。 删除AI说:鼠标悬浮在文章页签上,单击出现的删除按钮即可删除已发布的技术文章。 说明: 删除操作无法恢复,请谨慎操作。 我的收藏 模型 查看收藏的AI资产,单击资产页签可以跳转到资产详情页。 数据集 AI应用 示例 AI说 我的活动 - 展示个人参与的活动信息,可以查看活动名称、参与状态、活动状态等信息。 我的资源 云服务器 展示通过预申请算力创建的服务器列表。 申请管理 资产申请审核 展示了模型可用范围的申请单,模型所有者可以管理模型使用者的权限申请单。 我的算力预申请 展示了ModelArts Lite的算力预购申请列表。 个人信息 个人资料 查看个人基本信息,包括“帐号”、“头像”、“昵称”、“用户ID”、“邮箱”、“简介”等信息。 单击“头像”下方的“上传图片”,可以选择图片编辑新头像。 单击“昵称”后的按钮,可以编辑昵称。 单击“用户ID”后的按钮,可以快速复制ID。 单击“邮箱”后的按钮,可以修改邮箱地址。 单击“开启邮箱通知”的开关,可以选择是否启用邮箱通知。 单击“简介”处的按钮,可以编辑个人简介,最多支持500个字符。 说明: 请勿在个人资料中输入涉政、迷信、违禁等相关敏感词,否则修改无法生效。 父主题: AI Gallery(新版)
  • 修订记录 发布日期 修改说明 2024-04-01 支持自定义模型使用AI Gallery预置镜像部署推理服务。 更新任务类型的参数说明:托管模型资产 新增约束限制,更新操作指导:模型部署为推理服务 新增推理的自定义模型规范:自定义模型规范 支持 自定义镜像 进行模型微调和部署推理服务。 新增章节:自定义镜像规范 新增约束限制:托管模型资产、模型微调、模型部署为推理服务 支持托管盘古数据集。 新增“运行平台”等参数说明:托管数据集资产 新增介绍数据集的“我的订阅”页签:我的Gallery介绍 新增CLI工具不支持下载盘古数据集的约束:Gallery CLI配置工具介绍 支持查看模型微调和部署推理服务的指标效果。 新增查看训练效果的内容:模型微调 新增查看推理效果的内容:模型部署为推理服务 支持使用Gallery CLI配置工具上传单个超过5GB的文件。 新增上传文件说明:托管模型资产、托管数据集资产 新增本地安装指导:安装Gallery CLI配置工具 新增章节:使用Gallery CLI配置工具上传文件 2024-03-15 优化计算规格模块。 修改计算规格选择的操作指导:模型微调 更新计算规格选择参数:模型部署为AI应用 更新部署参数说明:模型部署为推理服务 更新欠费说明:计算规格说明 支持自定义模型使用AI Gallery预置镜像进行模型微调。 更新任务类型的参数说明:托管模型资产 新增约束限制,更新操作指导:模型微调 新增章节:自定义模型规范 2024-01-31 支持Gallery CLI配置工具。 新增章节:Gallery CLI配置工具指南 补充配置工具说明:购买ModelArts Lite的算力资源 2024-01-22 支持购买ModelArts Lite的算力资源。 新增章节:购买ModelArts Lite的算力资源 更新“申请管理”参数名:管理模型的可用范围、我的Gallery介绍 2024-01-19 支持体验盘古大模型解决方案。 新增章节:体验解决方案 支持使用AI Gallery SDK构建自定义模型。 新增章节:使用AI Gallery SDK构建自定义模型 2024-01-11 优化资产托管的操作指导。 新增章节:资产托管简介、托管模型资产 内容重构优化:托管数据集资产 2024-01-09 支持参加开发者活动。 新增章节:参加活动(活动) 增加“我的活动”说明:我的Gallery介绍 2023-12-21 支持付费资源。 新增章节:计算规格说明 更新计算规格说明:模型微调、模型部署为AI应用、模型部署为推理服务 支持管理模型的可用范围。 新增章节:管理模型的可用范围 更新可用范围说明:资产上架 增加“申请列表”说明:我的Gallery介绍 增加申请使用资产的操作:订阅免费模型 支持Readme联动。 增加资产介绍的操作指导资产托管 2023-9-30 第一次正式发布。 父主题: AI Gallery(新版)
  • 编辑模型介绍 资产发布上架后,准确、完整的资产介绍有助于提升资产的排序位置和访问量,能更好的支撑用户使用该资产。 在模型详情页,选择“模型介绍”页签,单击右侧“编辑”。 编辑模型基础设置和模型描述。 表2 模型介绍的参数说明 参数名称 说明 基础设置 模型名称 显示模型的名称,不可编辑。 许可证 模型遵循的使用许可协议,根据业务需求选择合适的许可证类型。 语言 选择使用模型时支持的输入输出语言。 框架 选择构建模型使用的AI开发框架。 任务类型 选择模型支持的任务类型,不同任务类型支持的AI Gallery工具链服务请参见表3。 文本问答:从给定文本中检索问题的答案,适用于从文档中搜索答案的场景。 文本生成:基于给定文本进行续写,生成新的文本。 其他类型:基于实际场景选择合适的任务类型。 说明: 如果模型的“任务类型”是除“文本问答”和“文本生成”之外的类型,则被定义为自定义模型。自定义模型必须要满足自定义模型规范,才支持使用AI Gallery工具链服务。 硬件资源 选择支持运行该模型的硬件类型。 最低可运行规格 设置能够运行该模型的最低计算规格。在AI Gallery工具链服务中使用该模型时,只能选取等同或高于该规格的算力资源进行任务下发。 是否支持分布式训练/推理 选择该模型资产是否支持在单机多卡的资源节点上进行并行训练或推理。 README.md - 资产的README内容,支持添加资产的简介、使用场景、使用方法等信息。 当托管的是自定义镜像时,填写的内容要满足自定义镜像规范,否则该镜像无法正常使用AI Gallery工具链服务(微调大师和在线推理服务)。 说明: 建议写清楚模型的使用方法,方便使用者更好的完成训练、推理任务。 表3 任务类型支持的AI Gallery工具链服务 任务类型 微调大师 在线推理服务 AI应用 文本问答/文本生成 支持 支持 支持 其他类型 支持 支持 不支持 编辑完成后,单击“确认”保存修改。
  • 管理模型文件 预览文件 在模型详情页,选择“模型文件”页签。单击文件名称即可在线预览文件内容。 仅支持预览大小不超过10MB、格式为文本类或图片类的文件。 下载文件 在模型详情页,选择“模型文件”页签。单击操作列的“下载”,即可下载文件到本地。 删除文件 在模型详情页,选择“模型文件”页签。单击操作列的“删除”,确认后即可将已经托管的文件从AI Gallery仓库中删除。 文件删除后不可恢复,请谨慎操作。
  • 创建模型资产 登录AI Gallery,单击右上角“我的Gallery”进入我的Gallery页面。 单击左上方“创建资产”,选择“模型”。 在“创建模型”弹窗中配置参数,单击“创建”。 表1 创建模型 参数名称 说明 模型英文名称 必填项,模型的英文名称。 如果没有填写“模型中文名称”,则资产发布后,在模型页签上会显示该“模型英文名称”。 模型中文名称 模型的中文名称。 如果填写了“模型中文名称”,则资产发布后,在模型页签上会显示该“模型中文名称”。 许可证 模型资产遵循的使用协议,根据业务需求选择合适的许可证类型。 描述 填写资产简介,模型发布后将作为副标题显示在模型页签上,方便用户快速了解资产。 支持0~90个字符,请勿在描述中输入涉政、迷信、违禁等相关敏感词,否则发布审核无法通过。 创建完成后,跳转至模型详情页。
  • 上传模型文件 在模型详情页,选择“模型文件”页签。 单击“添加文件”,进入上传文件页面,选择本地的数据文件单击“点击上传”或拖动文件,单击“确认上传”启动上传。 上传单个超过5GB的文件时,请使用Gallery CLI工具。CLI工具的获取和使用请参见Gallery CLI配置工具介绍。 文件合集大小不超过50GB。 文件上传完成前,请不要刷新或关闭上传页面,防止意外终止上传任务,导致数据缺失。 当模型的“任务类型”是除“文本问答”和“文本生成”之外的类型(即自定义模型)时,上传的模型文件要满足自定义模型规范,否则该模型无法正常使用AI Gallery工具链服务(微调大师和在线推理服务)。 当托管的是自定义镜像时,上传的模型文件要满足自定义镜像规范,否则该镜像无法正常使用AI Gallery工具链服务(微调大师和在线推理服务)。 当文件状态变成“上传成功”表示数据文件成功上传至AI Gallery仓库进行托管。单击“完成”返回模型文件页面。 图1 上传成功 文件上传过程中请耐心等待,不要关闭当前上传页面,关闭页面会中断上传进程。
  • AI Gallery使用限制 订阅或购买主要是获取AI资产的使用配额和使用权,支持在配额定义的约束下,有限地使用AI资产。 使用AI资产时,可能需要消耗硬件资源,硬件资源费用将根据实际使用情况,由华为云ModelArts等管理控制台向使用方收取。 已发布的AI资产,如果不需要在资产列表中展示该资产,可以将资产下架。下架后,已发布资产仅发布者可见。已经被订阅的资产,即便资产下架后,基于配额资源的约束,仍然可有效使用该资产,不会因为该资产的下架而产生使用问题。
  • 入驻AI Gallery 如果需要在AI Gallery中发布HiLens、报名实践活动或发布AI说,则需要先完成入驻AI Gallery。 如果没有入驻过AI Gallery,在报名实践活动或发布AI说时,将跳转至“欢迎入驻AI Gallery”页面。 在“欢迎入驻AI Gallery”页面,填写“昵称”和“邮箱”,并根据提示获取验证码。阅读并同意《华为云AI Gallery数字内容发布协议》和《华为云AI Gallery服务协议》后,单击“确定”完成入驻。 图1 入驻AI Gallery 注册完成后,您可以在AI Gallery中报名实践活动或发布技术文章(AI说)。 父主题: AI Gallery(旧版)
  • 准备工作 获取“repo_id”和待下载的文件名。 获取“repo_id” 在AI Gallery页面的资产详情页,单击复制完整的资产名称,如图1所示,获取到的信息即为“repo_id”。例如,复制出的信息为“ur5468675/test_cli_model1”,则该资产的“repo_id”为“ur5468675/test_cli_model1”。 图1 复制完整资产名称 如果资产详情页没有按钮,则表示该资产不支持使用Gallery CLI配置工具下载文件。 获取待下载的文件名 在AI Gallery页面的资产详情页,如果是模型资产,则选择“模型文件”页签,如果是数据集资产,则选择“文件版本”页签,获取“文件名称”。
  • 命令说明 登录Gallery CLI配置工具后,使用命令“gallery-cli download --help”可以获取Gallery CLI配置工具下载文件的帮助信息。 gallery-cli download --help 获得命令“gallery-cli download”可用选项的完整列表如下所示。 Usage: gallery-cli download [OPTIONS] REPO_ID [FILENAMES]... Download files from the AI Gallery ╭─ Arguments ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ * repo_id TEXT ID of the repo to download from (e.g. `username/repo-name`). [required] │ │ filenames [FILENAMES]... Files to download (e.g. `config.json`,`data/metadata.jsonl`). │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ --include TEXT Glob patterns to match files to download. │ │ --exclude TEXT Glob patterns to exclude from files to download. │ │ --local-dir TEXT Specified local dir to store model or dataset │ │ --help Show this message and exit. │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ 具体支持如下使用场景: 下载单个文件 下载多个文件 下载文件到指定路径 下载单个AI Gallery仓库
  • 微调产物说明 模型微调完成后,会得到一个新模型,即微调产物。 在微调大师页面,单击操作列的“查看模型”跳转到微调获得的新模型的详情页面。选择“模型文件”页签可以查看微调产物。各文件说明请参见表3。 图1 微调产物示例 表3 微调产物说明 文件名 文件说明 gallery_train文件夹 自定义模型的模型训练文件,仅当使用自定义模型微调时才会有这个微调产物,内容和预训练模型里的gallery_train文件一致。 training_logs/user_params.json 微调配置参数信息,AI Gallery会自动将微调设置的参数信息记录在此文件下。 “README.md” 模型的基础信息。内容和预训练模型里“模型文件”页签的“README.md”一致。 其他文件 当使用自定义模型微调时,可能还会有一些其他微调产物,这是由自定义模型的训练脚本文件train.py决定的,如果训练脚本定义了归档其他训练产物,就会在此处呈现。
  • 选择训练任务类型 选择模型微调的训练任务类型。 当模型的“任务类型”是“文本问答”或“文本生成”时,“训练任务类型”默认和模型“任务类型”一致。“训练任务类型”支持修改,如果模型文件满足自定义模型规范(训练),则“训练任务类型”支持选择“自定义”。 当模型的“任务类型”是除“文本问答”和“文本生成”之外的类型(即自定义模型)时,则“训练任务类型”默认为“自定义”,支持修改为“文本问答”或“文本生成”。 当使用自定义镜像进行模型微调时,“训练任务类型”默认为“自定义”,且不支持修改。
  • 查看训练效果 启动模型微调任务后,在微调大师列表单击操作列的“任务详情”,在弹窗中选择“指标效果”页签,可以查看训练效果。 表2 训练效果的指标介绍 指标名称 指标说明 NPU/GPU利用率 在训练过程中,机器的NPU/GPU占用情况(横坐标时间,纵坐标占用率)。 显存利用率 在训练过程中,机器的显存占用情况(横坐标时间,纵坐标占用率)。 吞吐 在训练过程中,每卡处理tokens数量(tokens/s/p)。每种框架计算方式不一致,例如,ATB可通过“samples per second*seq_lenth/总卡数”得到tokens/s/p,输出给throughout字段,seq_lenth取值在训练脚本中可以查看。 单机8卡吞吐量一般为1650tokens/s/p,双机16卡吞吐量一般为1625tokens/s/p。 说明: 自定义训练或自定义镜像训练,需要提前在训练启动脚本(例如“train.py”)中定义好迭代次数、LOSS和吞吐数据的存放位置,以及存放格式(必须是“迭代次数|loss|吞吐”),才能在此处正常查看吞吐和“训练LOSS”曲线。 训练LOSS 训练阶段的LOSS变化,模型在日志里用LOSS关键词记录数据,按照训练迭代周期记录LOSS值。
  • 约束限制 Gallery CLI配置工具下载文件时依赖集群的公网访问权限,所以在使用CLI时要求集群配置NAT网关,具体操作请参见公网NAT网关。 只有托管到AI Gallery仓库的资产才支持使用Gallery CLI配置工具下载文件,如果在资产详情页有“复制完整资产名称”按钮即表示该资产支持使用Gallery CLI配置工具下载,如图1所示。 图1 复制完整资产名称 “运行平台”设置为“Pangu Studio”的数据集,不支持使用CLI工具下载。
  • 搜索资产 在各类资产模块页面,通过如下几种搜索方式可以提高资产的查找效率,快速找到适合的算法、模型、数据集、镜像、Workflow等资产。 图1 搜索资产 表1 快速搜索方式 区域 类型 搜索方式 支持的AI资产 1 搜索华为云官方资产 在页面单击“官方”,筛选出所有的华为云官方资产,该类资产均可免费使用。 Notebook、算法、模型 2 搜索精选商品 在页面单击“精选”,筛选出所有被标记为精选的资产。 Notebook、数据、算法、模型、Workflow 3 按标签搜索 在页面单击“所有标签”,选择标签,单击“确定”,筛选出相关资产。 Notebook、数据、算法、镜像、模型、Workflow 4 按排序方式搜索 在页面的排序列表选择排序方式,调整资产排序方式快速查找所需资产。 Notebook、数据、算法、镜像、模型、Workflow 5 搜索商用资产 在页面单击“商用”,筛选出所有的商业售卖资产。 算法、模型
  • 管理数据集文件 预览文件 在数据集详情页,选择“文件版本”页签。单击文件名称即可在线预览文件内容。 仅支持预览大小不超过10MB、格式为文本类或图片类的文件。 下载文件 在数据集详情页,选择“文件版本”页签。单击操作列的“下载”,选择保存路径单击“确认”,即可下载文件到本地。 删除文件 在数据集详情页,选择“文件版本”页签。单击操作列的“删除”,确认后即可将已经托管的文件从AI Gallery仓库中删除。 文件删除后不可恢复,请谨慎操作。
  • 编辑数据集介绍 资产发布上架后,准确、完整的资产介绍有助于提升资产的排序位置和访问量,能更好的支撑用户使用该资产。 在数据集详情页,选择“数据集介绍”页签,单击右侧“编辑”。 编辑数据集基础设置和数据集描述。 表2 数据集介绍的参数说明 参数名称 说明 基础设置 数据集名称 显示数据集的名称,不可编辑。 许可证 数据集遵循的使用许可协议,根据业务需求选择活修改合适的许可证类型。 语言 选择使用数据集时支持的输入输出语言。 任务类型 选择数据集支持用于什么类型的训练模型。 运行平台 选择数据集额外支持的运行平台。 设置运行平台后,当资产上架后,该资产支持通过订阅的方式同步到所选运行平台使用。 设置运行平台后,单击“设置”,在弹窗中可以自定义设置运行平台的资产标签,且标签可以被一起同步至运行平台。 数据集描述 - 资产的README内容,支持添加资产的简介、使用场景、使用方法等信息。 当托管的是自定义镜像时,填写的内容要满足自定义镜像规范,否则该镜像无法正常使用AI Gallery工具链服务(微调大师和在线推理服务)。 说明: 建议写清楚模型的使用方法,方便使用者更好的完成训练、推理任务。 编辑完成后,单击“确认”保存修改。
  • 创建数据集资产 登录AI Gallery,单击右上角“我的Gallery”进入我的Gallery页面。 单击左上方“创建资产”,选择“数据集”。 在“创建数据集”弹窗中配置参数,单击“创建”。 表1 创建数据集 参数名称 说明 数据集英文名称 必填项,数据集的英文名称。 如果没有填写“数据集中文名称”,则资产发布后,在数据集页签上会显示该“数据集英文名称”。 数据集中文名称 数据集的中文名称。 如果填写了“数据集中文名称”,则资产发布后,在数据集页签上会显示该“数据集中文名称”。 许可证 数据集资产遵循的使用协议,根据业务需求选择合适的许可证类型。 描述 填写资产简介,数据集发布后将作为副标题显示在数据集页签上,方便用户快速了解资产。 支持0~90个字符,请勿在描述中输入涉政、迷信、违禁等相关敏感词,否则发布审核无法通过。 创建完成后,跳转至数据集详情页。
  • 上传数据集文件 在数据集详情页,选择“文件版本”页签。 单击“添加文件”,进入上传文件页面,选择本地的数据文件单击“点击上传”或拖动文件,单击“确认上传”启动上传。 上传单个超过5GB的文件时,请使用Gallery CLI工具。CLI工具的获取和使用请参见Gallery CLI配置工具介绍。 文件合集大小不超过50GB。 文件上传完成前,请不要刷新或关闭上传页面,防止意外终止上传任务,导致数据缺失。 当文件状态变成“上传成功”表示数据文件成功上传至AI Gallery仓库进行托管。单击“完成”返回文件版本页面。 图1 上传成功 文件上传过程中请耐心等待,不要关闭当前上传页面,关闭页面会中断上传进程。
  • 安装Gallery CLI配置工具 当Gallery CLI配置工具包下载完成后,进入服务器安装工具。不管是ModelArts Lite云服务,还是本地Windows/Linux等服务器,安装操作都相同。 登录服务器,激活python虚拟环境。 conda activate [env_name] # 例如使用conda管理python环境(需要确认环境已安装Anaconda) 在python环境中安装CLI工具。 pip install ./gallery_cli-0.0.3-py3-none-any.whl 配置CLI工具的环境信息。 在服务器的任意目录下(本文以“/gallerycli”为例)新建CLI配置文件“config.env”,包含如下配置信息。 # IAM 相关配置 iam_url=https://iam.myhuaweicloud.com/v3/auth/tokens iam_project=cn-north-7 iam_timeout=15 # 账号密码,和AK/SK二选一 iam_domain=xxx iam_user=xxx iam_password=xxx # AK/SK,和账号密码二选一 iam_ak=xxx iam_sk=xxx # 托管仓库相关配置 repo_url=https://{ModelArts-Endpoint}.myhuaweicloud.com # 系统相关配置 cached_dir=/test # 加解密配置 sdk_encrypt_implementation_func=/path/to/crypt.py.my_encrypt_func sdk_decrypt_implementation_func=/path/to/crypt.py.my_decrypt_func 表1 配置项参数说明 参数名称 说明 iam_url IAM地址,默认为“https://iam.myhuaweicloud.com/v3/auth/tokens”。 iam_project 服务器所在区域的项目名称,获取方式请参见获取项目ID和名称。如果是本地服务器则默认是北京四区域,此处填写“cn-north-4”。 iam_timeout (可选)IAM访问超时时间,单位为秒,缺省值是5。当环境网络不稳定时,建议将该值改大。如果超过该时间IAM还没有响应,系统会返回超时错误码,便于定位链接故障。 iam_domain 用户的账号ID,获取方式请参见获取帐号名和帐号ID。 iam_user IAM用户名,获取方式请参见获取用户名和用户ID。 iam_password IAM用户密码,即账号的登录密码。 iam_ak 访问密钥AK,获取方式请参见访问密钥。 iam_sk 访问密钥SK,获取方式请参见访问密钥。 repo_url AI Gallery仓库的地址,格式为“http://{ModelArts-Endpoint}.myhuaweicloud.com”,其中不同区域的Endpoint可以在ModelArts地区和终端节点获取。 cached_dir 缓存目录,默认AI Gallery仓库的文件下载至该目录下。 sdk_encrypt_implementation_func 自定义加密函数,认证用的AK和SK硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件中密文存放,使用时解密,确保安全。 sdk_decrypt_implementation_func 自定义解密函数,认证用的AK和SK硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件中密文存放,使用时解密,确保安全。 配置文件中,账号密码认证和AK/SK认证二选一即可。如果使用账号密码认证,则需要填写配置项“iam_domain”、“iam_user”和“iam_password”;如果使用AK/SK认证,则需要填写配置项“iam_ak”、“iam_sk”和加密配置。 配置项中的认证凭据信息不建议使用明文,可以通过下述方式扩展自定义的加解密组件。 在module(yourmodule)自定义一个解(加)密方法,例如decrypt_func(cipher),要求可以通过“from yourmodule import decrypt_func”的方式获取认证凭据信息。 在配置文件中配置“sdk_decrypt_implementation_func=yourmodule.decrypt_func”指向自定义的解密方法的引用。程序加载时会通过import_lib加载认证凭据信息。 配置文件中配置密文的格式“iam_ak={Crypto}cipher”,其中cipher会在配置项读取认证凭据信息时被解析传递进decrypt_func方法中,进行解密。 其他类似自定义加密的方法,会在保存Token到本地时进行加密。 配置CLI工具的环境变量,指定到上一步新建的配置文件。 export SDK_CONFIG_PATH=/gallerycli/config.env # 填写正确的config.env路径 配置完成后,执行如下命令查看CLI工具是否安装成功。 gallery-cli --help 如果安装成功会显示CLI中所有可用选项的列表,如下所示。 Usage: gallery-cli [OPTIONS] COMMAND [ARGS]... ╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ --install-completion Install completion for the current shell. | │ --show-completion Show completion for the current shell, to copy it or customize the installation. | │ --help Show this message and exit. | ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ─────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ download Download files from the AI Gallery | │ login Log in using ak sk from huawei cloud iam | │ logout Log out | ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ “--help”选项可以用于获取命令的更多详细信息,可以随时使用它来列出所有可用选项及其详细信息。例如,“gallery-cli download --help”可以获取使用CLI下载文件的更多帮助信息。
  • “train_params.json”示例 表5 training_methods参数说明 参数名称 说明 name 自定义的训练方式。 hyperparameters 训练方式包含的超参。具体参数说明请参见表6。 表6 hyperparameters参数说明 参数名称 说明 name 超参的名称,只能包含英文、数字、下划线。 type 支持的超参类型,支持float、int、str或bool。 required 超参是否必选,支持true、false。必选不可删除,非必选可删除。 default 超参的默认值,如果无默认值,则填写空双引号。 help 超参的说明,不能超过20个字符。 { "training_methods": [ { "name": "全参微调", "hyperparameters": [ { "name": "lr", "type": "float", "required": true, "default": 0.001, "help": "学习率" }, { "name": "per_device_eval_batch_size", "type": "int", "required": false, "default": 32, "help": "批大小" }, { "name": "logging_steps", "type": "int", "required": false, "default": 24, "help": "每多少步记录一次步骤" }, { "name": "save_strategy", "type": "str", "required": true, "default": "epoch", "help": "训练过程中保存checkpoint的策略" }, { "name": "num_train_epochs", "type": "int", "required": true, "default": 20, "help": "训练的总epochs数" }, { "name": "warmup_ratio", "type": "float", "required": true, "default": 0.1, "help": "用于指定线性热身占总训练步骤的比例" } ] } ] }
  • “train.py”示例 表4 环境变量说明 变量名称 说明 示例 ENV_AG_MODEL_DIR 模型存放路径,AI Gallery的模型仓库地址,包含模型仓库的所有文件。 “/home/ma-user/.cache/gallery/model/ur12345--gpt2” ENV_AG_DATASET_DIR 数据集存放路径,AI Gallery的数据集仓库地址,包含数据集仓库的所有文件。 “/home/ma-user/.cache/gallery/dataset/ur12345--data_demo” ENV_AG_USER_PA RAM S 配置的训练超参json字符串。创建训练任务时在算法配置页面设置的超参,用json字符串表示。 {"per_device_eval_batch_size":"32","lr":"0.001","logging_steps":"24"} ENV_AG_TRAIN_OUTPUT_DIR 训练产物文件存放路径。训练产物将被保存到该路径。训练任务结束后,由AI Gallery平台将该目录上传到新模型的仓库中。 “/home/ma-user/.cache/gallery/output” ENV_AG_USER_METRI CS _ LOG _PATH 训练数据的日志文件存放路径。训练过程中的迭代次数、LOSS和吞吐数据按照“迭代次数|loss|吞吐”格式记录在日志中,AI Gallery通过环境变量找到日志,从中获取实际数据绘制成“吞吐”和“训练LOSS”曲线,呈现在训练的“指标效果”中。具体请参见查看训练效果。 说明: 日志文件中的迭代次数、LOSS和吞吐数据必须按照“迭代次数|loss|吞吐”格式存放,否则AI Gallery会数据解析失败,导致“吞吐”和“训练LOSS”曲线异常。 “/var/logs/user_metrics.log” import json import os from datasets import load_dataset from transformers import AutoImageProcessor from torchvision.transforms import RandomResizedCrop, Compose, Normalize, ToTensor, RandomHorizontalFlip import numpy as np from transformers import AutoModelForImageClassification, TrainingArguments, Trainer from transformers import DefaultDataCollator from sklearn import metrics # 环境变量 # 工作目录 ENV_AG_WORK_DIR = 'ENV_AG_WORK_DIR' # 模型存放路径 ENV_AG_MODEL_DIR = 'ENV_AG_MODEL_DIR' # 数据集存放路径 ENV_AG_DATASET_DIR = 'ENV_AG_DATASET_DIR' # 配置的训练超参json字符串 ENV_AG_USER_PARAMS = 'ENV_AG_USER_PARAMS' # 训练产物存放路径 ENV_AG_TRAIN_OUTPUT_DIR = 'ENV_AG_TRAIN_OUTPUT_DIR' _transforms = None def _multi_class_classification_metrics(pred): raw_predictions, labels = pred predictions = np.argmax(raw_predictions, axis=1) results = { "f1_macro": metrics.f1_score(labels, predictions, average="macro"), "f1_micro": metrics.f1_score(labels, predictions, average="micro"), "f1_weighted": metrics.f1_score(labels, predictions, average="weighted"), "precision_macro": metrics.precision_score(labels, predictions, average="macro"), "precision_micro": metrics.precision_score(labels, predictions, average="micro"), "precision_weighted": metrics.precision_score(labels, predictions, average="weighted"), "recall_macro": metrics.recall_score(labels, predictions, average="macro"), "recall_micro": metrics.recall_score(labels, predictions, average="micro"), "recall_weighted": metrics.recall_score(labels, predictions, average="weighted"), "accuracy": metrics.accuracy_score(labels, predictions), } return results def parse_args(): """ 从AIGallery环境变量中获取用户配置的超参json """ return json.loads(os.getenv(ENV_AG_USER_PARAMS)) def _process_input_data(image_processor): # 加载数据集 dataset_path = os.getenv(ENV_AG_DATASET_DIR) dataset = load_dataset("imagefolder", data_dir=dataset_path) # 数据增强 normalize = Normalize(mean=image_processor.image_mean, std=image_processor.image_std) size = (image_processor.size["shortest_edge"] if "shortest_edge" in image_processor.size else ( image_processor.size["height"], image_processor.size["width"])) global _transforms _transforms = Compose([RandomResizedCrop(size), RandomHorizontalFlip(), ToTensor(), normalize]) ret = dataset.with_transform(_format_transforms) return ret # 转换函数 def _format_transforms(examples): examples["pixel_values"] = [_transforms(img.convert("RGB")) for img in examples["image"]] del examples["image"] return examples def train(user_args): print('Start to process dataset') model_path = os.getenv(ENV_AG_MODEL_DIR) image_processor = AutoImageProcessor.from_pretrained(model_path) dataset = _process_input_data(image_processor) print(f"Dataset: {dataset}") # label和id映射 classes = dataset["train"].features["label"].names label2id = {c: i for i, c in enumerate(classes)} id2label = {i: c for i, c in enumerate(classes)} print('Start to load model') # 加载模型 model = AutoModelForImageClassification.from_pretrained( model_path, num_labels=len(classes), id2label=id2label, label2id=label2id, ignore_mismatched_sizes=True ) print('Start to set training args') # 训练参数 training_args = TrainingArguments( output_dir=os.getenv(ENV_AG_TRAIN_OUTPUT_DIR), remove_unused_columns=False, evaluation_strategy="epoch", save_strategy=user_args['save_strategy'], learning_rate=float(user_args['lr']), save_total_limit=3, per_device_train_batch_size=32, gradient_accumulation_steps=1, per_device_eval_batch_size=int(user_args['per_device_eval_batch_size']), num_train_epochs=int(user_args['num_train_epochs']), warmup_ratio=float(user_args['warmup_ratio']), logging_steps=int(user_args['logging_steps']), load_best_model_at_end=True, metric_for_best_model="accuracy", push_to_hub=False, ) print('Start to train') # 训练参数 trainer = Trainer( model=model, args=training_args, data_collator=DefaultDataCollator(), train_dataset=dataset["train"], eval_dataset=dataset["test"], tokenizer=image_processor, compute_metrics=_multi_class_classification_metrics, ) # 开始训练 train_results = trainer.train() print('Start to save model') # 保存模型 trainer.save_model() trainer.log_metrics("train", train_results.metrics) trainer.save_metrics("train", train_results.metrics) trainer.save_state() print('Start to evaluate') # 在验证集上做准确性评估 eva_metrics = trainer.evaluate() trainer.log_metrics("eval", eva_metrics) trainer.save_metrics("eval", eva_metrics) print('All Done') if __name__ == '__main__': args = parse_args() train(args)
  • 自定义模型规范(推理) 当托管自定义模型到AI Gallery时,如果模型要支持AI Gallery的推理服务,则需要在“模型文件”添加gallery_inference文件夹,文件夹内容参考表2。 gallery_inference文件夹必须是一级目录直接上传,否则会被判定不符合自定义模型规范,无法使用模型微调。 如果自定义模型的模型文件不符合gallery_inference文件列表要求或文件内容为空,都将不能正常部署在线推理服务。 表2 gallery_inference文件列表 文件类型 文件说明 “inference.py” 必选文件,推理脚本文件,定义了自定义模型的推理处理方式,包含初始化推理(init)和输入输出(call函数)。代码示例请参见inference.py示例。 如果推理脚本里使用了其他脚本文件,则必须一起打包在gallery_inference文件夹里上传,否则会导致推理失败。 “requirements.txt” 非必选文件,环境配置文件,定义了项目依赖的python包。AI Gallery提供了基础镜像的依赖环境,如果要添加自定义依赖项,可通过requirements.txt文件实现。基础镜像包含python、PyTorch、cuda(GPU)、CANN(NPU)。
  • 自定义模型使用的预置镜像 AI Gallery提供了PyTorch基础镜像,镜像里已经安装好了运行任务所需的软件,供自定义模型直接使用,快速进行训练、推理。预置镜像的版本信息请参见表3。 表3 AI Gallery预置镜像列表 引擎类型 资源类型 版本名称 PyTorch NPU pytorch_2.0.1-cann_6.3.2-py_3.9-euler_2.10.7-aarch64 GPU pytorch_2.0.0-cuda_11.7-py_3.9.11-ubuntu_20.04-x86_64
  • 自定义模型的使用流程 托管模型资产 模型基础设置里的“任务类型”选择除“文本问答”和“文本生成”之外的类型。 上传模型文件时需要确认待上传的文件是否满足自定义模型规范。如果模型要支持训练,则需要满足自定义模型规范(训练);如果模型要支持推理,则需要满足自定义模型规范(推理)。 资产上架 模型微调或模型部署为推理服务 如果进行模型微调,则“训练任务类型”选择“自定义”。 如果部署为推理服务,则“推理任务类型”选择“自定义”
  • 自定义模型规范(训练) 当托管自定义模型到AI Gallery时,如果模型要支持AI Gallery的模型微调,则需要在“模型文件”添加gallery_train文件夹,文件夹内容参考表1。 gallery_train文件夹必须是一级目录直接上传,否则会被判定不符合自定义模型规范,无法使用模型微调。 如果自定义模型的模型文件不符合gallery_train文件列表要求或文件内容为空,都将不能正常进行模型微调。 表1 gallery_train文件列表 文件类型 文件说明 “train.py” 必选文件,训练脚本文件,定义了自定义模型的训练处理方式。代码示例请参见train.py示例。 如果训练脚本里使用了其他脚本文件,则必须一起打包在gallery_train文件夹里上传,否则会导致微调失败。 “train_params.json” 必选文件,训练参数文件,定义了模型训练的必要参数,例如训练方式、超参信息。该参数会显示在微调工作流的“作业设置”页面的算法配置和超参数设置里面。代码示例请参见train_params.json示例。 “dataset_readme.md” 必选文件,数据集要求说明,定义了模型训练时对数据集的要求,会显示在微调工作流的“准备数据”页面。 “requirements.txt” 非必选文件,环境配置文件,定义了项目依赖的python包。AI Gallery提供了基础镜像的依赖环境,如果要添加自定义依赖项,可通过requirements.txt文件实现。基础镜像包含python、PyTorch、cuda(GPU)、CANN(NPU)。
  • 准备工作 获取“repo_id”和待上传的文件名。 获取“repo_id” 在AI Gallery页面的资产详情页,单击复制完整的资产名称,如图1所示,获取到的信息即为“repo_id”。例如,复制出的信息为“ur5468675/test_cli_model1”,则该资产的“repo_id”为“ur5468675/test_cli_model1”。 图1 复制完整资产名称 获取待上传的文件名 获取待上传的文件在服务器的绝对路径。
  • 命令说明 登录Gallery CLI配置工具后,使用命令“gallery-cli upload --help”可以获取Gallery CLI配置工具上传文件的帮助信息。 gallery-cli upload --help 获得命令“gallery-cli upload”可用选项的完整列表如下所示。 Usage: gallery-cli upload [OPTIONS] REPO_ID [LOCAL_PATH] [PATH_IN_REPO] Upload File ╭─ Arguments ────────────────────────────────────────────────────────────────────────│ * repo_id TEXT ID of the repo to upload to (e.g. `username/repo-name`) [required] ││ local_path [LOCAL_PATH] Directory upload to repo [default: ./] ││ path_in_repo [PATH_IN_REPO] The repo path you want to upload (e.g. `dir1/dir2`) │╰─────────────────────────────────────────────────────────────────────╯ ╭─Options──────────────────────────────────────────────────────────────────╮│| --include TEXT Glob patterns to match files to download. ││ --exclude TEXT Glob patterns to exclude from files to download. ││ --help Show this message and exit. │╰─────────────────────────────────────────────────────────────────────╯ 具体支持如下使用场景: 上传单个文件 上传多个文件 上传单个文件到指定仓库目录 上传整个文件夹
共100000条