LinkedIn开源Dagli,发布Java机器学习函数库

简介: LinkedIn 最近开源了 Dagli,一个面向 Java (和其他 JVM 语言)的机器学习库,让编写代码减少bug、可读、可修改、可维护和可部署的模型管道变得更加容易,而不会导致技术难题。

微信图片_20220109180921.png


近年来,越来越多的优秀的机器学习工具不断涌现,如 TensorFlow、 PyTorch、 Caffee 和 CNTK、用于大规模数据的 Spark 和 Kubeflow,以及用于各种通用模型的 scikit-learn、 ML.NET 和最近的 Tripo 等。


  微信图片_20220109180923.png  

   

根据Algorithmia 2019年的一项调查,虽然企业使用机器学习算法的成熟度普遍在提高,但大多数公司(超过50%) 仍需要花费8至90天时间部署单一机器学习模型(18% 的公司花费的时间超过90天)。

 

大多数人将责任归咎于模型规模和复现模型面临的挑战、缺乏管理人员的支持,以及可用的工具缺失等原因。

 

对于 Dagli 来说,模型的 pipeline 被定义为一个有向无环图,一个由顶点和边组成的图,每条边从一个顶点定向到另一个顶点,用于训练和推理。

 

Dagli 的环境提供了流水线定义、静态类型、近乎无处不在的不变性以及其他特性,以防止大多数潜在的逻辑错误。


   微信图片_20220109180925.png      


LinkedIn 自然语言处理研究科学家杰夫 · 帕斯特纳克在一篇博客中写道: 「模型通常是集成的管道的一部分, 建造、训练和将这些管道部署到生产环节仍然非常繁琐」, 通常需要进行重复的或无关的工作,以适应训练和推理,从而产生脆弱的「粘合」代码,使模型未来的演化和维护变得复杂。

 

Dagli 可以在服务器、 Hadoop、命令行接口、 IDE 和其他典型的 JVM 中工作。许多pipeline组件也已经可以使用,包括神经网络、 逻辑回归、GBDT、 FastText、交叉验证、交叉训练、特征选择、数据读取器、评估和特征转换等。

  微信图片_20220109180927.png      

通过发布 Dagli,领英希望为机器学习社区做出三个主要贡献:

 

1. 一个易于使用、抗bug、基于 JVM 的机器学习框架

 

2. 一个综合了各种统计模型和 transformer 的 可以 “开箱即用” 的库

 

3. 一个简单但功能强大的机器学习 pipeline 作为有向无环图的新抽象,它支持优化的同时仍然保持每个组件易于实现,可与传统的“黑盒”相媲美。

 

对于有经验的数据科学家来说,Dagli 提供了一条通往可维护和可扩展的高性能、可生产的人工智能模型的道路,这些模型可以利用现有的 JVM 技术堆栈。

 

对于经验较少的软件工程师来说,Dagli 提供了一个 API,可以与 JVM 语言和工具一起使用,这些语言和工具被设计用来避免典型的逻辑错误。

 

帕斯特纳克还指出: 「我们希望 Dagli 能够使高效、可投入生产的模型更容易编写、修改和部署,避免经常伴随而来的技术问题和长期维护的挑战」。

 

Dagli 充分利用了先进的多核理器和强大的图形卡,对模型进行有效的单机训练。

 

为了具体了解 Dagli 是如何工作的,让我们从一个文本分类器开始,这个文本分类器使用梯度增强决策树模型(XGBoost)的活动叶片,以及一组高维的 N-gram 作为 LR 模型分类器的特征:

   微信图片_20220109180930.png      

通过使用 Dagli,领英希望使高效的、可投入生产的模型更容易编写、修改和部署,避免经常伴随它们的技术挑战和长期维护。


最后,附上Dagli的GitHub地址链接:

 

https://github.com/linkedin/dagli

相关文章
|
3月前
|
缓存 Java Maven
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
|
9天前
|
Java API Apache
|
10天前
|
机器学习/深度学习 数据采集 算法
Python机器学习:Scikit-learn库的高效使用技巧
【10月更文挑战第28天】Scikit-learn 是 Python 中最受欢迎的机器学习库之一,以其简洁的 API、丰富的算法和良好的文档支持而受到开发者喜爱。本文介绍了 Scikit-learn 的高效使用技巧,包括数据预处理(如使用 Pipeline 和 ColumnTransformer)、模型选择与评估(如交叉验证和 GridSearchCV)以及模型持久化(如使用 joblib)。通过这些技巧,你可以在机器学习项目中事半功倍。
19 3
|
24天前
|
JSON JavaScript Java
在Java中处理JSON数据:Jackson与Gson库比较
本文介绍了JSON数据交换格式及其在Java中的应用,重点探讨了两个强大的JSON处理库——Jackson和Gson。文章详细讲解了Jackson库的核心功能,包括数据绑定、流式API和树模型,并通过示例演示了如何使用Jackson进行JSON解析和生成。最后,作者分享了一些实用的代码片段和使用技巧,帮助读者更好地理解和应用这些工具。
在Java中处理JSON数据:Jackson与Gson库比较
|
1月前
|
机器学习/深度学习 算法 知识图谱
【机器学习】逻辑回归原理(极大似然估计,逻辑函数Sigmod函数模型详解!!!)
【机器学习】逻辑回归原理(极大似然估计,逻辑函数Sigmod函数模型详解!!!)
|
2月前
|
机器学习/深度学习 算法 数据挖掘
Python数据分析革命:Scikit-learn库,让机器学习模型训练与评估变得简单高效!
在数据驱动时代,Python 以强大的生态系统成为数据科学的首选语言,而 Scikit-learn 则因简洁的 API 和广泛的支持脱颖而出。本文将指导你使用 Scikit-learn 进行机器学习模型的训练与评估。首先通过 `pip install scikit-learn` 安装库,然后利用内置数据集进行数据准备,选择合适的模型(如逻辑回归),并通过交叉验证评估其性能。最终,使用模型对新数据进行预测,简化整个流程。无论你是新手还是专家,Scikit-learn 都能助你一臂之力。
120 8
|
1月前
|
机器学习/深度学习 算法 PyTorch
【机器学习】揭开激活函数的神秘面纱
【机器学习】揭开激活函数的神秘面纱
|
2月前
|
机器学习/深度学习 算法 数据挖掘
从菜鸟到大师:Scikit-learn库实战教程,模型训练、评估、选择一网打尽!
【9月更文挑战第13天】在数据科学与机器学习领域,Scikit-learn是不可或缺的工具。本文通过问答形式,指导初学者从零开始使用Scikit-learn进行模型训练、评估与选择。首先介绍了如何安装库、预处理数据并训练模型;接着展示了如何利用多种评估指标确保模型性能;最后通过GridSearchCV演示了系统化的参数调优方法。通过这些实战技巧,帮助读者逐步成长为熟练的数据科学家。
102 3
|
1月前
|
JSON Java 数据格式
Java Jackson-jr库使用介绍
Jackson-jr是专为资源受限环境设计的轻量级JSON处理库,适用于微服务、移动应用及嵌入式系统。它通过牺牲部分高级功能实现了更小体积和更快启动速度,非常适合对库大小敏感的项目。本文将介绍如何使用Jackson-jr进行JSON序列化与反序列化,并演示处理嵌套对象与数组的方法。此外,还介绍了自定义序列化与反序列化的技巧以及性能与功能的权衡。通过示例代码,展示了Jackson-jr在常见任务中的高效与灵活性。
23 0
|
2月前
|
数据采集 存储 前端开发
Java爬虫开发:Jsoup库在图片URL提取中的实战应用
Java爬虫开发:Jsoup库在图片URL提取中的实战应用