乐趣区

关于microsoft:深度学习库-SynapseML-for-NET-发布01-版本

2021 年 11 月 微软开源一款简略的、多语言的、大规模并行的机器学习库 SynapseML(以前称为 MMLSpark),以帮忙开发人员简化机器学习管道的创立。具体参见微软深度学习库 SynapseML:可间接在零碎中嵌入 45 种不同机器学习服务、反对 100 多种语言文本翻译。

2022 年 8 月 12 日 微软在.NET 博客上公布了用于 .NET 的 SynapseML,建设在其去年 11 月首次亮相的大规模机器学习开源我的项目 SynapseML 的根底上。作为新 SynapseML v0.10 版本的一部分,微软发表了一组新的 .NET API,用于大规模可扩大的机器学习。博客文章中说:“这容许咱们通过 .NET for Apache Spark 语言绑定来创作、训练和应用来自 C#、F# 或 .NET 系列中的其余语言的任何 SynapseML 模型。”


微软 MVP 实验室研究员

张善友
深圳友浩达 CTO& 首席架构师,微软最有价值专家,微软 SWAT 专家,超过 20 年的软件研发教训,曾在腾讯工作 12 年,.NET 基金会成员,.NET 云原生参谋和解决方案专家,经营微信公众号“dotnet 跨平台”和“分布式应用运行时”


SynapseML 在 Apache Spark 上运行并且须要装置 Java,因为 Spark 应用 JVM 来运行 Scala。然而,它具备针对 Python 或 R 等其余语言的绑定。以后的 0.10.0 版本增加了针对 .NET 语言的绑定。该工具能够帮忙开发人员在各种 Microsoft 畛域构建可扩大的智能零碎,包含:

  • 深度学习
  • 模型可解释性
  • 计算机视觉
  • 强化学习和个性化
  • 异样检测
  • 搜寻和检索
  • 模式和人脸识别
  • 语音解决
  • 梯度晋升
  • 文本剖析
  • 微服务编排
  • 翻译微软

去年首次开源这个我的项目时是这么说的”对立的 API 标准化了当今的许多工具、框架和算法,简化了分布式 ML 体验, 这使开发人员可能为须要多个框架的用例疾速构建不同的 ML 框架,例如 Web 监督学习、搜索引擎创立等。它还能够在单节点、多节点上训练和评估模型,以及可弹性调整大小的计算机集群,因而开发人员能够在不浪费资源的状况下扩大他们的工作。”。这段话对于相熟微软的另一个募捐给 CNCF 的 开源我的项目 Dapr 的同学来说是不是很相熟?

SynapseML for .NET 蕴含在一组 SynapseML NuGet 包中。这些包尚未公布到次要的 NuGet 源,必须手动增加它们的源。装置后,即可从 .NET 应用程序调用 SynapseML API。

以下代码片段阐明了如何从 C# 应用程序调用 SynapseML API。

// Create LightGBMClassifier
var lightGBMClassifier = new LightGBMClassifier()
     .SetFeaturesCol("features")
     .SetRawPredictionCol("rawPrediction")
     .SetObjective("binary")
     .SetNumLeaves(30)
     .SetNumIterations(200)
     .SetLabelCol("label")
     .SetLeafPredictionCol("leafPrediction")
     .SetFeaturesShapCol("featuresShap");
// Fit the modelvar lightGBMClassificationModel = lightGBMClassifier.Fit(trainDf);
// Apply transformation and displayresults
lightGBMClassificationModel.Transform(testDf).Show(50);

SynapseML 容许开发人员调用其管道中的其余服务。该库反对 Microsoft 本人的认知服务,这是一组由 Microsoft 训练的模型提供反对的通用 AI 服务。此外,以后版本的 SynapseML 容许开发人员在其解决方案中利用预训练的 OpenAI 模型,例如用于自然语言了解和生成的 GPT-3 以及用于代码生成的 Codex。目前应用 OpenAI 模型须要拜访 Azure OpenAI 服务。

最初,以后版本减少了对 MLflow 的反对,这是一个治理 ML 生命周期的平台。开发人员能够应用它来加载和保留模型,并在模型执行期间记录音讯。

当初.NET 机器学习社区退出了一新的成员 SynapseML:

  • ML.NET 是一个 .NET 库,用于应用 .NET 语言运行单机工作负载:

    • TensorFlow.NET:TensorFlow 绑定
    • Keras.NET
    • TorchSharp:PyTorch 绑定
    • ONNX RT:ONNX 模型反对
  • Apache Spark for .NET:为 Apache Spark 分布式计算框架提供 .NET 反对
  • Microsoft Cognitive Toolkit (CNTK) 是  Microsoft ML 库。它还有一个.NET API,他曾经进行开发。
  • Accord.NET 是一个面向视觉和音频解决的 .NET 机器学习库,曾经进行开发。
  • .NET 社区中,开发人员对所有这些库如何互相比拟或它们是否互相替换存在混同。SynapseML 我的项目成员在 Reddit 上踊跃答复这些问题。

SynapseML 构建在 Apache Spark for .NET 我的项目之上,该我的项目为 Apache Spark 分布式计算框架提供 .NET 反对。Apache Spark 是用 Scala(JVM 上的一种语言)编写的,但具备 Python、R、.NET 和其余语言的语言绑定。此版本为 SynapseML 库中的所有模型和学习器增加了残缺的 .NET 语言反对,因而您能够在 .NET 中创作分布式机器学习管道,以便在 Apache Spark 集群上执行。


微软最有价值专家(MVP)

微软最有价值专家是微软公司授予第三方技术专业人士的一个寰球奖项。29 年来,世界各地的技术社区领导者,因其在线上和线下的技术社区中分享专业知识和教训而取得此奖项。

MVP 是通过严格筛选的专家团队,他们代表着技术最精湛且最具智慧的人,是对社区投入极大的激情并乐于助人的专家。MVP 致力于通过演讲、论坛问答、创立网站、撰写博客、分享视频、开源我的项目、组织会议等形式来帮忙别人,并最大水平地帮忙微软技术社区用户应用 Microsoft 技术。

更多详情请登录官方网站:https://mvp.microsoft.com/zh-cn


返回原博客,理解更多用于 .NET 的 SynapseML。

退出移动版