此repo中的代码显示了如何创建一个Flask Web端点来预测“幸存的泰坦尼克号灾难”的可能性。使用joblib将训练后的模型序列化为泡菜文件,并以年龄,ticket_class,boarding_location和性别作为输入来进行预测。
训练数据-https://www.kaggle.com/c/titanic/data
AWS Sagemaker的架构 https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-hosting.html
上图中的体系结构看起来是容器化和部署ML应用程序的好方法。
问题
答案 0 :(得分:3)
为简单起见,让我们基于Ubuntu创建映像。
在空目录中创建文件Dockerfile
,其中包含以下内容:
FROM ubuntu
# Install pip and git and clone repo into /app
RUN apt-get update && apt-get install --assume-yes --fix-missing python-pip git && git clone https://github.com/amirziai/sklearnflask.git /app
# Change WORKDIR
WORKDIR /app
# Install dependencies
RUN pip install -r requirements.txt
# Expose port and run the application when the container is started
EXPOSE 9999
ENTRYPOINT python main.py 9999
然后可以通过在包含docker build -t <TAG> .
的目录中运行Dockerfile
来构建映像。然后,您可以使用docker run <TAG>
来运行它。
我想您想添加自己的sklearn模型。有不同的方法可以做到这一点,例如您可以更改Dockerfile并使用ADD
将本地文件系统中的文件添加到映像中,或者可以在运行容器时mount模型。
此外,在生产中实际使用此容器时,您应该考虑一些其他事项,例如如何保持容器轻巧(例如,使用alpine而非ubuntu)。您可能还想将映像上传到中心,以便可以从那里部署容器。
希望这可以作为起点。