50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

微软开源深度学习库 SynapseML:可直接在系统中嵌入 45 种不同机器学习服务、支持 100 多种语言文本翻译

  • 2021-11-19
  • 本文字数:2615 字

    阅读完需:约 9 分钟

微软开源深度学习库 SynapseML:可直接在系统中嵌入45种不同机器学习服务、支持100多种语言文本翻译

目前,数据科学团队在使用机器学习模型时正面临着越来越大的压力。虽然 AI 的采用和分析持续上升,但大约有 87% 的数据科学项目从未投入生产。根据 Algorithmia 最近的调查显示,22% 的公司需要一到三个月的时间来部署模型以实现业务价值,而 18% 的公司需要三个月以上的时间。

 

为了缓解这一现状,近日,微软宣布了开源一款简单的、多语言的、大规模并行的机器学习库 SynapseML(以前称为 MMLSpark),以帮助开发人员简化机器学习管道的创建。微软表示,借助 SynapseML,开发人员可以构建“可扩展的智能”系统来解决跨领域的挑战,包括文本分析、翻译和语音处理。

 

构建可用于生产的分布式 ML 管道通常困难,即使对于最有经验的开发人员也是如此。而对于初学者来说,组合来自不同生态系统的工具需要大量代码,而且许多框架在设计时并没有考虑到服务器集群。SynapseML 通过将多个现有的 ML 框架和新的 Microsoft 算法统一到一个可跨 Python、R、Scala 和 Java 使用的可扩展 API 中来解决这一挑战。

 

借助 SynapseML,开发人员可以构建可扩展的智能系统来解决以下领域的挑战:

 

• 异常检测

• 计算机视觉

• 深度学习

• 表格识别和人脸识别

• 梯度提升

• 微服务编排

• 模型可解释性

• 强化学习和个性化

• 搜索和检索

• 语音处理

• 文本分析

• 翻译

 

项目地址:https://github.com/microsoft/SynapseML

通过统一的 API 简化分布式机器学习

 

编写容错分布式程序很复杂,而且是一个容易出错的过程。我们来举个深度网络的分布式评估的例子。第一步是将一个 GB 量级的模型发送到数百台工作机器上,而不会使网络不堪重负。第二步,必须协调数据读取器以确保所有数据都排队等待处理并且 GPU 处于满负荷状态。如果新计算机加入或离开集群,新的工作机器必须接收模型的副本,数据读取器需要适应与新机器共享工作并重新计算丢失的工作。最后,必须跟踪进度以确保正确释放资源。

 

当然,像 Horovod 这样的框架可以管理这一点,但是如果想要与不同的 ML 框架(例如 LightGBM、XGBoost 或 SparkML)进行比较,则需要新的环境和集群。此外,这些训练系统并非旨在服务或部署模型,因此需要单独的推理和流媒体架构。

 

SynapseML 通过将许多不同的 ML 学习框架与一个可扩展、与数据和语言无关且适用于批量处理、流媒体和服务应用程序的 API 统一起来,简化了这种体验。它旨在帮助开发人员专注于其数据和任务的高级结构上,而无需过多考虑不同 ML 生态系统和数据库的实现细节和特性。

 

统一的 API 标准化了当下许多的工具、框架和算法,从而简化了分布式 ML 体验。这使开发人员能够为需要多个框架的用例快速组合不同的 ML 框架,例如网络监督学习、搜索引擎创建等。它还可以在单​​节点、多节点和可弹性调整大小的计算机集群上训练和评估模型,因此开发人员可以在不浪费资源的情况下扩展他们的工作。

 

除了在几种不同的编程语言中的可用性之外,该 API 还对各种数据库、文件系统和云数据存储进行了抽象,以简化实验,如图 1 所示。



深耕五年,打造高普世化机器学习库

 

正如微软在项目网站上所解释的那样,SynapseML 在几个新方向上扩展了用于大规模数据处理的开源引擎 Apache Spark:“SynapseML 中的工具允许用户制作功能强大且高度可扩展的模型,这些模型可以跨多个机器学习生态系统完成工作。SynapseML 还为 Spark 生态系统带来了新的网络功能。通过 HTTP on Spark 项目,用户可以将任何 Web 服务嵌入到他们的 SparkML 模型中,并使用他们的 Spark 集群进行大规模的网络工作流。”

 

SynapseML 中的许多工具不需要大型标记好的训练数据集。相反,SynapseML 为预构建的智能服务(例如 Azure 认知服务)提供简单的 API,以快速解决与业务和研究相关的大规模 AI 挑战。

 

SynapseML 能够让开发者将超过 45 种不同的先进的机器学习服务直接嵌入到他们的系统和数据库中。最新版本增加了对分布式表单识别、对话转录和翻译的支持,如图 2 所示。



这些即用型算法可以解析各种文档、实时转录多说话者对话,此外还能翻译 100 多种不同语言的文本。

 

“在过去的五年中,我们一直致力于改进和稳定用于生产工作负载的 SynapseML 库。使用 Azure Synapse Analytics 的开发人员将很高兴地知晓了 SynapseML 现在在这项服务上普遍可用,并提供企业服务。”微软软件工程师 Mark Hamilton 在一篇博客文章中写道。

 

使用 SynapseML 构建负责任的 AI 系统

 

SynapseML 使开发人员不仅可以使用现有的模型和服务,还可以构建和训练自己的模型和服务。此版本的 SynapseML 引入了使用Vowpal Wabbit 框架进行个性化推荐和上下文老虎机强化学习的新算法。这种 Vowpal Wabbit 集成可以为单个模型分配模型训练和预测,或者跨多个模型并行训练。这对于快速调整策略优化和个性化系统的超参数非常有效。

 

Vowpal Wabbit 项目地址:https://microsoft.github.io/SynapseML/docs/features/vw/Vowpal%20Wabbit%20-%20Overview/

 

构建模型后,研究人员和工程师需要在部署前了解其局限性和行为。SynapseML 通过引入新工具来帮助开发人员和研究人员构建负责任的 AI 系统,这些工具揭示了模型为什么会做出这样的预测以及如何改进训练数据集以消除偏见。

 

更具体地说,SynapseML 包括 Shapley Additive Explanations (SHAP) 和 Locally Interpretable Model-Agnostic Explanations (LIME) 的分布式实现,以解释视觉、文本和表格模型的预测。通常,这些“黑盒”方法通常需要对每个解释进行数千次模型评估,并且解释大型数据集的每个预测可能需要数天时间。SynapseML 使开发人员能够在数百台机器上分配计算,从而显著加快理解用户训练模型的过程。

 

除了有监督的模型可解释性之外,SynapseML 还为无监督的负责任 AI 引入了几项新功能。借助微软的用于理解数据集不平衡的新工具,研究人员可以检测敏感数据集特征(例如种族或性别)是否被过度或不足表达,并采取措施提高模型公平性。此外,SynapseML 的分布式孤立森林使研究人员能够在不需要标记训练数据的情况下检测其数据集中的异常值和异常情况。

 

“我们的目标是帮助开发人员简化分布式实现细节,并使他们能够将分布式部署到各种数据库、集群和语言中,而无需更改原来的代码,”Hamilton 说道。

 

参考链接:

 

https://www.microsoft.com/en-us/research/blog/synapseml-a-simple-multilingual-and-massively-parallel-machine-learning-library/

 

https://venturebeat.com/2021/11/17/microsoft-open-sources-synapseml-for-developing-ai-pipelines/

2021-11-19 14:302509

评论 1 条评论

发布
用户头像
可以减少人工成本了~
2021-11-20 16:49
回复
没有更多了
发现更多内容

Java jdk下载安装与配置及其不同版本jdk切换,Java开发实战

JVM调优资料

Java 程序员 后端

java web 部分(1),Java技术总监面试常见问题及答案

Java 程序员 后端

粗放生长时代结束,高精地图收紧灰色地带

脑极体

GC Roots面试,Java教程百度云盘

JVM调优资料

Java 程序员 后端

Java中高级核心知识全面解析,Java工程师需要掌握的技能

Java 程序员 后端

找啊找啊找工长,找到一个好工长

escray

生活记录 9月日更

LeetCode题解:143. 重排链表,数组,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

C语言:十进制、十六进制数据互换

不脱发的程序猿

C'语言 进制转换

C语言:十进制、BCD码互换

不脱发的程序猿

C语言 十进制、BCD码互换

linux网络包收发讲解

赖猫

Linux

在线JSON转Mongoose工具

入门小站

工具

Java中高级核心知识全面解析,Java大厂高级面试题灵魂100问

Java 程序员 后端

08. 语音识别与第二次AI热潮

Databri_AI

人工智能

LeetCode刷题13-简单-罗马数字转整数

ベ布小禅

9月日更

【LeetCode】所有奇数长度子数组的和Java题解

Albert

算法 LeetCode 9月日更

架构实战训练营|作业|模块2

Frode

#架构实战营

Element-UI 要怎么学?官方文档,阿里架构师深入讲解Java开发

JVM调优资料

Java 程序员 后端

GC Roots面试(1),springmvc教程视频

JVM调优资料

Java 程序员 后端

Java-进阶:多线程1,Java程序员必须掌握的技术

Java 程序员 后端

Java中的注解到底是怎么一回事?,jvm原理面试题

Java 程序员 后端

Excelize 开源五周年 🎉

xuri

Excel Excel数据分析 Go 语言 Excelize

Dubbo—SPI及自适应扩展原理,劲爆

JVM调优资料

Java 程序员 后端

Hystrix-服务容错处理:什么是Hystrix,Java最新实习面试经验总结

JVM调优资料

Java 程序员 后端

HTTP系列之:HTTP缓存

程序那些事

缓存 Netty HTTP 程序那些事

网络攻防学习笔记 Day123

穿过生命散发芬芳

9月日更 互联网安全 流量采集

HDU1166 敌兵布阵【线段树,一个Java程序员的腾讯面试心得

JVM调优资料

Java 程序员 后端

java web 部分,Java教学视频百度云盘

Java 程序员 后端

epoll底层实现源码及epoll反应堆模型

hanaper

hadoop,Java面试视频百度网盘

JVM调优资料

Java 程序员 后端

Linux之lastb命令

入门小站

Linux

Java全面学习视频书籍,阿里架构师看到都觉得好,Java自学教程

Java 程序员 后端

微软开源深度学习库 SynapseML:可直接在系统中嵌入45种不同机器学习服务、支持100多种语言文本翻译_AI&大模型_李冬梅_InfoQ精选文章