微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > Facebook人工智能母体技术解析

Facebook人工智能母体技术解析

时间:04-11 来源:AI科技评论 点击:

  Facebook今天第一次正式介绍了FBLearner Flow,一个可以为全公司员工管理机器学习模型的机器学习软件。换句话说,这是一个可以自己制造人工智能的人工智能,你可以理解为传说中的人工智能母体。

  它与其他基于云端的机器学习服务有点相似,例如微软的Azure机器学习或者Airbnb的开源Airflow,不过,FBLearner Flow是根据Facebook自己的业务而进行最优化的,装满了Facebook工程师开发的算法,让公司其他人都可以为自己的模型而使用该平台。

图片来源:webcorenigeria

  "公司超过25%的人都在使用,使用情景是我们之前无法预想的。"Facebook核心机器学习小组总监Hussein Mehanna在一次访谈中告诉Venture Beat。

  Facebook不只可以发布关于FBLearner Flow的学术论文,还可以最终将其开源。Facebook工程师已经与其他公司的人讨论了这类技术,包括Linkedin、Twitter和Uber等公司。Mehanna说,他们都非常感兴趣。

  当然会对开源感兴趣啦——这个系统已经在Facebook这样的大公司验证可行,而且,这!不!花!钱!这一点就与来自Domino Data Lab和Yhat的数据科学合作工具不同。

  Facebook经常将一些技术开源,这样的做法也符合公司自己的需要,因此如果未来FBLearner Flow完全开源了也不奇怪。问题是Facebook是否愿意投入工程资源,将这项技术与其专利系统的匹配断开。话虽如此,如果Facebook不愿开源、将FBLearner Flow压在箱底也不奇怪。因为多亏了这项技术,员工变得更加高效了。这会是一个竞争优势。人们在新系统中可以看到过往的试验和结果,甚至将两个不同的机器学习流水线结合起来,设计出某种更加复杂的东西。此外,图形交互界面让非工程师也可以使用这个新平台,因此才会有Mehanna说高达的25%的人都在使用。

  无论未来是否会开源,至少,我们今天获得了一部分FBLearner Flow的技术详解。让我们来看看Facebook工程师Jeffrey Dunn的博文,详细解读FBLearner Flow作为Facebook的人工智能母体到底厉害在哪儿。Jefferey Dunn从卡内基梅隆大学获得硕士学位,2011年加入Facebook,参与打造图片搜索中的网络搜索等工作。

  

  图片来源:Facebook Code

  如今,Facebook的许多体验和交互都是依靠AI实现的。当你登录Facebook,我们使用机器学来给你提供独特的、个人化的体验。机器学习(ML)模型实现了个人化新闻流(News Feed)、过滤了可能得罪人的内容、突显流行热点话题并将搜索结果排名。还有很多其他体验可以从机器学习中获益。但是以前,工程师必须有很强机器学习背景,不然没法好好利用公司的机器学习基础设施。在2014年底,我们从零开始,重新定义Facebook的机器学习平台,将最先进的AI和ML算法送到Facebook每一位工程师的手中。

  我们希望能有这样的一个平台:

  1.每个机器学习算法应该可以一次性设置好,可以重复使用;

  2. 工程师可以写一个训练流水线,在许多机器上平行运行,可以被很多工程师所用。

  3. 无论工程师在机器学习领域的背景深浅,都可以很简单地训练模型,而且,其中几乎所有的 步骤都可以完全自动化。

  4. 人人都能很方便地搜索过往试验、查看结果、与他人分享,并在某一个试验中开启新的变量。

  我们决定建造一个全新平台:FBLearner Flow,可以简单方便地在不同产品中重复使用算法,可以放大规模同时运行几千个定制试验,并且能够轻松管理试验。这个平台提供了创新性的功能,例如从流水线定义和自动平行Python代码自动生成UI体验。平台从创立起已经训练了超过一百万个模型,我们的预测服务发展到每秒超过600万次预测。

  减少了手动工作的工程师们可以花更多时间进行特征工程,这反过来又可以进一步提升精度。工程师可以在更大的平台层面去发挥影响。FBLearner Flow提供了平台和工具,让工程师每天进行几千个试验。

  核心概念和组成

  在深入理解系统之前,我们先来看几个关键概念。

  工作流:一个工作流就是在FBLearner Flow中定义的一个流水线,是所有机器学习任务的入口。每个工作流作为一个具体的任务,例如训练和评估某个具体的模型。工作流根据操作员来定义,可以平行运作。

  操作员:操作员是工作流的建造模块。从概念上,你可以将操作员想象为一个程序里的一个功能。在FBLearner Flow中,操作员是执行的最小单位,可以在单一机器上运作。

  频道:频道代表输入和输出,在一个工作流的各个操作员直接流转。所有频道都用一个我们定义的定制类别系统输入。

平台包括这三个核心组成部分:一个作

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top