> 기술 주변기기 > 일체 포함 > Docker를 사용하여 AWS Lambda에 기계 학습 모델을 배포하는 방법

Docker를 사용하여 AWS Lambda에 기계 학습 모델을 배포하는 방법

WBOY
풀어 주다: 2023-04-12 12:43:05
앞으로
1395명이 탐색했습니다.

이 튜토리얼에서는 ML 모델을 Docker 컨테이너로 패키징하고 서버리스 컴퓨팅 서비스인 AWS Lambda에 배포하는 과정을 안내합니다.

이 튜토리얼이 끝나면 API를 통해 호출할 수 있는 작동하는 ML 모델을 갖게 되며 클라우드에 ML 모델을 배포하는 방법을 더 깊이 이해하게 됩니다. 기계 학습 엔지니어, 데이터 과학자, 개발자 등 이 튜토리얼은 ML 및 Docker에 대한 기본적인 이해가 있는 모든 사람이 액세스할 수 있도록 설계되었습니다. 자, 시작해 봅시다!

도커란 무엇인가요?

Docker는 컨테이너를 사용하여 애플리케이션을 더 쉽게 생성, 배포 및 실행할 수 있도록 설계된 도구입니다. 컨테이너를 사용하면 개발자는 라이브러리 및 기타 종속성 등 필요한 모든 부분과 함께 애플리케이션을 패키징하여 하나의 패키지로 보낼 수 있습니다. 컨테이너를 사용하면 개발자는 코드를 작성하고 테스트하는 데 사용된 컴퓨터와 다를 수 있는 컴퓨터의 사용자 지정 설정에 관계없이 애플리케이션이 다른 컴퓨터에서 실행되도록 할 수 있습니다. Docker는 애플리케이션과 해당 종속성을 한 환경에서 다른 환경으로 쉽게 이동할 수 있는 경량의 휴대용 컨테이너로 패키징하는 방법을 제공합니다. 이를 통해 일관된 개발, 테스트 및 프로덕션 환경을 쉽게 만들고 애플리케이션을 더 빠르고 안정적으로 배포할 수 있습니다. 여기에서 Docker를 설치하세요: https://docs.docker.com/get-docker/.

AWS Lambda란 무엇입니까?

Amazon 웹 서비스(AWS) Lambda는 이벤트에 대한 응답으로 코드를 실행하고 기본 컴퓨팅 리소스를 자동으로 관리하는 서버리스 컴퓨팅 플랫폼입니다. 개발자가 코드 실행에 필요한 인프라에 대해 걱정할 필요 없이 클라우드에서 코드를 실행할 수 있도록 AWS에서 제공하는 서비스입니다. AWS Lambda는 수신 요청 트래픽에 응답하여 애플리케이션을 자동으로 확장하며, 사용한 컴퓨팅 시간에 대해서만 비용을 지불합니다. 따라서 마이크로서비스, 실시간 데이터 처리, 이벤트 기반 애플리케이션을 구축하고 실행하는 데 매력적인 선택이 됩니다.

AWS ECR이란 무엇입니까?

Amazon 웹 서비스(AWS) Elastic Container Registry(ECR)는 개발자가 Docker 컨테이너 이미지를 쉽게 저장, 관리 및 배포할 수 있게 해주는 완전 관리형 Docker 컨테이너 레지스트리입니다. 이는 개발자가 AWS 클라우드에서 Docker 이미지를 저장 및 관리하고 Amazon Elastic Container Service(ECS) 또는 기타 클라우드 기반 컨테이너 오케스트레이션 플랫폼에 쉽게 배포할 수 있도록 지원하는 안전하고 확장 가능한 서비스입니다. ECR은 Amazon ECS 및 Amazon EKS와 같은 다른 AWS 서비스와 통합되며 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 -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{"text": "This is a test for text encoding"}'
로그인 후 복사

output

Docker를 사용하여 AWS Lambda에 기계 학습 모델을 배포하는 방법

먼저 이미지를 Lambda에 배포하려면 다음이 필요합니다. ECR로 푸시하려면 AWS 계정에 로그인하고 ECR에 웨어하우스lambda_image를 생성하세요. 저장소를 생성한 후 생성된 저장소로 이동하면 view push 명령 옵션이 표시되고 이를 클릭하면 이미지를 저장소에 푸시하는 명령이 표시됩니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:51cto.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿