宣布MLflow模型在砖
2020年6月25日 在工程的博客
砖MLflow模型提供交钥匙解决方案服务主机机器学习(ML)模型作为REST端点自动更新,使数据科学团队拥有一个实时的端到端的生命周期从培训到生产机器学习模型。
在部署时毫升模型、数据科学家必须做出选择根据他们的用例。如果他们需要大量的预测和延迟不是一个问题,他们通常在批处理执行推理,喂食大量的模型数据和编写预测表。如果他们需要预测低延迟,例如在一个应用程序响应用户操作,最佳实践是部署毫升模型作为REST端点。这允许应用程序发送请求的端点总是立即收到预测。
在砖上,我们已经简化了部署毫升的工作流模型在大数据批处理或流的方式,使用MLflow的spark_udf。对于需要部署的情况下模型实时的方式,我们正在引入砖MLflow模型服务:一个新的交钥匙服务,简化了最初部署模型的工作流和也保持更新。砖MLflow模型直接关系到服务MLflow模型注册自动部署新版本的模型和路由请求,方便毫升开发人员直接管理其所服务的模型。
服务模型
今天,服务模型可以复杂,因为它需要运行一个单独的服务系统,比如Kubernetes毫升开发人员可能没有访问权。此外,开发人员必须小心使用更新版本的模型作为他们设计新车型,并请求路由到正确的模型。
砖MLflow模型解决这个问题通过集成与服务注册中心。所有机器学习的模型注册表可以存储模型库(TensorFlow, scikit-learn等等),并允许您存储多个版本的模型,评论他们,促进他们登台和生产等不同生命周期阶段。模型服务利用这些阶段;你能提供最新的生产模型在“/模型/
一旦启用模型服务,砖集群启动,哪些主机所有活动模型版本与注册相关模型作为REST端点。每个模型运行在一个conda环境反映环境训练。
一旦端点正在运行,您可以从砖UI测试查询,或者使用REST API提交自己。我们也与最近发布的模型集成模式和示例(在MLflow 1.9允许注释模型模式和示例输入),使其更容易和更安全的考验你的服务模型。
https://www.youtube.com/watch?v=IVS2PyoQN0M
相同的请求可以发送通过REST API使用标准砖认证,例如使用curl:
curl - u标志:XXXhttps:/ /dogfood.staging.cloud.www.neidfyre.com/model/model_with_example/Production/invocations- happlication / json内容类型:;格式= pandas-records '- d“[[5.1,3.5,1.4,0.2]]”
注意,URL包含“生产”,这意味着这是一个稳定的URL指向最新的生产版本。你也可以直接参考模型的版本号,如果你想锁定您的应用程序到一个特定的版本(例如“/模型/ model_with_example / 1”)。
进化模型
许多用例从一个初始模型开始作为一个概念验证,但在模型开发过程中,数据科学家经常进行迭代,产生新的和更好的版本的模型。模型服务使这一过程尽可能简单。
假设你有版本1的模型生产,并准备尝试和发布下一个版本。你第一次注册第二个模型在模型中注册表和促进“暂存”,表明你想测试一下一点之前更换您的生产版本。
自服务启用模型模型,新模型版本自动启动在现有的集群作为他们补充说。你可以看到下面有两个版本,可以查询。
注意每个模型的URL:您可以查询通过版本号(1或2)或阶段(生产或分期)。这样你可以有你的生活网站指向当前的生产版本和测试站点指出测试版本,它会自动选择最新的模型版本作为他们提升通过注册表。
当你准备促进生产模型版本,你只是过渡阶段的注册表,正从暂存到生产。这种变化将反映在服务模型和REST端点在几秒钟——现在生产的URL指向版本2。
因为一切都是运行在同一个集群,旋转的边际资源和时间成本是很小的一个新版本。你不必担心multi-minute迭代周期,或失去的旧版本。
监控你的模型
由于模型服务器是长寿的,重要的是能够轻松监控和维护您的模型的可用性。模型服务使这项任务变得很容易,让两种信息:日志和事件。
每个模型版本日志可以通过UI和API,允许您轻松地发出,看问题畸形数据或其他相关的运行时错误。事件模型的补充自己的日志详细模型过程死机了,重启时,或者当失去了一个完整的虚拟机和取代。就像听起来那样简单,方便地访问这些日志和事件发展的过程,迭代和维护模型服务器更耗时。
回顾一下,模型在砖提供具有成本效益的服务,一键部署模型的实时推理,结合MLflow模型注册表,以方便管理。用它来简化你的实时预测用例!模型服务目前在私人预览,将作为一个公共预览在7月底。该服务在预览,我们建议使用低吞吐量和非关键应用程序。
为快乐!