自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用 Docker 在 AWS Lambda 上部署機(jī)器學(xué)習(xí)模型

人工智能 機(jī)器學(xué)習(xí)
如何使用 Docker 在 AWS Lambda 上部署機(jī)器學(xué)習(xí)模型

在本教程中,我們將引導(dǎo)您完成將 ML 模型打包為 Docker 容器并將其部署在無服務(wù)器計(jì)算服務(wù) AWS Lambda 上的過程。

在本教程結(jié)束時(shí),您將擁有一個(gè)可以通過 API 調(diào)用的工作 ML 模型,并且您將對(duì)如何在云上部署 ML 模型有更深入的了解。無論您是機(jī)器學(xué)習(xí)工程師、數(shù)據(jù)科學(xué)家還是開發(fā)人員,本教程旨在讓對(duì) ML 和 Docker 有基本了解的任何人都可以訪問。那么,讓我們開始吧!

什么是Docker?

碼頭工人是一種旨在使使用容器更輕松地創(chuàng)建、部署和運(yùn)行應(yīng)用程序的工具。容器允許開發(fā)人員將應(yīng)用程序及其所需的所有部分打包在一起,例如庫和其他依賴項(xiàng),并將其作為一個(gè)包發(fā)送出去。通過使用容器,開發(fā)人員可以確保他們的應(yīng)用程序?qū)⒃谌魏纹渌麢C(jī)器上運(yùn)行,而不管機(jī)器可能具有的任何自定義設(shè)置可能與用于編寫和測(cè)試代碼的機(jī)器不同。Docker 提供了一種將應(yīng)用程序及其依賴項(xiàng)打包到輕量級(jí)、可移植容器中的方法,該容器可以輕松地從一個(gè)環(huán)境移動(dòng)到另一個(gè)環(huán)境。這使得創(chuàng)建一致的開發(fā)、測(cè)試和生產(chǎn)環(huán)境以及更快速、更可靠地部署應(yīng)用程序變得更加容易。從這里安裝 Docker:https://docs.docker.com/get-docker/。

什么是 AWS Lambda?

Amazon Web Services (AWS) Lambda是一個(gè)無服務(wù)器計(jì)算平臺(tái),它運(yùn)行代碼以響應(yīng)事件并自動(dòng)為您管理底層計(jì)算資源。它是 AWS 提供的一項(xiàng)服務(wù),允許開發(fā)人員在云中運(yùn)行他們的代碼,而不必?fù)?dān)心運(yùn)行代碼所需的基礎(chǔ)設(shè)施。AWS Lambda 會(huì)自動(dòng)擴(kuò)展您的應(yīng)用程序以響應(yīng)傳入的請(qǐng)求流量,您只需為消耗的計(jì)算時(shí)間付費(fèi)。這使其成為構(gòu)建和運(yùn)行微服務(wù)、實(shí)時(shí)數(shù)據(jù)處理和事件驅(qū)動(dòng)應(yīng)用程序的有吸引力的選擇。

什么是 AWS ECR?

Amazon Web Services (AWS) Elastic Container Registry (ECR) 是一個(gè)完全托管的 Docker 容器注冊(cè)表,可讓開發(fā)人員輕松存儲(chǔ)、管理和部署 Docker 容器映像。它是一種安全且可擴(kuò)展的服務(wù),使開發(fā)人員能夠在 AWS 云中存儲(chǔ)和管理 Docker 映像,并輕松地將它們部署到 Amazon Elastic Container Service (ECS) 或其他基于云的容器編排平臺(tái)。ECR 與其他 AWS 服務(wù)集成,例如 Amazon ECS 和 Amazon EKS,并為 Docker 命令行界面 (CLI) 提供本地支持。這使得使用熟悉的 Docker 命令從 ECR 推送和拉取 Docker 映像以及自動(dòng)化構(gòu)建、測(cè)試和部署容器化應(yīng)用程序的過程變得容易。

安裝 AWS CLI

使用這個(gè)在您的系統(tǒng)上安裝 AWS CLI 。通過在您的 AWS 賬戶中創(chuàng)建 IAM 用戶來獲取 AWS 訪問密鑰 ID 和 AWS 秘密訪問密鑰。安裝后,運(yùn)行以下命令配置您的 AWS CLI 并插入必填字段。

aws configure

使用 Docker 部署 Lambda 函數(shù)

我們將在本教程中部署 OpenAI 剪輯模型來矢量化輸入文本。Lambda 函數(shù)需要 Docker 容器中的 amazon Linux 2,因此我們使用
public.ecr.aws/lambda/python:3.8。此外,由于 Lambda 具有只讀文件系統(tǒng),它不允許我們?cè)趦?nèi)部下載模型,因此我們需要在創(chuàng)建映像時(shí)下載并復(fù)制它們。

從這里獲取工作代碼并提取它。

更改 Dockerfile 所在的工作目錄,然后運(yùn)行以下命令:

docker build -t lambda_image .

現(xiàn)在我們已經(jīng)準(zhǔn)備好要在 Lambda 上部署的映像。要在本地檢查它,請(qǐng)運(yùn)行命令:

docker run -p 9000:8080 lambda_image

要檢查它,向它發(fā)送一個(gè) curl 請(qǐng)求,它應(yīng)該返回輸入文本的向量:

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

輸出

先將鏡像部署到Lambda上,我們需要將其推送到ECR上,因此登錄AWS賬戶,在ECR中創(chuàng)建倉庫lambda_image。創(chuàng)建存儲(chǔ)庫后,轉(zhuǎn)到創(chuàng)建的存儲(chǔ)庫,您將看到視圖推送命令選項(xiàng)單擊它,您將獲得將圖像推送到存儲(chǔ)庫的命令。

現(xiàn)在運(yùn)行第一個(gè)命令以使用 AWS CLI 對(duì)您的 Docker 客戶端進(jìn)行身份驗(yàn)證。

我們已經(jīng)創(chuàng)建了 Docker 鏡像,因此跳過第二步并運(yùn)行第三條命令來標(biāo)記創(chuàng)建的鏡像。

運(yùn)行最后一條命令將鏡像推送到 ECR 中。運(yùn)行后你會(huì)看到界面是這樣的:

推送完成后,您將在 ECR 的存儲(chǔ)庫中看到帶有“:latest”標(biāo)簽的圖像。

復(fù)制圖像的 URI。我們?cè)趧?chuàng)建 Lambda 函數(shù)時(shí)需要它。

現(xiàn)在轉(zhuǎn)到 Lambda 函數(shù)并單擊“創(chuàng)建函數(shù)”選項(xiàng)。我們正在從圖像創(chuàng)建一個(gè)函數(shù),因此選擇容器圖像的選項(xiàng)。添加函數(shù)名稱并粘貼我們從 ECR 復(fù)制的 URI,或者您也可以瀏覽圖像。選擇architecture x84_64,最后點(diǎn)擊create_image選項(xiàng)。

構(gòu)建 Lambda 函數(shù)可能需要一些時(shí)間,請(qǐng)耐心等待。執(zhí)行成功后,你會(huì)看到如下界面:

Lambda 函數(shù)默認(rèn)有 3 秒的超時(shí)限制和 128 MB 的 RAM,所以我們需要增加它,否則它會(huì)拋出錯(cuò)誤。為此,請(qǐng)轉(zhuǎn)到配置選項(xiàng)卡并單擊“編輯”。

現(xiàn)在將超時(shí)設(shè)置為 5-10 分鐘(最大限制為 15 分鐘)并將 RAM 設(shè)置為 2-3 GB,然后單擊保存按鈕。更新 Lambda 函數(shù)的配置需要一些時(shí)間。

更新更改后,該功能就可以進(jìn)行測(cè)試了。要測(cè)試 lambda 函數(shù),請(qǐng)轉(zhuǎn)到“測(cè)試”選項(xiàng)卡并將鍵值添加到事件 JSON 中作為文本:“這是文本編碼測(cè)試?!?然后點(diǎn)擊測(cè)試按鈕。

由于我們是第一次執(zhí)行 Lambda 函數(shù),因此執(zhí)行可能需要一些時(shí)間。成功執(zhí)行后,您將在執(zhí)行日志中看到輸入文本的向量。

現(xiàn)在我們的 Lambda 函數(shù)已部署并正常工作。要通過 API 訪問它,我們需要?jiǎng)?chuàng)建一個(gè)函數(shù) URL。

要為 Lambda 函數(shù)創(chuàng)建 URL,請(qǐng)轉(zhuǎn)到 Configuration 選項(xiàng)卡并選擇 Function URL 選項(xiàng)。然后單擊創(chuàng)建函數(shù) URL 選項(xiàng)。

現(xiàn)在,保留身份驗(yàn)證 None 并單擊 Save。

該過程完成后,您將獲得用于通過 API 訪問 Lambda 函數(shù)的 URL。以下是使用 API 訪問 Lambda 函數(shù)的示例 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)

成功執(zhí)行代碼后,您將獲得輸入文本的向量。

所以這是一個(gè)如何使用 Docker 在 AWS Lambda 上部署 ML 模型的示例。如果您有任何疑問,請(qǐng)告訴我們。

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2021-03-30 17:03:02

React開發(fā)部署Nginx

2020-10-26 07:40:17

Terraform

2024-10-12 08:00:00

機(jī)器學(xué)習(xí)Docker

2019-10-23 08:00:00

Flask機(jī)器學(xué)習(xí)人工智能

2024-09-09 11:45:15

ONNX部署模型

2015-01-06 09:41:25

AWS數(shù)據(jù)庫部署數(shù)據(jù)庫監(jiān)控

2021-09-02 08:02:50

深度學(xué)習(xí)Kubernetes集群管理

2023-09-11 09:35:20

Docker程序

2021-01-25 09:00:00

機(jī)器學(xué)習(xí)人工智能算法

2014-07-28 10:13:59

AWS部署APIEC2

2017-07-07 14:41:13

機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)JavaScript

2021-11-02 09:40:50

TensorFlow機(jī)器學(xué)習(xí)人工智能

2018-05-17 22:55:48

AWS Lambda服務(wù)器代碼

2019-12-03 10:22:50

AWSAI亞馬遜

2012-05-24 09:15:45

ibmdw

2014-11-14 10:08:07

AWSAWS Lambda

2014-11-14 10:16:18

亞馬遜

2025-02-17 08:00:00

機(jī)器學(xué)習(xí)開發(fā)Docker

2009-06-01 11:23:08

Glassfish部署Glassfish

2024-08-05 14:17:59

大型語言模型適配器LLM
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)