-
案例简介: XX目前数据库采用自建的MySQL、MongoDB。客户希望业务全面上云替换,现将采购少量部署在测试区进行业务验证。目前客户现网云平台采用全栈华为硬件以及华为云,预计涉及数据库软件服务订货价格XXw+。本次试验局验证主要验证DDS云服务基础功能与数据迁移功能。方案描述: 源端环境:自建MongoDB;数据大小100G; 数据迁移:使用DRS全量+增量的方法迁移数据 数据核对:使用DRS自带数据核对工具,对迁移数据条数进行数据核对,数据条数核对上就默认迁移完成 问 题解决:通过查询技术手册解决客户问题,如果有不能解决的问题就通过向开发需求提单,通过开发来解决客户问题。 DDS技术手册:文档数据库服务(DDS) 2.22.07.210 使用指南(for 华为云Stack 8.2.0) 01 - 华为 (huawei.com)
-
案例简介:XX集团,全球领先的智能物流平台,是国内首家基于云计算、大数据、移动互联网和人工智能技术开发的XX公司,是公路物流领域高新技术综合应用的典型代表XX平台服务的认证司机用户超XX万人,认证货主用户超XX万人,集团业务覆盖全国XX个主要城市。年度撮合成交规模达到XX元,覆盖线路数量超过XX条,此案例主要介绍Kylin组件搬迁。迁移方案:Økylin依赖的所有hive表数据使用CDM工具迁移 Økylin元数据hbase表kylin_metadata数据使用阿里LTS迁移,其中存放了kylin系统级、project级、cube级、job级等各个级别元数据 Ø根据腾讯云环境信息构建历史segment Ø华为云调度系统定时触发华为云Cube构建 Ø查询华为侧结果集数据,数据一致性校验割接关键步骤:Økylin依赖所有hive表数据迁移Økylin构建历史segment预计算数据 Ø调度任务所有kylin相关任务正常执行 Ø双云预计算数据一致性校验Ø业务正常查询华为云侧kylin预计算数据Ø业务切换查询地址为华为侧地址回滚步骤:Ø切换到华为云地址后,如出现短时间无法解决问题,业务切换查询地址为腾讯侧地址XXkylin迁移&割接方案:cid:link_0使用LTS/BDS迁移Hbase指导:cid:link_1
-
案例简介: XX成立于2015年,是目前全球UGC赛道最大的中国游戏公司,在全球拥有XX万注册用户,覆盖美国、新加坡、港澳台、法国、阿联酋、巴西等XX个国家。目前客户现网以AWS+GCP部署为主,目前在AWS一年消耗XXWUSD,主要为业务大厅服源站以及数据收集和分析功能,包含大数据、数据库等业务,GCP一年消耗XXWUSD,主要为业务战斗服,包含服务器和流量业务,本次迁移客户有待迁移Redis实例XX个。数据迁移:1、确认客户业务停止,无应用访问Elastic Cache;2、在AWS源端控制台Elastic Cache导出全量备份文件;3、通过公网传输至华为云,检查备份文件MD5码前后是否一致,使用Redis-Shake工具将数据恢复到GeminiDB Redis中。4、进行数据校验,对GeminiDB Redis进行key值校验;5、数据校验通过后,应用链接GeminiDB Redis实例开始对外提供业务。数据校验:1、查询迁移后源端和目的端内存占用量是否一致;2、使用info keyspace语句查询并对比源端和目的端的key数量是否一致;3、使用脚本随机多次进行抽样内容校验。(客户数据部分具有时效性,可能存在因源端数据过期后源端和目的端前后数据不一致的问题,需要手动查询不一致的数据是否因数据过期引起)。回退方案(A-B-A):1、AWS侧创建Elastic Cache备用实例,承接回退实例数据2、配置GeminiDB Redis到AWS EC2的DRS全量链路,EC2与Elastic Cache配置SSH隧道;3、启动DRS任务,全量完成后,进行数据校验;4、数据校验通过后,应用修改数据库链接为AWS Elastic Cache备用实例。
-
案例简介: XX公司成立于2016年,短短六年间,XX依托于自身在人工智能、大数据领域的技术优势,和丰富的教学资源,已占领法考在线教育领域XX以上的市场份额,用户数量全国第一。近年业务也在向CPA和英语在线培训领域快速发展。 目前XX业务全量部署在A3云上,云空间XX万左右。 此次迁移是XX A3部署的法考、CPA、官网等业务系统。 方案描述:平台部署:网络打通;华为各云服务开通;自建服务的搭建和对接业务表的创建:在DWS里面进行业务模型表的重建(分布列、分区列、冷热策略、行列存储,业务逻辑主键)数据迁移:离线Hive数仓各层数据迁移(客户自己通过回退的方式把数据会退到PoloDB中,再通过gaussdb同步到DWS);实时听课数据通过DMS接进,然后通过flink消费,最后落进DWS。由于kudu数据不大客户自己写进DWS; PoloDB全量+增量数据通过gaussdb同步到DWS。历史数据的处理:数据的打宽,清洗作业迁移:设计所有业务的数据打宽,清洗逻辑重构,DGC作业的配置及调度数据以及性能的校验:1.历史数据的验证.2.实时增量数据的验,验证范围(所有表)3.实时流程性能验证,4.主要业务场景验证。5.Polo到gaussdb后记录数据量验证。割接:停止往Polo写数据,切换到gaussdb ,埋点数据写进DMS,停止阿里的离线作业,DWS同步正常,flink作业验证正常,观察业务运行状态,核对数据正确性,完成业务割接。
-
案例简介:XX公司成立于2015年,是目前全球UGC赛道最大的中国游戏公司,在全球拥有XX万注册用户,覆盖美国、新加坡、港澳台、法国、阿联酋、巴西等XX个国家。目前客户现网以AWS+GCP部署为主,目前在AWS一年消耗XXWUSD,主要为业务大厅服源站以及数据收集和分析功能,包含大数据、数据库等业务,GCP一年消耗XXUSD,主要为业务战斗服,包含服务器和流量业务,本次迁移包含DynamoDB(XX张表,XTB)需要跨云平台迁移。方案描述:数据迁移:1、在华为云申请ECS主机用于安装DynamoMigration;2、配置DynamoMigration参数文件;3、启动DynamoMigration进行全量迁移;4、全量迁移完成后,对数据进行抽检,检查数据一致性校验;5、数据校验通过后,停止DynamoMigration服务,业务连接华为云GaussDB for Cassandra实例开始对外提供业务。回退方案:1、AWS侧创建备用表,承接回退数据;2、配置DynamoMigration配置文件,建立华为云-AWS全量迁移链路;3、待全量迁移完成后,对数据一致性进行校验4、数据校验通过后,停止DynamoMigration服务,应用修改数据库链接为AWS 实例备用表,对外提供业务。
-
本文档包含以下四部分:1、XX应用系统架构和关联关系调研模板2、XX应用系统资源详细清单调研模板3、应用上云迁移调研访谈提纲和调研表汇总4、项目调研总结模板注:本文档全部或部份内容仅用于本迁移项目,供客户授权的华为工程师和客户内部授权人员参考,严禁用于其他任何用途或交与第三方。
-
迁移流程包括:前期客户调研、信息收集、迁移风险评估>制定迁移计划、迁移方案>迁移预实施(迁移工具测试、方案测试)>迁移实施>迁移后业务验证、数据校验>现场保障、运维交接>项目验收业务迁移实施顺序:基础服务--开放测试系统--办公系统--IT管理系统--业务系统迁移前作信息收集+风险容量评估(软硬件版本、规格、参数、性能容量、兼容性+迁移风险点等作信息收集)迁移方案制定(确定迁移方式、迁移工具、迁移团队、迁移时间、回退方案等) 迁移方式:P2P/P2V/V2P/V2V(根据客户实际场景决定)迁移预实施+整体逐步逐层实施(利用迁移方案预实施少量节点---分批次(业务系统最后)+分层次(数据层最后)进行整体迁移)迁移后业务测试+数据检验(对于迁移业务进行业务拉起和连通性测试+网络质量+数据完整度等)迁移现场保障+后期维保(迁移完成后需留场进行业务保障-后续业务在维保期继续关注)项目验收三大层次迁移工具或服务选择:数据层迁移若采用工具流:可使用HyperReplication/HyperMetro/LUN COPY/ eRplication…若采用公有云服务:可使用DES数据快递服务;平台层(数据库迁移为例)若采用工具流;Oracle Golden Gate/Data guard/Always On/数据库自带迁移工具等若采用公有云服务:DRS(偏同构数据库)+UGO(偏异构数据库-可翻译为GaussDB统一命令)应用层工具流:eBackup/Rainbow等…服务流:SMS主机迁移服务
-
使用公网迁移(rclone工具)按照这个文章操作,mount -t nfs -o vers=3,timeo=600,noresvport,nolock 本地NAS挂载地址 /mnt/src 这一步挂载一直超时失败,SFS可以挂载成功,请问下NAS本地挂载地址是指啥
-
一、数据迁移方式公有云服务:1、 可以使用公有云数据快递服务DES服务,是面向TB到数百TB级别数据上云的数据服务2、 若涉及数据库迁移部分,则可采用DRS3、异构数据库迁移,使用数据库和应用迁移服务UGO技术层工具流:1、 利用企业级存储hyperreplication+hyperMetro(复制+双活)+lun拷贝等特性2、 利用容灾数据复制工作(如Ereplication)3、oracle用ORACLE Golden Gate/MS Data Guard(DG)二、数据层、平台层、应用层迁移数据层迁移若采用工具流: 1、利用企业级存储hyperreplication+hyperMetro(复制+双活)+lun拷贝+eRplication等;公有云服务:1、可以使用公有云数据快递DES服务(数据快递服务(Data Express Service, DES)是面向TB到数百TB级数据上云的传输服务);平台层迁移若采用工具流: Oracle Golden/Data guard/Always On/数据库自带迁移工具等;若采用公有云服务:DRS(偏同构数据库)+UGO(偏异构数据库)应用层迁移工具流:eBackup/Rainbow等服务流:SMS主机迁移服务三、EVS、SFS、OBS迁移1、EVS公有云服务:1. 可以使用公有云数据快递DES服务(数据快递服务(Data Express Service,DES)是面向TB到数百TB级数据上云的传输服务)2. 若涉及到数据库迁移部分,则可采用DRS(数据复制服务)3、SMS主机迁移技术层工具流:1. 利用企业级存储hyperreplication+hyperMetro(复制+双活)+lun拷贝等特性2. 利用容灾数据复制工具(如Ereplication等)2、SFShttps://support.huaweicloud.com/bestpractice-sfs/sfs_03_0006.html1、通过mount方式挂载访问SFS Turbo,将本地NAS存储中的数据迁移至SFS Turbo。通过云专线迁移(rclone工具)、通过云专线迁移(rsync工具)。2、法打通网络直接挂载,可以通过公网访问华为云ECS绑定的EIP,也可进行传输迁移。使用公网迁移(rclone工具)。3、英方工具I2NAS3、OBScid:link_0https://support.huaweicloud.com/bestpractice-obs/obs_05_0220.html搬迁本地数据至OBS:OBS工具、CDM、DES、DES Teleport、云专线迁移第三方云厂商数据至OBS:OMS、CDM、镜像回源OBS之间数据迁移(跨帐号、跨区域以及同区域内数据迁移):OMS离线迁移:通过上传OBS四、各个迁移服务的区别https://support.huaweicloud.com/cdm_faq/cdm_01_0255.html#cdm_01_0255__section37162116176五、MYSQL、SQL Server、Oracle迁移1、MysqlMysql dump、DRSMysql dump步骤: 1.使用mysqldump导出自建数据库的数据2.将导出的两个文件上传到ECS实例上3.将导出的文件导入到目标RDS中4.导入成功后登录RDS实例数据库中查看数据是否正常。DRS:https://support.huaweicloud.com/bestpractice-drs/drs_02_0008.html2、SQL ServerSQL Server导入导出功能、DRS备份迁移SQL Server导入导出步骤:1.登录控制台,选择“数据库 > 云数据库 RDS”“实例管理”页面,选择目标实例,单击实例名称,进入实例的“基本信息”页签。2.在“基本信息”页签下单击“绑定”,在弹出框选择对应的弹性IP。3.在本地安装SQL Server客户端管理工具,通过弹性IP进行连接4.通过SQL Server自带的脚本生成工具,生成ECS上的数据库结构脚本5.在SSMS客户端中打开生成的脚本SQL文件,连接到RDS对应实例上。6.完成以上步骤后通过SQL Server自带的导入导出功能完成数据迁移。DRS备份迁移步骤:https://support.huaweicloud.com/backupmig-drs/drs_02_0009.html3、ORACLE采用工具流至云下或云上自建oracle:Oracle Golden Gate/Data guard/Always On/数据库自带迁移工具等;采用公有云服务迁移至云数据库GaussDB:UGO+DRS 采用公有云服务迁移至云数据仓库DEW:CDM(云数据迁移)、备份迁移迁移到裸金属上自建ORACLE:Golden Gate、Data Guard、Always on迁移到PostgreSql:CDM,UGO+DRSGolden Gate步骤:• 利用抽取进程(Extract Process)在源端数据库中读取Online Redo Log或者Archive Log,然后进行解析,只提取其中数据的变化信息,比如DML操作——增、删、改操作• 将抽取的信息转换为GoldenGate自定义的中间格式存放在队列文件(trail file)中• 再利用传输进程将队列文件(trail file)通过TCP/IP传送到目标系统。• 目标端有一个进程叫Server Collector,这个进程接受了从源端传输过来的数据变化信息• 把信息缓存到GoldenGate 队列文件(trail file)当中,等待目标端的复制进程读取数据。• GoldenGate 复制进程(replicat process)从队列文件(trail file)中读取数据变化信息,并创建对应的SQL语句,通过数据库的本地接口执行,提交到目标端数据库,提交成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。UGO+DRS步骤:https://support.huaweicloud.com/bestpractice-ugo/ugo_06_0002.htmlCDM迁移步骤:https://support.huaweicloud.com/usermanual-cdm/cdm_01_0332.html六、迁移流程套话迁移分为迁移前调研、迁移上云评估、迁移方案制定、迁移方案测试(验证方案的正确性及可实施性,工具选择验证等)、迁移分级分布实施(先迁普通业务再迁核心业务)、迁移验收测试、迁移维保等阶段展开。1.迁移前作信息收集+风险点评估 信息收集:软硬件版本、规格、参数、性能容量、兼容性等参数收集; 风险评估:对系统软硬件环境进行评估是否适合迁移及迁移风险点。2.迁移方案制定 根据业务实际场景,确定迁移方式、迁移工具、迁移团队、分工界面、迁移时间、回退方案等关键点,形成具体的迁移方案和实施步骤。 其中迁移方式可根据实际的迁移场景,分为P2P/P2V/V2P/V2V。3.迁移预实施+整体逐批逐层实施 根据迁移方案预实施少量节点,对于重要业务提前进行应急预案演练,及时发现问题修改方案,确保迁移的顺利性;预实施完成后,分批次(业务系统最后)、分层次(数据层最后)进行系统整体迁移。4.迁移后业务测试+数据检验 对于迁移业务进行业务拉起和连通性测试,对系统网络质量和数据完整度等方面进行验证。5.迁移现场保障+后期维保 迁移完成后需留场进行业务保障,后续业务在维保期继续关注运行状态。6.项目验收七、在线迁移、离线迁移在线迁移:在系统不停机的情况下,将服务器或虚拟机上的系统、服务程序等从自建机房(IDC)或云平台等源环境迁移同步至云上,方便实现企业上云、跨云平台迁移、跨账号/区域迁移或部署混合云等业务需求。在线迁移无需制作镜像,直接在源端服务器运行迁移工具,即可将源端服务器迁移至指定的腾讯云云服务器。在线迁移服务:DRS实时迁移、SMS、OMS离线迁移:离线迁移需要先将源端服务器的系统盘或数据盘制作成镜像,再将镜像迁移至您指定的云服务器或云硬盘。(1)离线实例迁移:将系统盘镜像(若需同时迁移实例已挂载的数据盘,则可将系统盘镜像和数据盘镜像)迁入至指定的云服务器。(2)离线数据迁移:将数据盘镜像迁入至指定的云硬盘。离线迁移方法:DRS备份迁移、镜像导入到OBS再恢复、DES数据快递服务
-
1.任务简介基于ERNIE预训练模型效果上达到业界领先,但是由于模型比较大,预测性能可能无法满足上线需求。 直接使用ERNIE-Tiny系列轻量模型fine-tune,效果可能不够理想。如果采用数据蒸馏策略,又需要提供海量未标注数据,可能并不具备客观条件。 因此,本专题采用主流的知识蒸馏的方案来压缩模型,在满足用户预测性能、预测效果的需求同时,不依赖海量未标注数据,提升开发效率。 文心提供多种不同大小的基于字粒度的ERNIE-Tiny学生模型,满足不同用户的需求。注:知识蒸馏(KD)是将复杂模型(teacher)中的dark knowledge迁移到简单模型(student)中去,teacher具有强大的能力和表现,而student则更为紧凑。通过知识蒸馏,希望student能尽可能逼近亦或是超过teacher,从而用更少的复杂度来获得类似的预测效果。1.1 模型蒸馏原理知识蒸馏是一种模型压缩常见方法,指的是在teacher-student框架中,将复杂、学习能力强的网络(teacher)学到的特征表示"知识"蒸馏出来,传递给参数量小、学习能力弱的网络(student)。 在训练过程中,往往以最优化训练集的准确率作为训练目标,但真实目标其实应该是最优化模型的泛化能力。显然如果能直接以提升模型的泛化能力为目标进行训练是最好的,但这需要正确的关于泛化能力的信息,而这些信息通常不可用。如果我们使用由大型模型产生的所有类概率作为训练小模型的目标,就可以让小模型得到不输大模型的性能。这种把大模型的知识迁移到小模型的方式就是蒸馏。基本原理可参考Hinton经典论文:cid:link_11.2 ERNIE-Tiny 模型蒸馏模型蒸馏原理可参考论文 ERNIE-Tiny : A Progressive Distillation Framework for Pretrained Transformer Compression 2021。不同于原论文的实现,为了和开发套件中的通用蒸馏学生模型保持一致,我们将蒸馏loss替换为Attention矩阵的KQ loss和 VV loss,原理可参考论文 MiniLM: Deep Self-Attention Distillation for Task-Agnostic Compression of Pre-Trained Transformers 2020 和 MiniLMv2: Multi-Head Self-Attention Relation Distillation for Compressing Pretrained Transformers 2021。实验表明通用蒸馏阶段和任务蒸馏阶段的蒸馏loss不匹配时,学生模型的效果会受到影响。BERT 等预训练语言模型 (PLM) 采用了一种训练范式,首先在一般数据中预训练模型,然后在特定任务数据上微调模型,最近取得了巨大成功。然而,PLM 因其庞大的参数而臭名昭著,并且难以部署在现实生活中的应用程序中。知识蒸馏通过在一组数据上将知识从大老师转移到小得多的学生来解决这个问题。我们认为选择三个关键组成部分,即教师、训练数据和学习目标,对于蒸馏的有效性至关重要。因此,我们提出了一个四阶段渐进式蒸馏框架 ERNIE-Tiny 来压缩 PLM,它将三个组件从一般级别逐渐变化到特定任务级别。具体来说,第一阶段,General Distillation,在预训练的老师、一般数据和潜在蒸馏损失的指导下进行蒸馏。然后,General-Enhanced Distillation 将教师模型从预训练教师转变为微调教师。之后,Task-Adaptive Distillation 将训练数据从一般数据转移到特定于任务的数据。最后,Task-Specific Distillation 在最后阶段增加了两个额外的损失,即 Soft-Label 和 Hard-Label 损失。实证结果证明了我们的框架的有效性和所带来的泛化增益 。实验表明 4 层 ERNIE-Tiny 在 GLUE 基准测试的基础上保持其 12 层教师 BERT 的 98.0% 以上的性能,超过最先进的 (SOTA) 1.0% 的 GLUE 分数相同数量的参数。此外,ERNIE-Tiny 在五个中文 NLP 任务上实现了新的压缩 SOTA,比 BERT 基础的精度高 0.4%,参数减少 7.5 倍,推理速度加快 9.4 倍。预训练的语言模型(例如,BERT (Devlin et al., 2018) 及其变体)在各种 NLP 任务中取得了显着的成功。然而,这些模型通常包含数亿个参数,由于延迟和容量限制,这给现实应用中的微调和在线服务带来了挑战。在这项工作中,我们提出了一种简单有效的方法来压缩基于大型 Transformer (Vaswani et al., 2017) 的预训练模型,称为深度自注意力蒸馏。小模型(学生)通过深度模仿大模型(老师)的自注意力模块进行训练,该模块在 Transformer 网络中起着至关重要的作用。具体来说,我们建议提炼出教师最后一个 Transformer 层的自注意力模块,这对学生来说既有效又灵活。此外,除了现有作品中使用的注意力分布(即查询和键的缩放点积)之外,我们还引入了自我注意模块中值之间的缩放点积作为新的深度自我注意知识. 此外,我们表明,引入教师助理(Mirzadeh 等人,2019 年)也有助于提炼大型预训练 Transformer 模型。实验结果表明,我们的单语模型在不同参数大小的学生模型中优于最先进的基线。特别是,它使用 50% 的 Transformer 参数和教师模型的计算在 SQuAD 2.0 和几个 GLUE 基准测试任务上保持了 99% 以上的准确率。我们还在将深度自注意力蒸馏应用于多语言预训练模型方面获得了竞争性结果。我们仅使用自注意力关系蒸馏来对预训练的 Transformer 进行任务不可知的压缩,从而在 MiniLM (Wang et al., 2020) 中推广深度自注意力蒸馏。特别是,我们将多头自注意力关系定义为每个自注意力模块内的查询、键和值向量对之间的缩放点积。然后我们利用上述关系知识来训练学生模型。除了简单统一的原则外,更有利的是,学生的注意力头数没有限制,而之前的大多数工作都必须保证教师和学生之间的头数相同。此外,细粒度的自注意力关系倾向于充分利用 Transformer 学习到的交互知识。此外,我们彻底检查了教师模型的层选择策略,而不是像 MiniLM 中那样仅仅依赖最后一层。我们对压缩单语和多语预训练模型进行了广泛的实验。实验结果表明,我们从基础规模和大型教师(BERT、RoBERTa 和 XLM-R)中提取的模型优于最先进的模型。二阶段蒸馏:通用蒸馏(General Distillation,GD):在预训练阶段训练,使用大规模无监督的数据, 帮助学生网络学习到尚未微调的教师网络中的知识,有利于提高泛化能力。为方便用户使用,我们提供了多种尺寸的通用蒸馏学生模型,可用的通用蒸馏学生模型可参考文档:通用模型 - ERNIE3.0 Tiny。任务蒸馏(Task-specific Distillation,TD):使用具体任务的数据,学习到更多任务相关的具体知识。如果已提供的通用蒸馏学生模型尺寸符合需求,用户可以主要关注接下来的任务蒸馏过程。1.3任务蒸馏步骤FT阶段:基于ERNIE 3.0 Large蒸馏模型fine-tune得到教师模型,注意这里用到的教师模型和ERNIE 3.0 Large是两个不同的模型;GED阶段(可选):使用fine-tuned教师模型和通用数据继续用通用蒸馏的方式蒸馏学生模型,进一步提升学生模型的效果;a. 热启动fine-tuned的教师模型和通用学生模型。其中,通用的学生模型由文心平台提供,从bos上下载。TD1阶段:蒸馏中间层a.只对学生模型的最后一层进行蒸馏,将学生模型transformer的attention层的k-q矩阵和v-v矩阵与教师模型的对应矩阵做KLloss,可参考 :MiniLMV2。b.热启动fine-tuned的教师模型和GED阶段得到的学生模型。其中,通用的学生模型由文心平台提供,从bos上下载,下载链接所在文档:通用模型ERNIE3.0 Tiny,或参考预置的下载脚本:c. 反向传播阶段只更新学生模型参数,教师模型参数不更新;TD2阶段:蒸馏预测层,产出最终的学生模型。a. 热启动fine-tuned的教师模型和TD1阶段训练的学生模型;b. loss包括两部分: 1) pred_loss:软标签,学生模型的预测层输出与教师模型的预测层输出的交叉熵; 2) student_ce_loss:硬标签,学生模型的预测层输出与真实label的交叉熵;c. pred_loss与student_ce_loss之和作为最终loss,进行反向传播;d. 反向传播阶段只更新学生模型参数,教师模型参数不更新;注:关于GED阶段使用的通用数据:开发套件中的通用数据是由开源项目 cid:link_0 中的中文维基百科语料(wiki2019zh)经过预处理得到。该数据只用于demo展示,实际使用时替换为业务无标注数据效果提升更明显。2. 常见问题问题1:怎么修改学生模型的层数?上面提供了多种不同的学生模型,但每个学生模型的层数、hidden size等都是固定的,如果想更改,需要在哪些地方更改?文心提供了三种不同结构的预训练学生模型,如果修改层数、hidden size等,会导致预训练学生模型参数无法加载,在此情况下,蒸馏出来的学生模型效果无法保证,建议用户还是使用文心提供的预训练模型,不更改模型结构;如果用户认为更改学生模型的结构非常有必要,需要对文心做以下改动:修改TD1阶段json配置文件的pre_train_model配置项,删除预训练学生模型的加载,只保留微调后的教师模型"pre_train_model": [ # 热启动fine-tune的teacher模型 { "name": "finetuned_teacher_model", "params_path": "./output/cls_ernie_3.0_large_ft/save_checkpoints/checkpoints_step_6000" } ]将json文件中的"student_embedding"替换为自定义的学生模型"student_embedding": { "config_path": "../../models_hub/ernie_3.0_tiny_ch_dir/ernie_config.json" },再次强调,上述修改后,由于无法加载预训练学生模型,蒸馏出来的学生模型效果无法保证。(用户训练数据量到百万样本以上可以考虑尝试一下)3.数据蒸馏任务3.1 简介在ERNIE强大的语义理解能力背后,是需要同样强大的算力才能支撑起如此大规模模型的训练和预测。很多工业应用场景对性能要求较高,若不能有效压缩则无法实际应用。因此,我们基于数据蒸馏技术构建了数据蒸馏系统。其原理是通过数据作为桥梁,将ERNIE模型的知识迁移至小模型,以达到损失很小的效果却能达到上千倍的预测速度提升的效果。目录结构 数据蒸馏任务位于 wenxin_appzoo/tasks/data_distillation├── data │ ├── dev_data │ ├── dict │ ├── download_data.sh │ ├── predict_data │ ├── test_data │ └── train_data ├── distill │ └── chnsenticorp │ ├── student │ └── teacher ├── examples │ ├── cls_bow_ch.json │ ├── cls_cnn_ch.json │ ├── cls_ernie_fc_ch_infer.json │ └── cls_ernie_fc_ch.json ├── inference │ ├── custom_inference.py │ ├── __init__.py ├── model │ ├── base_cls.py │ ├── bow_classification.py │ ├── cnn_classification.py │ ├── ernie_classification.py │ ├── __init__.py ├── run_distill.sh ├── run_infer.py ├── run_trainer.py └── trainer ├── custom_dynamic_trainer.py ├── __init__.py3.2 数据准备目前采用三种数据增强策略策略,对于不用的任务可以特定的比例混合。三种数据增强策略包括:(1)添加噪声:对原始样本中的词,以一定的概率(如0.1)替换为”UNK”标签(2)同词性词替换:对原始样本中的所有词,以一定的概率(如0.1)替换为本数据集中随机一个同词性的词(3)N-sampling:从原始样本中,随机选取位置截取长度为m的片段作为新的样本,其中片段的长度m为0到原始样本长度之间的随机值数据增强策略可参考数据增强,我们已准备好了采用上述3种增强策略制作的chnsenticorp的增强数据。3.3 离线蒸馏使用预置的ERNIE 2.0 base模型cd wenxin_appzoo/models_hub bash download_ernie_2.0_base_ch.sh下载预置的原始数据以及增强数据。cd wenxin_appzoo/tasks/data_distillation/distill bash download_data.sh运行以下命令,开始数据蒸馏cd wenxin_appzoo/tasks/data_distillation bash run_distill.sh3.3.1蒸馏过程说明run_distill.sh脚本会进行前述的三步:在任务数据上Fine-tune; 加载Fine-tune好的模型对增强数据进行打分; 使用Student模型进行训练。脚本采用hard-label蒸馏,在第二步中将会直接预测出ERNIE标注的label。run_distill.sh脚本涉及教师和学生模型的json文件,其中:./examples/cls_ernie_fc_ch.json负责教师模型的finetune, ./examples/cls_ernie_fc_ch_infer.json 负责教师模型的预测。 ./examples/cls_cnn_ch.json,负责学生模型的训练。事先构造好的增强数据放在./distill/chnsenticorp/student/unsup_train_aug在脚本的第二步中,使用 ./examples/cls_ernie_fc_ch_infer.json 进行预测:脚本从标准输入获取明文输入,并将打分输出到标准输出。用这种方式对数据增强后的无监督训练预料进行标注。最终的标注结果放在 ./distill/chnsenticorp/student/train/part.1文件中。标注结果包含两列, 第一列为明文,第二列为标注label。在第三步开始student模型的训练,其训练数据放在 distill/chnsenticorp/student/train/ 中,part.0 为原监督数据 part.1 为 ERNIE 标注数据。注:如果用户已经拥有了无监督数据,则可以将无监督数据放入distill/chnsenticorp/student/unsup_train_aug 即可。
-
通过mindspore hub加载模型,执行模型的示例代码报错:[CRITICAL] ME(10840:139643021289280,MainProcess):2022-11-22-23:43:08.889.499 [mindspore/train/serialization.py:112] Failed to combine the net and the parameters for param dense.weight.Traceback (most recent call last):File "/home/beansprouts/Documents/ws_python/DocImgDirectionReg/res50.py", line 8, innetwork = mshub.load(model)File "/home/beansprouts/Documents/ws_python/DocImgDirectionReg/venv/lib/python3.8/site-packages/mindspore_hub/load.py", line 224, in loadload_param_into_net(net, param_dict)File "/home/beansprouts/Documents/ws_python/DocImgDirectionReg/venv/lib/python3.8/site-packages/mindspore/train/serialization.py", line 698, in load_param_into_net_update_param(param, new_param, strict_load)File "/home/beansprouts/Documents/ws_python/DocImgDirectionReg/venv/lib/python3.8/site-packages/mindspore/train/serialization.py", line 118, in _update_paramraise RuntimeError(msg)RuntimeError: For 'load_param_into_net', dense.weight in the argument 'net' should have the same shape as dense.weight in the argument 'parameter_dict'. But got its shape (10, 1280) in the argument 'net' and shape (1000, 1280) in the argument 'parameter_dict'.May you need to check whether the checkpoint you loaded is correct or the batch size and so on in the 'net' and 'parameter_dict' are same.python3.8.10mindspore 1.9.0mindspore hub 1.9.0代码如下:import mindspore_hub as mshubfrom mindspore import contextcontext.set_context(mode=context.GRAPH_MODE,device_target="CPU")model = "mindspore/1.9/mobilenetv2_imagenet2012"network = mshub.load(model)network.set_train(False)1.我该如何调整?2.总是来论坛问,麻烦。有没有什么地方可以获取更多信息?
-
迁移学习什么是迁移学习迁移学习(Transfer Learning)是深度学习中十分强大的理念之一,它利用数据、任务或模型之间的相似性,将在旧的任务学习或训练好的模型,应用于新的任务中这样一个过程。两个任务的输入属于同一性质:要么是图像、要么同时语音或其他。简单来说,当你需要训练一个新的模型的时候,找到同类型的模型,使用其已经训练好的参数,这样你就不需要从头开始训练你的新模型。为什么要使用迁移学习一、当拥有大量的足够多的的数据量时,可以不需要使用迁移学习,深度学习很容易从海量数据中学习到泛化能力很高的模型。但是当训练数据集较小时,在少量的训练样本上精度极高,但是泛化效果差,即当使用非训练数据时,推理效果极差。二、降低训练成本,基于MindSpore训练模型时,从头开始训练一个卷积网络通常需要较长时间且依赖于强大的GPU或Ascend计算资源。基于ResNet34网络的迁移学习过程实例实例背景本次的迁移学习实例是将ResNet34网络模型从GPU训练环境迁移到CPU训练环境,所用数据集从ImageNet2012数据集变为flower_photos数据集,数据集数量变小,考虑到数据集数量问题和CPU的运算能力问题,故使用迁移学习进行训练,此外,因为是同网络模型且都是进行图像分类任务,在GPU上基于ImageNet2012数据集训练的模型参数会十分适配CPU环境下的分类模型,极大的减小训练难度和减少训练时间。ResNet34网络介绍残差神经网络(ResNet)由微软研究院何凯明等五位华人提出,通过ResNet单元,成功训练152层神经网络,赢得了ILSVRC2015冠军。ResNet前五项的误差率为3.57%,参数量低于VGGNet,因此效果非常显著。传统的卷积网络或全连接网络或多或少存在信息丢失的问题,还会造成梯度消失或爆炸,导致深度网络训练失败,ResNet则在一定程度上解决了这个问题。通过将输入信息传递给输出,确保信息完整性。整个网络只需要学习输入和输出的差异部分,简化了学习目标和难度。ResNet的结构大幅提高了神经网络训练的速度,并且大大提高了模型的准确率。正因如此,ResNet十分受欢迎。ResNet34是网络层数为34的ResNet网络。论文:Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun."Deep Residual Learning for Image Recognition"迁移学习训练过程本实例中,因为所用网络和训练任务类型相同,又因为MindSpore上在不同平台训练需修改的代码部分就一句,所以GPU模型训练的代码部分有很高的复用性,需修改的部分是数据集处理和模型最后的全连接层。一、获取参考实现代码基于MindSpore的所有模型案例均开源,本案例代码获取语句:git clone https://gitee.com/mindspore/models.gitResNet34网络模型路径:\models\official\cv\resnet注:由于本项目已结项,目录中存在迁移学习脚本,可供参考。二、获取GPU环境训练的模型参数cid:link_5cid:link_7将下载的ckpt文件保存至\models\official\cv\resnet中。三、获取数据集并处理数据集使用flower_photos数据集(下载链接:cid:link_4),其中包含5类花的图片:633张雏菊图片、898张蒲公英图片、641张玫瑰图片、699张向日葵图片和799张郁金香图片。将所需数据集下载后按照3:1的比例将数据集划分为训练集和验证集。数据集保存在\models\official\cv\resnet中并解压,运行数据集处理脚本data_split.py,将数据集处理为训练所用的目录结构。四、微调训练编写迁移训练脚本,这是迁移学习最重要的部分,体现了迁移学习的核心思想,即将一个训练好的网络模型参数迁移到另一个网络模型中使用。具体来说,首先,构建与被迁移模型同样的网络模型,并加载其参数;然后修改模型最后的全连接层适配本任务中的分类任务,对于多分类任务即SoftMax层,这步完成之后,除了修改的全连接层部分参数为初始随机的以外,其他层均为加载后的参数并将其冻结不再随着后续的训练改变;最后,使用处理完的模型对新的数据集进行训练。整个过程称为微调。注:微调脚本可在GPU训练脚本train.py的基础上进行修改,参考fine_tune.py。五、推理验证在本实例中,经过迁移学习得到的CPU环境下的模型在精度上达到了GPU环境下的训练效果,降低了该模型对于算力的要求,并且极大在程度上降低了训练时间和训练成本,体现了迁移学习的强大之处。代码:cid:link_3
-
GhostNet-CPU模型迁移训练流程概述GhostNet由华为诺亚方舟实验室在2020年提出,该论文提供了一个全新的Ghost模块,旨在通过廉价操作生成更多的特征图。基于一组原始的特征图,作者应用一系列线性变换,以很小的代价生成许多能从原始特征发掘所需信息的“幻影”特征图(Ghost feature maps)。该Ghost模块即插即用,通过堆叠Ghost模块得出Ghost bottleneck,进而搭建轻量级神经网络——GhostNet。在ImageNet分类任务,GhostNet在相似计算量情况下Top-1正确率达75.7%,高于MobileNetV3的75.2%。该架构可以在同样精度下,速度和计算量均少于SOTA算法。深度卷积神经网络通常引用由大量卷积组成的卷积神经网络,导致大量的计算成本。尽管有工作做出改善,如MobileNet和ShuffleNet引入了深度卷积或混洗操作,以使用较小的卷积核来构建有效的CNN,但是引入的1x1卷积依然会产生一定的计算量。基于此,GhostNet将相似的特征图通过cheap transformation操作得到。Ghost意思是相似的特征图,犹如另一个的幽灵,可以通过简单的线性变换得到。相比于传统的卷积,GhostNet分两步走,首先GhostNet采用正常的卷积计算,得到channel较少的特征图,然后利用cheap operation得到更多的特征图,然后将不同的特征图concat到一起,组合成新的output。准备环节迁移数据集处理首先数据集使用flower_photos数据集,其中包含5类花的图片:633张雏菊图片、898张蒲公英图片、641张玫瑰图片、699张向日葵图片和799张郁金香图片。将所需数据集下载后按照3:1的比例将数据集划分为训练集和验证集。预训练模型获取获取预训练模型“ghostnet_1x_pets.ckpt”、“ghostnet_nose_1x_pets.ckpt”以及“ghostnet600M_pets.ckpt”文件。拉取代码文件将原代码从代码仓拉取并运行查看效果。程序开发原代码文件为Ascend实现的工程文件,其中包含较多的GPU或Ascend算子,首先确保相关算子CPU实现的适配性,若不适配,寻找替代功能算子实现操作,若无替代算子则自行开发算子以实现所需功能。在此项目中CPU训练的相关算子,均可支持。故继续完成迁移代码的开发。迁移训练代码流程包括定义超参数、数据集接口、导入预训练模型、重写Dense层、学习率定义、损失函数定义、优化器的定义、回调函数定义、模型连接和模型训练等操作。在此过程中发现的一处难点是对网络模型的非全连接层冻结操作,以加快迁移训练的完成的速度。但对此预训练模型的网络层冻结操作后,发现损失值难以下降,精度难于达到要求,故此项目迁移训练未对网络层冻结,结果达到精度,但代价是训练时间增加。因此使用GPU设备参与训练迁移网络与调试工作,最终完成网络模型的迁移。微调迁移训练程序import os import argparse import ast from mindspore import context from mindspore import nn from mindspore import Tensor from mindspore.train.model import Model from mindspore.train.loss_scale_manager import FixedLossScaleManager from mindspore.train.callback import ModelCheckpoint, CheckpointConfig, LossMonitor, TimeMonitor from mindspore.train.serialization import load_checkpoint from mindspore.common import dtype as mstype from mindspore.common import set_seed from mindspore.nn.optim.momentum import Momentum from mindspore.communication.management import init, get_rank from mindspore.context import ParallelMode from src.lr_generator import get_lr from src.CrossEntropySmooth import CrossEntropySmooth from src.dataset import create_dataset from src.config import config from src.ghostnet import ghostnet_1x, ghostnet_nose_1x from src.ghostnet600 import ghostnet_600m from src.dense import init_weight parser = argparse.ArgumentParser(description='GhostNet') parser.add_argument('--num_classes', type=int, default=5, help='Classes number') parser.add_argument('--device_target', type=str, default='CPU', help='Device platform') parser.add_argument('--save_checkpoint_path1', type=str, default='./ckpt/', help='Save path of ckpt file') parser.add_argument('--data_url', type=str, default='./dataset/', help='Dataset path') parser.add_argument('--run_distribute', type=ast.literal_eval, default=False, help='Run distribute') parser.add_argument('--pre_trained', type=str, default='./pre_ckpt/ghostnet_1x_pets.ckpt', help='Pretrained checkpoint path') parser.add_argument('--rank', type=int, default=0, help='local rank of distributed') parser.add_argument('--is_save_on_master', type=int, default=1, help='save ckpt on master or all rank') args_opt = parser.parse_args() set_seed(1) if __name__ == '__main__': # init context context.set_context(mode=context.GRAPH_MODE, device_target=args_opt.device_target, save_graphs=False) if args_opt.run_distribute: device_id = int(os.getenv('DEVICE_ID')) rank_size = int(os.environ.get("RANK_SIZE", 1)) print(rank_size) device_num = rank_size context.set_context(device_id=device_id) context.set_auto_parallel_context(device_num=device_num, parallel_mode=ParallelMode.DATA_PARALLEL, gradients_mean=True) init() args_opt.rank = get_rank() # select for master rank save ckpt or all rank save, compatible for model parallel args_opt.rank_save_ckpt_flag = 0 if args_opt.is_save_on_master: if args_opt.rank == 0: args_opt.rank_save_ckpt_flag = 1 else: args_opt.rank_save_ckpt_flag = 1 # define net if 'ghostnet_1x_pets.ckpt' in args_opt.pre_trained: net = ghostnet_1x(num_classes=args_opt.num_classes) elif 'ghostnet_nose_1x_pets.ckpt' in args_opt.pre_trained: net = ghostnet_nose_1x(num_classes=args_opt.num_classes) elif 'ghostnet600M_pets.ckpt' in args_opt.pre_trained: net = ghostnet_600m(num_classes=args_opt.num_classes) net.to_float(mstype.float16) for _, cell in net.cells_and_names(): if isinstance(cell, nn.Dense): cell.to_float(mstype.float32) local_data_path = args_opt.data_url print('Download data:') dataset = create_dataset(dataset_path=local_data_path, do_train=True, batch_size=config.batch_size, num_parallel_workers=None) step_size = dataset.get_dataset_size() print('steps:', step_size) # init weight ckpt_param_dict = load_checkpoint(args_opt.pre_trained) init_weight(net=net, param_dict=ckpt_param_dict) # init lr lr = get_lr(lr_init=config.lr_init, lr_end=config.lr_end, lr_max=config.lr_max, warmup_epochs=config.warmup_epochs, total_epochs=config.epoch_size, steps_per_epoch=step_size) lr = Tensor(lr) if not config.use_label_smooth: config.label_smooth_factor = 0.0 loss = CrossEntropySmooth(sparse=True, reduction="mean", smooth_factor=config.label_smooth_factor, num_classes=args_opt.num_classes) opt = Momentum(net.trainable_params(), lr, config.momentum, loss_scale=config.loss_scale, weight_decay=config.weight_decay) loss_scale = FixedLossScaleManager(config.loss_scale, drop_overflow_update=False) model = Model(net, loss_fn=loss, optimizer=opt, loss_scale_manager=loss_scale, metrics={'top_1_accuracy', 'top_5_accuracy'}, amp_level="O3", keep_batchnorm_fp32=False) # define callbacks time_cb = TimeMonitor(data_size=step_size) loss_cb = LossMonitor() cb = [time_cb, loss_cb] if config.save_checkpoint: if args_opt.rank_save_ckpt_flag: config_ck = CheckpointConfig(save_checkpoint_steps=config.save_checkpoint_epochs * step_size, keep_checkpoint_max=config.keep_checkpoint_max) if 'ghostnet_1x_pets.ckpt' in args_opt.pre_trained: ckpt_cb = ModelCheckpoint(prefix="ghostnet_1x", directory=args_opt.save_checkpoint_path1, config=config_ck) elif 'ghostnet_nose_1x_pets.ckpt' in args_opt.pre_trained: ckpt_cb = ModelCheckpoint(prefix="ghostnet_nose_1x", directory=args_opt.save_checkpoint_path1, config=config_ck) elif 'ghostnet600M_pets.ckpt' in args_opt.pre_trained: ckpt_cb = ModelCheckpoint(prefix="ghostnet600M", directory=args_opt.save_checkpoint_path1, config=config_ck) cb += [ckpt_cb] # train model model.train(config.epoch_size, dataset, callbacks=cb, sink_size=dataset.get_dataset_size())迁移训练对每个预训练权重文件迁移,因为有三个ckpt预训练文件,故执行迁移训练三个网络。 执行python fine_tune.py --pre_trained ./pre_ckpt/ghostnet_1x_pets.ckpt,得到ghostnet_1x的网络训练损失值如下(部分)# ghostnet_1x迁移训练结果 epoch: 1 step: 21, loss is 1.0636098384857178 Train epoch time: 295952.507 ms, per step time: 14092.977 ms epoch: 2 step: 21, loss is 1.007066011428833 Train epoch time: 20480.770 ms, per step time: 975.275 ms epoch: 3 step: 21, loss is 0.9204861521720886 Train epoch time: 20673.888 ms, per step time: 984.471 ms ... epoch: 498 step: 21, loss is 0.5347862839698792 Train epoch time: 19795.049 ms, per step time: 942.621 ms epoch: 499 step: 21, loss is 0.49817660450935364 Train epoch time: 19959.692 ms, per step time: 950.462 ms epoch: 500 step: 21, loss is 0.5028425455093384 Train epoch time: 20185.629 ms, per step time: 961.220 ms执行python fine_tune.py --pre_trained ./pre_ckpt/ghostnet_nose_1x_pets.ckpt,得到ghostnet_1x的网络训练损失值如下(部分)# ghostnet_nose_1x迁移训练结果 epoch: 1 step: 21, loss is 1.1746268272399902 Train epoch time: 94845.916 ms, per step time: 4516.472 ms epoch: 2 step: 21, loss is 1.0321934223175049 Train epoch time: 37248.247 ms, per step time: 1773.726 ms epoch: 3 step: 21, loss is 0.9764260053634644 Train epoch time: 37365.344 ms, per step time: 1779.302 ms ... epoch: 498 step: 21, loss is 0.5118361711502075 Train epoch time: 36716.475 ms, per step time: 1748.404 ms epoch: 499 step: 21, loss is 0.5035715103149414 Train epoch time: 37642.484 ms, per step time: 1792.499 ms epoch: 500 step: 21, loss is 0.49066391587257385 Train epoch time: 36474.781 ms, per step time: 1736.894 ms执行python fine_tune.py --pre_trained ./pre_ckpt/ghostnet600M_pets.ckpt,得到ghostnet_1x的网络训练损失值如下(部分)# ghostnet_600m迁移训练结果 epoch: 1 step: 21, loss is 1.2935304641723633 Train epoch time: 296802.766 ms, per step time: 14133.465 ms epoch: 2 step: 21, loss is 1.356112003326416 Train epoch time: 44871.251 ms, per step time: 2136.726 ms epoch: 3 step: 21, loss is 1.1128544807434082 Train epoch time: 45124.813 ms, per step time: 2148.801 ms ... epoch: 498 step: 21, loss is 0.4896056652069092 Train epoch time: 45314.303 ms, per step time: 2157.824 ms epoch: 499 step: 21, loss is 0.5079032182693481 Train epoch time: 45675.234 ms, per step time: 2175.011 ms epoch: 500 step: 21, loss is 0.5031487345695496 Train epoch time: 45935.200 ms, per step time: 2187.390 ms推理对训练得到的权重文件,使用验证集推理,查看效果精度。推理对计算机资源消耗较少,使用CPU即可。设置好ckpt文件路径,分别执行推理文件。ghostnet_1x网络推理:python eval.py --device_target CPU --checkpoint_path ./ckpt/ghostnet_1x_3-500_21.ckptghostnet_nose_1x网络推理:python eval.py --device_target CPU --checkpoint_path ./ckpt/ghostnet_nose_1x-500_21.ckptghostnet_600mx网络推理:python eval.py --device_target CPU --checkpoint_path ./ckpt/ghostnet600m_1-500_21.ckpt推理结果Ghostnet_1x网络:result: {'top_5_accuracy': 1.0, 'top_1_accuracy': 0.9207589285714286} ckpt= ./ckpt/ghostnet_1x_3-500_21.ckptghostnet_nose_1x网络:result: {'top_1_accuracy': 0.9252232142857143, 'top_5_accuracy': 1.0} ckpt= ./ckpt/ghostnet_nose_1x-500_21.ckptghostnet_600m网络:result: {'top_1_accuracy': 0.9308035714285714, 'top_5_accuracy': 1.0} ckpt= ./ckpt/ghostnet_600m_1-500_21.ckpt总结从推理结果可以看到推理的数据集top1精度均在92%以上,说明分类识别效果极佳,这体现出了网络分类识别效果的优良性能,网络能准确的提却不同的特征信息对图片精准分类。 GhostNet减少了深度神经网络的计算成本,用一种更高效的神经网络结构--新型Ghost模块将原始卷积层分为两部分,首先使用较少的卷积核来生成原始特征图,再进一步使用较为简单的变换操作以高效的产生更多幻影特征图。此网络提出了一个即插即用的模块,能够将原始模型转换为更紧凑的模型,同时保持相似的性能。此外,在效率和准确性方面,新模块构建的GhostNet优于许多轻量级神经网络。代码链接cid:link_0引用Han K, Wang Y, Tian Q, et al. Ghostnet: More features from cheap operations[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2020: 1580-1589.
-
❤ AI系列往期直播回顾:【GDE直播公开课·第七期】低门槛AI开发模式:ModelFoundry【GDE直播公开课 · 第十一期】AI如何举一反三——迁移学习技术洞察❤视频回顾videovideovideo❤ 精选问答序号问题回复1大模型在业务上的实践效果怎样,能不能举个例子?以NLP领域中文纠错举例,我们采用MacBERT大模型,在开源的数据集上做了纠错预训练任务(训练1-epoch大约15小时),再在业务数据上做了微调,最后纠错准确率从原来的75%提高到90%,性能大幅提升。2预训练模型的基础训练数据来源渠道有哪些?有什么标准和要求?主要来源是业界开源的数据集,目前开源数据集的规模已经很大,完全适用于科学研究。当然如果是针对特定领域,还是需要通过相关合作来获取,或从网络查找对应词条来收集。本身预训练的目的就是节约标注成本,因此数据而言只要和业务数据类型保证一致即可,当然在此基础上做一些数据处理、清洗、去噪等也是可以的。3这么多预训练方法,我们应该在什么场景下用哪个?还是具体问题具体分析,首先看业务需求的侧重点,如果不考虑资源成本,只追求准确率等性能,那可以选择尝试那些更大的模型;如果资源受限,比如端侧业务,那需要选择更轻量化的模型。4运营商业务结构化数据,后期是否可以尝试大模型?结构化数据的大模型在学术界其实一直有在研究,不过还未有大规模应用,还是需要有更多的突破点。5预训练小模型有前途吗?在大模型快速发展以来,基于预训练小模型的迁移学习一直都是AI领域的中坚力量。这两者是并存关系,在某些领域小模型甚至更优。比如人脸识别领域,对推理时延的实时性要求非常高,这是小模型天然的优势所在。6请问地址补全用的预训练模型是什么?就是基本的BERT-base模型。7构建神经网络模型结构,初始状态下如何确定backbone结构?还是遵循从简到难的过程,可以先尝试经典的ResNet等网络结构,再对比一些transformer-based网络结构,如ViT、Swin-transformer等。8会有细分领域的大模型么?细分领域或者说垂直领域的大模型一直都有,比如电商领域大模型E-BERT、金融领域大模型FinBERT等。9如果用现有的大模型,训练特定的语料,比如中医病历,能否直接给出诊断呢?病历诊断这种生成类任务,目前还有很大的发展空间。个人认为可以作为辅助诊断,暂时还不能用来做直接诊断。10NLP大模型在哪些领域有应用?跨语言应用是NLP大模型最好的发挥场景之一,因为存在样本量很少的语言,比如跨语言机器翻译、跨语言文本分类等;同时NLP大模型在基于知识图谱的推荐、检索、问答等都有很好的应用。另外生成类任务也是NLP大模型发力的方向,能够实现智能创作、人机交互等应用。11请问跨模态的大模型,除了艺术设计类(封面、艺术品等)的文生图还有其他的可落地场景吗?个人看法,要实现强人工智能,跨模态是必须的。就目前而言,如电商领域的图文检索、自动驾驶中的人机交互、语音助手等都是可落地的场景。12想要了解CV大模型在现实生活中具体的应用场景有哪些?人脸识别算不算CV大模型中的场景,他在大模型中是怎么训练数据和提高识别的精度的?业内人脸识别技术应用现状和优劣势是什么,是不是都要用到AI和大模型的能力?人脸识别用了预训练的技术(比如对比学习范式,在无标注情况下怎么学习人脸),但目前不算大模型的场景,因为其对检测速度要求非常高,输出表征向量维度越小越好,不太合适大模型,小模型效果就已经很好很有效。活动说明1.有效盖楼:留言“报名”+“截图”、参与提问/建议或微信朋友圈点赞截图的,均可参与盖楼;2.无效盖楼:复制别人的提问、建议等,以及其他不符合要求的灌水信息皆为无效盖楼。注意:同一用户盖楼不能连续超过3楼,总楼层数不能超过10楼。超过盖楼数将视为无效盖楼。无效盖楼且踩中获奖楼层,也将视为无效,奖品不予发放,该楼层奖项轮空;3.盖楼总数及微信朋友圈点赞量取值仅限活动期间内,即2022年9月15日至9月27日24:00,其余时间不纳入计算范围;4.为保证活动有序进行,一经发现有作弊行为,将取消奖励资格;5.所有获奖用户,请于获奖后3日内完成实名认证,否则视为放弃奖励;6.请务必使用个人账号参与活动。本次活动如一个实名认证对应多个账号,只有一个账号可领取奖励;一个实名认证账号只能对应一个收件人,如同一账号填写多个不同收件人或不同账号填写同一收件人,均不予发放奖励;(举例说明:具备同一证件号(比如身份证号/护照ID/海外驾照ID/企业唯一识别号等)、同一手机号、同一设备、同一IP地址等,均视为同一实名用户)7.所有参加本活动的用户,均视为认可并同意遵守华为云社区的用户协议及隐私政策;8.GDE数智平台可能需要根据活动的实际举办情况对活动规则进行变更;若有变更,将以活动页面告知等方式及时通知;9.活动结束后将在活动帖和【GDE直播交流群】微信群中公布获奖名单,奖品配送范围为中国大陆地区,部分地区或因疫情原因延迟配送;10.GDE数智平台拥有活动解释权。中奖公示(已提供地址的中奖人员,奖品将陆续发出;未提供地址的,请留意私信,工作人员将联系获取地址,请在2022年10月21日前提供地址,过时视为自动放弃礼品)请各位中奖者微信添加:华为GDE官方小助手(gdezhushou),回复:GDE直播公开课提供邮寄地址,不添加不能获奖哦~小助手微信二维码报名有奖楼层昵称奖品5乌龟哥哥GDE定制鼠标垫13linghz666GDE定制鼠标垫20DragonCurryGDE定制鼠标垫27linghz666重复,每人仅一次获盖楼奖34Hello DiggerGDE定制鼠标垫探讨有奖昵称优秀提问奖品Hello DiggerNLP大模型在哪些领域有应用?GDE定制帆布袋madqfrog请问老师跨模态的大模型,除了艺术设计类(封面、艺术品等)的文生图还有其他的可落地场景么?GDE定制帆布袋分享有奖排名昵称奖品1linghz666GDE定制防晒伞2上帝之眼GDE定制防晒伞3乌龟哥哥GDE定制防晒伞直播互动奖轮次昵称奖品第一轮王*GDE定制玩偶第一轮李*宇GDE定制玩偶第一轮黄*国GDE定制玩偶第二轮王*GDE定制T恤视频号幸运福袋幸运福袋昵称奖品1A服装鞋子GDE定制防晒伞2LpcGDE定制防晒伞3Tayu Jonathan 明泽GDE定制防晒伞
-
基于消费级RGB-D相机相机可以基于主动式、被动式不同原理,优点在于基于这些设备的算法更具备实用性。近年来,也有不少研究直接基于消费级的RGB-D相机进行三维重建,如在微软的Kinect V1、V2产品上,取得了不错的效果。最早,由帝国理工大学的Newcombe等人于2011年提出的Kinect Fusion开启了RGB相机实时三维重建的序幕。此后有 Dynamic Fusion和Bundle Fusion等算法。这些方法它们各自有着各自的优点和缺点,同样有各自所适用的应用范围。以上为想要入门基于深度学习进行三维重建领域的同学简要介绍了这些方法,如需要深入了解,请仔细阅读相关文献,SfM和多视图几何等经典算法作为入门三维重建领域的基础永远都不会过时。 文章摘自小白学视觉
推荐直播
-
华为AI技术发展与挑战:集成需求分析的实战指南
2024/11/26 周二 18:20-20:20
Alex 华为云学堂技术讲师
本期直播将综合讨论华为AI技术的发展现状,技术挑战,并深入探讨华为AI应用开发过程中的需求分析过程,从理论到实践帮助开发者快速掌握华为AI应用集成需求的框架和方法。
去报名 -
华为云DataArts+DWS助力企业数据治理一站式解决方案及应用实践
2024/11/27 周三 16:30-18:00
Walter.chi 华为云数据治理DTSE技术布道师
想知道数据治理项目中,数据主题域如何合理划分?数据标准及主数据标准如何制定?数仓分层模型如何合理规划?华为云DataArts+DWS助力企业数据治理项目一站式解决方案和应用实践告诉您答案!本期将从数据趋势、数据治理方案、数据治理规划及落地,案例分享四个方面来助力企业数据治理项目合理咨询规划及顺利实施。
去报名
热门标签