无论是经验丰富的数据科学家还是初学者,可能都曾参与过包含数据清洗、整理、比较不同机器学习模型以及在Jupyter等PythonNotebooks上训练模型的机器学习模型开发过程。这些步骤当然离不开Notebooks,但这些Notebooks对开发者来说是有限的,因为它们不能被任何非技术用户直接用于应用程序。
如果使用任何网站查看所在城市的天气预报,看到的预报可能来自某个Notebook开发出的模型,但用户是通过网站来获取这些预报的。正如所猜测的,因此有方法将Notebooks转换成可以集成到任何技术或非技术用户都可以访问和使用的产品中的形式。这个过程被称为“模型部署”。
AWS Elastic Beanstalk是一项计算服务,允许上传Web应用程序代码以及环境配置,基于这些配置Elastic Beanstalk自动配置并部署必要的AWS资源以使Web应用程序运行。这些资源可能包括其他AWS服务和特性,如EC2实例、弹性负载均衡、自动扩展等。
作为数据科学专业人士,如果不熟悉模型部署的细节,使用AWS Elastic Beanstalk部署ML模型将是理想的选择,因为它自动化并简化了整个部署过程。
AWS Elastic Beanstalk作为一项服务是免费的。但是,用于创建应用程序的资源,如EC2实例,将根据部署时的标准定价政策收费。
需要:
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。