Installation de bibliothèques et de noyaux externes dans des instances de bloc-notes - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Installation de bibliothèques et de noyaux externes dans des instances de bloc-notes

Les instances Amazon SageMaker Notebook sont fournies avec plusieurs environnements déjà installés. Ces environnements contiennent des noyaux Jupyter et des packages Python, notamment : scikit, Pandas et MXnet. NumPy TensorFlow Ces environnements, ainsi que tous les fichiers du dossier sample-notebooks, sont actualisés lorsque vous arrêtez et démarrez une instance de bloc-notes. Vous pouvez également installer vos propres environnements contenant vos choix de packages et noyaux.

Les différents noyaux Jupyter présents dans les instances d'Amazon SageMaker Notebook sont des environnements conda distincts. Pour plus d'informations sur les environnements conda, consultez Managing environments dans la documentation Conda.

Installez des environnements et des noyaux personnalisés sur le volume Amazon EBS de l'instance de bloc-notes. Cela garantit qu'ils persistent lorsque vous arrêtez et redémarrez l'instance du bloc-notes, et que les bibliothèques externes que vous installez ne sont pas mises à jour par SageMaker. Pour ce faire, utilisez une configuration de cycle de vie qui inclut à la fois un script qui s'exécute lorsque vous créez l'instance de bloc-notes (on-create) et un script qui s'exécute chaque fois que vous redémarrez l'instance de bloc-notes (on-start). Pour de plus amples informations sur l'utilisation des configurations du cycle de vie des instances de bloc-notes, veuillez consulter Personnalisation d'une instance de bloc-notes à l'aide d'un script de configuration du cycle de vie. Il existe un GitHub référentiel contenant des exemples de scripts de configuration du cycle de vie sur SageMakerNotebook Instance Lifecycle Config Samples.

Les exemples disponibles sur https://github.com/aws-samples/ amazon-sagemaker-notebook-instance - lifecycle-config-samples /blob/master/scripts/ persistent-conda-ebs /on-create.sh et https://github.com/aws-samples/ amazon-sagemaker-notebook-instance - lifecycle-config-samples /blob/master/scripts/ persistent-conda-ebs /on-start.sh montrent les meilleures pratiques pour installer des environnements et des noyaux sur une instance de bloc-notes. Le script on-create installe la bibliothèque ipykernel afin de créer des environnements personnalisés en tant que noyaux Jupyter et utilise pip install et conda install pour installer des bibliothèques. Vous pouvez adapter le script pour créer des environnements personnalisés et installer les bibliothèques de votre choix. SageMaker ne met pas à jour ces bibliothèques lorsque vous arrêtez et redémarrez l'instance du bloc-notes, afin que vous puissiez vous assurer que votre environnement personnalisé dispose des versions spécifiques des bibliothèques que vous souhaitez. Le script on-start installe tous les environnements personnalisés que vous créez en tant que noyaux Jupyter, de sorte qu'ils apparaissent dans la liste déroulante de menu New (Nouveau) de Jupyter.

Outils d'installation de package

SageMaker les ordinateurs portables prennent en charge les outils d'installation de packages suivants :

  • conda install

  • pip install

Vous pouvez installer des packages à l'aide des méthodes suivantes :

À partir d'un bloc-notes, vous pouvez utiliser la syntaxe de la commande système (lignes commençant par !) pour installer des packages, par exemple !pip install et !conda install. Plus récemment, de nouvelles commandes ont été ajoutées à IPython : %pip et %conda. Ces commandes constituent la méthode recommandée pour installer des packages à partir d'un bloc-notes, car elles prennent correctement en compte l'environnement actif ou l'interpréteur utilisé. Pour de plus amples informations, veuillez consulter Add %pip and %conda magic functions.

Conda

Conda est un système de gestion de paquets open source et un système de gestion d'environnement, qui permet d'installer des packages et leurs dépendances. SageMaker prend en charge l'utilisation de Conda avec l'un des deux canaux principaux, le canal par défaut et le canal conda-forge. Pour de plus amples informations, veuillez consulter Conda channels. Le canal conda-forge est un canal communautaire où les contributeurs peuvent télécharger des packages.

Note

En raison de la façon dont Conda résout le graphique de dépendance, l'installation de packages à partir de conda-forge peut prendre beaucoup plus de temps (dans le pire des cas, jusqu'à 10 minutes).

L'AMI de deep learning est fourni avec de nombreux environnements conda et de nombreux packages préinstallés. En raison du nombre de packages préinstallés, il est difficile de trouver un ensemble de packages dont la compatibilité est garantie. Vous pouvez voir un avertissement « The environment is inconsistent, please check the package plan carefully » (L'environnement est incohérent, veuillez vérifier attentivement le plan du package). Malgré cet avertissement, SageMaker garantit que tous les environnements SageMaker fournis sont corrects. SageMaker ne peut garantir que les packages installés par l'utilisateur fonctionneront correctement.

Note

Les utilisateurs d' SageMakerAmazon EMR AWS Deep Learning AMI et d'Amazon EMR peuvent accéder au référentiel commercial Anaconda sans obtenir de licence commerciale jusqu'au 1er février 2024 lorsqu'ils utilisent Anaconda dans ces services. Pour toute utilisation en dehors de ces trois services, les clients sont tenus de déterminer leurs propres exigences en matière de licence Anaconda.

Conda dispose de deux méthodes pour activer les environnements : conda activate/deactivate et source activate/deactivate. Pour de plus amples informations, veuillez consulter Should I use 'conda activate' or 'source activate' in Linux.

SageMaker prend en charge le déplacement des environnements Conda vers le volume Amazon EBS, qui est conservé lorsque l'instance est arrêtée. Les environnements ne sont pas conservés lorsque les environnements sont installés sur le volume racine, qui est le comportement par défaut. Pour un exemple de script de cycle de vie, voir persistent-conda-ebs.

Opérations conda prises en charge (voir note au bas de cette rubrique)
  • commande conda install d'un package dans un environnement unique

  • commande conda install d'un package dans tous les environnements

  • commande conda install d'un package R dans l'environnement R

  • Installation d'un package à partir du référentiel conda principal

  • Installation d'un package à partir de conda-forge

  • Modification de l'emplacement d'installation de Conda pour utiliser EBS

  • Prise en charge de conda activate et source activate

Pip

Pip est l'outil de facto pour l'installation et la gestion des packages Python. Pip recherche des packages sur l'index Python Package Index (PyPI) par défaut. Contrairement à Conda, pip ne dispose pas de la prise en charge de l'environnement intégrée, et n'est pas aussi complet que Conda lorsqu'il s'agit de packages avec des dépendances de bibliothèque native/système. Pip peut être utilisé pour installer des packages dans des environnements Conda.

Vous pouvez utiliser des référentiels de packages alternatifs avec pip au lieu de PyPI. Pour voir un exemple de script de cycle de vie, veuillez consulter on-start.sh.

Opérations pip prises en charge (voir la note au bas de cette rubrique)
  • Utilisation de pip pour installer un package sans environnement conda actif (installer les packages à l'ensemble du système)

  • Utilisation de pip pour installer un package dans un environnement conda

  • Utilisation de pip pour installer un package dans tous les environnements conda

  • Modification de l'emplacement d'installation de pip pour utiliser EBS

  • Utilisation d'un référentiel alternatif pour installer des packages avec pip

Non pris en charge

SageMaker vise à prendre en charge autant d'opérations d'installation de packages que possible. Toutefois, si les packages ont été installés par SageMaker ou DLAMI et que vous utilisez les opérations suivantes sur ces packages, cela peut rendre l'instance de votre bloc-notes instable :

  • Désinstallation

  • Rétrogradation

  • Mise à niveau

Nous ne fournissons pas de support pour l'installation de packages via yum install ou l'installation de packages R à partir de CRAN.

En raison de problèmes potentiels liés aux conditions ou aux configurations du réseau, ou à la disponibilité de Conda PyPi, nous ne pouvons pas garantir que les packages seront installés dans un délai fixe ou déterministe.

Note

Nous ne pouvons pas garantir le succès de l'installation d'un package. Une tentative d'installation d'un package dans un environnement avec des dépendances incompatibles peut entraîner un échec. Dans ce cas, vous devriez contacter le responsable de la bibliothèque pour voir s'il est possible de mettre à jour les dépendances du package. Vous pouvez également essayer de modifier l'environnement de manière à autoriser l'installation. Cependant, cette modification impliquera probablement la suppression ou la mise à jour des packages existants, ce qui signifie que nous ne pouvons plus garantir la stabilité de cet environnement.