当前位置: 首页 > 科技观察

干货!3个重要因素向你展示AI技术架构方案的可行性

时间:2023-03-16 00:18:53 科技观察

人工智能近年来发展迅猛,不仅在计算机视觉和自然语言处理领域,在其他领域也同样如此。科技创新浪潮。无论是在新业务上的尝试,还是旧业务的转型升级,AI这股风起云涌60多年的“后浪”,都在潜移默化地影响着我们传统的技术架构理念。AI架构(尤其是以机器学习、深度学习为代表的架构方案)已经成为我们技术架构选型中的一个新选项。您需要AI架构解决方案吗?AI架构选择的主要依据是什么?这是我们今天的主要讨论。我们先来看一个典型的AI架构:首先,我们需要收集训练模型所需的数据。这些数据可能来自于业务系统本身,比如CTR预估任务中的用户点击数据、用户订单数据;也可能来自系统外部,公开购买或者独立爬取,比如图像分类任务中的图片,NLP任务中的语料库等。这些数据收集起来之后,进行清洗、处理、存储,因为毕竟他们不只使用一次。一般存储在分布式存储设备(如HDFS)或云端。大多数公司也会搭建自己的数据平台,存储在数据仓库中,长期积累。当需要使用时,先对数据进行筛选,选择合适的特征数据,然后对数据进行预处理,送入算法模型。模型构建有很多可选的技术框架,可以基于sparkmllib,也可以是sklearn、tensorflow、pytorch等,然后经过训练、评估和调参,完成模型的构建。最后,将模型应用到具体的在线业务上,完成分类,返回到具体的任务中。在部署过程中,可以将模型打包,直接将预测模型部署到业务系统(客户端);也可以直接提供在线RESTful接口,方便跨语言调用。综上所述,数据经过数据采集、处理、特征选择、数据预处理、模型训练、模型评估、模型应用后,跨越业务系统、数据平台、算法模型三个系统,形成闭环。应用到业务系统上,这就构成了整个AI架构的核心。你是否需要一个AI架构,如何衡量这个技术架构方案的可行性?在我看来,主要取决于以下三个要素。1.Scenario我们讨论架构的可行性。是否适合业务和业务发展是第一标准,AI架构也不例外。回顾那些经典的、应用广泛的机器学习场景,比如推荐、搜索、广告等,这些场景都有这样的特点:场景相对封闭、目标单一、可控。原因是无论多么复杂的算法模型,最终都要在损失函数上实现,而后者一般是单目标、单优化任务。要么追求极值(lossminimization),要么达到某种对抗性的平衡(比如GAN)。在这种情况下,无论业务如何建模,仍然需要在算法模型和损失函数中实现,最终限制了场景和目标的单一性。因此,要看一个业务是否适合AI架构,首先要看业务场景目标是否单一、可控。或者业务建模和架构拆解后,各个环节的场景是否单一。例如,同程艺龙酒店系统为酒店商户提供上传酒店图片的功能。在这种场景下,除了审核图片的合法性,他们还需要对图片进行分类标注,比如“大堂”、“前台”、“客房”、“周边”等。为了正常使用AI架构,需要对场景中的每个目标进行拆分,训练不同的分类器。具体过程如下:其中,步骤2、3、4涉及多个图像分类器,每个分类器的目标不同,需要的训练数据也不同。对于同一张输入样本图片,每个分类器完成自己的功能,目标单一且可控。对于一些失败的样本,还可能涉及人工干预。最后将合法的图片存入系统。从业务需要来说,并不是所有的业务场景都需要AI架构。算法模型是对事物的精确模拟和抽象,复杂度比较高。但有时我们的业务可能不需要这种细粒度的控制。例如,有时一个简单的if...else...就可以解决问题;对于复杂的,可以设计几个“策略”,然后由业务专家针对每种情况进行配置;对于复杂的,也可以考虑BI解决方案:收集数据,然后进行多维分析,最后分析师和业务专家得到一些规律性的结论,然后将其构建到系统中,效果可能也不错。再举一个酒店分销调价的例子。将酒店分销给代理商销售前,一般会在底价的基础上干预产品的售价,调整一定的点(百分比),以保证销量,实现收益最大化。起初,它可能只是一个固定费率(比如6%的加价)。随着业务的发展,设计了一系列策略,如将酒店分为“独家”和“热门”两个维度的四个象限,对“独家-热门”酒店实施更高的价格调整比例,对“独家热门”酒店实行更高的价格调整比例。“非独家-冷门”酒店实行较低的费率。结果,收入增加了很多,效果不错。后来业务人员希望实施更细粒度的管控,于是将酒店的星级、区域、商圈、专属性、房型等维度进行更细粒度的划分,结合历史数据进行统计分析,并将各种结果应用于各种结果。价格调整比例不同。收益率和盈利能力进一步提高。这时候,如果所有业务方都比较满意,成本不高,系统复杂度也不高,那就没必要考虑更精细、更智能的AI架构了。从本质上讲,人工智能的引入是为了带来效率、体验或准确性的提升,同时平衡成本和收益,控制系统的复杂性。如果你不能带这些,那我们就得重新审视我们的计划了。当然,有时我们也会考虑架构的可扩展性和业务的发展,在设计中预留一些“开合”的空间。“策略模式”在这个时候或许是个不错的选择。对于系统默认的策略,采用基于手动配置的方案,同时保留策略扩展接口。随着未来业务需求的增加,引入了“基于AI的策略”。这样既控制了当前的成本,又平衡了系统的可扩展性。2、数据决定了机器学习的上限,算法和模型只是逼近这个上限。数据的收集和获取通常需要很长时间,而建立一个足够全面的数据仓库需要长时间的积累和打磨。因此,数据在任何一家公司都是宝贵的资产,都不愿意轻易送人。算法模型的成功取决于数据和特征。因此,一套AI架构方案最终能否取得好的效果,取决于收集的数据是否足够充分。这些数据源一般包括:自有系统采集、互联网公开数据采集(或爬取)、外包等。自有系统采集是最常见的解决方案,业务系统自身产生的数据一般更适合业务场景的应用。然而,此类数据既珍贵又稀缺,因此往往需要企业决策者提前谋划,及早收集整理业务数据,搭建数据平台,丰富数据仓库。施工时,弹药库里已经储存了充足的“弹药”。在互联网上爬取公共数据也是一种快速免费的方法,但要在茫茫大海中找到合适的数据并不容易,而且因为你能得到,别人也能得到,所以很难从其他竞争者中脱颖而出.公司差异。外包一般要花很多钱,而且质量参差不齐,通常是互联网公司不得已的做法。在数据成本高、难度高、积累时间长、场景适合使用AI架构的前提下,面对数据匮乏就没有办法了吗?不一定,我们还有一些选择。(1)浅层模型通常比深层模型需要更少的数据。因此,当数据量不足时,通常可以使用浅层模型代替深度模型来减少对数据的需求。当然,模型的表现力也会下降,但是对于不太复杂的业务场景,浅层模型也能取得不错的效果。当然,随之而来的是对特征挖掘的更高要求和对模型选择的挑剔。以分类任务为例,SVM、逻辑回归、随机森林、朴素贝叶斯……每种模型都有自己的特点和适用性,必须充分考虑和权衡,才能用好每一份数据。所谓缺数据、缺模型,也是不得已而为之。(2)使用预训练模型也是减少数据需求的好方法。迁移学习已经广泛应用于图像分类问题,BERT模型也将预训练模型带入了自然语言处理的大门。对于一些具体的问题,如果能找到合适的预训练模型,用自己的少量数据进行fine-tune,不仅对数据的需求会减少,训练时间也会大大减少,杀一石二鸟。只是遇到了合适的预训练模型却没有找到。(3)另一种降低数据需求的替代方法是先用少量数据“起步”,然后不断获取数据,加快模型更新频率,直至采用“在线学习”方式。这实际上是将总的数据需求扩展到时间维度来解决。当然,业务允许前期模型的准确率不要那么高也是有必要的。随着数据的增加和模型的不断更新,会逐渐达到预期的效果。例如,酒店购物者产品的销售通常采用预取供应商数据的方式,以加快展示速度。但供应商提供的QPS极其有限,一次只能抓取一家酒店。高频抓取,保证酒店数据的新鲜度,给客人更好的体验;低频捕获是由于库存和价格信息的及时性。如果没有保证,往往会导致预订失败,造成损失。因此,如何在酒店间合理分配QPS是一个典型的机器学习问题。我们从酒店人气、预订周期、节假日等多个维度进行特征挖掘,最后发现关键因素“季节”无法提取有效特征,因为数据仓库只有三个月的数据,即,仅当前季节的数据。为了解决这个问题,我们重新设计了模型,调整了架构方案,采用“在线学习”的方式将模型更新问题纳入到解决方案中。原始数据仅用于训练初始模型。上线后,模型会不断取新生成的数据进行迭代更新。同时,对时间线较近的数据赋予较高的样本权重,以保证季节因素的准确性。跟进。系统上线后,取得了很好的效果。(4)在缺乏初始数据的情况下,大多数时候强化学习也是一种选择。强化学习采用“试错”的方法,不断进化,最终学习到规律。当然,这需要对商业模式进行相应的调整。同时,如果演化周期过长,模型可能在前期很长一段时间内无法做出更好的决策,因此需要较高的业务容忍度。3、计算能力众所周知,训练过程是典型的“计算密集型任务”。没有强大的计算能力,很难支撑算法模型的训练和研究。GPU作为机器学习的计算平台几乎是标配,其训练时间相比CPU一般可缩短5倍以上。目前云平台的获取方式主要有两种:自建云平台和租用云平台。如果你“不缺钱”,当然可以选择自己打造,但是现在GPU升级太快了,基本每年都有。对于用于机器学习的GPU,计算速度是关键。一个高价打造的GPU集群很有可能在几年后成为“老爷车”。租赁云平台虽然可以随时享受最新GPU运算速度带来的“快感”,但需要耗费大量的精力。不仅要详细比较各个云平台提供的服务和成本,还要合理分配CPU和GPU,使资源利用率最大化。说了这么多,可能提到最多的就是“成本”和“收益”这两个词,这也是商家最关心的问题。无论是计算资源还是系统架构,之前的一套AI架构方案都需要相当大的投入。如果选择得当,在合适的场景下,AI也能带来相当不错的收益;但如果入不敷出,那么在选择AI架构方案时就需要谨慎。最后,技术人员储备和法律因素也是采用AI架构前需要考虑的问题。前阵子,工信部约谈了一家AI换脸应用企业。人工智能是一个浪潮。它不仅带来了新的技术和产业,也让旧系统有机会获得新生。作为技术人员,我们不仅要迎接新技术带来的挑战,还要了解技术选型背后的主要因素和风险,才能站在浪潮的顶端。那么,您需要AI架构的解决方案吗?