了解微软开源核心机器学习技术DMTK

还记得11月9日Google Research推出第二代开源机器学习软件库TensorFlow吧,谷歌称在建立和训练神经网络方面,TensorFlow速度要比第一代系统快5倍,可支持 CPU、GPU、桌面机、服务器和移动计算等平台。TensorFlow吸引了开发者广泛的眼球。

就在同一天,微软亚洲研究院也开源了分布式机器学习工具包DMTK。开源版DMTK包含了目前世界上最大规模的主题模型和分布式词向量模型,据称比同类模型高了好几个数量级。以至于有开发者惊呼,怎么微软也能把这样的核心技术给开源了?

那么,什么是DMTK分布式机器学习包?这还要从DMTK的开发历史说起。DMTK的主要研发负责人、微软亚洲研究院人工智能研究组首席研究员、美国卡耐基·梅隆大学(CMU)博士生导师刘铁岩告诉记者,近年来全球机器学习领域主要有三大趋势:更大规模的机器学习、更深度的机器学习以及更强交互性的机器学习,这些都是基于大数据与云计算的兴起。

微软亚洲研究院从两年前开始研发DMTK分布式机器学习系统。首先,DMTK通过分布式计算部署的方式满足了大规模机器学习的要求。由于云计算和高性能处理器的普及,让机器学习从单机环境扩展到多机环境甚至是集群系统。分布式机器学习就是通过在更为廉价的集群系统上部署机器学习的算法,把原来单机的计算能力扩展到成千上万台服务器上。

DMTK开源版提供了简单高效的分布式机器学习框架,它由参数服务器和客户端软件开发包(SDK)两部分构成。开发者只需要简单几行代码,就可以非常容易地把自己开发的机器学习算法从单机环境扩展到多机或集群环境。这大幅降低了机器学习的门槛,无论是高校研究者或是商用机器学习开发商,都能基于微软DMTK开源版轻松扩展机器学习算法的计算环境和计算资源,从而实现基于大数据的大规模机器学习。

其次,DMTK还提供了丰富的机器学习算法,以满足更为深度、更为快速的机器学习。目前开源版的DMTK包含了其中两款独具特色的机器学习算法:LightLDA主题模型和分布式词向量模型。

什么是主题模型呢?互联网和社交平台等催生了庞大的文本内容,通过机器学习对这些内容进行数据挖掘,可以得出相关的主题(Topic),这是机器学习和文本理解的基础。据刘铁岩介绍,DMTK提供的LightLDA算法是当前世界上唯一一款能训练超过100万个主题的机器学习算法,它仅用20台服务器(300余个CPU内核)就能训练如此庞大的主题模型,这让其它同类系统望尘莫及。

去年曾经获得国际数据挖掘大会(KDD)最佳论文奖的AliasLDA算法,要用多达1万个CPU内核才能完成2000个主题的训练。 LightLDA算法之所以能够用比AliasLDA少很多的计算资源训练出高若干数量级的模型,是因为它具有一种独创的、让运算复杂度与主题数目无关的高效采样方法。这样一来,即使训练再多的主题数,也无需更大规模的计算资源。据了解,LightLDA已经帮助微软的很多关键产品实现了性能的飞跃。

另一个更为神奇的分布式词向量训练模型算法,能够更好地计算两个词之间的“距离”。简单地说,过去通过搜索引擎搜索内容,主要依靠搜索关键词的精确匹配。如果在被搜索的网页上出现了与搜索关键词相同的词汇,被搜索网页链接就会出现在搜索结果页面。但在广告展示、话题探索、垂直搜索等应用领域,更多需要的是语义级别匹配,也就是在语义方面的相关性匹配。词向量模型通过挖掘文本数据,为每一个词训练出上千个相关指标(维度),而带有上千个维度的一个词即为一个向量,通过数学方式计算两个词向量之间的距离,即可以有效地表征两个词之间的语义相关度。

DMTK中包含的分布式词向量模型是目前市面上唯一的一款词向量模型的多机版,它可以把单机计算资源扩展到多机或集群中,从而更快、更高效地学习词向量。分布式词向量模型把“搜索”推进到了“探索”阶段,这有望给整个搜索和相关产业带来颠覆性变化。

据了解,DMTK已经被应用到了微软的必应搜索引擎、广告、小冰等多款在线产品当中,实现了更强交互性的机器学习。以微软小冰为例,作为聊天机器人,人类用户与小冰的平均每次对话轮数达到了18轮,而此前最领先同类机器人的平均轮数仅有1.5至2轮。这就说明微软小冰在与人类对话中对相关词汇的“命中率”远高于同类技术,创造了更好的交互性机器学习体验。

DMTK开源版在Github开源社区发布一周以来始终保持在Top 10的位置,DMTK官网目前的访问量已经突破百万,DMTK可执行文件下载量达到十余万次,而GitHub开发人员也是在一周之内就给DMTK上千颗星,这是很多同类开源项目几年都无法达到的热度。

同一天开源的TensorFlow和DMTK之间到底有什么区别呢?记者了解到,谷歌目前开源出来的TensorFlow,作为单机深度学习工具并不支持分布式计算,而微软DMTK开源版则支持分布式、异构、异步计算集群环境部署。另外,谷歌的TensorFlow主要是系统实现,并不包含算法方面的创新;而DMTK则两者兼顾,因此可以用更少的资源,训练出大N个数量级的模型。

那么为何科技巨头们纷纷将机器学习技术开源?这一方面是为了推进整个机器学习应用的普及,通过开源高端算法和软件,为人工智能和机器人产业打开新的机遇之门。另一方面则是在更深层次拉动各自的软件与算法生态,从战略技术制高点布局下一代产业格局。(文/宁川,本文首发钛媒体)

【更多精彩内容 尽在《云科技时代》微信 微信号:CloudTechTime】

时间: 2024-08-11 11:44:18

了解微软开源核心机器学习技术DMTK的相关文章

微软开源自动机器学习工具NNI安装与使用

微软开源自动机器学习工具 – NNI安装与使用 ??在机器学习建模时,除了准备数据,最耗时耗力的就是尝试各种超参组合,找到最佳模型的过程了.对于初学者来说,常常是无从下手.即使是对于有经验的算法工程师和数据科学家,也是很难把握所有的规律,只能多次尝试,找到较好的超参组合.而自动机器学习这两年成为了热门领域,着力解决超参调试过程的挑战,通过超参选择算法和强大的算力来加速超参搜索的过程.NNI (Neural Network Intelligence) 是微软开源的自动机器学习工具包.与当前的各种自

【新书推荐】《微软开源跨平台移动开发实践》带你走近微软开源开源跨平台技术

上周收到本书作者李争送的一本12月份的新书<微软开源跨平台移动开发实践——利用ASP.NET Core 1.0 .Apache Cordova.Xamarin和Azure快速构建移动应用解决方案>.这本书的名字超长.这本书也是超薄,只有220页,一个周末时间就读完了,但是这本书的内容确是超丰富,浓缩了微软这三年向开源和跨平台领域的转变,微软在开源和跨平台领域构建出来的一套技术体系.从服务端的NET Core.ASP.NET 和 Web APi ,到Web端的 Typescript脚本语言,再到

【新书推荐】《微软开源跨平台移动开发实践》--带你走近微软开源开源跨平台技术

上周收到本书作者李争送的一本12月份的新书<微软开源跨平台移动开发实践——利用ASP.NET Core 1.0 .Apache Cordova.Xamarin和Azure快速构建移动应用解决方案>.这本书的名字超长.这本书也是超薄,只有220页,一个周末时间就读完了,但是这本书的内容确是超丰富,浓缩了微软这三年向开源和跨平台领域的转变,微软在开源和跨平台领域构建出来的一套技术体系.从服务端的NET Core.ASP.NET 和 Web APi ,到Web端的 Typescript脚本语言,再到

牛津计划折射2016年微软开源领域“大步走”

基于微软智能云的牛津计划提供的各种API和SDK,帮助广大开发者开发出了很多创新应用.利用其中的视觉.语音和语言等APIs,微软推出了例如"我的小胡子","How-Old.net"等新奇应用.在年初刚举行的"创业就用微软智能云-黑客送分享会"的活动中,有几位学生给我们展示了他们的创新作品:那他们的开发之路如何?除了支持开源的牛津计划,微软还有什么更多的举措?让我们一探究竟吧. 刘洋,目前就读于中科院计算所,在学习压力之外,还会利用课余时间做一些项

《转》.NET开源核心运行时,且行且珍惜

转载自infoQ 背景 InfoQ中文站此前报道过,2014年11月12日,ASP.NET之父.微软云计算与企业级产品工程部执行副总裁Scott Guthrie,在Connect全球开发者在线会议上宣布,微软将开源全部.NET核心运行时,并将.NET 扩展为可在 Linux 和 Mac OS 平台上运行..NET核心运行时将基于MIT开源许可协议发布,其中将包括执行.NET代码所需的一切项目——CLR.JIT编译器.垃圾收集器(GC)和核心.NET基础类库.此外,微软还发布了Visual Stu

资深人士剖析微软开源.NET事件:战略重心已经从PC转移到云端

本文是雷锋网对我的访谈整理的文章,源地址是 http://www.leiphone.com/news/201411/6KaGhD7PDABnvrRf.html 2014年11月13日,微软表示开源.NET,包含整个.NET服务器端的核心类别,ASP.NET 5.0..NET Common Language Runtime(CLR).Just-In-Time Compiler.Garbage Collector以及Base Class Libraries等,都在开源的范畴之中.0 0 消息一出,霎

微软推 Azure 机器学习工具:Algorithm Cheat Sheet

微软推 Azure 机器学习工具:Algorithm Cheat Sheet [日期:2015-05-15] 来源:CSDN  作者:Linux [字体:大 中 小] Azure Machine Learning Studio 有着大量的机器学习算法,现在你可以使用它来构建预测分析解决方案.这些算法可用于一般的机器学习:回归分析.分类.聚类和异常检测,且每一个都可以解决不同类型的机器学习问题. 现在的问题是,是否有什么工具之类的东西可帮助找出如何选择一个合适的机器学习算法,并根据具体的方案? 点

微软开源 2019:“讨好”开发者,当开源圈的“万人迷”

又到了年末各种盘点出炉的时候,开源圈今年虽然没有"GitHub 被微软收购"."Red Hat 被 IBM 收购"如此重磅且出圈的新闻,但依然不失精彩.开源圈作为开发者密度最高的圈子,微软作为开发者群体中"***率"最高的商业公司,微软与开源之间的故事,天生自带流量属性. 本文就来和大家一起回顾微软在 2019 年与开源相关的重要事件 —— 主要是引发较多关注和广泛讨论的新闻. 为了更好地理解微软的开源 2019,下面我们将会按不同的领域而非时间

微软开源.NET Core的执行引擎CoreCLR

摘要:CoreCLR 是.NET Core的完整运行时实现.包含RyuJIT 和.NET GC.原生interop和很多其他组件.运行于Windows 平台,未来数月将会实现对Linux和Mac的支持. 微软开源的决心又向前迈开了一步,在去年12月宣布.NET Core开源后,今日,又在.NET Framework Blog宣布开源了.NET Core的执行引擎CoreCLR,继续托管在Github上.下面微软将完全通过开放.NET核心通用语言运行环境 CLR来开源整个.NET核心服务器端堆栈.