写点什么

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

评论 1 条评论

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

九、高可用之弹性伸缩

穿过生命散发芬芳

5月月更 高可用设计

企评家|上海申通地铁股份有限公司成长性评价报告摘要

企评家

深入了解 Flutter 的状态管理机制(上)

岛上码农

flutter ios开发 安卓开发 跨平台应用 5月月更

Hoo研究院|区块链简报:以太坊创始人V神呼吁马斯克支持“非侵入式”抗新冠技术

区块链前沿News

区块链 Hoo

一名优秀的算法工程师,日常都做些什么呢?

非凸科技

招聘 社招 校园招聘

如何挑选文档协作工具

小炮

文档协作

快速删除 node_modules

HoneyMoose

整理了100个必备的Python函数,建议收藏

伤心的辣条

Python 程序人生 软件测试 软件自动化测试 测试 单元测试

企评家|上海贵酒股份有限公司成长性报告简述

企评家

使用APICloud AVM框架封装通讯录组件

YonBuilder低代码开发平台

APP开发 APICloud avm.js 通讯录

企评家,几大功能协助企业并购融资

企评家

【愚公系列】2022年05月 二十三种设计模式(九)-装饰者模式(Decorator Pattern)

愚公搬代码

5月月更

中原银行流量削峰平台

中原银行

高并发 流量 中原银行 削峰

针对自动取款机优化需求的用例设计,应该挺全面了吧

伤心的辣条

Python 程序人生 软件测试 软件自动化测试 软件测试工程师

Zadig + Gitee:完美实现微服务架构持续交付

Zadig

DevOps 云原生 CI/CD 软件交付

linux之history命令

入门小站

Linux

旧活新整-数据埋点

analysis-lion

埋点定义 埋点治理 埋点框架 埋点重构

看了它!你也能轻松部署vue3组件库

Jianmu

前端 持续集成 Vue 3 组件库 建木CI

Hadoop Java api操作hdfs(二)

Emperor_LawD

hadoop 5月月更

什么是数据资产?

奔向架构师

数据资产 5月月更

网络协议之:memcached text protocol详解

程序那些事

Java Netty 网络协议 程序那些事 5月月更

Nginx 日志采集与分析

观测云

运维 可观测性 可观测

一个无经验的大学毕业生,可以转行做软件测试吗?我的真实案例

伤心的辣条

Python 程序人生 软件测试 自动化测试 测试 单元测试

2022开源之夏 | 龙蜥社区@你,快来报名

OpenAnolis小助手

开源软件 龙蜥社区 开源之夏 供应链点亮计划 学生开发者

手把手,带你用数据做好迭代复盘改进 | 敏捷开发落地指南

阿里云云效

阿里云 敏捷开发 研发 迭代管理 项目协作

Java 项目编译的时候提示 javax.xml.bind.annotation does not exist 错误

HoneyMoose

时不我待,TSDB崛起正当时

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

天翼云十年一诺,以普惠算力拥抱万里山河

脑极体

测试人面试 常被问到的计算机网络题,高薪回答模板来了!

伤心的辣条

Python 程序人生 测试 自动化测试 测试 单元测试

String源码解析-String的不变性分析

zarmnosaj

5月月更

ScaleFlux加入阿里云PolarDB开源数据库社区

阿里云数据库开源

数据库 阿里巴巴 阿里云 国产数据库 PolarDB-X

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