机器学习模型部署指南

无论是经验丰富的数据科学家还是初学者,可能都曾参与过包含数据清洗、整理、比较不同机器学习模型以及在Jupyter等PythonNotebooks上训练模型的机器学习模型开发过程。这些步骤当然离不开Notebooks,但这些Notebooks对开发者来说是有限的,因为它们不能被任何非技术用户直接用于应用程序。

从Notebooks到产品

如果使用任何网站查看所在城市的天气预报,看到的预报可能来自某个Notebook开发出的模型,但用户是通过网站来获取这些预报的。正如所猜测的,因此有方法将Notebooks转换成可以集成到任何技术或非技术用户都可以访问和使用的产品中的形式。这个过程被称为“模型部署”。

本文内容概览

  • 了解AWS Elastic Beanstalk的基础知识 - 它的作用,何时使用它
  • 了解如何构建基本的Flask应用
  • 逐步学习如何在AWS Elastic Beanstalk上部署应用
  • 了解何时使用AWS Elastic Beanstalk进行部署而不是其他AWS服务

AWS Elastic Beanstalk简介

AWS Elastic Beanstalk是一项计算服务,允许上传Web应用程序代码以及环境配置,基于这些配置Elastic Beanstalk自动配置并部署必要的AWS资源以使Web应用程序运行。这些资源可能包括其他AWS服务和特性,如EC2实例、弹性负载均衡、自动扩展等。

作为数据科学专业人士,如果不熟悉模型部署的细节,使用AWS Elastic Beanstalk部署ML模型将是理想的选择,因为它自动化并简化了整个部署过程。

AWS Elastic Beanstalk的成本

AWS Elastic Beanstalk作为一项服务是免费的。但是,用于创建应用程序的资源,如EC2实例,将根据部署时的标准定价政策收费。

AWS Elastic Beanstalk的优势

  • AWS EBS提供简单快捷的Web应用程序部署方式。
  • 使用EBS,可以专注于应用程序代码,而不是配置和配置AWS资源。
  • EBS上的自动扩展设置有助于自动扩展应用程序。
  • 可以控制所有支持应用程序的AWS资源,如EC2。
  • AWS EBS提供具有成本效益的价格,只需为所使用的内容付费,没有隐藏费用。
  • AWS EBS支持Java、.NET、PHP、Node.js、Python、Ruby、Go和Docker Web应用程序。
  • 访问监控指标,如CPU利用率、请求计数和延迟。

部署步骤

需要:

  • AWS账户
  • Python(Jupyter Notebooks)知识

Flask是一个可以用Python构建Web应用程序的Web框架。可以使用以下代码安装'Flask':

pip install flask

安装后,可以导入库,然后创建一个应用程序对象。添加一个路由("/")以显示“Hello World!”消息。路由使得将Web URL映射到Python函数成为可能。函数返回的内容将显示在Web URL上给用户。

from flask import Flask application = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run()

将上述代码写入.py文件,并将其命名为'application.py'。

需要一个requirements.txt文件,列出在'application.py'文件中使用的所有库。对于情况,这仅包括以下一行:

Flask==1.0.2

创建此文件后,可以压缩这两个文件,稍后在创建应用程序时使用。

登录AWS控制台,搜索AWS Elastic Beanstalk。点击“创建应用程序”。可以给应用程序命名。对于平台,选择Python 3.8,对于应用程序代码,上传之前创建的.zip文件。

一旦上传了应用程序的源代码,就可以看到应用程序的环境被创建,最后应用程序被创建,并分配了一个Web URL。

还可以获得什么?

  • 仪表板 - 用于检查应用程序的健康状况和最近事件。
  • 配置板 - 使用它,可以管理整个环境。
  • 日志 - 来自应用程序的日志,使能够在部署失败时跟踪出了什么问题。
  • 监控板 - 用于检查一些基本指标,如CPU利用率和网络流量。
  • 基于监控指标的警报 - 可以设置警告电子邮件,例如,当CPU在特定时间内使用超过80%时接收。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485