2021-05-20

机器学习模型产品化——如何构建端到端机器学习驱动的应用程序

构建利用机器学习的端到端应用程序需要大量的工程工作——使用Flask应用程序来为模型服务;建立复杂的基础设施(如Docker和Kubernetes)以适当扩展;完全独立的产品工程工作流程,以集成到现有系统中;和前端开发来构建新的接口。

大多数机器学习实践者要么必须学习这些技能,要么依赖于他们的工程合作伙伴的帮助。因此,在用机器学习解决实际问题时,从0到1的建立是令人望而却步的;而解决这一系列问题的可用工具是不存在的,或者说是不成熟的。、

机器学习产品化很难

生产现有模型的步骤

通常,有三个不同但相互关联的步骤来实现现有模型的产品化:

1、为模特服务

2、编写应用程序的业务逻辑并在API后面为其提供服务

3、构建与上述API交互的用户界面

今天,前两个步骤需要结合DevOps和后端工程技能(例如“Dockerizing”代码、运行Kubernetes集群、建立web服务……)。最后一步,建立一个最终用户可以实际交互的界面需要前端工程技能。所需的技能范围意味着反馈回路几乎不可能建立,而且要将机器学习转化为可用的产品需要花费太多的时间。

简化流程

作为数据科学家和工程师,我们的团队亲身经历了这种痛苦;所以,我们建立了BaseTen。

BaseTen是一个应用程序生成器,允许用户部署机器学习模型、提供API和构建前端UI,而不必担心基础设施、部署或学习。

在本文中,我们将通过一个常见的用例来介绍BaseTen的关键构建块:

作为一名数据科学家,我经常想把我的模型从笔记本电脑上拿下来交给其他利益相关者或朋友,这样他们就可以用动态输入来处理模型。这一点很重要,因为如果没有使用不同输入查询模型以了解输出如何变化的第一手经验,就很难衡量模型的工作方式。

在这个演示中,我们将使用众所周知的神经风格的传输模型,最终我们将得到一个可用的应用程序,可以与外部观众共享。

1.部署模型

如上所述,第一步是部署模型。BaseTen允许通过从命令行工具(使用pip安装)调用BaseTen.deploy来部署sciketlearn、Tensorflow和PyTorch模型。如果模型是定制的,可以上传一个定制模型,只需要一个load和predict方法(这里是一个示例)。或者,可以从模型动物园部署预先训练的模型。

在下面的示例中,我们部署了一个来自TensorFlow Hub的深度学习模型,该模型以另一个图像的样式构成一个图像。

BaseTen客户机支持单行模型部署

部署模型后,转到“模型管理”页以查看有关模型、其部署状态、版本以及如何从其他服务调用模型的可编辑元数据。

2.用预处理和后处理代码包装模型,并在API后面提供服务

通常,服务模型需要的不仅仅是将其作为API调用。例如,可能有预处理和/或后处理步骤,或者在调用模型之后可能需要执行业务逻辑。

要做到这一点,用户可以用BaseTen编写Python代码,它将被包装在API中,而无需担心Kubernetes、Docker和Flask。Python环境可以完全定制(例如安装pip包),还包括Postgres数据存储。

以上所有内容都封装在一个worklet中,用BaseTen表示为一个由不同类型的节点组成的推理图。工作集允许用户根据应用程序的业务逻辑和总体工作流进行思考。创建工作集后,可以通过自动生成的API端点、cron作业或将其连接到流数据源来调用它。

使用“工作集”为具有丰富API的模型提供服务

在第一个worklet示例中,我们添加了预处理代码,以从请求中提取模型输入,称为模型,然后将模型输出转换为我们期望的格式。在这种情况下,请求包含要传输的样式和将由模型修改的图像的源。后处理步骤只是将一些元数据添加到来自模型的结果图像中。

3.构建UI(当您不是前端工程师时)

当我们自己训练机器学习模型时,我们经常希望构建有状态的用户界面,这些界面要么利用我们的模型,要么利用我们模型的输出进行操作。在BaseTen中,这些称为视图。

使用BaseTen中的拖放UI,可以轻松地添加和排列组件以构建视图,包括文本输入、文件选择器、表单、表格、PDF查看器和数据可视化。BaseTen还包括许多实用程序,可以方便地收集和显示数据、对用户输入做出反应,以及调用内部和外部API。视图可以相互链接以构建多页应用程序。与基于笔记本的应用程序生成器不同,用户状态是一个一流的概念。这意味着BaseTen可以为复杂的人在环应用程序提供动力。最后,视图可以公开共享或嵌入,并在需要时支持基于角色的访问控制。

在下面的简单示例中,我们构建了一个视图,以便与上面构建的已部署模型和API进行交互。最终用户可以提供样式和内容图像的URL,查看预览,单击按钮,然后查看结果图像,将第一个图像的样式与第二个图像的内容相结合。

在BaseTen视图中运行样式转换模型

虽然这个用例过于简单,但在不到五分钟的时间内,我们就可以为样式转换模型部署一个实时API,并创建一个用于测试模型的用户界面。早期用户使用相同的构建块,为用户构建了交互式工具,以便对模型预测、内置学习的数据标记应用程序以及人在回路决策流提供反馈。

开始用你自己的模型建造

数据科学家和机器学习工程师应该有能力以真实产品的形式来表达他们模型的威力,同时避免部署问题和不得不将API和接口拼凑在一起。

我们很高兴能为早期用户开放BaseTen的免费访问,帮助他们改变我们的产品路线图。我们只想得到你的反馈。我们迫不及待地想看看你要建什么。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值