华为云用户手册

  • 函数说明 新建原子指标时,需要按照函数设定表达式。以聚合函数的部分函数为例,函数说明如表3所示: 表3 聚合函数说明 函数名 表达式 函数说明 avg(col) avg() 求平均值。 corr(col1, col2) corr() 返回两列数值的相关系数。 count(*) count() 返回记录条数。 covar_pop(col1, col2) covar_pop() 返回两列数值协方差。 covar_samp(col1, col2) covar_samp() 返回两列数值样本协方差。 max(col) max() 返回最大值。 min(col) min() 返回最小值。 stddev_pop(col) stddev_pop() 返回指定列的偏差。 stddev_samp(col) stddev_samp() 返回指定列的样本偏差。 sum(col) sum() 求和。 var_samp(col) var_samp() 返回指定列的样本方差。 如果想要查询更多函数的功能及说明,可以在新建原子指标页面的基本信息中的设定表达式项,单击对应函数,在页面右侧的函数说明框中会显示对应的函数说明。 图5 函数说明
  • 新建时间限定并发布 在 DataArts Studio 控制台首页,选择实例,单击“进入控制台”,选择对应工作空间的“数据架构”模块,进入数据架构页面。 图1 选择数据架构 (可选)在数据架构控制台,单击左侧导航树中的“配置中心”,在功能配置下选择是否开启“时间限定生成使用动态表达式”功能,默认关闭。 图2 功能配置 在数据架构控制台,单击左侧导航树中的“技术指标”,选择“时间限定”页签。 进入时间限定页面后,单击“新建”按钮。 在新建时间限定页面,参考表1配置参数,然后单击“发布”。 图3 时间限定 表1 新建时间限定参数说明 参数名称 说明 *限定名称 只能包含中文、英文字母、数字和下划线,且必须以中文或英文字母开头。 *限定英文名称 只能包含英文字母、数字和下划线。 *时间配置 可选择“按年”、“按月”、“按日”、“按小时”或“按分钟”,然后根据需要选择“快速选择”或“自定义”进行时间条件的设置。 自定义时,“-”表示从当前时间向前的时间段,“+”表示从当前时间向后的时间段。例如,过去一年到未来三年,可以按年自定义为“-1到+3”或“+3到-1”。 描述 描述信息。支持的长度0~490字符。 在弹出框中,选择审核人,单击“确认提交”,提交发布审核。 如果当前用户已被添加为审核人,则可以勾选“自助审批”,单击“确认提交”后,状态显示为“已发布”。 选择审核人时,系统支持选择多个审核人,全部审批通过后,状态才会显示为已发布。如果有任意一个人驳回,则状态为已驳回。 等待审核人员审核。 审核通过后,时间限定创建完成。
  • 删除业务指标 如果您已不再需要某个业务指标,可以删除该业务指标。如果待删除的业务指标已发布,则无法执行删除操作,您必须先将该业务指标下线后,才能执行删除操作。 在数据架构控制台,单击左侧导航树中的“业务指标”,进入业务指标页面。 在维度列表中找到需要删除的业务指标度,勾选该业务指标,然后单击业务指标列表上方“更多”中的“删除”。 图8 删除业务指标 在系统弹出的“删除”对话框中,确认无误后,单击“是”将业务指标删除。
  • Apache server日志 日志样例: [Mon Jan 08 20:43:51.854334 2018] [mpm_event:notice] [pid 36465:tid 140557517657856] AH00489: Apache/2.4.12 (Unix) OpenSSL/1.0.1t configured -- resuming normal operations 正则表达式为: ^\[(.*)\] \[(.*)\] \[(.*)\] (.*).* 解析结果如下: 表5 Apache server日志解析结果 列号 样值 1 Mon Jan 08 20:43:51.854334 2018 2 mpm_event:notice 3 pid 36465:tid 140557517657856 4 AH00489: Apache/2.4.12 (Unix) OpenSSL/1.0.1t configured -- resuming normal operations
  • Tomcat日志 日志样例: 11-Jan-2018 09:00:06.907 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux 正则表达式为: ^(\d.*\d) (\w*) \[(.*)\] ([\w\.]*) (\w.*).* 解析结果如下: 表3 Tomcat日志解析结果 列号 样值 1 11-Jan-2018 09:00:06.907 2 INFO 3 main 4 org.apache.catalina.startup.VersionLoggerListener.log 5 OS Name:Linux
  • Django日志 日志样例: [08/Jan/2018 20:59:07 ] settings INFO Welcome to Hue 3.9.0 正则表达式为: ^\[(.*)\] (\w*) (\w*) (.*).* 解析结果如下: 表4 Django日志解析结果 列号 样值 1 08/Jan/2018 20:59:07 2 settings 3 INFO 4 Welcome to Hue 3.9.0
  • Log4J审计日志 日志样例: 2018-01-11 08:51:06,156 INFO [org.apache.sqoop.audit.FileAuditLogger.logAuditEvent(FileAuditLogger.java:61)] user=sqoop.anonymous.user ip=189.xxx.xxx.75 op=show obj=version objId=x 正则表达式为: ^(\d.*\d) (\w*) \[(.*)\] user=(\w.*) ip=(\w.*) op=(\w.*) obj=(\w.*) objId=(.*).* 解析结果如下: 表2 Log4J审计日志解析结果 列号 样值 1 2018-01-11 08:51:06,156 2 INFO 3 org.apache.sqoop.audit.FileAuditLogger.logAuditEvent(FileAuditLogger.java:61) 4 sqoop.anonymous.user 5 189.xxx.xxx.75 6 show 7 version 8 x
  • Log4J日志 日志样例: 2018-01-11 08:50:59,001 INFO [org.apache.sqoop.core.SqoopConfiguration.configureClassLoader(SqoopConfiguration.java:251)] Adding jars to current classloader from property: org.apache.sqoop.classpath.extra 正则表达式为: ^(\d.*\d) (\w*) \[(.*)\] (\w.*).* 解析出的结果如下: 表1 Log4J日志解析结果 列号 样值 1 2018-01-11 08:50:59,001 2 INFO 3 org.apache.sqoop.core.SqoopConfiguration.configureClassLoader(SqoopConfiguration.java:251) 4 Adding jars to current classloader from property: org.apache.sqoop.classpath.extra
  • 数据治理 组织职责 在战略层面,由数据治理Sponsor和各部门负责人组成的数据治理领导组制定数据治理的战略方向,以构建数据文化和氛围为纲,整体负责数据治理工作的开展、政策的推广和执行,并作为数据治理问题的最终决策组织解决争议,监控和监督数据治理工作的绩效,并确保数据治理工作预算支持。 数据治理委员会和各领域数据治理工作组是数据治理战略在运作层面具体的实施团队。其中: 数据治理委员会:由数据治理负责人、数据治理专家和数据架构专家团组成,面向企业进行数据治理工作的统筹并提供工作指导,在整个企业范围定期沟通数据治理工作,形成数据质量精细化管控文化。根据数据治理领导组的愿景和长期目标,建立和管理数据治理流程、阶段目标和计划,设计和维护数据治理方法、总则、工具和平台,协助各数据领域工作组实施数据治理工作,对整体数据治理工作进行度量和汇报,并对跨领域的数据治理问题和争议进行解决和决策。 各领域数据治理工作组:在各领域数据范围内进行数据治理的工作,依据数据治理委员会制定的数据治理方法和总则,制定本领域数据治理目标和工作计划,负责领域数据资产的看护,维护更新相应数据标准和及相关元数据,设计本领域数据度量和规则,监控收集数据质量问题并持续改进提升,主动升级数据相关问题。最终完成领域内数据资产的看护,并支撑数据治理目标的达成。 领域数据治理工作组由数据Owner、数据代表、数据管家、数据专员和数据架构师组成。其中: 数据Owner(Data Owners):数据Owner是领域数据治理工作的责任人。 制定本领域数据治理的目标,工作计划和执行优先级。 建立数据治理责任机制,将本领域的数据治理工作分解到工作组成员,并跟进及管理工作组工作。 设计数据质量规格,承接数据需求,对数据问题及争议进行裁决。 建设和维护本领域信息架构。 建立和推动领域数据文化和氛围。 数据代表(Data Representatives):数据代表是领域数据治理工作的专家带头人。 深刻理解数据工作的目标、方法、规则、工具,并通过识别关键业务流程和IT系统,对本领域数据治理的路标和工作计划进行细化并排序,最终管理执行。 作为本领域数据治理专家,管理并解决问题和争议,必要时提交数据Owner进行裁决。 对业务环节数据的完整性、及时性、准确性、一致性、唯一性、有效性负责,确保行为即记录,记录即数据,并依据数据质量规格对本领域数据进行度量和报告。 落实本领域信息架构的建设和遵从,负责本领域数据资产的看护,维护相应数据标准和数据目录并更新发布。 承接上下游数据需求,并主动根据领域内应用场景和业务需求识别数据需求,对需求的实现进行推动和管理。 依据相关规定定义本领域数据安全等级,并进行数据授权管理。 数据管家(Data Stewards):数据管家是领域数据治理工作的协助者。 确保领域治理工作的流程和内容规范,符合数据治理要求。 协助数据代表进行问题跟踪和解决。 梳理、维护并更新领域数据元数据(业务对象、数据标准、数据模型)。 推广和维护数据治理工具和平台在本领域的应用。 数据专员(Data Specialists):数据专员是领域数据治理工作的专家团队。 基于本领域数据治理的工作计划,利用数据专项技能,支撑数据代表完成数据Owner分配的各类数据治理工作。 数据架构师(Data Architects):数据架构师是领域数据治理工作在IT层面的代表。 开发和维护本领域的数据系统或子系统,确保数据在系统中得以记录,数据标准、数据质量规则、数据安全、主/参考数据管理、数据服务在系统中得以实施。 提供数据系统的数据相关信息(元数据、数据字典、数据血缘)。 协助执行IT相关的数据治理工作。 确保数据系统的技术方案符合本领域的信息架构,技术选择能够满足数据发展中长期的需求。 父主题: 数据治理组织架构
  • 华为数据治理实践 华为数据治理的规范流程建设,完成了从数据产生、数据整合、数据分析与数据消费全价值流的规则制定。华为数据治理组织实践,建立实体化的数据管理组织,向公司数据管理部汇报,同时组建了跨领域数据联合作战团队。华为已建立统一的数据分类管理框架,指导各领域进行分类管理。华为信息架构框架,通过政策发文明确信息架构的定义和构成要素,在公司层面建立统一的架构方法。基于ISO8000标准,华为建立了数据质量管理框架和运作机制,每年例行开展两次公司级数据质量度量,从“设计“与”执行”两个方面度量数据质量,由公司数据Owner定期发布公司数据质量报告,牵引各业务领域持续改进数据质量。 图1 华为数据治理愿景与目标 图2 华为数据治理能力 父主题: 华为数据治理案例
  • 数据治理模块域 数据治理主要专注于如下模块域: 数据集成 数据集成用来完成数据入湖动作,不是简单的数据搬家,而是按照一定的方法论进行数据备份。数据入湖的前提条件是满足6项数据标准,包括:明确数据Owner、发布数据标准、定义数据密级、明确数据源、数据质量评估、元数据注册。此标准由数据代表在入湖前完成梳理并在数据治理平台上进行资产注册。 数据标准 数据标准管理着重建立统一的数据语言,各级数据层级业务对象的定义是数据标准的载体,并对应发布各数据层级的数据标准。各业务对象对应物理实现的IT系统需发布相应的数据字典并进行数据源认证。而对于梳理出来,但没有落IT系统的业务对象,需在后继的开发中进行数字化落地。 数据开发 数据开发是编排、调度和运维的中心,数据开发是一个提供分析、设计、实施、部署及维护一站式数据解决方案,完成数据加工、转换和质量提升等。数据开发屏蔽了各种数据存储的差异,一站式满足从数据集成、数据清洗/转换、数据质量监控等全流程的数据处理,是数据治理实施的主战场。 数据质量 数据质量管理的目标在于保证数据满足使用的要求。数据标准是衡量数据质量最基本的基准。数据质量要求各业务部门对相应数据领域的数据质量全权负责,按业务需求设计数据质量标准,制定数据质量管控目标,并遵循企业数据治理要求进行数据质量度量,制定符合各自业务情况的数据质量政策及数据质量相关的改进计划,持续进行数据质量管控。 数据资产 数据资产包括业务资产、技术资产、指标资产等。数据资产管理是数据治理的重要支撑手段,核心是构建企业级的元数据管理中心、建立数据资产目录、建立数据搜索引擎、实现数据血缘和数据全景可视。其中元数据包括业务元数据、技术元数据和操作元数据,要求将企业所有概念数据模型、逻辑数据模型以及物理数据模型系统化地管理起来,同时建设企业数据地图及数据血缘关系,为数据调用、数据服务、数据运营及运维提供强有力的信息支撑。 数据服务 数据服务通过在整个企业范围统一数据服务设计和实现的规范并进行数据服务生命周期管理,集约管理数据服务并减少数据调用和集成的开发成本。 数据安全 由于企业使用的数据资源,既有来自于内部业务系统,所有权属于企业的数据,同时也有来自外部的数据,必须将数据安全纳入数据治理的范畴,对所有企业数据要求依据数据安全等级定义进行数据安全定级,在数据产生、传输、存储和使用的过程中进行必要的数据安全访问控制,同时对数据相应的CRUD活动均需产生日志以完成安全审计。 主数据 主数据管理是数据标准落地和提升数据质量的重要手段,是企业级数据治理的重要范畴,其目标在于保证在企业范围内重要业务实体数据的一致(定义和实际物理数据的一致)。主数据管理首先进行企业主数据的识别,然后对已识别主数据按照主数据规范要求进行数据治理和IT改造,以支撑企业业务流和工具链的打通和串联。 管理中心 数据治理的开展离不开组织、流程和政策的建设,管理中心也管理着数据治理过程中公共核心的统一数据源、数据驾驶舱等,满足不同角色的用户拥有个性化的工作台。 父主题: 数据治理框架
  • 新冠疫情数据治理思考 中共中央政治局常务委员会2020年2月3日召开会议强调:这次疫情是对我国治理体系和能力的一次大考。全民抗疫的过程中,缺乏有效数据支持就是缺乏对于疫情的快速响应机制、缺乏对于医疗资源合理调配的能力。 通过数据治理,我们可以构建开放通用的数据采集接口,提高数据采集效率;统一数据标准,轻松融合数据;建立跨平台的数据提取和数据追溯,实现开放共享,打通信息孤岛;保护隐私数据,构建可信数据。 以“健康码”为依托的各类政务小程序,正在加速提升市民信息化应用能力,基于数据治理、数据共享,很可能在不久以后,我们就可以实现“一码走天下”。将线上疫情应急治理体系转变为常态化管理体系,降低日常行政成本,发挥更大的数据流动与服务价值。通过自主申报健康信息,民众可获取反映健康状况的健康码,并凭码通行社区、办公楼、交通口等核验场景。在防疫初期,健康码有助于防止线下扎堆填报信息带来的病毒传染风险,一改政府人海战术排查病患的做法;随着疫情得到初步控制,健康码实现的人员行程追踪、同行密切接触人员自查等功能亦助力企业复工复产。随着各地复工复产加速,跨区域人口流动为疫情防控带来新的挑战,统一各层级政府和不同部门的数据标准,共享确诊、疑似病例、密切接触者、县域风险等级数据库是当下数据治理的关键。
  • 高质量数据是业务创新的基础 企业在市场中的竞争领域已经从同一领域市场份额争夺,发展到开发新竞争领域的创新性竞争阶段,这从客观上对企业的创新能力提出了更高的要求,现在企业的创新在很大程度上要借助科技的手段,在业务数据的开发和利用基础上进行创新,数据为企业实施有效的创新提供了丰富强大的动力。 企业数据繁杂,无标准,质量低。 企业的IT系统经历了数据量高速膨胀的时期,这些海量的、分散在不同角落的数据导致了数据资源利用的复杂性和管理的高难度。企业无法从统一的业务视角去概览整个企业内部的数据信息。暴露出来的只是一个个独立的系统,系统与系统之间的关系、标准数据从哪里获取都无从知晓。
  • 两个层面的数据治理度量评估工具 通过年度的整体数据治理成熟度评估,了解各维度数据治理现状,并制定可操作性目标,分析差距,制定切实可行的计划,在推进落实计划的过程中,利用季度性实施的数据治理评分卡,针对性地监测度量各业务/IT部门的数据治理情况,持续推进各部门的数据治理水平提升,进而提高整体数据治理成熟度。 年度进行的整体数据治理成熟度评估,可以结合主观及客观调查度量,综合反映企业当前数据治理成熟度水平,帮助制定切实可行的数据治理整体目标。季度性实施的数据治理评分卡是一个重要的工具手段,从一些关键核心维度进行季度性迭代评分,持续促进所有部门数据治理工作的落实提升。
  • 计费方式 当您开通CDN时,可以选择基础计费方式:流量计费或者峰值带宽计费。具体计费方式及计费示例详见计费说明。 流量计费 当选择流量计费时: 您可以选择通过按量计费,即按照每小时实际使用的流量进行计费。 您也可以购买价格更优惠的CDN流量包进行抵扣,购买流量包成功后,系统会一次性按照购买价格对账户余额进行扣费。具体流量包说明请参见预付费流量包。 峰值带宽计费 当选择峰值带宽计费时:峰值带宽计费采用按量计费方式,即按照每日峰值带宽进行计费。
  • 操作步骤 登录MetaStudio控制台。 在“工作台”界面,单击“分身 视频直播 ”下方的“开始创建”,进入分身数字人直播首页面。 单击“商品管理”,进入如图1所示的页面。 图1 商品管理页面 单击“新建”,进入“创建商品”页面,如图2所示。 参数配置说明,如表1所示。 图2 创建商品 表1 商品配置说明 参数 说明 商品名称 商品名称。 描述 商品描述。 类别 商品类别。设置以后,自动成为商品的标签,方便搜索商品。 支持多选,支持添加新类别。 产品素材 合成商品的素材。 包括如下内容: 贴图:从本地选择图片。 视频:从本地选择视频文件。 文本:手工输入文本内容。 音频:从本地选择音频文件。 单击“创建”,界面提示“创建成功”。 在“商品管理”页面,新增一行商品。 支持对商品执行如下操作: 单击商品所在行的“查看”,进入商品详情界面,支持单击“编辑”,修改商品信息。 单击商品所在行的“编辑”,进入商品修改页面,修改商品信息后,单击“保存”。 单击商品所在行的“删除”,删除当前商品。
  • 操作步骤 登录MetaStudio控制台。 在“工作台”界面,单击“分身视频直播”下方的“开始创建”,进入分身数字人直播首页面。 单击“直播任务管理”,进入如直播任务管理所示的页面。 可以看到用户创建的所有直播间的开播任务列表。如果同一个直播间,开播多次,则生成对应个数的开播任务。 可以查看任务ID、直播名称、封面、创建时间、开播时间、结束时间和当前的直播状态(直播中或直播结束)。 如果直播结束,可单击直播间任务右侧的“查看详情”,进入当前直播间,修改直播间内容,重新开播。 图1 直播任务管理
  • Step7 推理验证 首先将上面训练的最终模型文件epoch_29.pt 拷贝到/home/ma-user/open_clip目录下,然后在/home/ma-user/open_clip下,执行如下命令。 vi inference.py 将下面的代码拷贝进去后保存。 import os import torch from PIL import Image import open_clip if 'DEVICE_ID' in os.environ: print("DEVICE_ID:", os.environ['DEVICE_ID']) else: os.environ['DEVICE_ID'] = "0" model, _, preprocess = open_clip.create_model_and_transforms('ViT-B-32', pretrained='/home/ma-user/open_clip/epoch_29.pt') model = model.to("npu") tokenizer = open_clip.get_tokenizer('ViT-B-32') image = preprocess(Image.open("./docs/CLIP.png")).unsqueeze(0) text = tokenizer(["a diagram", "a dog", "a cat"]) print("input image shape:", image.shape) print("input text shape:", text.shape) with torch.no_grad(), torch.cuda.amp.autocast(): image = image.to("npu") text = text.to("npu") image_features = model.encode_image(image) text_features = model.encode_text(text) print("output image shape:", image_features.shape) print("output text shape:", text_features.shape) image_features /= image_features.norm(dim=-1, keepdim=True) text_features /= text_features.norm(dim=-1, keepdim=True) text_probs = (100.0 * image_features @ text_features.T).softmax(dim=-1) print("Label probs:", text_probs) # prints: [[1., 0., 0.]] 运行推理脚本。 python inference.py 由于./docs/CLIP.png图片是一张图表,因此结果值和第一个文本"a diagram"吻合,结果值会接近[[1., 0., 0.]]。
  • Step6 训练Open clip模型 适配昇腾代码。 在目录/home/ma-user/open_clip/src/training下,修改main.py文件,在第10行添加如下代码。 import torch_npu from torch_npu.contrib import transfer_to_npu 同样,修改train.py文件,在第11行添加如上代码,如图1所示。 图1 修改train.py文件 单卡训练。 训练命令参考如下。 cd /home/ma-user/open_clip python -m training.main \ --save-frequency 1 \ --zeroshot-frequency 1 \ --report-to tensorboard \ --train-data '/home/ma-user/open_clip/mscoco/{00000..00059}.tar' \ --train-num-samples 102400 \ --dataset-type webdataset \ --warmup 10000 \ --batch-size=256 \ --lr=1e-3 \ --wd=0.1 \ --epochs=30 \ --workers=8 \ --model ViT-B-32 参数说明: save-frequency:指定运行多少个epoch就保存模型参数,可以调大。 report-to tensorboard:指定输出loss指标到tensorboard,一般需要做精度评估才需要带上。 train-num-samples:指定每个epoch需要训练的样本个数,不超过总样本个数。 batch-size:指定一次处理的数据batch。 epochs:指定训练的epoch个数。 训练结束后,模型输出目录为: /home/ma-user/open_clip/logs/xxx-model_ViT-B-32-lr_0.001-b_32-j_8-p_amp/checkpoints 多卡训练 训练命令参考如下。 cd /home/ma-user/open_clip/src torchrun --nproc_per_node 4 -m training.main \ --save-frequency 1 \ --zeroshot-frequency 1 \ --report-to tensorboard \ --train-data '/home/ma-user/open_clip/mscoco/{00000..00059}.tar' \ --train-num-samples 102400 \ --dataset-type webdataset \ --warmup 10000 \ --batch-size=256 \ --lr=1e-3 \ --wd=0.1 \ --epochs=30 \ --workers=8 \ --model ViT-B-32
  • Step8 精度评估 关闭数据集shuffle,保证训练数据一致。 修改/home/ma-user/open_clip/src/training/data.py文件,搜索get_wds_dataset函数,将两处shuffle关闭,修改代码如下。 if is_train: if not resampled: print("dataset unshuffled.") #pipeline.extend([ # detshuffle2( # bufsize=_SHARD_SHUFFLE_SIZE, # initial=_SHARD_SHUFFLE_INITIAL, # seed=args.seed, # epoch=shared_epoch, # ), # wds.split_by_node, # wds.split_by_worker, #]) print("wds unshuffled.") pipeline.extend([ # at this point, we have an iterator over the shards assigned to each worker at each node tarfile_to_samples_nothrow, # wds.tarfile_to_samples(handler=log_and_continue), # wds.shuffle( # bufsize=_SAMPLE_SHUFFLE_SIZE, # initial=_SAMPLE_SHUFFLE_INITIAL, # ), ]) 重新训练1个epoch。脚本参考内容如下。 cd /home/ma-user/open_clip python -m training.main \ --save-frequency 1 \ --zeroshot-frequency 1 \ --report-to tensorboard \ --train-data '/home/ma-user/open_clip/mscoco/{00000..00059}.tar' \ --train-num-samples 102400 \ --dataset-type webdataset \ --warmup 10000 \ --batch-size=256 \ --lr=1e-3 \ --wd=0.1 \ --epochs=1 \ --workers=8 \ --model ViT-B-32 训练完成后,tensorboard统计的记录会保存在/home/ma-user/open_clip/logs/xxx-model_ViT-B-32-lr_0.001-b_32-j_8-p_amp/tensorboard目录下。 通过docker cp命令将容器内tensorboard子目录拷贝到宿主机 /home下。 在宿主机上安装tensorboard并启动。 pip install tensorboard #安装 tensorboard --logdir=/home/tensorboard --bind_all #启动 启动成功后如下图所示。 图2 启动tensorboard 在浏览器上访问http://{宿主机ip}:6006/。将train/loss导出为json,和GPU训练下导出的文件比较。
  • Step1 准备环境 请参考DevServer资源开通,购买DevServer资源,并确保机器已开通,密码已获取,能通过SSH登录,不同机器之间网络互通。 当容器需要提供服务给多个用户,或者多个用户共享使用该容器时,应限制容器访问Openstack的管理地址(169.254.169.254),以防止容器获取宿主机的元数据。具体操作请参见禁止容器获取宿主机元数据。 检查环境。 SSH登录机器后,检查NPU设备检查。运行如下命令,返回NPU设备信息。 npu-smi info # 在每个实例节点上运行此命令可以看到NPU卡状态 npu-smi info -l | grep Total # 在每个实例节点上运行此命令可以看到总卡数 如出现错误,可能是机器上的NPU设备没有正常安装,或者NPU镜像被其他容器挂载。请先正常安装NPU设备和驱动,或释放被挂载的NPU。 检查docker是否安装。 docker -v #检查docker是否安装 如尚未安装,运行以下命令安装docker。 yum install -y docker-engine.aarch64 docker-engine-selinux.noarch docker-runc.aarch64 配置IP转发,用于容器内的网络访问。执行以下命令查看net.ipv4.ip_forward配置项的值,如果为1,可跳过此步骤。 sysctl -p | grep net.ipv4.ip_forward 如果net.ipv4.ip_forward配置项的值不为1,执行以下命令配置IP转发。 sed -i 's/net\.ipv4\.ip_forward=0/net\.ipv4\.ip_forward=1/g' /etc/sysctl.conf sysctl -p | grep net.ipv4.ip_forward
  • Step5 获取训练数据集 使用img2dataset工具下载数据集。首先需要在容器安装img2dataset,安装命令如下。 pip install img2dataset 参考官方指导下载开源mscoco数据集。 #下载metadata wget https://huggingface.co/datasets/ChristophSchuhmann/MS_COCO_2017_URL_TEXT/resolve/main/mscoco.parquet #使用img2dataset工具下载数据集 img2dataset --url_list mscoco.parquet --input_format "parquet"\ --url_col "URL" --caption_col "TEXT" --output_format webdataset\ --output_folder mscoco --processes_count 16 --thread_count 64 --image_size 256\ --enable_wandb True
  • Step3 启动容器 启动容器镜像。启动前请先按照参数说明修改${}中的参数。可以根据实际需要增加修改参数。 docker run -itd \ --device=/dev/davinci0 \ --device=/dev/davinci_manager \ --device=/dev/devmm_svm \ --device=/dev/hisi_hdc \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /etc/ascend_install.info:/etc/ascend_install.info \ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -v /etc/localtime:/etc/localtime \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ --shm-size 32g \ --net=bridge \ -v ${work_dir}:${container_work_dir} \ --name ${container_name} \ ${image_name} bash 参数说明: --name ${container_name} 容器名称,进入容器时会用到,此处可以自己定义一个容器名称。 -v ${work_dir}:${container_work_dir} 代表需要在容器中挂载宿主机的目录。宿主机和容器使用不同的文件系统。work_dir为宿主机中工作目录,目录下存放着训练所需代码、数据等文件。container_work_dir为要挂载到的容器中的目录。为方便两个地址可以相同。 容器不能挂载到/home/ma-user目录,此目录为ma-user用户家目录。如果容器挂载到/home/ma-user下,拉起容器时会与基础镜像冲突,导致基础镜像不可用。 driver及npu-smi需同时挂载至容器。 ${image_name} 代表镜像地址。 通过容器名称进入容器中。 docker exec -it ${container_name} bash
  • Step4 下载并安装Open-clip源码包 从官网下载Open-clip源码包。下载地址:https://codeload.github.com/mlfoundations/open_clip/zip/refs/heads/main 下载open_clip-main.zip文件后解压,重命名为open_clip,然后拷贝到容器/home/ma-user目录下。 docker cp open_clip open-clip:/home/ma-user/ 修改文件夹权限(注意:重新启动一个终端,使用root用户登录容器,修改文件夹权限,修改完后关闭这个终端。) docker exec -it --user root open-clip bash chown -R ma-user:ma-group open_clip 安装源码。 cd open_clip make install 安装依赖。 pip install -r requirements-training.txt pip install -r requirements-test.txt
  • Step4 下载原始模型包 从HuggingFace官网下载moondream2模型包到本地,下载地址:https://huggingface.co/vikhyatk/moondream2/tree/2024-03-06。 在宿主机上创建一个空目录/home/temp,将下载的模型包存放在宿主机/home/temp/moondream2目录下,修改目录权限后,拷贝到容器中。 mkdir /home/temp #创建一个空目录,将下载的模型包存放在宿主机/home/temp/moondream2目录下 chmod -R 777 moondream2 #修改moondream2目录权限 docker cp moondream2 moondream2:/home/ma-user/ #拷贝moondream2目录到容器中
  • Step3 启动容器镜像 启动容器镜像。启动前请先按照参数说明修改${}中的参数。 docker run -itd \ --device=/dev/davinci1 \ --device=/dev/davinci_manager \ --device=/dev/devmm_svm \ --device=/dev/hisi_hdc \ -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ -v /usr/local/dcmi:/usr/local/dcmi \ -v /etc/ascend_install.info:/etc/ascend_install.info \ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ --shm-size 32g \ --net=bridge \ -v ${work_dir}:${container_work_dir} \ --name ${container_name} \ ${image_name} bash 参数说明: -v ${work_dir}:${container_work_dir}:代表需要在容器中挂载宿主机的目录。宿主机和容器使用不同的文件系统。work_dir为宿主机中工作目录,目录下存放着训练所需代码、数据等文件。container_work_dir为要挂载到的容器中的目录。为方便两个地址可以相同。 容器不能挂载到/home/ma-user目录,此目录为ma-user用户家目录。如果容器挂载到/home/ma-user下,拉起容器时会与基础镜像冲突,导致基础镜像不可用。 driver及npu-smi需同时挂载至容器。 --name ${container_name}:容器名称,进入容器时会用到,此处可以自己定义一个容器名称。 ${image_name}:容器镜像的名称。 通过容器名称进入容器中。 docker exec -it ${container_name} bash
  • Step1 准备环境 请参考DevServer资源开通,购买DevServer资源,并确保机器已开通,密码已获取,能通过SSH登录,不同机器之间网络互通。 当容器需要提供服务给多个用户,或者多个用户共享使用该容器时,应限制容器访问Openstack的管理地址(169.254.169.254),以防止容器获取宿主机的元数据。具体操作请参见禁止容器获取宿主机元数据。 检查环境。 SSH登录机器后,检查NPU设备检查。运行如下命令,返回NPU设备信息。 npu-smi info # 在每个实例节点上运行此命令可以看到NPU卡状态 npu-smi info -l | grep Total # 在每个实例节点上运行此命令可以看到总卡数 如出现错误,可能是机器上的NPU设备没有正常安装,或者NPU镜像被其他容器挂载。请先正常安装NPU设备和驱动,或释放被挂载的NPU。 检查docker是否安装。 docker -v #检查docker是否安装 如尚未安装,运行以下命令安装docker。 yum install -y docker-engine.aarch64 docker-engine-selinux.noarch docker-runc.aarch64 配置IP转发,用于容器内的网络访问。执行以下命令查看net.ipv4.ip_forward配置项的值,如果为1,可跳过此步骤。 sysctl -p | grep net.ipv4.ip_forward 如果net.ipv4.ip_forward配置项的值不为1,执行以下命令配置IP转发。 sed -i 's/net\.ipv4\.ip_forward=0/net\.ipv4\.ip_forward=1/g' /etc/sysctl.conf sysctl -p | grep net.ipv4.ip_forward
  • 返回结果(InterfaceResult) 字段名 类型 说明 RequestId String OBS服务端返回的请求ID。 ETag String 对象的ETag值。 VersionId String 对象的版本号。 StorageClass String 对象的存储类型,当对象存储类型是标准存储时,该值为空。 SseKms String SSE-KMS方式的算法。 SseKmsKey String SSE-KMS加密方式下使用的KMS主密钥的ID值。 SseC String SSE-C方式的算法。 SseCKeyMd5 String SSE-C方式下加密使用密钥的MD5值,该值用于验证密钥传输过程中是否出错。
  • 请求参数 字段名 类型 约束 说明 Bucket String 必选 桶名。 Key String 必选 对象名。 RequestDate String 或 Date 可选 指定请求时间。 说明: 当为String类型时,必须符合ISO8601或RFC822规范。 ACL String 可选 创建对象时可指定的预定义访问策略。 StorageClass String 可选 创建对象时可指定的对象的存储类型。 Body String 可选 待上传对象的内容。 SourceFile File 或 Blob 可选 待上传的文件(浏览器必须支持FileReader)。 ProgressCallback Function 可选 获取上传进度的回调函数。 说明: 该回调函数依次包含三个参数:已上传的字节数、总字节数、已使用的时间(单位:秒)。 Offset Number 可选 当设置了SourceFile时有效,代表源文件中某一分段的起始偏移大小,默认值为0, 单位为字节。 Metadata Object 可选 待上传对象的自定义元数据。 WebsiteRedirectLocation String 可选 当桶设置了Website配置,该参数指明对象的重定向地址。 Expires Number 可选 待上传对象的生命周期,单位:天。 SuccessActionRedirect String 可选 上传对象成功后的重定向的地址。 ContentType String 可选 待上传对象的MIME类型。 ContentLength Number 可选 当设置了SourceFile时有效,代表待上传对象数据的长度。 ContentMD5 String 可选 待上传对象数据的MD5值(经过Base64编码),提供给OBS服务端,校验数据完整性。 SseKms String 可选 以SSE-KMS方式加密对象,支持的值: kms SseKmsKey String 可选 SSE-KMS方式下加密的主密钥,可为空。 SseC String 可选 以SSE-C方式加密对象,支持的值: AES256 SseCKey String 可选 SSE-C方式下加密的密钥,由AES256算法得到。 Body与SourceFile不能同时使用。 当Body与SourceFile都为空时,上传对象的大小为0字节。
  • 参数描述 字段名 类型 约束 说明 access_key_id String 可选 访问密钥中的AK。 secret_access_key String 可选 访问密钥中的SK。 server String 必选 连接OBS的服务地址。可包含协议类型、 域名 、端口号。示例:https://your-endpoint:443。 您可以从这里查看OBS当前开通的服务地址。 timeout Number 可选 HTTP/HTTPS请求的总超时时间(单位:秒)。默认为300秒。如网络状况不佳或者上传文件较大,建议增大timeout的值。 is_cname Boolean 可选 是否通过自定义域名访问OBS服务。默认为false。 useRawXhr Boolean 可选 是否使用原生XHR发送Ajax请求。默认为false。
共100000条