• [其他] 数据选择
    数据选择。当需要考虑的数据特征维度较高时,需要使用降维方法,如PCA(主成分分析)、t-SNE(t分布随机近邻嵌入)等,将维度压缩到二维或三维,并将其可视化展示出来。此时开发者就可以观察到那些类内差距较大的图像,并进行合理地清洗。有时需要通过数据选择减少标注量,并且尽可能维持精度不变,甚至还可以提升精度。例如,基于视频做模型训练时,通常需要先将视频截帧,然而距离越近的帧之间相似度越高,这些相似度过高的图像对于训练来说有冗余,因此视频抽帧后都要按一定的采样率进行选择。针对图像数据,还可以基于图像相似度进行去重。例如,在某口罩识别的案例中,原始数据是72张带有口罩目标的图像,通过数据选择发现,只需要标注其中18张即可,在节约标注量75%的同时,训练后的模型精度反而提升了0.3%。另外,还可以通过学习和迭代的方式进行数据选择。Embedding-Ranking框架是一个流行的数据选择框架。该数据选择方法主要包含3个步骤:特征提取、聚类排序、选择最优子集。在某车辆检测场景下,按照Embedding-Ranking框架对原始的689张图像进行自动选择,可抽取90%的高价值数据,节约标注量10%,用90%的数据和全量原始数据相比发现,训练后的模型精度可以提升2.9%。对于结构化数据,还可以在特征维度上进行数据选择,即特征选择。有些特征选择也属于特征清洗的范畴。有多种方式可以做特征选择:基于Filter-based的方法,选择与目标变量相关性最大的特征列,并确保这些特征之间尽量少一些冗余度,常用算法有mRMR等;基于wrapperbased的方法,主要采用启发式搜索、随机搜索等方法发现最优的特征子集,如从一个随机种子开始,不断尝试加入新的特征并洗掉无用的特征,最终找到使得模型精度最高的特征子集;基于Embedded-based的方法,主要利用一些算法本身的特点和实现技巧来实现重要特征的筛选,如决策树模型中每个节点就代表一个特征,该模型的训练过程本身就是一种有效地特征选择的方法。还可以通过正则化等方式来约束训练过程以发现最重要的特征子集。
  • [其他] 几个图像数据清洗的例子
    下面以图像为例,介绍几个数据清洗的案例。在某安全帽检测的案例中,基于无监督模型的方法,进行脏数据自动去除和关键数据保留,我们可以从300张原始图像中得到若干张质量较高的图像。如果数据集中其他类别的数据也都混杂进来,而且数量较多时,就需要采用基于无监督的自动分组算法对数据进行粗分类,提前清洗掉不需要的数据。再比如:在“嫩芽”识别场景中,混杂了大量“花朵”和“儿童图画”数据,这些混杂的数据都需清洗。另外,还可以根据数据特征分布对数据进行清洗。例如,对某自然场景的图像数据集做特征分析时,通过亮度特征的分布直方图可以看出,亮度值小于100的地方出现多处“毛刺”,根据实际情况判断这部分图像是拍摄误差造成的。而如果推理阶段绝大部分的图像亮度值也都高于100,那么就可以清除这些亮度值较低的图像,让后续的模型训练聚焦在亮度值大于100的范围。
  • [其他] 数据清洗的方法
    数据清洗。数据清洗是指对数据进行去噪、纠错或补全的过程。对于结构化数据,需要对单个特征进行各类变换,包括但不限于以下几种。离散化。针对特征取值为连续的场景,需要将其离散化,以增强模型的鲁棒性。无量纲化。不同的特征通常有不同的物理含义,其取值范围也各不相同,为了保证特征之间的公平性,同时提升模型精度,通常需要对特征进行归一化、标准化、区间缩放等处理。缺失值补全。由于各种原因,某些样本的某些特征值可能会缺失,因此需要一些补全策略,如用该特征值下所有其他样本的均值补全该缺失值,也可以新增一些特征列来表示该特征是否缺失,还可以直接删除带有缺失值的样本。分布变换。理想的数据分布状态是正态分布,这也是很多算法期望的假设条件,但现实中很多数据分布不能满足这个基本假设,因此通常需要一些数学变换来改变数据分布,如对数变换、指数变换、幂变换等。变量编码。通常需要对于一些非数值类的特征(如文字、字母等)进行量化编码,使其转换为可被算法处理的向量,常见的编码方法有One-Hot、哑变量、频率编码等。对于非结构化数据(图像、语音、文本等)而言,也需要及时去除脏数据。例如,在图像分类中,通常需要将不属于所需分类类别的图像去除,以免对标注、模型训练造成干扰。在文本处理中,针对不同的文本格式,需要采用不同的解析工具来完成关键文本信息的提取。
  • [其他] 数据处理:转换
    数据转换。数据转换是指对数据的大小、格式、特征等进行变换的过程,即对数据进行规范化处理。数据转换是为了使数据更适合算法选择和模型训练,使数据被更合理、充分地利用。例如,在医疗影像或地理遥感影像识别业务中,通常原始图像分辨率都非常高,需要做数据切片;在智能监控业务中,原始数据是视频,需要进行视频解码和抽帧,才能进行进一步的处理;图像、视频等数据通常有不同的格式,如图像有JPEG、PNG等格式,视频有AVI、MP4等格式,但是满足算法输入要求的格式总是有限的,这就需要对不同的格式进行转换。很多真实的业务场景中,数据往往是多种格式并存的,这时需要转换格式并进行必要的数据整理。另外,对于视频数据来说,在数据标注或模型训练之前,往往需要进行抽帧才能满足需求。开发者可以使用FFmpeg等工具自行抽帧,也可以利用ModelArts提供的内置抽帧工具进行转换。
  • [其他] 数据处理:校验
    当采集到数据时,数据集并不一定符合实际开发需要,往往还需要一系列的数据处理工作(如校验、转换、清洗、选择、增强等)。数据处理主要是为了让开发者在模型训练之前得到质量更高、更符合开发需要的数据集,从而提高模型的精度或降低训练的成本。数据校验。数据校验指的是对数据的可用性进行判断和验证的过程。在数据采集过程中,有部分数据存在格式等问题无法被进一步处理。以图像识别为例,用户经常会从互联网中搜索一些图像用于训练,但是其质量难以保证,有可能图像的名称、后缀名都不满足训练算法的要求。也可能图像有部分损坏,导致无法解码、无法被算法处理,另外,人工采集的图像可能有重复,需要被去除。因此,数据校验非常重要,可以帮助人工智能应用开发者提前发现数据问题,有效防止由于数据的基本问题造成的算法精度下降或训练失败的现象发生。另外,对于需要标注的数据,标注的格式可能有多种多样,即便是同样的标注格式,也难免有些字段出现错误。训练算法所支持的标注格式通常是有限的,而且容错性较差。因此,标注数据也需要被校验,从而提前发现标注问题。ModelArts数据处理模块提供数据校验功能。例如,对于图像数据,判断图像标注格式是否符合要求、图像分辨率大小是否满足算法设定的阈值、图像通道数是否满足算法要求、图像解码是否正常、图像后缀名是否满足规范等。建议人工智能应用开发者将数据及其标注进行充分校验后,将问题提前暴露,解决好基本的数据问题之后,再进入后续步骤。
  • [其他] 数据接入
    对于己经采集好的数据,如果要进行大规模分析和建模,则需要将数据接入应用开发平台上。数据的接入又分为批量接入和实时流接入。在批量接入方面,华为CDM(Cloud Data Migration,云数据迁移)服务可以一键式将数据在不同的存储之间做平滑迁移。CDM支持的存储形式有数据仓库、Hadoop集群、对象存储、文件系统、关系型数据库、非关系型数据库、搜索服务、消息系统等。对于数据库中己有数据,CDM支持批量迁移表、文件,还支持同构数据库和异构数据库之间的整库迁移。在迁移能力方面,CDM支持增量数据迁移、事务模式迁移、字段迁移。在实时接入方面,华为云提供了DIS(Data Ingestion Service,数据接入服务)可以一键式将数据流式迁移到云上。另外,华为云DLI(Data Lake Insight,数据湖探索)服务可以对接不同的数据源,如RDS(关系型数据库服务)、DWS(数据仓库服务)、DDS(文档数据库服务)等,仅需安装一个DLIAgent插件并进行相关配置,即可将数据自动接入云上。数据采集和接入后需要统一存储,并通过版本管理工具进行管理。根据存储的物理位置不同,数据存储可分为.本地存储和云存储。OBS(对象存储服务),具备标准RESTful API,可存储任意数量和形式的非结构化数据。OBS通过可信云认证,支持服务端加密、VPC(虚拟私有云)网络隔离、日志审计、细粒度权限控制,保障数据安全可信。
  • [其他] 数据采集的内容和方法
    数据采集的内容涉及图像、视频、音频、结构化表格数据及环境信息等。数据采集是数据管理的起始环节,一般而言,数据越丰富,算法所达到的效果就越好。尤其对于深度学习而言,数据量越大,模型表现一般越好。数据采集方法多种多样,通常需要根据实际场景来选择不同的采集方式。数据采集常见的几种方式有:终端设备采集,如摄像头等,设备可以很方便地采集日常生活中的真实图像和视频;网络数据采集,在合法合规的情况下,按照一定的规则,自动地抓取允许范围内的数据,基于搜索的数据采集,如基于图像搜索方法,从已有的图像数据仓库中搜索出类似的图像,作为当前项目的数据来源当面向企业级业务时,数据采集就更加复杂,主要体现在以下几个方面。数据来源具有分散性。对于企业级生产系统,通常有多方面的数据会对最终的人工智能决策产生影响。如对于销量预测而言,有多种类型的数据源,包括生产系统的数据、销售部门的数据、物流方面的数据、外部环境的数据、财务部门的数据等,我们需要对这些数据综合起来分析,才能对后续销量做出更准确的预测。此外,每一种类型的数据,也有多种来源。如对于某制造工厂,不同生产线上的多种传感器都会不停地采集数据,需要专用的软硬件系统进行数据采集。数据存储具有多样性。数据可来自数据库、本地磁盘、存储服务器等,甚至可来自第三方存储系统或云存储服务。数据天然具有多模态属性。在实际问题中,图像、语音、文本、表格等多种模态的数据源会同时存在。因此,在成本允许且项目需要的前提下,有必要对这些模态的数据进行采集和接入,以便于给数据分析和模型训练提供更丰富的“原材料”。数据采集具有较强的业务相关性。在实际业务场景中,经常会有很多矛盾出现。例如,有些数据是应用开发者最想采集的,但是出于安全、成本等因素的考虑,业务方未必可以提供这些数据;而有些数据对模型没有太大作用,却比较容易采集。有些时候,甚至有必要额外定制一套数据采集方案和设备。因此,数据采集很大程度上会受到业务的影响。由于数据的分散性、存储多样性、多模态属性、业务相关性,数据采集工作并不容易。很重要的一点是,应用开发者需要理解业务和具体场景,结合实际情况,才能够对采集哪些数据、怎么采集数据等问题做出更好的判断。面向企业系统,通常可以使用的数据采集方式也非常多,包括企业提供的采集工具、企业级消息系统等。当然,对于复杂行业,也可以将数据采集工作委托给第三方公司。最后说一句,数据相关的事情,都是比较苦、和枯燥的,有钱完全可以委托给第三方。
  • [其他] 人工智能应用开发第一步:数据准备
    对于开发者而言,数据采集是开发人工智能应用时面临的首要问题。数据准备阶段包含从原始数据采集到形成最终数据集的所有操作,在大多数人工智能应用开发的过程中,数据准备不仅重要,而且工作量巨大。据调查,在很多机器学习项目的开发中,数据相关的工作量占据了80%。因此,完备的数据采集、数据处理、数据标注、数据分析和优化对系统尤为重要。ModelArts在这方面提供了十分完备的数据管理功能。
  • [其他] 人工智能干货合集(2024年2月)
    1. AI开发平台ModelArts新功能2月份过春节,没有发布新功能。2. 人工智能相关直播合集昇思MindSpore技术公开课·大模型专题(第二期) 第九讲 RWKV1-4cid:link_0直播老师感冒了,坚持讲了一个多小时,不容易。课程带来国人原创的RWKV1-4的解析,一同见证RNN的兴衰发展与Transformers的迅猛崛起,畅聊Transformers的哪些优劣势有待我们发掘,看新RNN——RWKV能否“击败”Transformer再续往日“辉煌”。游历大模型发展历程,开阔大模型技术视野。技术流值得一看,听直播老师娓娓道来,RNN的兴衰发展历史。 一键部署,5秒开服,时延更低,网络更稳!玩帕鲁,就用华为云!cid:link_1可能有人会问,这个直播和人工智能有关吗?其实是有关的,因为Modelarts也是使用了华为云自己的容器服务来对外的。而这个直播里,也是提供了容器服务来快速部署。 《幻兽帕鲁》是近期爆火的一款开放世界生存建造游戏,在游戏中,玩家可以在广阔的世界中收集神奇的生物“帕鲁”,派他们进行战斗、建造、做农活,工业生产等。与其他开放世界游戏不同,要想实现多人联机需要自己搭建服务器,对于刚刚入坑的小伙伴可能是摸不着头脑,本次直播为大家详细介绍服务器的搭建过程,学会一键就能部署的方法,快速畅玩。驯兽师看过来,很不错。后面直播老师还讨论了PC玩这个游戏的配置,游戏爱好者们不要错过。昇思MindSpore技术公开课·大模型专题(第二期) 第十讲——MoEcid:link_2Mixtral模型把MoE(mixture of experts) 结构的稀疏大模型再次带到主流大模型的视野当中,那么MoE结构是什么样的?相较于传统Transformer稠密结构有哪些优势?本节公开课带领大家全面学习MoE的相关内容,并使用MindSpore进行演示。大模型技术爱好者看过来。下一代积木式智能组装编排,集成开发效率10倍提升cid:link_3想了解最新的低代码集成开发趋势和新一代技术吗?本期直播解读iPaaS领域最新技术动向,介绍华为云应用与数据集成平台ROMA Connect,理论+实战揭秘新一代组装式融合集成平台架构和核心技术。ROMA Connect融入低代码开发和组装式交付理念和最新的AI技术,预置丰富的连接器和模板,低门槛起步托拉拽编排,基于自然语言生成集成流,集成开发效率10倍提升,加速企业流程数字化和应用创新。ROMA平台与人工智能的关系,就是它融入了最新的AI技术。并且这个平台对于制造业的数字化、数智化发展,是有很好的助推作业。感兴趣的看过来。以下多图:
  • [其他] AI部署态的挑战
    对这个挑战的应对是:新协同模式。新协同模式这一设计理念是针对部署态的挑战提出的。对于部署态的挑战有以下几点。(1)端、边、云等不同的应用场景有不同的需求、目标与约束。例如,手机端可能更希望模型轻量化,而云端可能更要求较高的精度。(2)不同的硬件的精度和速度也不相同,如图所示。(3)硬件架构多样性导致全场景下部署差异性和性能不确定性,训练推理分离导致模型孤立。新协同模式下,可以全场景按需协同,得到更好的资源效率和隐私保护,安全可信,实现一次开发,多次部署。模型可大可小、可以灵活部署,带来一致的开发休验。MindSpore关于新协同模式有以下3项关键技术。(1)统一模型的IR应对不同语言场景上的差异,自定义的数据结构可以全部兼容,带来一致性的部署休验。(2)框架底层的硬件同样是华为所研发的,软硬协同的图优化技术可以屏蔽场景差异。(3)端云协同联邦元学习策略打破了端云界限,可以实现多设备协同模型的实时更新。这3项关键技术最终的效果是:在统一架构下,全场景模型部署性能一致,个性化模型精度显著提升,如图所示。
  • [其他] AI运行态的挑战
    对这个挑战的应对就是:新执行模式。新执行模式这一设计理念是针对运行态的挑战提出的。对于运行态的挑战有以下几点。(1)AI计算的复杂性和算力的多样性:CPU核、矩阵计算单元(Cube Unit)、向量计算单元(vector Unit);标量、向量、张量的运算,混合精度计算,稠密矩阵、稀疏矩阵计算,这些不同类型的算力。(2)多卡运行的情况下,随着节点增加,性能难以线性增加,并行控制开销大。新执行模式采用Ascend Native的执行引擎:提出On-Device执行,如图采用整图卸载执行,深度图优化,充分发挥异腾AI处理器的大算力。On-Device执行的技术核心有如下两个。(1)整图下沉执行,充分发挥昇腾AI处理器的大算力。该技术针对超强芯片算力下模型执行面对的挑战:内存墙问题、交互开销大、数据供给难。部分在主机上执行,部分在终端设备上执行,交互开销甚至远大于执行开销,导致加速器占用率低。MindSpore通过面向芯片的深度图优化技术,同步等待少,最大化“数据-计算-通信"的并行度,将数据+计算整图下沉到昇腾AI处理器,提供一个最好的、最优的效果。最终效果相比主机侧的图调度方式,训练性能提升10倍。(2)基于数据驱动的大规模分布式梯度聚合。该技术针对超强芯片算力下分布式梯度聚合的挑战:ResNet50单迭代20ms时间下中心控制的同步开销和频繁同步的通信开销。传统方法需要3次同步完成,数据驱动方法自主AllReduce,无控制开销。MindSpore通过梯度数据驱动的自适应图切分优化,实现去中心化的自主算法,梯度聚合步调一致,计算与通信充分流水,如图。图上也有计算机视觉中的一个例子:采用神经网络ResNet50 v1.5,在ImageNet 2012数据集上训练,按各自最佳的批大小(Batch Size)进行训练,可以看到采用MindSpore框架在Ascend 910上的速度远高于其他框架+其他主流的训练卡。
  • [其他] 模型训练的并行化和应对
    如今的深度学习模型往往因为体量巨大而必须做并行化,当前采用手动模型并行,需要设计模型切分,感知集群拓扑,开发难度高;手动并行难以保证高性能,难以调优。MindSpore能自动并行按照串行写的代码,自动实现分布式并行训练,并且保持高性能。一般而言,并行训练可以分为模型并行与数据并行。数据并行比较好理解,每个样本可以独立地完成前向传播,最后汇总传播结果。相比之下,模型并行就比较复杂了,需要我们以“并行思维“这样的逻辑手动编写所有需要并行的部分。MindSpore提供了一项关键创新技术:自动整图切分,如图按算子输入/输出数据维度切分整图,即把图中每个算子都切分到集群而完成并行运算。该技术融合了数据并行与模型并行。通过集群拓扑感知调度感知集群拓扑,自动调度子图执行,实现通信开销最小。MindSpore自动并行的目标是构建一种融合了数据并行、模型并行和混合并行的训练方式。它会自动选择一种代价最小的模型切分方式,实现自动分布式并行训练。MindSpore切分算子细粒度方式非常复杂,但作为开发者,并不需要关心底层实现,只要顶层API计算高效就行了。总体来说,新编程范式不但实现了AI算法即代码,降低了AI开发门槛,而且可以实现高效的开发与调试,例如,可以高效地完成自动微分,实现一行代码自动并行、一行代码完成调试与运行切换等。举个例子。一个开发者实现自然语言处理领域的经典算法Transformer,采用MindSpore框架实现,在开发调试的过程中,可以做到动静结合,调试过程透明简易,从最终的结构上来看,MindSpore框架上代码量有2000行,比TensorFlow的2500行要少20%左右,但是在效率上有50%以上的提升。
  • [其他] 深度学习框架中自动微分的发展和比较
    自动微分是深度学习框架的灵魂。一般而言,自动微分是指一种自动求某个函数的导数的方法。在机器学习中,这些导数可以更新权重。在更广泛的自然科学中,这些导数也能用于各种后续计算。自动微分的发展历程如图在自动微分的发展历程中,有以下3种自动微分技术。基于静态计算图的转换:将网络在编译时转换为静态计算图,然后将链式求导规则应用于计算图,并实现自动微分,如TensorFlow,能利用静态编译技术对网络性能进行优化,然而搭建网络或调试非常复杂。基于动态计算图的转换:以运算符重载的方式记录网络在前向执行时的操作轨迹,然后将链式求导规则应用于动态生成的计算图,并实现自动微分,如PyTorch。该技术使用非常便捷,但性能上难以做到极致的优化。基于源码的转换:该技术以函数式编程框架为基础,以即时(Just In Time,JIT)编译的方式在中间表达(编译过程中程序的表达形式)上做自动微分变换,支持复杂控制流场景、高阶函数和闭包。MindSpore的自动微分技术即基于源码的转换。它又支持对自动控制流的自动微分,所以它与PyTorch一样,构建模型非常方便。同时MindSpore能对神经网络做静态编译优化,因此其性能也非常优秀。自动微分技术的比较如表所示,性能及可编程性比较如图所示。简单来说,MindSpore的自动微分技术有以下优点。可编程性方面:采用Python通用语言,基于IR原语可微分(MindSpore IR中每个原语操作可以对应为基础代数中的基础函数)。性能方面:编泽优化,反向算子自动调优。调试方面:有丰富的可视化接口,支持动态执行。
  • [其他] AI开发态的挑战和应对
    先说对AI开发态的挑战的回应:新编程范式。新编程范式这一设计理念是针对开发态的挑战提出的。对于开发态的挑战有以下几点。(1)技能要求高。要求开发人员具有AI、计算机系统、软件等相关理论知识和较强的数学功底,因此开发门槛很高。(2)黑盒调优难。AI算法的黑盒性、不可解释性导致调优调参难度比较大。(3)并行规划难。在技术趋势的影响下,数据量越来越大,模型也越来越大,并行计算不可避免,并行规划严重依赖技术人员的经验,要求技术人员既要懂数据、模型,也要懂分布式系统架构等。新编程范式的AI算法即代码,降低了AI的开发门槛,基于数学原生表达的AI编程新范式,让算法专家聚焦AI创新和探索,如图
  • [其他] DocsGPT技术文档客服问答项目简介
    基于企业内部独有的知识库,进行智能的客服问答,毫无疑问是ChatGPT出圈以后,所有公司想要融入ChatGPT技术时的第一反应。可惜ChatGPT实际上是一个基于大语模型实现的、包括很多其他功能的、完整的聊天产品,并没有直接的接口让用户导入完整的知识库。此外,OpenAI提供的GPT3接口服务,也必须一直联网才能使用。对部分传统的toB服务产品依然不太友好。有趣的是,业界似乎也都不推荐使用GPT3的fine-tuning方式,甚至据说fine-tuning方式加入新训练数据后反而会导致通用文本的生成能力下降。所以,针对这种情况,DocsGPT开源项目采用GPT3接口,配合faiss向量搜索引擎和langchain模型库,快速实现一个针对技术文档的智能客服,可以作为这类产品的基础原型,可供参照。
总条数:3403 到第
上滑加载中