AutoML到底是怎样设计模型的?有哪些优势?

电子说

1.2w人已加入

描述

1955 年,约翰·麦卡锡(John McCarthy)、马文·闵斯基(Marvin Minsky)、克劳德·香农(Claude Shannon)等人聚在一起,为第二年即将召开的具有重要历史意义的“达特矛斯会议”列了一份 AI 研究议题,排在首位的就是“Automatic Computers”——自动编程计算机。

作为 AI 的开山鼻祖,他们在这份纲领里写道:“我们相信,如果精心挑选一批科学家,在一起工作一个夏天,那么这些(AI)问题中的一个或多个就能取得重大进展。”

60 多年过去了,这个设想终于开始一步步变成现实。

2017 年 5 月,Google 推出了“AutoML”,顾名思义,AutoML 实际上就是一种让模型设计过程自动化的机器学习软件,也就是让 AI 来设计 AI。

由于 AI 技术的发展以及人才稀缺,AutoML 的进展以及受到的关注超出了很多人的预期。目前在这个领域已经涌现出一批创业公司,成立不到一年的探智立方(iQubic)就是其中之一。

昨日,探智立方刚刚发布了人工智能模型自动设计平台——DarwinML 1.0,该平台的技术核心就是 AutoML。用户只需要具备人工智能基本概念,即可设计开发机器学习和深度学习模型,从而缩短建模人员及数据科学家创建模型的时间及门槛。

AutoML 到底是怎样设计模型的?

有哪些优势?

DarwinML 平台可以做些什么?

有没有门槛?

以后调参师真的找不到工作了吗?

……

带着诸多疑问,采访了探智立方的产品总监宋煜,为大家拨开“AI 设计 AI”的迷雾。

以下是对话实录,略有删减:

从 IBM 到创业公司

能简单介绍下你们的团队吗?

宋煜:探智立方成立于 2017 年底,之前获得了唯猎资本的 1000 万的天使轮融资,目前正在进行 A 轮融资。现在的团队有 14 人,大部分是研发人员。

为什么选择做 AutoML,跟您之前在 IBM 做的 BlueMind 深度学习平台项目有什么关系吗?

宋煜:没有太大的关系。我以前在 IBM 做了 5 年左右的 HPC,主要是底层算法,今天 AI 是 HPC 增长的一个点。后来之所以做 BlueMind ,是想扩展一个新的领域,但又依托 HPC。在做 BlueMind 的时候,我们给客户做一个平台去设计模型时,发现很多客户说,“我都没有人懂深度学习,你给我一个平台也白搭。”那是不是可以靠机器来做?尽量减少对人的要求,或者对初始理论知识的要求,他更多的懂业务怎么做。这是我们做 AutoML 这件事情的原动力。

您在 IBM 时是负责研发,在探智立方是产品总监,在职能上有什么变化吗?

宋煜:其实没有什么变化,基本上是一样的,还是做研发这一块。我们有一个 CTO ,他更关注算法的方向性研究。AutoML里面有很多不同的实现方法,很难说哪一个方法就是绝对正确的或者说效率最高的,所以他会来把关技术方向,这样我们就会减少绕路的机会。而我负责把这些技术方向实现并落地。

AutoML 的底层技术

探智立方的 AutoML 的底层技术是什么?

宋煜:我们最底层的搜索过程其实跟 EA(Evolution Algorithm)是很像的,但是我们叫 Genetic Algorithm,是 EA 里的一个分支,叫“遗传学算法”。我们把所有最小的神经元看成一个个基因片段 ,把最后设计出来的模型看成是一个生物,这个基因片段怎么有效组合成一个有价值的生物,这是遗传学算法的目标。

遗传学算法本身是高性能计算领域里一个很重要的应用算法,它在高能物理、材料力学、材料分子学里用得很多,比如分析晶体的现状,比如想找一个既耐火、强度又很高的材料,在任何一个分子结构都不能满足要求的情况下,有没有可能找到这样一种晶体结构出来,这是“遗传学算法”。

我们把它用到 AI 领域里也是这样。我们首先把最基本的算法定义成基因,然后合在一起定义成“基因库”的概念,设计的过程实际是这些基因的组合过程。它有随机,交叉和变异 3 个中主要操作。我们通过一些评估方法,找到这两个里面哪一个模块更好或更稳定,把它们留下来,作为种子,通过部分模型结构组合的方式生成新的子代,这是交叉过程。还有变异过程,分为边变异和点变异。一个独立的子代,想打断这块神经元之间的连接,或者想跳过几层跟某个神经元连在一起,这属于边变异。也可能把其中某个神经元,比如 max pooling, 换成 dropout,这也是一种变异,但是这叫点变异。

当然,纯 EA 的方法有两个问题。它是一个启发式搜索,所以没有那么严格,这种情况下如果完全靠它来做,效果差异会很大,有的时候很好,有的时候不好。这时需要有一个更高级的大脑来指导他,说你这样设计的效果更好。所以我们会用贝叶斯+强化学习+蒙特卡洛树搜索(MTCS)三种方法来实时调整EA的演化参数。

这三种方法会去指引 EA 里的一些参数下一代生成时要发生哪些变化,比如随机的比例由 30% 变成 27%,为什么变成 27% 是由这些它们说了算的,就像更高级的大脑。贝叶斯主要是分析数据的维度和模型的结果之间的分布情况,强化学习主要是判断做了这些操作以后的成功率有多大,MTCS 也是判断做了若干操作以后生成一个有效网络的可能性有多大,从这三个方向来控制 EA 算法的参数。但是真正设计和生成是 EA 算法去做的。

我们把三种算法组合在了一起,使得效率变得很高。依靠这个方法,我们目前在Cifar10的数据集上,使用 8 个 GPU Days 就可以设计出一个准确率在 92% 左右的神经网络出来。而目前大部分论文的测试结果在1000 - 3000个GPU Days。

基因库里的基因都是你们自己不断添加进去的?

宋煜:对,基因库里基因的定义是我们自己添加进去的,其实基因库本身的实现还是用的现在开源的框架来做的。如果是深度学习的神经元的话,我们可能会直接使用最基础的 Tensorflow 里的神经元的实现,生成计算图之后,计算过程会用它来做,只是它的属性在我的基因库里。

当有一些新的 loss 函数或者一些新的数学算法出去的时候,我们会把它加进去。一个全新的网络结构,但是这个网络结构只是在使用已经存在的神经元组合而成的情况下,我们是不会针对这样的论文取修改基因库的。因为这在AutoML看来是人为在一个或一组特定数据集上找到了一个最优解或者极优解,而从数学上来看,机器也应该可以达到这样的效果,所以这样的网络并不会直接影响到基因库。因为我们并不希望太多这种纯应用领域的知识影响基因库,更多的是想从底层的数学层面来改进基因库。

而基因库的知识积累是靠它自己在设计过程中学出来的,我们不会因为某个网络效果特别好而强放进去,因为它可能也只是真实世界里的一个局部最优解而已,我没有理由把一个局部最优解当成一个很好的教科书去教它,我更希望它自己去找到一个更好的全局最优解或者更逼近全局最优解空间的那个解。

机器能够设计一个全新的模型出来吗?

宋煜:这就是我们想做的一个事情。Google 目前实际商用的 AutoML 用的是迁移学习(Transfer Learing),实际上就是专家在后面已经设计了 100 个模型,有了数据以后,机器来评估哪个模型更合适,然后在这个模型上做变种,这是迁移学习的方法。而我们现在想做的事情是,在不知道模型该长什么样的情况下,让机器设计出来,所以我们只定义了最基本的算法单元,但这个单元里有粒度的问题,比如一个 CNN 算一个单元,一个  CNN 的一种 kernel 方式算一个单元,一种机器学习的算法算一个单元,也可以若干个 CNN 组成一个子图算作一个单元,AutoML 在这个单元之上任意去组合 。

我们当时做 CIFAR-10 的标准分类模型时,碰到一件很有意思的事情,大部分人设计出来的模型最后会接一个 cross-entropy loss,这是很标准的专门做分类的 loss,要么就是二分类,就是 sigmoid loss。但机器设计的模型前面 CNN 层的组合方式不是我们已知的任何一个模型,而在最后一层它居然用了一个 cosin distance loss,很不常见的一种 loss方式,但是机器设计出来了,而且比 CaffeNet 的效果要好。这个模型以前没有见过,这是一个很有意思的发现。

Google 也有论文出来,怎样让机器去设计 loss,但是他们走得更深,相当于只给数学公式,机器自己组合数学公式以后做出一个新的 loss 出来。Google 也提到像机器设计出来的 sin loss、cosin loss 的效果相当好。这不是从经验知识出发的,普通人一定不会去想做这个事情,因为在数学里 cross-entropy 就是用来衡量各个概率之间分布以后的最大值在哪里的方法,而 sin、cosin 只是算距离的。从常识来讲,这种设计至少一开始是没有道理的,但是你说他不能做也不是的,我们也可以用距离来表示图像的 Feature Map 之间像不像。这是我们看到的比较有意思的事情。

AutoML 是如何设计模型的?

人设计模型的流程和机器设计模型的流程有什么区别吗?

宋煜:没有本质区别。如果我们把数据准备这件事情放在一边(因为今天的 AutoML 也解决不了这件事情,还是要靠人去准备),一旦数据准备好了以后,人设计流程一般分为下面几个步骤:

第一步,做特征分析,就是分析什么样的特征是比较重要的。因为数据可能有 1000 列,但 1000 列都放进去训练,模型不一定收敛得很好,可能放 500 列或者 200 列就很好,因为去掉了一些不必要的噪声。什么是噪声?什么东西是真正有价值的东西?这就需要很多算法来做分析。还有一种可能是数据只有 20 列,维度太小了,那么我可以在这 20 列上做一些特征变换,进行“数据扩增”,它们都属于特征提取的范畴。这是第一步,一般大家都会花接近 1 个月的时间来做这件事情。

第二步,选择不同的模型进行试验。如果经验比较丰富,一上来就能够选到比较好的模型,经验不是那么丰富的人,选的模型的效果可能不是那么好,还要不停地换。一旦模型收敛得不错了,还要做参数优化,微调一些参数,让准确率达到要求,同时不出现过拟合等问题。

第三步是评估,就是数据分析领域标准的评估方式。

第四步,评估都没问题以后才会上线。

中间这四步串起来,有经验人需要 3 个月左右的时间,如果完全没经验,时间会更长。机器也是这个步骤,只不过这些步骤被自动化了。参数有没有价值或者模型有没有问题,要换一个什么样的模型会更好,在这个过程里是靠个人的经验、知识或者数学方法。机器在这里就不是靠经验了,它完全是靠数学方法,由完整的数学推理的方式来证明。通过数据的统计分布和这个模型的性能以及参数分布,AutoML 会不断评估最优解的分布区间并对这个区间再次采样。

其实它尝试得次数比人多得多,人在 3-6 个月的时间里也就试 4、5 种模型,但机器在 3 天里可以做 600 多个模型。它是通过六七百个模型的采样估计出最优解的分布位置。机器尝试这些模型可能不到 1 周的时间,而人来做可能超过 3 个月,这是最主要的区别。

相当于提升了模型设计过程的效率?

宋煜:对,缩短了时间。还有一点,人会碰到做不出来的情况,但机器反而可能找到一个解。比如数据维度特别大的时候,如果只是用一般的模型去做,很有可能发现模型不收敛。但用机器去做的时候,它有很多 stacking 或者 ensemble 的方法,可以提取一些更复杂的特征。比如我们现在看到一个图像有“红绿蓝”,还有亮度、饱和度等特征,机器通过特征提取,可能已经变到完全不同的数值空间、频率空间,这个空间是什么?至少人眼是感觉不出来,或者描述不出来,而机器在那个空间做了很多变化以后,会发现用这个空间的特征来做分析会效率更高。也就是完全依靠人的经验或者感觉做不出来的模型,机器通过算力反而是能够快速找到一个解。

AutoML 既可以设计机器学习模型,又可以设计深度学习模型,两者的设计过程有什么不同吗?

宋煜:深度神经网络的复杂度要大得多,它的算子不一定比机器学习多很多,但问题在于机器学习一般不会太深,一般 4、5 个神经元可能就差不多了。深度神经网络最大的问题是它可能很深。

我记得前年 IBM 跟一个做人脸识别的公司合作时,试图做过 1000 层的神经网络,一旦到了神经网络的深度达到很深的量级以后就会出现一个大的问题——搜索空间太大,如果没有一个高效的方法来指导模型设计的过程,可能跑个大半年也跑不出来结果。

Google 在 2017 年做的 CIFAR-10 自动设计是完全从零开始自动设计的方式,它当时只用了 7 个神经元,总共用了 3,000 多 GPU Days,然而数据量才 200 多兆。所以在深度神经网络用 AutoML 最大的困难就是设计效率,设计效率如果低的话,其实是设计不出来模型,或者设计不出来比普通专家水平要高的模型。

全生命周期的 DarwinML 平台

你们是怎么设计和搭建 DarwinML 平台的?

宋煜:DarwinML 的核心是能够自动化帮用户去做设计,但它的外围跟很多外面的平台,像百度、IBM 的平台很像。DarwinML 是一个全生命周期管理平台,包括数据导入、模型管理、权重文件管理、模型评估、上线、推理服务等等,核心还是 AutoML。

如果你用其他工具,得自己拖拽或者写代码,然后把这个模型弄出来。但是用 DarwinML就只需要点一下,然后等 3 天回来看结果。

从系统架构来说其实是一样的,都要考虑数据的接入,考虑多 GPU 的并行化,考虑集群的分布式问题。在系统架构设计上是很像的,唯一区别在于是人来设计还是机器来设计。

如何使用 DarwinML 来部署可上线运行的模型?有哪些门槛和条件?

宋煜:比如一家 LED 生产厂商,LED 每一层刷电路板的时候都会引入一个质量缺陷 ,以前它不知道缺陷是什么,但会把照片都存下来。假如今天它想用 AI 自动分辨这些缺陷,甚至在自动化工业线上能够用起来。一般它会先把这些数据打上标签,因为它有专业的业务人员,所以打标签本身不会出错。

一旦打完标签之后,它就把数据导到这个平台里去,这时它不需要管数据是否平衡。在实际生成中,生产线里由于产线的一些参数配制不合理,某一种缺陷会比较多,甚至占了统治地位,而其他的缺陷基本上很少发生,故障很少发生,它的量会很小。这种问题不需要客户去考虑,客户只要把这个数据导进来,我们的平台会首先自动分析数据有没有不均衡的问题,分布是什么样子的,根据这些自动做一些相关的处理。

之后,用户需要根据自身需求来选择任务类型。我们今天能够提供的大概有 8 种,以后会提供更多。目前 DarwinML 还没有通俗到,直接用专业词语描述目标,比如“产品质检”,而是会让你选择想做一个分类问题,还是做一个目标检测问题,还是做一个图象语义分割的问题。如果我要做产品的质量检测,一般是分类或者是目标识别任务,如果做质检的同时还要算出问题的面积有多大,可能就是语义分割的问题了。

我们还有其他的,比如数值预测。客户可能想做一个投资量化交易平台,那就要选值预测;如果想做一个聊天机器人,可能要选 文本的seq2seq 系统。我们会有八种这样的选择给客户。客户选了其中一个之后,就什么也不用管了。

然后在模型自动设计的过程里,我们会告诉客户几件事情,一个是数据统计,数据规模是什么样子的,我会做哪些数据操作。然后每一代模型设计出来情况是什么样子的,当前最好的模型是什么样子的。你可以看的到模型演变的过程,这些信息都会有。

当机器认为自己找到了一个合理的模型,比如达到客户对准确率的要求,或者时限要求等硬性指标之后,机器就停了,然后它就会把当前最好的模型输出出来,做一个完整的评估,并出一份报告。

这个报告会告诉你,模型的各项性能指标比如 F1,Precision, Recall, Confusion Matrix 以及模型性能等。其次是模型稳不稳定,这个很重要的,谁也不希望自己训练出来看起来很好的一个模型,但实际上是过拟合了。如果客户对结果满意,我们就把这个模型导入到我们的 inference 平台,然后就可以跟客户生产系统做对接。如果不满意,我会在原来的基础上重新设计,比如客户对模型的准确率满意,但是这个模型太复杂了,消耗的硬件资源太多,那就需要对模型进行简化。这是一个 feedback 的过程。

基本上客户参与的就是前期的数据准备,数据导入以后他要做一个选择,也就是他要完成解决的问题是什么,最后要分析一下这个模型他可不可以使用。

模型上线之后,还可以进行升级吗?

宋煜:一旦模型上线使用以后,我们其实是需要客户的 feedback。这个 feedback 就相对复杂一点,他得有一个方法告诉我,比如错了多少,哪些错了。这个时候就有两种策略: 如果模型的退化在 1% 以内或者 5% 以内,那我们可能选择重新训练,然后很快把这个模型的准确率再提回去,再继续发布使用。但是当产线发生改造以后,数据变化很大,很多地方就不太适用了。毕竟是机器设计的模型,它在设计的过程中是针对客户的特定数据结构和数据分布来做的,所以它可能会发生失效的问题。这个时候,当用户的 feedback 传回来时,我们的系统会把新的数据混合到原来的数据里去,重新做一次采样以后,然后重新设计模型。

只要你有更多的数据进来,理论上准确率就会继续慢慢往上升,这是一个点。另外一个比较重要的点是,我们有基因库的概念,这个基因库除了记录有哪些神经元以外,还会记录基因的表达式里的属性。这里的属性是什么意思?一个神经元和另外一个神经元如果连在一起是否有效的概率,通俗来说类似于互相排斥或者互相吸引,但是对我来说,在某种数据分布的情况下,它们能连在一起的概率会更大,在某种数据分布的情况下,它们连在一起的概率会更小。

为什么要做这件事情?我们的基因库是在不停演化的,它的演化过程并不受某一次数据的影响。这个基因库的更新是根据这些不同的模型设计过程中的稳定性和泛化情况,然后做的统计,再存到基因库里。

假设基因库在不增加新的神经计算单元的情况下,客户用这个基因,比如说三天就可以设计出一个好的模型,那到明年基因库更新之后,它做同样的模型设计可能只要两天或者更短的时间。所以它实际上是另外一层大脑,它会学习怎样设计效果会更好。而底下那层大脑的作用是,在限定的数据情况和模型结果下,它们怎么组合效果会更好。

我们希望把这个平台部署到云端以后,它会越来越聪明,模型设计水平随着时间的增长和使用人数的增长越来越高。比如它现在可以超过普通三年到五年的工程师的技术水平,但随着时间积累,它甚至可以达到有十年经验的工程师的技术水平,这都是有可能的。

你们现在有哪些客户?

宋煜:目前主要的客户是在金融和制造领域。金融领域的主要是做支付网关。支付网关可以看做是商家的淘宝,它会把 pos 机、线上线下数据都汇聚在一起来支付,包括银行转帐等都会通过支付网关来做。这种支付网关是我们现在的一些客户,它们基本是全国第一第二的位置,我们主要是帮他们做风控。

在金融领域里,传统技术用的比较多,专家系统或者规则系统是目前金融领域都在使用的,包括今天的反洗钱系统都是专家系统。不是说这个系统不好,而是当业务发生改变的时候,专家系统就失效了,需要重新去设计,这时就会很难,也不是说不可能,但周期会比较长。

我们跟他们合作的点是,他们这些人早就已经在做数据挖掘了,各种算法对他们的门槛没有那么高。对他们来说,时效性更重要,比如怎样快速找到新的欺诈行为。它们今天的方式还是线上专家系统去分析,然后告诉地推的销售去复查,看看商家的实际经营范围是什么,是通过这种方式查出来的。我们希望让机器去学习,不用人去学,从大量的交易里不停地学,就能够把这个问题解决。

实际上我们不太希望限制在某个行业里,我觉得 AI 之所以有价值,不是 AI 有多好,而是它跟互联网一样带来另外一个变革——公平和透明。以前我们的医疗资源在大医院那里,如果你要去看病,就是很难。专家系统也在少数专家或者大公司手里,即使你有数据,你想用就要花高昂的代价来买。AI带来真正的好处,是它把以前集中掌握在专家手里的东西,变成让任何一个企业在有数据的条件下就能用的东西,这是它最大的价值,因为它带来了另外一种公平。

未来你只要有数据,明确知道用这个数据能解决什么问题,把这两件事情搞定了以后,任何一个公司都能够利用 AutoML 做自己的 AI 系统,不需要去学一个几十年的大厂的经验,这是我们做这个平台的目的。

AutoML 未来的发展趋势和限制

你们的 AutoML 从开始到现在有很大的进步吗?

宋煜:老实说我们现在积累的时间没有那么长,我不敢说这个大脑的进步有多少,但是看到在单次过程里头进步是很明显的,比如说我从第一代开始,一般来说准确率,整个全训练的结果准确率也就是 60%、70%,但到了第十代或者第十七代左右,一般都能到80% 到 90%,这种进步是有的。但是它真正学出来的设计思想的影响有没有这么大?这个还需要时间来检验。

目前已经有一些开源的 AutoML 项目,对你们有什么影响吗?

宋煜:我们现在也看到了一些开源的工具,但实际上 AutoML 最重要的是效率,演化算法的效率是我们的核心价值所在,所以我们并不担心一个 AutoML 的产品出来之后挤占市场份额。在我看来,开源的 AutoML 工具的出现,说明大家都意识到了做模型是劳动密集型的事情,大家希望都希望用机器去做。当大家都接受这个观点之后,对我们反而是更有利的。这个时候,谁的效率更高,用户就会选择谁。

在目前的方法下,用机器去设计模型的局限性有哪些?

宋煜:其实可能最大还是效率问题。面对的复杂问题,机器设计模型的速度到底行不行?当数据集特别大时,需要很多 GPU,成本很高,这对于中小型企业来说是不可接受的,而且万一要是设计得不好,可能就白费了。

第二个,今天的数据其实干净程度没有我们想象的那么好。在我看来AI真正的行业落地有两个难点,第一是数据,第二才是模型。模型要靠人才来解决,在人才不够的情况下我们有机器,但是数据不干净的问题现在其实没有特别好的解决方法。一名数据科学家可以用自己的数学知识去解决这个问题,但今天的 AutoML 还不太擅长做这件事情。我们也在试图引用一些方法,但是我觉得现在的方法都还只停留在学术层面上,还无法实际落地。

第三个,还有一个可能的缺陷,就是模型可能会有过拟合,因为机器在设计过程中的目标就是准确率越高越好,但是在追求准确率的同时,可能会把模型变得很复杂,模型变得很复杂,就有可能学到了很多噪音,甚至学到了数据的分布,而这个数据分布是用户给你的数据,其实只是他真实海量数据中的极小一部分,很有可能跟真实世界里的数据分布是很不一样的。当机器把数据的某些分布特点当成了特点去学了以后,就很麻烦了,学出来的模型上线以后可能就会出现准确率骤降的情况。不过,机器在设计模型的过程中,我们也并没有期望它能够设计出来一个普遍试用的模型,而是更适合这类数据的模型,因此这中间需要一个平衡,而且一定要有严格的方法的来判定这个模型是不是真的适合上线。

未来 AutoML 的进化方向是什么?

宋煜:AutoML 现在有几个大的主流方向,一种是遗传学的表征方式来做,一种是强化学习的方式来做,还有元学习这种方式,其实这三种方式可能也很难说哪一个是最好的。我觉得这三个方向应该都是大家去努力的点,但是最重要的如何能真正落地,这个实际上是最难的。再一个就是效率,解决效率的问题一方面是靠计算力本身的发展,还有一个是效率的提升,在我看来最主要就是这两块。

三者可以互相借鉴吗?

宋煜:如果试图用一个方法解决所有的问题,我觉得会很难。但是一个问题可以分解成若干个小问题,然后每个小问题再用合适的方法做。比如强化学习,至少今天用它来做整个的模型演化的话,计算图的状态太多了,除非你算力很强大。但是模型设计合理不合理这件事情,用强化学习来做就很合适。模型计算图的生成方向则完全可以交给 EA 去做,让 EA 去搜索这个方向。而神经元和神经元之间的转移状态矩阵的更新,又可以用贝叶斯等传统 SMBO 的方式去做。这样的话把它分解开以后,其实是可以互相融合来用的。

调参师会被取代吗?

AutoML 广泛应用之后,普通的调参师工作就没什么价值了吗?

宋煜:也不能说没有价值,还是看大家追求的方向。AutoML 不是替代现在的数据工程师,它的目标是辅助数据工程师把模型做得更快、更好。模型调优以及在原有的模型上改一个新模型,是劳动密集型的工作,今天的工程师如果只做这些,很快就会失去意义,因为这种工作是没有价值的。

数据工程师真正的价值在未来有两个点是今天的 AutoML 不能替代的:

一是找到新的数学方法,设计出新的 loss 函数,来更好地解决某一类问题。比如我们现在 NLP 里多轮对话的问题,到今天为止大家还在用一些传统的方法比如 action template 的方式来解决对话束的问题。如果有人设计出一个好的 loss,能够把前面的聊天过的记录变成一个可以连续求导的问题,就可能直接从上下文的语料学习出对话的 Action 而不是靠根据行业特点来定义。所以,数据科学家的作用是找到更好的数学模型,把它放到深度神经网络里,这是机器无法替代的。

还有一个方向是向上根据数据和业务设计出合理的使用 AI 的场景。很多公司想用人工智能做点事情,当你问它“你想做什么”的时候,它想的可能是平时听到或者看到的一些很炫的东西,但那些东西对它的业务真正有帮助吗?什么事情对它的生产业务是有价值的?一个是节省成本,二是提高效率,三是增加产值。在这三个点,一个传统行业的公司能够做什么,这是今天大部分 AI 公司都不可能给出答案的。因为 AI 公司没有那么强的行业知识,这些只有真正传统行业里的业务人员才知道,而这些传统行业里的数据工程师,或者学了 AI 的人加入传统公司以后,才有能力真正去理解什么样的模型、什么样的 target 是有价值的。

这两点是机器现在不可替代的,真正劳动密集型的事情不妨交给机器去做。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分