决定用于 ML 的工具

数据挖掘 机器学习
2022-03-12 16:37:38

我想建立一个体面的框架来在我们的服务器上构建和部署 ML 代码。服务器端代码都是java。我继承了一个系统,weka因为它基于 java 并且使服务器端人员的生活变得轻松。但是进来的数据科学家,使用 R/python 进行建模,然后编写一些胶水代码,使模型在 weka 上的 java 环境中运行。这个库已经过时了(虽然工作正常),但主要是编写这个胶水代码变得繁琐/重复,可以取消。我正在寻找一个优化的管道来帮助我快速部署模型。

这在业界是如何做到的?你的管道是什么样的?

我希望能够使用数据科学团队使用的一种语言(我倾向于 python)快速建模,并且能够在服务器端部署/调用这些模型进行预测,而无需重做一堆东西来获得它在那里工作。

1个回答

好吧,我认为您的问题没有“正确”的答案,因为您正在寻找有关 ML 模型部署的建议。

正如您所提到的,您在 java 中有一个完整的后端,您不应该放弃它。相反,(1) 您可以利用面向微服务的方法。借助微服务,您可以使用 HTTP 通信不同的代码片段。您可能在 java 中有一些后端控制器,以及某种 ML 管理器来用 web 路由包装预测例程。

我认为学习 python 和 python web 框架对你来说是个好主意(flask 是一个非常简单的框架,你可以在 google 上搜索“ML deployment flask”或类似的东西,并且有很多教程)。此外,(2)您可以说服您的数据科学家为您编写他们的微服务,因为它很容易做到。然后,您可以获取他们的代码并进行调整,使其看起来更像一个 Web 服务。

另一种利用 java 后端的方法是 (3) 尝试将 python/R ML 代码转换为 Spark MLlib,它有许多强大的方法供您编写 java 代码。但是,您最终将不得不编写数据科学家在 python/R 中进行的一些操作,而这些操作在 MLlib 中不可用。

这取决于,但我希望它有所帮助!