【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

微软开源深度学习库 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/

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2021-11-19 14:301852

评论 1 条评论

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

深入学习WebSockets概念和实践

devpoint

socket websocket 7月日更

字节跳动Go 网络库netpoll源码解析

xumc

字节跳动 Go 语言

【Flutter 专题】86 初识状态管理 Bloc (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

EasyRecovery深度扫描以恢复桌面遗失数据的方法

淋雨

EasyRecovery 文件恢复 硬盘数据恢复

Jira 要停售本地私有化部署的版本了,这对国产项目管理软件是机会吗?

万事ONES

项目管理 Atlassian Jira ONES

架构训练营模块8作业

Neil43

架构训练营

微信架构图

Geek_36d3e5

【LeetCode】减小和重新排列数组后的最大元素Java题解

Albert

算法 LeetCode 7月日更

架构之:REST和RESTful

程序那些事

微服务 软件架构 程序那些事

Python OpenCV 霍夫(Hough Transform)直线变换检测应用

梦想橡皮擦

7月日更

建立对分布式锁的系统认知-从Redlock开始

刘绍

程序员 分布式 分布式锁 RedLock redisson

Vue进阶(幺捌伍):动态设置系统字体

No Silver Bullet

Vue 7月日更 字体设置

什么是网络单纯型算法

华为云开发者联盟

算法 线性规划 网络单纯型 计算矩阵

Vue进阶(幺零六):子组件处理父组件异步值传递给子组件处理

No Silver Bullet

Vue 组件 监听 7月日更

索信达首席科学家张磊:以AI创新技术满足金融场景的“私人定制”

索信达控股

大数据 数字化转型 银行数字化转型

在线标准程序员计算器

入门小站

工具

一脚踢你进Go语言大门!入门者必看,万字长文,建议收藏!

微客鸟窝

Go 语言

悟了!树,二叉树,哈夫曼树...

Ayue、

数据结构

Rust从0到1-并发-线程

rust 线程 并发 Thread Concurrency

对产品来说,颜值、体验是不是很重要?

石云升

用户体验 职场经验 7月日更

数据治理方法论和实践小百科全书

王知无

作业表设计

大肚皮狒狒

模块八:课后作业

菲尼克斯

架构实战营

工业互联网赋能 浪潮云洲助力区域品牌“走出去”

浪潮云

工业互联网

模块八 作业

CR

怎么借助Camtasia给电脑游戏录屏

淋雨

视频剪辑 Camtasia 录屏

What's JVM-垃圾收集器与内存分配策略

CodeWithBuff

Java JVM 垃圾回收机制

图解堆排序,带你彻底了解清楚!

程序员的时光

Java 面试 算法 排序算法 堆排序

如何打造高效好用的终端?拿来吧你!

童欧巴

大前端 iterm2 Oh My Zsh

ARTS 打卡计划-1

语霖

牙膏踩爆!Intel 5nm工艺曝光:直逼IBM 2nm

E科讯

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