LMi-MAG28 Dec - Flipbook - Page 61
narios, il est essentiel d’évaluer ses limites et contraintes
afin de déterminer si elle répond à vos besoins spécifiques
en matière de déploiement ML.
Première approche :
Déploiement d’un modèle stocké sur S3
Le déploiement d’un modèle ML sous forme de fichier
Python pickle dans un bucket S3 et son utilisation via une
API Lambda rend le déploiement du modèle simple, évolutif et rentable. Nous avons configuré AWS Lambda pour
charger ce modèle depuis S3 lorsque cela est nécessaire,
ce qui permet d’obtenir des prédictions rapides sans
avoir besoin d’un serveur dédié. Lorsqu’un utilisateur
appelle l’API connectée à la fonction Lambda, le modèle
est récupéré, exécuté et renvoie des prédictions basées
sur les données saisies. Cette configuration serverless
garantit une haute disponibilité, s’adapte automatiquement et réduit les coûts, car vous ne payez que lorsque
l’API est utilisée.
Etape 1 : Créer une archive zip pour la couche Lambda
Une couche Lambda est une archive zip qui contient
des bibliothèques, un runtime personnalisé et d’autres
dépendances. Je vais vous montrer comment créer une
couche Lambda à l’aide de deux bibliothèques Python,
Pandas et Scikit-learn, qui sont souvent utilisées dans les
modèles ML. Vous trouverez ci-dessous le code permettant de créer une archive zip de couche Lambda contenant Pandas et Scikit-learn à l’aide de Docker. Créez un
fichier, nommez-le createlayer.sh et copiez le code.
Maintenant, dans le même répertoire, créez un fichier
nommé requirements.txt pour stocker les noms et les
versions des bibliothèques dans la couche. Dans ce cas,
notre fichier requirements.txt répertorie les noms et les
versions des bibliothèques Pandas et Scikit-learn que
nous utilisons.
Ensuite, dans le terminal, accédez au répertoire où vous
avez placé les fichiers createlayer.sh et requirements.txt,
puis exécutez la commande ci-dessous pour générer le
fichier zip de la couche Lambda.
Lorsque la commande shell ci-dessus est exécutée, celle
pip install incluse dans le script shell télécharge automatiquement Pandas, Scikit-learn et leurs dépendances
depuis le Python Package Index (PyPI) et les installe
directement dans le répertoire python/lib/python$1/sitepackages/. Une fois le script shell terminé, vous constaterez que le fichier zip Lambda layer généré contient des
dossiers pour Pandas, Scikit-learn, NumPy et SciPy, ainsi
que certains fichiers Python.
Etape 2 : Stockez le modèle ML et les fichiers
de la couche Lambda dans S3
Créez un nouveau dossier dans un bucket S3 et donnez-lui
le nom de votre fonction Lambda pour le déploiement
du modèle ML (par exemple, DeployMlModel). Copiez
le fichier Python pickle de votre modèle ML et le fichier
zip de votre couche Lamba dans le dossier. Une fois les
fichiers copiés, votre bucket S3 devrait afficher le dossier
et son contenu.
Etape 3 : Créer la fonction Lambda
1. Accédez à la console AWS Lambda et cliquez
sur « Créer une fonction »
2. Sélectionnez « Créer à partir de zéro »
3. Saisissez le nom de la fonction (par exemple,
DeployMlModel)
4. Sélectionnez le runtime (par exemple, Python 3.6)
5. Sélectionnez ou créez un rôle d’exécution approprié
avec l’autorisation de lire depuis Amazon S3
6. Cliquez sur « Créer une fonction ».
A ce stade, vous disposez d’une fonction Lambda vide
prête à être configurée.
Étape 4 : Ajoutez la couche Lambda
à la fonction Lambda
Dans cette étape, nous configurons Lambda pour utiliser
le fichier zip Lambda Layer que nous avons créé et stocké
dans S3 à l’étape 2. Pour ajouter notre fichier zip Lambda
Layer à Lambda, nous cliquons sur « Layers », puis sur
« Create Layer » dans l’interface utilisateur Lambda,
comme illustré dans la figure ci-dessous. [Lire l’intégralité de l’article sur lemondeinformatique.fr]
APPROFONDIR
ÉCOUTER EN LIGNE
Podcast
tinyurl.com/podcast-aws-lambda
LIRE EN LIGNE
Article
tinyurl.com/article-aws-lambda
61