1. 了解机器学习模型的部署
与部署软件或应用程序相比,模型部署是不一样的。一个简单的ML模型生命周期会有如下这些阶段,如范围界定、数据收集、数据工程、模型训练、模型验证、部署和监控。
当我们在部署ML模型时,需要考虑一些因素,比如:
模型的大小和打包——模型的大小对我们如何打包有巨大的影响。较小的模型通常可以被放置在FastAPI服务器中,并在Docker容器中进行封装。然而,较大的模型可能需要在部署期间加载——从远程存储中拉取,并通过模型服务器(如TFServing或TorchServer)运行。
模型的再训练和版本维护——对模型的再训练频率影响着部署策略。你是否经常需要比较你的模型性能?你在生产环境中需要多长时间才能更新你的模型?你会在生产环境中维护你的模型的不同版本吗?
流量和请求路由——根据流量和模型的类型决定实时推理或批量模型部署。你想将多少流量分流到每个版本的模型?有多少用户会有机会访问某一个模型版本?
数据和概念漂移——随着时间的推移,现实世界的数据在不断变化,这可能不会被反映在模型中。比如说,购买力与工资的关系如何,可能每年或每月都在变化。或者在新冠疫情期间,消费者的购买模式如何变化。但模型大多依赖于历史数据,这影响到我们的部署架构设计:我们应该重新训练和重新部署吗?我们是否应该暂时只对模型进行重新训练和阶段性的调整?这个因素在数据科学团队的长期部署战略中发挥较大的作用。
对于这些因素,我们有模型部署的六个常见策略。这些策略主要是从DevOps和UX方法论中借用的&