Exemples de personnalisation des modèles d'environnement (avant l' 25.1.)
Suivez les exemples qui montrent comment ajouter des bibliothèques personnalisées via conda ou pip lorsque vous créez un modèle d'environnement, en utilisant les modèles fournis pour Python et R.
Ces exemples ne s'appliquent qu'à l' 24.1 d'exécution. Pour des exemples applicables à Runtime 25.1 et versions ultérieures, consultez Exemples de personnalisations de modèles d'environnement (à partir de 25.1 ).
- Vous pouvez utiliser
mambaà la place decondadans les exemples suivants. N'oubliez pas de cocher la case pour installer à partir demambasi vous ajoutez des chaînes ou des paquets à partir demambaau modèle d'environnement existant. - Le processus de création de runtimes de déploiement d' Watson Machine Learning s personnalisés peut être différent. Si vous souhaitez créer des environnements d'exécution personnalisés pour le déploiement d' Watson Machine Learning, consultez la section Personnalisation des environnements d'exécution pour le déploiement d' Watson Machine Learning.
Il existe des exemples pour :
- Ajouter
condades paquets - Ajouter
pipdes paquets - Combiner les
condapaquetspipet - Personnalisation des dépendances installées à partir de
pipdans un système isolé - Ajout de paquets complexes comportant des dépendances internes
- Ajout de
condapaquets pour les notebooks R - Définition des variables d'environnement
Conseils et astuces :
Ajouter des paquets Conda
Pour obtenir les dernières versions de pandas-profiling :
dependencies:
- pandas-profiling
Cette entrée équivaut à exécuter conda install pandas-profiling dans un bloc-notes.
Ajouter pip des paquets
Vous pouvez également personnaliser un environnement à l'aide de pip si un paquet particulier n'est pas disponible dans conda les canaux :
dependencies:
- pip:
- ibm_watsonx_ai
Cette entrée équivaut à exécuter pip install ibm_watsonx_ai dans un bloc-notes.
En réalité, cette personnalisation ne se limitera pas à l'installation du paquet pip spécifié. Par défaut, conda recherche également une nouvelle version de pip lui-même, puis l'installe. La vérification de toutes les dépendances conda implicites prend souvent plusieurs minutes et nécessite également plusieurs gigaoctets de mémoire. La personnalisation suivante permettra d'accélérer l'installation de pip:
channels:
- empty
- nodefaults
dependencies:
- pip:
- ibm_watsonx_ai
La conda chaîne empty ne propose aucun forfait. Il n'y a pas de pip paquet en particulier. conda n'essaiera pas d'installer pip et utilisera à la place la version déjà préinstallée. Notez que le mot-clé nodefaults dans la liste des canaux doit être associé à au moins un autre canal dans la liste. Sinon, le mot-clé sera ignoré silencieusement conda et les canaux par défaut seront utilisés.
Combiner les conda paquets pip et
Vous pouvez énumérer plusieurs paquets, à raison d'un paquet par ligne. Une seule personnalisation peut comporter à la fois conda des packages et pip des packages.
dependencies:
- pandas-profiling
- scikit-learn=0.20
- pip:
- ibm_watsonx_ai
- sklearn-pandas==1.8.0
Veuillez noter que la notation du modèle requis est sensible aux espaces en début de ligne. Chaque élément de la liste des conda paquets doit comporter deux espaces au début. Chaque élément de la liste des pip paquets doit être précédé de quatre espaces. La version d'un conda paquet doit être spécifiée à l'aide d'un seul symbole égal (=), tandis que la version d'un pip paquet doit être ajoutée à l'aide de deux symboles égaux (==).
Personnalisation des dépendances installées à partir de pip dans un système isolé
Si vous souhaitez personnaliser un environnement dans un système isolé qui n'a pas accès à un serveur de référentiel, que ce soit localement ou sur Internet, vous pouvez stocker le pip paquet dans le projet et spécifier la dépendance en utilisant le préfixe file:/.
La channels: configuration personnalisée peut pointer vers un canal local vide afin d'éviter conda d'essayer de récupérer des pip données à partir d'un référentiel externe.
Exemple de personnalisation :
channels:
- file:///project_data/data_asset/empty_conda_channel
- nodefaults
dependencies:
- pip:
- file:///project_data/data_asset/your-package-0.1.zip
Si nécessaire, vous pouvez configurer un canal conda vide en exécutant les commandes suivantes dans une cellule du bloc-notes Python :
channel_dir="/project_data/data_asset/empty_conda_channel"
!mkdir -p $channel_dir/noarch
with open(channel_dir+"/noarch/repodata.json","w") as f :
f.write('{ "channeldata_version": 1, "packages": {}, "subdirs": ["noarch"] }')
!bzip2 -k $channel_dir/noarch/repodata.json
Si l'administrateur de votre plateforme a téléchargé les paquets dans un répertoire d'un volume partagé :
Vérifiez que vous pouvez accéder à ce package (par exemple, le package
condaseawater) à partir d'une cellule du notebook :!conda search -c file:///cc-home/_global_/config/conda/custom-channel --override-channels !conda install seawater -c file:///cc-home/_global_/config/conda/custom-channel/custom_channelCréez un modèle d'environnement dans votre projet et ajoutez une personnalisation pour accéder au package. Notez que vous devez utiliser
nodefaultset nondefaultspour lescondacanauxmambaet :# Add conda channels below defaults, indented by two spaces and a hyphen. channels: - nodefaults - file:///cc-home/_global_/config/conda/custom-channel/custom_channel # Add conda packages here, indented by two spaces and a hyphen. dependencies: - seawater # Add pip packages here, indented by four spaces and a hyphen. # Remove the comments on the following lines and replace sample package name with your package name. # - pip: # - a_pip_package==1.0
Si vous ne souhaitez pas que le canal de fichiers soit accessible à tous les utilisateurs, vous pouvez pointer vers un emplacement dans un volume de stockage accessible uniquement à certains utilisateurs.
Ajout de paquets complexes comportant des dépendances internes
Lorsque vous ajoutez de nombreux paquets ou un paquet complexe comportant de nombreuses dépendances internes, conda l'installation peut prendre beaucoup de temps, voire s'arrêter sans renvoyer de message d'erreur. Pour éviter cela :
- Spécifiez les versions des paquets que vous souhaitez ajouter. Cela réduit l'espace de recherche pour
condarésoudre les dépendances. - Augmentez la capacité mémoire de l'environnement.
- Utilisez un canal spécifique au lieu des canaux par
condadéfaut définis dans le.condarcfichier. Cela évite d'effectuer de longues recherches dans des canaux volumineux. Voir Personnalisation aveccondaetmamba.
Exemple de personnalisation qui n'utilise pas les canaux par conda défaut :
# get latest version of the prophet package from the conda-forge channel
channels:
- conda-forge
- nodefaults
dependencies:
- prophet
Cette personnalisation correspond à la commande suivante dans un bloc-notes :
!conda install -c conda-forge --override-channels prophet -y
Ajouter des paquets Conda pour les notebooks R
L'exemple suivant vous montre comment créer une personnalisation qui ajoute conda des paquets à utiliser dans un notebook R :
channels:
- defaults
dependencies:
- r-plotly
Cette personnalisation correspond à la commande suivante dans un bloc-notes :
print(system("conda install r-plotly", intern=TRUE))
Les noms des paquets R commencent conda généralement par le préfixe r-. Si vous utilisez simplement plotly dans votre personnalisation, l'installation réussira, mais le package Python sera installé à la place du package R. Si vous essayez ensuite d'utiliser le package dans votre code R comme dans library(plotly), cela renverra une erreur.
Définition des variables d'environnement
Vous pouvez définir des variables d'environnement dans votre environnement en ajoutant une variables section au modèle de personnalisation du logiciel, comme illustré dans l'exemple suivant :
variables:
my_var: my_value
HTTP_PROXY: https://myproxy:3128
HTTPS_PROXY: https://myproxy:3128
NO_PROXY: cluster.local
Cet exemple montre également que vous pouvez utiliser la variables section pour définir un serveur proxy pour un environnement.
Lors de l'installation de paquets, conda n'utilise pas les variables HTTP_PROXY et HTTPS_PROXY configurées dans l'environnement. Si vous souhaitez configurer conda pour utiliser un serveur proxy, demandez à l'administrateur de votre plateforme de le configurer pour vous.
Limitation : vous ne pouvez pas remplacer les variables d'environnement existantes, par exemple LD_LIBRARY_PATH, en utilisant cette approche. Si vous souhaitez remplacer des variables existantes, vous pouvez demander à l'administrateur de votre plateforme de personnaliser la définition d'exécution et de la télécharger pour vous.
Meilleures pratiques
Pour éviter les problèmes liés aux paquets manquants et aux dépendances conflictuelles, commencez par installer manuellement les paquets dont vous avez besoin à l'aide d'un notebook dans un environnement de test. De cette manière, vous pouvez vérifier de manière interactive si les paquets peuvent être installés sans erreur. Après avoir vérifié que les paquets sont correctement installés, créez une personnalisation pour votre environnement de développement ou de production et ajoutez les paquets au modèle de personnalisation.