Maison > Périphériques technologiques > IA > Comment déployer des modèles d'apprentissage automatique sur AWS Lambda à l'aide de Docker

Comment déployer des modèles d'apprentissage automatique sur AWS Lambda à l'aide de Docker

WBOY
Libérer: 2023-04-12 12:43:05
avant
1395 Les gens l'ont consulté

Dans ce didacticiel, nous vous guiderons tout au long du processus de packaging de votre modèle ML en tant que conteneur Docker et de son déploiement sur AWS Lambda, un service informatique sans serveur.

À la fin de ce didacticiel, vous disposerez d'un modèle ML fonctionnel qui peut être appelé via l'API, et vous comprendrez mieux comment déployer des modèles ML sur le cloud. Que vous soyez ingénieur en apprentissage automatique, data scientist ou développeur, ce didacticiel est conçu pour être accessible à toute personne ayant une compréhension de base du ML et de Docker. Alors commençons !

Qu'est-ce que Docker ?

Docker est un outil conçu pour faciliter la création, le déploiement et l'exécution d'applications à l'aide de conteneurs. Les conteneurs permettent aux développeurs de regrouper une application avec tous les éléments dont elle a besoin, tels que des bibliothèques et autres dépendances, et de l'envoyer sous la forme d'un seul package. En utilisant des conteneurs, les développeurs peuvent garantir que leurs applications s'exécuteront sur n'importe quelle autre machine, quels que soient les paramètres personnalisés de la machine qui peuvent différer de la machine utilisée pour écrire et tester le code. Docker fournit un moyen de regrouper les applications et leurs dépendances dans des conteneurs légers et portables qui peuvent être facilement déplacés d'un environnement à un autre. Cela facilite la création d'environnements de développement, de test et de production cohérents et le déploiement d'applications plus rapidement et de manière plus fiable. Installez Docker à partir d'ici : https://docs.docker.com/get-docker/.

Qu'est-ce qu'AWS Lambda ?

Amazon Web Services (AWS) Lambda est une plate-forme informatique sans serveur qui exécute du code en réponse aux événements et gère automatiquement les ressources informatiques sous-jacentes pour vous. Il s'agit d'un service fourni par AWS qui permet aux développeurs d'exécuter leur code dans le cloud sans avoir à se soucier de l'infrastructure requise pour exécuter le code. AWS Lambda met automatiquement à l'échelle votre application en réponse au trafic de requêtes entrantes, et vous ne payez que pour le temps de calcul que vous consommez. Cela en fait un choix attrayant pour la création et l’exécution de microservices, le traitement de données en temps réel et les applications basées sur les événements.

Qu'est-ce qu'AWS ECR ?

Amazon Web Services (AWS) Elastic Container Registry (ECR) est un registre de conteneurs Docker entièrement géré qui permet aux développeurs de stocker, gérer et déployer facilement des images de conteneurs Docker. Il s'agit d'un service sécurisé et évolutif qui permet aux développeurs de stocker et de gérer des images Docker dans le cloud AWS et de les déployer facilement sur Amazon Elastic Container Service (ECS) ou d'autres plateformes d'orchestration de conteneurs basées sur le cloud. ECR s'intègre à d'autres services AWS, tels qu'Amazon ECS et Amazon EKS, et fournit une prise en charge native de l'interface de ligne de commande (CLI) Docker. Cela facilite l'utilisation des commandes Docker familières pour pousser et extraire des images Docker d'ECR et automatiser le processus de création, de test et de déploiement d'applications conteneurisées.

Installez AWS CLI

Utilisez-le pour installer AWS CLI sur votre système. Obtenez l'ID de clé d'accès AWS et la clé d'accès secrète AWS en créant un utilisateur IAM dans votre compte AWS. Après l'installation, exécutez la commande suivante pour configurer votre AWS CLI et insérez les champs requis.

aws configure
Copier après la connexion

Déploiement d'une fonction Lambda à l'aide de Docker

Nous déploierons le modèle de clip OpenAI dans ce tutoriel pour vectoriser le texte d'entrée. La fonction Lambda nécessite Amazon Linux 2 dans un conteneur Docker, nous utilisons donc
public.ecr.aws/lambda/python:3.8. De plus, comme Lambda dispose d'un système de fichiers en lecture seule, il ne nous permet pas de télécharger des modèles en interne, nous devons donc les télécharger et les copier lors de la création de l'image.

Récupérez le code fonctionnel à partir d'ici et extrayez-le.

Changez le répertoire de travail où se trouve le Dockerfile et exécutez la commande suivante :

docker build -t lambda_image .
Copier après la connexion

Nous avons maintenant l'image prête à être déployée sur Lambda. Pour le vérifier localement, exécutez la commande :

docker run -p 9000:8080 lambda_image
Copier après la connexion

Pour le vérifier, envoyez-lui une requête curl et il devrait renvoyer un vecteur de texte d'entrée :

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

output

Comment déployer des modèles d'apprentissage automatique sur AWS Lambda à l'aide de Docker

Déployez d'abord l'image sur Lambda, nous en avons besoin pour être poussé vers ECR, alors connectez-vous au compte AWS et créez l'entrepôt lambda_image dans ECR. Après avoir créé le référentiel, accédez au référentiel créé et vous verrez l'option de commande view push, cliquez dessus et vous obtiendrez la commande pour pousser l'image vers le référentiel.

Comment déployer des modèles d'apprentissage automatique sur AWS Lambda à l'aide de Docker

Exécutez maintenant la première commande pour authentifier votre client Docker à l'aide de l'AWS CLI.

Nous avons déjà créé l'image Docker, alors sautez la deuxième étape et exécutez la troisième commande pour baliser l'image créée.

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

Comment déployer des modèles d'apprentissage automatique sur AWS Lambda à l'aide de Docker

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

Comment déployer des modèles d'apprentissage automatique sur AWS Lambda à l'aide de Docker

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

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

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

Comment déployer des modèles d'apprentissage automatique sur AWS Lambda à l'aide de Docker

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

Comment déployer des modèles d'apprentissage automatique sur AWS Lambda à l'aide de Docker

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

Comment déployer des modèles d'apprentissage automatique sur AWS Lambda à l'aide de Docker

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

Comment déployer des modèles d'apprentissage automatique sur AWS Lambda à l'aide de Docker

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

Comment déployer des modèles d'apprentissage automatique sur AWS Lambda à l'aide de Docker

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

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

Comment déployer des modèles d'apprentissage automatique sur AWS Lambda à l'aide de Docker

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

Comment déployer des modèles d'apprentissage automatique sur AWS Lambda à l'aide de Docker

该过程完成后,您将获得用于通过 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)
Copier après la connexion

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

Comment déployer des modèles d'apprentissage automatique sur AWS Lambda à l'aide de Docker

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal