目录
什么是Docker?
什么是 AWS Lambda?
什么是 AWS ECR?
安装 AWS CLI
使用 Docker 部署 Lambda 函数
输出
首页 科技周边 人工智能 如何使用 Docker 在 AWS Lambda 上部署机器学习模型

如何使用 Docker 在 AWS Lambda 上部署机器学习模型

Apr 12, 2023 pm 12:43 PM
docker 机器学习 无服务器

在本教程中,我们将引导您完成将 ML 模型打包为 Docker 容器并将其部署在无服务器计算服务 AWS Lambda 上的过程。

在本教程结束时,您将拥有一个可以通过 API 调用的工作 ML 模型,并且您将对如何在云上部署 ML 模型有更深入的了解。无论您是机器学习工程师、数据科学家还是开发人员,本教程旨在让对 ML 和 Docker 有基本了解的任何人都可以访问。那么,让我们开始吧!

什么是Docker?

码头工人是一种旨在使使用容器更轻松地创建、部署和运行应用程序的工具。容器允许开发人员将应用程序及其所需的所有部分打包在一起,例如库和其他依赖项,并将其作为一个包发送出去。通过使用容器,开发人员可以确保他们的应用程序将在任何其他机器上运行,而不管机器可能具有的任何自定义设置可能与用于编写和测试代码的机器不同。Docker 提供了一种将应用程序及其依赖项打包到轻量级、可移植容器中的方法,该容器可以轻松地从一个环境移动到另一个环境。这使得创建一致的开发、测试和生产环境以及更快速、更可靠地部署应用程序变得更加容易。从这里安装 Docker:https://docs.docker.com/get-docker/。

什么是 AWS Lambda?

Amazon Web Services (AWS) Lambda是一个无服务器计算平台,它运行代码以响应事件并自动为您管理底层计算资源。它是 AWS 提供的一项服务,允许开发人员在云中运行他们的代码,而不必担心运行代码所需的基础设施。AWS Lambda 会自动扩展您的应用程序以响应传入的请求流量,您只需为消耗的计算时间付费。这使其成为构建和运行微服务、实时数据处理和事件驱动应用程序的有吸引力的选择。

什么是 AWS ECR?

Amazon Web Services (AWS) Elastic Container Registry (ECR) 是一个完全托管的 Docker 容器注册表,可让开发人员轻松存储、管理和部署 Docker 容器映像。它是一种安全且可扩展的服务,使开发人员能够在 AWS 云中存储和管理 Docker 映像,并轻松地将它们部署到 Amazon Elastic Container Service (ECS) 或其他基于云的容器编排平台。ECR 与其他 AWS 服务集成,例如 Amazon ECS 和 Amazon EKS,并为 Docker 命令行界面 (CLI) 提供本地支持。这使得使用熟悉的 Docker 命令从 ECR 推送和拉取 Docker 映像以及自动化构建、测试和部署容器化应用程序的过程变得容易。

安装 AWS CLI

使用这个在您的系统上安装 AWS CLI 。通过在您的 AWS 账户中创建 IAM 用户来获取 AWS 访问密钥 ID 和 AWS 秘密访问密钥。安装后,运行以下命令配置您的 AWS CLI 并插入必填字段。

aws configure
登录后复制

使用 Docker 部署 Lambda 函数

我们将在本教程中部署 OpenAI 剪辑模型来矢量化输入文本。Lambda 函数需要 Docker 容器中的 amazon Linux 2,因此我们使用
public.ecr.aws/lambda/python:3.8。此外,由于 Lambda 具有只读文件系统,它不允许我们在内部下载模型,因此我们需要在创建映像时下载并复制它们。

从这里获取工作代码并提取它。

更改 Dockerfile 所在的工作目录,然后运行以下命令:

docker build -t lambda_image .
登录后复制

现在我们已经准备好要在 Lambda 上部署的映像。要在本地检查它,请运行命令:

docker run -p 9000:8080 lambda_image
登录后复制

要检查它,向它发送一个 curl 请求,它应该返回输入文本的向量:

curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{"text": "This is a test for text encoding"}'
登录后复制

输出

如何使用 Docker 在 AWS Lambda 上部署机器学习模型

先将镜像部署到Lambda上,我们需要将其推送到ECR上,因此登录AWS账户,在ECR中创建仓库lambda_image。创建存储库后,转到创建的存储库,您将看到视图推送命令选项单击它,您将获得将图像推送到存储库的命令。

如何使用 Docker 在 AWS Lambda 上部署机器学习模型

现在运行第一个命令以使用 AWS CLI 对您的 Docker 客户端进行身份验证。

我们已经创建了 Docker 镜像,因此跳过第二步并运行第三条命令来标记创建的镜像。

运行最后一条命令将镜像推送到 ECR 中。运行后你会看到界面是这样的:

如何使用 Docker 在 AWS Lambda 上部署机器学习模型

推送完成后,您将在 ECR 的存储库中看到带有“:latest”标签的图像。

如何使用 Docker 在 AWS Lambda 上部署机器学习模型

复制图像的 URI。我们在创建 Lambda 函数时需要它。

现在转到 Lambda 函数并单击“创建函数”选项。我们正在从图像创建一个函数,因此选择容器图像的选项。添加函数名称并粘贴我们从 ECR 复制的 URI,或者您也可以浏览图像。选择architecture x84_64,最后点击create_image选项。

构建 Lambda 函数可能需要一些时间,请耐心等待。执行成功后,你会看到如下界面:

如何使用 Docker 在 AWS Lambda 上部署机器学习模型

Lambda 函数默认有 3 秒的超时限制和 128 MB 的 RAM,所以我们需要增加它,否则它会抛出错误。为此,请转到配置选项卡并单击“编辑”。

如何使用 Docker 在 AWS Lambda 上部署机器学习模型

现在将超时设置为 5-10 分钟(最大限制为 15 分钟)并将 RAM 设置为 2-3 GB,然后单击保存按钮。更新 Lambda 函数的配置需要一些时间。

如何使用 Docker 在 AWS Lambda 上部署机器学习模型

更新更改后,该功能就可以进行测试了。要测试 lambda 函数,请转到“测试”选项卡并将键值添加到事件 JSON 中作为文本:“这是文本编码测试。” 然后点击测试按钮。

如何使用 Docker 在 AWS Lambda 上部署机器学习模型

由于我们是第一次执行 Lambda 函数,因此执行可能需要一些时间。成功执行后,您将在执行日志中看到输入文本的向量。

如何使用 Docker 在 AWS Lambda 上部署机器学习模型

现在我们的 Lambda 函数已部署并正常工作。要通过 API 访问它,我们需要创建一个函数 URL。

要为 Lambda 函数创建 URL,请转到 Configuration 选项卡并选择 Function URL 选项。然后单击创建函数 URL 选项。

如何使用 Docker 在 AWS Lambda 上部署机器学习模型

现在,保留身份验证 None 并单击 Save。

如何使用 Docker 在 AWS Lambda 上部署机器学习模型

该过程完成后,您将获得用于通过 API 访问 Lambda 函数的 URL。以下是使用 API 访问 Lambda 函数的示例 Python 代码:

import requests function_url = ""url = f"{function_url}?text=this is test text" payload={}headers = {} response = requests.request("GET", url, headers=headers, data=payload) print(response.text)
登录后复制

成功执行代码后,您将获得输入文本的向量。

如何使用 Docker 在 AWS Lambda 上部署机器学习模型

所以这是一个如何使用 Docker 在 AWS Lambda 上部署 ML 模型的示例。如果您有任何疑问,请告诉我们。

以上是如何使用 Docker 在 AWS Lambda 上部署机器学习模型的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

一文带您了解SHAP:机器学习的模型解释 一文带您了解SHAP:机器学习的模型解释 Jun 01, 2024 am 10:58 AM

在机器学习和数据科学领域,模型的可解释性一直是研究者和实践者关注的焦点。随着深度学习和集成方法等复杂模型的广泛应用,理解模型的决策过程变得尤为重要。可解释人工智能(ExplainableAI|XAI)通过提高模型的透明度,帮助建立对机器学习模型的信任和信心。提高模型的透明度可以通过多种复杂模型的广泛应用等方法来实现,以及用于解释模型的决策过程。这些方法包括特征重要性分析、模型预测区间估计、局部可解释性算法等。特征重要性分析可以通过评估模型对输入特征的影响程度来解释模型的决策过程。模型预测区间估计

使用C++实现机器学习算法:常见挑战及解决方案 使用C++实现机器学习算法:常见挑战及解决方案 Jun 03, 2024 pm 01:25 PM

C++中机器学习算法面临的常见挑战包括内存管理、多线程、性能优化和可维护性。解决方案包括使用智能指针、现代线程库、SIMD指令和第三方库,并遵循代码风格指南和使用自动化工具。实践案例展示了如何利用Eigen库实现线性回归算法,有效地管理内存和使用高性能矩阵操作。

可解释性人工智能:解释复杂的AI/ML模型 可解释性人工智能:解释复杂的AI/ML模型 Jun 03, 2024 pm 10:08 PM

译者|李睿审校|重楼人工智能(AI)和机器学习(ML)模型如今变得越来越复杂,这些模型产生的输出是黑盒——无法向利益相关方解释。可解释性人工智能(XAI)致力于通过让利益相关方理解这些模型的工作方式来解决这一问题,确保他们理解这些模型实际上是如何做出决策的,并确保人工智能系统中的透明度、信任度和问责制来解决这个问题。本文探讨了各种可解释性人工智能(XAI)技术,以阐明它们的基本原理。可解释性人工智能至关重要的几个原因信任度和透明度:为了让人工智能系统被广泛接受和信任,用户需要了解决策是如何做出的

你所不知道的机器学习五大学派 你所不知道的机器学习五大学派 Jun 05, 2024 pm 08:51 PM

机器学习是人工智能的重要分支,它赋予计算机从数据中学习的能力,并能够在无需明确编程的情况下改进自身能力。机器学习在各个领域都有着广泛的应用,从图像识别和自然语言处理到推荐系统和欺诈检测,它正在改变我们的生活方式。机器学习领域存在着多种不同的方法和理论,其中最具影响力的五种方法被称为“机器学习五大派”。这五大派分别为符号派、联结派、进化派、贝叶斯派和类推学派。1.符号学派符号学(Symbolism),又称为符号主义,强调利用符号进行逻辑推理和表达知识。该学派认为学习是一种逆向演绎的过程,通过已有的

Flash Attention稳定吗?Meta、哈佛发现其模型权重偏差呈现数量级波动 Flash Attention稳定吗?Meta、哈佛发现其模型权重偏差呈现数量级波动 May 30, 2024 pm 01:24 PM

MetaFAIR联合哈佛优化大规模机器学习时产生的数据偏差,提供了新的研究框架。据所周知,大语言模型的训练常常需要数月的时间,使用数百乃至上千个GPU。以LLaMA270B模型为例,其训练总共需要1,720,320个GPU小时。由于这些工作负载的规模和复杂性,导致训练大模型存在着独特的系统性挑战。最近,许多机构在训练SOTA生成式AI模型时报告了训练过程中的不稳定情况,它们通常以损失尖峰的形式出现,比如谷歌的PaLM模型训练过程中出现了多达20次的损失尖峰。数值偏差是造成这种训练不准确性的根因,

C++技术中的机器学习:使用C++实现常见机器学习算法的指南 C++技术中的机器学习:使用C++实现常见机器学习算法的指南 Jun 03, 2024 pm 07:33 PM

在C++中,机器学习算法的实施方式包括:线性回归:用于预测连续变量,步骤包括加载数据、计算权重和偏差、更新参数和预测。逻辑回归:用于预测离散变量,流程与线性回归类似,但使用sigmoid函数进行预测。支持向量机:一种强大的分类和回归算法,涉及计算支持向量和预测标签。

Pi Node教学:什么是Pi节点?如何安装和设定Pi Node? Pi Node教学:什么是Pi节点?如何安装和设定Pi Node? Mar 05, 2025 pm 05:57 PM

PiNetwork节点详解及安装指南本文将详细介绍PiNetwork生态系统中的关键角色——Pi节点,并提供安装和配置的完整步骤。Pi节点在PiNetwork区块链测试网推出后,成为众多先锋积极参与测试的重要环节,为即将到来的主网发布做准备。如果您还不了解PiNetwork,请参考Pi币是什么?上市价格多少?Pi用途、挖矿及安全性分析。什么是PiNetwork?PiNetwork项目始于2019年,拥有其专属加密货币Pi币。该项目旨在创建一个人人可参与

deepseek怎么安装 deepseek怎么安装 Feb 19, 2025 pm 05:48 PM

DeepSeek的安装方法有多种,包括:从源码编译(适用于经验丰富的开发者)使用预编译包(适用于Windows用户)使用Docker容器(最便捷,无需担心兼容性)无论选择哪种方法,请仔细阅读官方文档并充分准备,避免不必要的麻烦。

See all articles