其他分享
首页 > 其他分享> > [教程]:使用 FastAPI 和 Docker 提供容器化 ML 模型

[教程]:使用 FastAPI 和 Docker 提供容器化 ML 模型

作者:互联网

[教程]:使用 FastAPI 和 Docker 提供容器化 ML 模型

使用 FastAPI 和 docker 提供容器化机器学习 (ML) 模型的分步教程。

Our tech stack for the tutorial

在我的 ** 以前的** 在教程中,我们通过构建端点来服务机器学习( 机器学习 ) 使用 Python 的图像分类器模型和 快速API .

在本后续教程中,我们将重点介绍在通过 FastAPI 服务时使用 docker 对模型进行容器化。

如果你关注了我的 ** 最后一个教程** 关于使用 TensorFlow Hub 提供预训练的图像分类器模型 快速API , 那么你也能 ** 直接地** __ ** 第 3 步** 本教程的⬇️。

[

[教程]:使用 FastAPI 在生产环境中提供 ML 模型

使用 FastAPI 从 TensorFlow Hub 提供(预训练的)图像分类器模型的分步教程。

媒体网

](/@ashmi_banerjee/4-step-tutorial-to-serve-an-ml-model-in-production-using-fastapi-ee62201b3db3)

集装箱化的优势

It works on my machine — a popular docker meme on the internet

容器化具有以下优势:

  1. **性能一致性
    ** DevOps 团队知道容器中的应用程序将运行相同,无论它们部署在哪里。
  2. **更高的效率
    ** 容器允许更快速地部署、修补或扩展应用程序。
  3. **更少的开销
    ** 与传统或硬件虚拟机环境相比,容器需要更少的系统资源,因为它们不包含操作系统映像。

方法

我们可以在这里使用 2 种方法来实现这一点。

  1. 实现一个 Dockerfile 这需要 建成 每次代码发生变化时手动手动执行,然后单独执行。
  2. 使用自动化上述过程 码头工人撰写

步骤 0:先决条件

  1. Python 3.6+

  2. 你有 ** 码头工人** 安装。

  3. 创建项目结构如下

    fastapi-后端
    ├── 源
    │ ├── 应用
    │ │ ├── app.py
    │ └── 预
    │ │ ├── 型号
    │ │ │ ├── tf_pred.py
    │ │ └── image_classifier.py
    │ └── 实用工具
    │ │ ├── 实用程序.py
    │ └── main.py
    ├── Dockerfile
    ├── docker-compose.yml
    └── requirements.txt

第 1 步:设置

在里面 应用程序.py 文件,执行 /预测/tf/ 终点使用 快速API .

在里面 主文件 文件,我们使用 乌维康 server,它是 Python 的 ASGI Web 服务器实现。

笔记 : 由于本教程的目标是容器化应用程序,因此上述代码片段的详细解释已在 ** 第2步** ** 以前的** __教程。

第 2 步:创建 Dockerfile

容器化应用程序的第一步是在您的项目目录中创建一个 Dockerfile (见上面的项目结构) .

Dockerfile 是一个文本文档,包含构建 docker 映像所需的所有说明。

我们定义我们的 Dockerfile 如下:

说明:

第 4 步:构建并运行您的应用程序

一旦我们实现了 Dockerfile,下一步就是 建造 泊坞窗图像,然后 它。

步骤 4.1。构建 图片

我们构建图像(这里 我的fastapiimage ) 如下。
您可以使用您选择的任何名称来调用它。

 docker build -t myfastapiimage 。

需要注意的要点:

码头工人建造 通常使用缓存来加快速度。 --无缓存 确保它强制重建它。

步骤 4.2。运行容器

 docker run --name mycontainer -p 80:8000 myfastapiimage

解释

[步骤 4 的替代方法] 使用 Docker-compose

码头工人撰写 是定义和运行多容器 Docker 应用程序的理想工具。在 Compose 中,我们使用 YAML 文件 ( .yml ) 来配置应用程序的服务。

使用的最大优势 码头工人撰写 就是说,使用一个命令,我们就可以从我们的配置中创建并启动所有服务。你可以阅读更多关于 码头工人撰写 这里 .

现在让我们看看我们如何定义 码头工人撰写 在我们的例子中。由于我们是单一服务应用程序,因此定义 码头工人撰写 应该相当简单。

说明:

跑步 码头工人撰写

从项目目录中,通过运行以下命令启动应用程序。

 码头工人组成 --build

访问 ** http://127.0.0.1:8000/** 从您的浏览器启动并运行应用程序。

一些方便的调试技巧

它为您提供所有容器(运行和停止)的所有列表。

结论

在本教程中,我们学习了如何使用容器化我们的应用程序 码头工人 .

容器化之后的下一步是部署。
一旦我们对容器化应用程序的行为感到满意,我们就可以将其部署在任何托管/混合/本地云服务上,并将故障风险降至最低。

笔记 :本教程可以扩展到任何类型的应用程序容器化,而不仅仅是 FasAPI 应用程序。
你只需要调整
_Dockerfile_ _码头工人撰写_ 因此。其余的保持不变 .

GitHub上的源代码可以访问 ** 这里** ** _.
_** 总结了有关该主题的参考资料和进一步阅读资料 ** 这里** .

如果你喜欢这篇文章,请 ** 订阅** 得到我最新的。
要取得联系,请联系我
** 领英** 或通过 ** ashmibanerjee.com** .

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/15426/46430508

标签:容器,教程,FastAPI,应用程序,ML,Docker,Dockerfile,docker,码头工人
来源: https://www.cnblogs.com/amboke/p/16656836.html