11

对话英特尔戴金权:从笔记本到分布式大数据,无缝扩展 AI | InfoQ 大咖说

 3 years ago
source link: https://www.infoq.cn/article/tjT4eNAO7ZzEVSDBxBp4
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

采访嘉宾 | 戴金权

在单机环境中,构建算法模型对数据科学家来说不算难事,但如何很方便地将整个分布式架构构建起来、将算法模型应用到生产数据中,却不是那么容易的事情。

目前,人工智能有不少落地场景,那么落地的难点主要是哪些?这些算法模型在理想的实验室场景和现实中的运行环境上都有哪些差别?大数据和 AI 的技术架构未来趋势是什么样的?InfoQ 大咖说请来了英特尔大数据技术全球 CTO、大数据分析和人工智能创新院院长戴金权,他讲述了他对技术的理解和未来趋势的判断。

视频回放可查看:

Sorry, your browser doesn't support embedded videos.

00:00 / 01:12:11

1.0x

  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x

网页全屏

全屏

00:00

InfoQ:今天我们的直播请到了英特尔戴金权老师,您能简单给我们的观众朋友们介绍一下您的个人经历吗?

戴金权:经历还挺简单的。我在 2002 年硕士毕业之后加入英特尔,一开始是做一些大规模的并行计算的工作。到 2007 年左右,我们开始做大规模的分布式计算,特别是大规模分布式的数据处理。那时候还没有“大数据”这个说法,但是我们开始在 Hadoop 等开源大数据平台上做了非常多的研发。2014 年左右,我们开始聚焦在大数据平台上的各种分布式的机器学习、深度学习,特别是大数据加 AI 的方向上,一直在做一些前沿技术及应用场景探索方向的工作。

当年毕业加入英特尔的时候,英特尔在上海的实验室还不是特别大,我们在底层系统上做了很多非常核心的研究工作,比如编译器这种底层基础软件。

现在很多深度学习的编译器、深度学习的框架等等,其实都会使用非常大量的编译器的技术。将深度学习、神经网络的整个计算进行优化等等,就涉及到非常多的底层的系统级别的软件技术。所以刚加入英特尔的时候所做的那些工作,是我们比较宝贵的经历。

InfoQ:这么多年,您在英特尔也主导了好多技术产品研发工作,比较印象深刻的有哪些呢?

戴金权:可能有几个。其中一个就是,我们差不多 2007、2008 年的时候开始做 Hadoop,差不多在 2011 年的时候,当时 Hadoop 已经很流行了,已经有很多人在使用,我们在这个过程中看到了很多用户有很多新的需求,以此我们就开始思考怎么样才能够满足用户新的需求,以及什么是下一代的大数据技术,于是我们就开始投入到了 Spark 的工作中。虽然那时候 Spark 还是伯克利的一个 PHD 项目,但我们觉得 Spark 可能是一个比较有前景、能够解决这些问题的一个项目。

当时我们和伯克利的教授和研究生进行了讨论,大家一起合作起来将 Spark 用到现实中的应用场景中。因此,英特尔应该也算是业界最早的参与到 Spark 研发过程中的企业,后来和伯克利以及 Databricks 一起将 Spark 带成了 Apache 顶级项目。这个过程中,我们看到下一代的大数据的技术会是什么样子的,并且做了一些前沿的研究,把它变成一个工业级可用的平台,将一个开源软件项目构建成为一个广泛被接受和使用的项目。

在 2017 年的时候,我们举办了 Strata Data & AI Conference 北京(我作为联席主席),当时的一个主题就是“大数据十年”。大数据经过了十几年的发展,大家慢慢的会发现以 Hadoop 为核心的生态平台,已经成为了今天业内大数据分析处理的事实标准。

这里面有非常多的组件:比如 Hadoop 里有分布式文件系统、调度管理、数据仓库;比如 Spark 从某种意义上来说,是一个非常重要的分布式计算引擎;Flink 是更加偏向于实时、低延迟的流式计算引擎。在不同的应用场景里面用到不同的计算框架,但是总的来说,它们还是一个大的大数据生态系统的一部分,各个部分互相协作,成为了今天大数据处理分析平台的基础。

InfoQ:现在业界其实有一种说法,就是说大数据分析跟 AI 平台融为一体的模式,正在成为一种行业的新趋势。您认为这两种有哪些差异和共同点?为什么未来会是一个融合的趋势呢?

戴金权:AI 或者深度学习很多是从企业或大学里的研究机构开始的,最开始可能会有一些特定的场景。

比如说 ImageNet 基准数据集,可以用它进行分类,进行算法、模型上创新。最开始 AI 发展可能就是在这方面,但是到了今天其实很大的一个问题是怎么样将算法、模型上的创新,能够真正应用到现实的生产环境当中去。

现实生产环境会远比在基准数据集上开发模型要复杂得多,而且很多时候还有比如脏数据等各种各样的情况,那么如何将深度学习等 AI 算法模型应用到现实场景中,这就涉及到一些调整。

大家可以看到有很大一部分场景,特别是跟搜索、广告、推荐等相关的应用场景,其实是一个典型的大数据流水线系统,通过大数据平台来处理和管理点击数据、交易数据。那么我们做新的 AI 推荐算法的时候,有很大一部分工作就是处理大规模的数据层,进行特征提取,进行工作流整合,将 AI 融入到大数据的流水线中。

另外一类应用就是计算机视觉,它跟推荐又有所不同,是比较特定的一些算法和应用场景;还有自然语言处理也有自己的应用场景。

但是我们越来越看到,无论是视觉识别还是自然语言处理,现在大家都想把 AI 的能力嵌入到原来的业务的各个地方,大家有很多的算法、有标注好的数据、有自动标注过程。在文本处理或自然语言处理的过程中,很多人会使用大数据平台做大规模分布式的文本处理,然后再把这些 AI 算法用进来。

我觉得发展成融合大数据和 AI 的趋势,是因为今天 AI 不再是一个实验室为主的应用场景,而是要进入到一非常复杂的现实生产环境中,让它能够统一的端到端的运行,我觉得发展到了这个阶段,大家就有了这样的一个需求。

举个例子,我们最近和美国汉堡王有个合作,他们使用深度学习的推荐算法进行点餐,你可能不会想到点个汉堡也会用到这些技术。在企业这一端会对各种各样的算法、模型进行创新,在学术界,又有一些新的方向,如小样本、无标注,AutoML、自监督学习等,来解决比如说深度学习的问题。

InfoQ:您觉得目前 AI 在哪些场景上的落地做的不错呢?

戴金权:在我看来有几个大的应用场景。第一个场景是刚才提到的搜索推荐这一类,金融、人寿、电商都有应用,特别是在互联网公司里得到了非常广泛的应用。

第二个场景,我个人把它总结为“时间序列分析”。时间序列分析也有非常多的应用场景,比如说在制造行业进行设备预测性维护。

第三个场景在电信行业,比如对 5G 大规模的基站进行维护分析。还包括一些 AIops,利用 AI 管理数据、设备等,对数据中心这些基础设施进行管理。利用收集的 Log 信息进行分析、预测和报警。

当然另外就是最开始的计算机视觉,这个可能就不用展开了,这个是非常非常多的、各种各样的应用场景。自然语言处理也是一样,有非常多的应用场景。

InfoQ:但是企业想要利用好人工智能去做数据分析,自己也需要有一定的基础架构,那么一个典型的堆栈一般会包括哪些部分呢?

戴金权:这个问题应该分成两部分来回答,一方面是深度学习或者机器学习的几个堆栈,底层有一些 Library,对一些算子进行优化,当然也包括一些编译器自动进行优化。上面有像 TensorFlow、PyTorch 这些机器学习或深度学习的框架。还有一方面是数据处理这一块,如 Spark、Flink、Kafka、Redis 这些组件。

但是我觉得更重要一点,是怎么样构建一个统一的平台,让这些主件能够在一个端到端的工作流里,数据能够非常好的进来存储和处理,以及进行各种数据分析,包括特征工程、建模等等。

需要有这么一个端到端的流水线,能够将这些不同的组件有机的整合在一起,提供给你的应用开发人员、数据科学家、AI 研究人员来进行使用。

InfoQ:那么英特尔的大数据/AI 平台,在开发中遇到的一些挑战?

戴金权:我们有一个开源的项目叫 Analytics Zoo ,从某种意义上来说,它提供了一个端到端的大数据分析加 AI 平台,它把各种不同的组件,从 TensorFlow、PyTorch 等,再到 Spark,Flink,包括 Ray 等,整合成一个端到端的流水线。

我们希望通过提供这么一个端到端的平台,用户可以在 Hive 或其他数据仓库进行数据存储,用 Spark DataFrames 进行处理,在运行 TensorFlow 模型,在内存中进行分布式的训练和运行推理等等。

一方面我们用了一些开源组件,另一方面针对英特尔自己的硬件做了优化加速,将这些整合成一个统一的平台,用户可以用这个平台进行处理分析。这是我们最早的一个重点工作,就是说怎么样将这些深度学习等 AI 算法模型可以直接运行在大数据平台或流水线上,其次还能够无缝的透明的把它扩展到大规模分布式环境中。

InfoQ:其实我们现在已经进入到这个以数字为中心的世界,但得到分析的数据百分比却不高,您认为这是数据处理行业的一个现状吗?

戴金权:我们的确可以看到数据的处理分析确实远远没有达到我们希望的程度。

我可以举两个例子。一个例子是欧洲的核子研究机构,运行了世界上最大强子对撞机。对撞机差不多 25 纳秒对撞一次,每秒产生 1PB 的数据,数据太大导致没法存储处理。我们跟他们有合作,他们希望构建一个深度学习的分类器,把这一 PB 的数据做各种分类,找到其中可能差不多 10GB 左右的数据,将它存储下来,然后他们科学家再进行分析。

另外一个场景是 SK 电信,针对的是他们的基站。他们可能有几十万个基站,每个基站会产生很多指标,差不多每五秒收集一次。因为这个数据量也是非常惊人的,他们希望挖掘出里面相关的信息去预测网络的质量,去做异常检测,或根因分析,这样的话出状况的时候能定位到问题。我们的合作到今天来说,可能第一步还做得不错,就是我们能把它存下来,收集过来,做一些查询和展示。我们还需要做一些更高层次的分析。目前我们也有一些初步的结果,比如说我们可以通过深度学习等方法做质量的预测等等,但是跟我们想要做的事情相比还差的比较远。

InfoQ:从概念的验证到这个项目的投产,这个过程有很多的不确定因素,您认为这个过程当中会导致项目失败的原因可能会有哪些呢?

戴金权:第一,需要针对应用场景进行定义。我们要构建一个机器学习应用场景的话,首先需要将问题变成一个正确的数学模型。因为机器学习、深度学习就是对虚线进行拟合、优化一些指标,优化的指标需要跟应用的需求一致,这是一个非常关键的问题。

第二,即使将它归结成了一个已经定义好的问题,但我们还有很多的算法可以选择。这些算法其实在设计

的时候,有很多论文,有很多开源的算法,但它们可能都是针对某一个场景某一个数据集进行设计和验证的。机器学习有一个很著名的名言就是“没有免费的午餐”。一个模型并不是在任何场景或任何数据集下都可用,如何将这些实验室设计出来的模型,很好的运用在实际场景中,还需要一个调优的过程。现在的一个挑战是,如果每一个应用场景都需要从头到尾做一遍,我觉得就不太现实,因为投入产出比会很差。

第三,需要有从数据处理,到模型的实验,再到最后的上线验证的平台,将这些可能有 80%的共性的东西进行平台化,再在上面支撑各种不同的场景,不同的算法模型,并且还可以快速的迭代,这个也是一个决定性因素。这决定了大家能不能有效率的将这个应用给做出来,去改进一些产品、商业指标。如果这个代价太大的话,那么改进也是一个失败。做 AI 应用最后都变成针对某一种场景去做定制,这也是一个很常见的现象。

我们在实验室里面,可能涉及的模型,可能跟现实中的系统优化的问题不一样。比如说我举一个例子,电信公司建设网络时有一个时间序列预测的需求。我碰到过一些情况,构建的这个时间序列分析的模型开始时工作非常好。当时设计的时候,收集基站过去一个月,或者过去一年的时间的这些指标,进行时间序列预测分析,到使用时却发现优化的目标跟设计时不一样。

为什么呢?因为一个城市有几十万到几百万个这样子的基站,我们没有可能为每个基站,设计一个训练模型对它进行预测,在实施过程中就没法去应用它。机器学习在场景中,模型问题的定义,跟实际的应用当中有偏差,就会导致做的很多工作不符合要求。

InfoQ:如果我们以人的视觉来看待从验证到投产的这个过程,那么其中的算法的研究人员,以及应用的工程师,他们应该具备什么样的能力才能更好的保证落地成功呢?

戴金权:我觉得现在的这个现状,是算法工程师或者数据科学家构建出一个原型,但到应用中去却存在一堵墙。算法工程师将原型扔过这堵墙,机器学习工程师或者数据工程师再进行改写,构建一个可以运行和部署的程序。然后还得再扔过一堵墙,交给运维人员去运维上线。这还是非常普遍的一个现象。

我觉得从某种意义上来说,我们希望算法工程师、数据科学家和机器学习的工程师、数据工程师之间能够有一个交叉。作为一个算法的工程师,对模型算法设计非常了解,但是也得知道底层的系统是什么样子的,他所负责的内容是如何运行在这个系统上的。机器学习工程师也得知道上面的算法是长成什么样子的,怎么样能够更好的支持这些算法,现实的生产环境中怎么样去部署。很多公司会是不同的团队,当然也有些公司会是同一个团队,但是不管怎么说,都需要他们有一定的交叉,不同组织架构都能有一个共同的技术目标。

InfoQ:您认为大数据分析技术未来的趋势会是什么样的?

戴金权:我觉得主要有两方面。一方面就是我之前提到,存储数据可能不是最大的问题,有各种 SQL 的查询、基于图的分析等等技术可以利用起来。另一方面就是如何构建一个模型去做预测分析或一些自动化决策,利用机器学习、深度学习,更好的去分析数据进行数据洞察。将来比较有价值的一些应用场景是,要么数据很少,或者有标签的数据很少,可以用自监督学习这样的方法来解决这些问题。在数据分析领域,图神经网络或者一些增强学习的方法,在某些问题上有比较好的前景。另外一个趋势是模型越来越大,大规模的模型中如何进行数据的自动标注。也需要现有的需求出发,考虑将来的一些灵活性,考虑一些比较新的技术。

Analytics Zoo: https://github.com/intel-analytics/analytics-zoo

BigDL: https://github.com/intel-analytics/BigDL


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK