2016年9月GitHub报告显示,微软拥有16419位开源贡献者,排名第一。微软的贡献使得开源界的力量更为壮大。对开发者个人而言,更多的开源项目也将帮助他们节省大量造轮子的时间,从而专注于性能表现与用户体验的优化。
如何利用好微软提供的这些开源工具包资源呢?这篇合集介绍了微软研究院过去两年的几个重要开源项目,如深度学习领域的微软认知工具包(原名CNTK)等。大家只需点击每个项目后所附的链接就可以轻松访问。
微软研究院近期开源工具包一览
- 微软认知工具包(Microsoft Cognitive Toolkit)
微软认知工具包(原名 CNTK ) 是微软出品的开源深度学习工具包。新版的微软认知工具包在原有 CNTK 的基础上增加了对 Python 的支持,同时在性能方面也有所提高。而经实验室测试表明,微软认知工具包的性能在同等主流工具中表现突出。其设备要求相对灵活,同时支持 CPU 和 GPU 模式。因此没有 GPU ,或者神经网络比较小的实验,可以直接使用 CPU 版的微软认知工具包。微软认知工具包将神经网络描述成一个有向图的结构,叶子节点代表输入或者网络参数,其他节点计算步骤,它同时支持卷积神经网络和递归神经网络。
项目主页:https://www.microsoft.com/en-us/research/product/cognitive-toolkit/
- LightGBM
由微软亚洲研究院DMTK(分布式机器学习工具包)团队在在 GitHub 上开源了性能超越其他 boosting 工具的 LightGBM,在三天之内 GitHub 上被 star 了1000+次,fork了200+次。LightGBM (Light Gradient Boosting Machine)是一个实现 GBDT 算法的框架,支持高效率的并行训练,它的主要优势表现在训练方面的高效性、较低的内存占用、更高的准确率、进行并行学习与大规模数据处理的能力。公开数据表明 LightGBM 相较于同类工具,其学习效率和准确性都表现突出。此外,实验也表明 LightGBM 通过使用多台机器进行特定设定的训练能取得线性加速。
3.Project Malmo
微软研究院曾在不久前演示过用游戏《我的世界》来训练人工智能的实验性项目。现在这款项目Project Malmo通过 GitHub 正式开源。研究者可以通过《我的世界》测试人工智能算法,指导人工智能学习并完成一些复杂任务。这一计划可以通过游戏中的人完成现实生活中的计划任务。当微软研究员团队在利用这个工具训练人工智能的角色学习如何爬到虚拟世界的最高点时,这些角色使用的是与人类学习新任务时相同类型的资源。也就是说,这个由科学家研究的小人与普通的人类玩家并无区别,是真正的以人为基础进行的仿真。这样的仿真使研究者完全不需要开发人工智能实体,因此也不再要求研究者有机器人方面的开发背景,就可以进行一些原来只能靠机器人或通过极高成本才能进行的工作。
- SDN
分布式服务器中的多台服务器该如何连接?连接之后又该如何确保数据传送效率和实时支撑呢?SDN(Software Defined Network)由此应运而生,它颠覆了传统网络搭建的逻辑,采用虚拟化技术,根据应用数据的不同使用方式,动态调整和分配资源,优化数据的存贮和转移。据此,SDN 技术可以为不同的用户群建立不同的虚拟网络,实现不同的资源配置,从而使得物理网络的能力被更加合理的利用。微软现已开发 SDN 工具帮助开发者快速部署起一套 SDN 平台。
- Sora
微软亚洲研究院开源的软件无线电项目 Sora 是一个完全可编程的高性能软件无线电系统,能够快捷而有效地实现当前最前沿的无线通信技术。软硬件平台的创新使 Sora 在 PC 上就可以完成高性能的无线信号处理。自2009年首次发表以来,Sora 已在学术界获得多项最佳论文和演示大奖。目前已有50多家大学和科研机构在教学和科研中使用 Sora 。为满足研究者们日益迫切的研究需求,完全开源的 Sora 系统提供了大量特性,其中包括:支持定制的射频前端,RCB 和通信模式。
- GraphView
2015年12月16日,微软亚洲研究院系统算法组开发的图数据库 GraphView 开源。GraphView 是一款中间件软件,方便用户使用关系数据库 SQL Server 或 Azure SQL Database 高效地管理和处理大规模图数据。GraphView 在物理数据表达以及系统运行行为上和原生图数据库完全一致,填补了关系数据库和图数据库之间的鸿沟。它还继承了关系数据库领域数十年的科研成果,可以提供市面上原生图数据库难以媲美的性能。GraphView 的功能包括:完备的查询语言,索引,事物处理和系统管理等等。
- Graph Engine
2015年5月20日,微软亚洲研究院 Graph Engine 1.0预览版正式发布。Graph Engine 是一个基于内存的分布式大规模图数据处理引擎,能够帮助用户更方便地构建实时查询应用和高吞吐量离线分析平台。Graph Engine 在学术界有个更广为人之的名称,叫做 Trinity。此外,Graph Engine 还可与强大的集成开发环境 Visual Studio 以及微软云计算平台 Azure 无缝集成。无论本地开发还是云端部署,Graph Engine 都可以给开发者带来极佳的用户体验。