AI Platform Training se sert d'images pour configurer les VM qui traitent vos requêtes d'entraînement et de prédiction dans le cloud. Ces images contiennent le système d'exploitation de base, les packages technologiques principaux, les packages pip (bibliothèques Python) et les packages de système d'exploitation. Les images sont mises à jour périodiquement de façon à inclure les dernières améliorations et fonctionnalités. La gestion des versions d'AI Platform Training vous permet de sélectionner la configuration appropriée pour votre modèle.
Remarques importantes sur la gestion des versions
- Vous devez tester de manière approfondie vos tâches et modèles d'entraînement chaque fois que vous passez à une nouvelle version de l'environnement d'exécution, qu'il s'agisse d'une mise à jour majeure ou mineure.
AI Platform Training est compatible avec chaque version d'exécution pendant 12 mois après sa sortie. Au terme de cette période de 12 mois, vous ne pouvez plus créer de tâches d'entraînement, de tâches de prédiction par lot ni de versions de modèle utilisant la version d'exécution.
Vingt-quatre mois après la sortie de la version d'exécution, AI Platform Prediction supprime toutes les versions de modèle qui utilisent la version d'exécution.
En savoir plus sur la chronologie des disponibilités pour les versions d'exécution
Comprendre les numéros de version
Les images dont se sert AI Platform Training correspondent à la version d'exécution d'AI Platform Training. Le format utilisé pour désigner une version d'exécution est le suivant :
major_version.minor_version
Versions majeures et mineures
De nouvelles versions majeures et mineures sont créées périodiquement pour intégrer un ou plusieurs de ces éléments :
- Versions des logiciels suivants :
- Système d'exploitation
- Frameworks de machine learning compatibles
- Modifications ou mises à jour des fonctionnalités d'AI Platform Training
Une nouvelle version majeure peut inclure des modifications importantes nécessitant des mises à jour du code écrit par rapport aux versions précédentes. Une nouvelle version mineure ne doit pas comprendre de modifications importantes et doit être rétrocompatible avec toutes les variantes de la même version majeure.
Sélectionner des versions d'exécution
Veillez à sélectionner la version d'exécution compatible avec les dernières versions de votre framework de machine learning et des autres packages que vous utilisez.
La version d'exécution la plus ancienne d'AI Platform Training compatible avec scikit-learn et XGBoost est la version 1.13.
Vous pouvez consulter les détails de chaque version dans la liste des versions d'AI Platform Training.
Définir la version d'exécution
Veillez à définir la version d'exécution à utiliser lorsque vous envoyez une requête de tâche d'entraînement :
gcloud
Utilisez l'indicateur --runtime-version
lorsque vous exécutez la commande gcloud ai-platform jobs submit training
.
gcloud ai-platform jobs submit training my_job \ --module-name trainer.task \ --job-dir gs://my/training/job/directory \ --package-path /path/to/my/project/trainer \ --region us-central1 \ --runtime-version 2.11 \ --python-version 3.7
Python
Spécifiez runtimeVersion
lorsque vous définissez votre requête de tâche d'entraînement :
training_inputs = {'scaleTier': 'BASIC', 'packageUris': ['gs://my/trainer/path/package-0.0.0.tar.gz'], 'pythonModule': 'trainer.task' 'args': ['--arg1', 'value1', '--arg2', 'value2'], 'region': 'us-central1', 'jobDir': 'gs://my/training/job/directory', 'runtimeVersion': '2.11', 'pythonVersion': '3.7'} job_spec = {'jobId': my_job_name, 'trainingInput': training_inputs}
Obtenez plus d'informations sur la soumission d'une tâche d'entraînement dans l'API TrainingInput.
Définir la version Python
Python 3.7 est disponible dans la version d'exécution 1.15 et les versions ultérieures.
Les anciennes versions de Python sont disponibles pour certaines versions d'exécution :
Python 3.5 est disponible dans la version d'exécution 1.13 à 1.14 d'AI Platform Training.
Python 2.7 est disponible dans la version d'exécution 1.15 et les versions antérieures.
L'exemple suivant montre comment spécifier Python 3.7 pour l'entraînement. Vous pouvez spécifier Python 3.5 ou Python 2.7 de la même manière.
gcloud
Pour utiliser Python 3.7 pour l'entraînement, spécifiez --python-version 3.7
et utilisez la version d'exécution 1.15 ou une version ultérieure :
gcloud ai-platform jobs submit training my_job \ --module-name trainer.task \ --job-dir gs://my/training/job/directory \ --package-path /path/to/my/project/trainer \ --python-version 3.7 \ --region us-central1 \ --runtime-version 2.11
Python
Pour utiliser Python 3.7 pour l'entraînement, définissez runtimeVersion
sur la version '1.15'
ou une version ultérieure et définissez pythonVersion
sur '3.7'
:
training_inputs = {'scaleTier': 'BASIC', 'packageUris': ['gs://my/trainer/path/package-0.0.0.tar.gz'], 'pythonModule': 'trainer.task' 'args': ['--arg1', 'value1', '--arg2', 'value2'], 'region': 'us-central1', 'jobDir': 'gs://my/training/job/directory', 'runtimeVersion': '2.11', 'pythonVersion': '3.7'} job_spec = {'jobId': my_job_name, 'trainingInput': training_inputs}
Obtenez plus d'informations sur la soumission d'une tâche d'entraînement dans l'API TrainingInput.
Utiliser des packages personnalisés
Pour modifier les packages installés sur vos instances d'entraînement, trois possibilités s'offrent à vous :
- Vous pouvez créer un conteneur personnalisé qui préinstalle vos dépendances sur une image.
- Vous pouvez spécifier des packages PyPI en tant que dépendances du package de votre application d'entraînement.
- Vous pouvez importer manuellement des fichiers de package (au format "tarball") et ajouter leur chemin d'accès dans les données d'entrée d'entraînement.
Créer un conteneur personnalisé
Au lieu d'utiliser une version d'exécution, vous pouvez créer un conteneur Docker pour inclure vos dépendances. Pour en savoir plus, reportez-vous à la section Utiliser des conteneurs personnalisés.
# Specifies base image and tag FROM image:tag WORKDIR /root # Installs additional packages RUN pip install pkg1 pkg2 pkg3 # Downloads training data RUN curl https://example-url/path-to-data/data-filename --output /root/data-filename # Copies the trainer code to the docker image. COPY your-path-to/model.py /root/model.py COPY your-path-to/task.py /root/task.py # Sets up the entry point to invoke the trainer. ENTRYPOINT ["python", "task.py"]
Inclure des dépendances de package PyPI
Vous pouvez spécifier les packages PyPI et leurs versions en tant que dépendances de votre package d'application d'entraînement, suivant le processus normal de setuptools :
- Dans le répertoire de premier niveau de votre application d'entraînement, incluez un fichier
setup.py
. Lorsque vous appelez
setuptools.setup
dans le fichier setup.py, transmettez la liste des dépendances et éventuellement leurs versions comme paramètreinstall_requires
. Cet exemple de fichiersetup.py
illustre la procédure :from setuptools import find_packages from setuptools import setup REQUIRED_PACKAGES = ['some_PyPI_package>=1.5', 'another_package==2.6'] setup( name='trainer', version='0.1', install_requires=REQUIRED_PACKAGES, packages=find_packages(), include_package_data=True, description='Generic example trainer package with dependencies.')
AI Platform Training force la réinstallation des packages afin que vous puissiez remplacer les packages inclus dans l'image de la version d'exécution par des versions plus récentes ou plus anciennes.
Importer vos propres fichiers de package
Vous pouvez inclure des fichiers de package supplémentaires dans votre requête de tâche d'entraînement. Importez les packages dans Cloud Storage et spécifiez la liste des packages à installer sur chaque instance d'entraînement. AI Platform Training installe tous les packages avec pip
. Les packages conçus pour d'autres gestionnaires de packages ne sont pas acceptés.
gcloud
Utilisez l'indicateur --packages
lorsque vous exécutez la commande gcloud ai-platform jobs submit training
. Attribuez-lui comme valeur la liste des chemins d'accès de tous les packages supplémentaires, séparés par des virgules. Notez que cette liste ne doit contenir aucun espace entre les entrées.
gcloud ai-platform jobs submit training my_job \ --staging-bucket gs://my-bucket \ --package-path /path/to/my/project/trainer \ --module-name trainer.task \ --runtime-version 2.11 \ --python-version 3.7 \ --packages dep1.tar.gz,dep2.whl
Python
Ajoutez tous les packages supplémentaires à la liste utilisée comme valeur packageUris
dans l'objet TrainingInput.
training_inputs = {'scaleTier': 'BASIC', 'packageUris': ['gs://my/trainer/path/package-0.0.0.tar.gz', 'gs://my/dependencies/path/dep1.tar.gz', 'gs://my/dependencies/path/dep2.whl'], 'pythonModule': 'trainer.task' 'args': ['--arg1', 'value1', '--arg2', 'value2'], 'region': 'us-central1', 'jobDir': 'gs://my/training/job/directory', 'runtimeVersion': '2.11', 'pythonVersion': '3.7'} job_spec = {'jobId': my_job_name, 'trainingInput': training_inputs}
Spécifier des versions personnalisées de TensorFlow pour l'entraînement
Il est possible d'utiliser une version de TensorFlow plus récente que la dernière version d'exécution compatible sur AI Platform Training pour l'entraînement, mais pas pour la prédiction.
Pour utiliser une version de TensorFlow qui n'est pas encore acceptée en tant que version d'exécution complète d'AI Platform Training, incluez-la en tant que dépendance personnalisée de votre application d'entraînement selon l'une des méthodes suivantes :
Spécifiez la version de TensorFlow dans votre fichier
setup.py
en tant que dépendance PyPI. Incluez-la dans votre liste de packages requis comme indiqué ci-dessous :REQUIRED_PACKAGES = ['tensorflow>=2.11']
Créez un binaire TensorFlow à partir des sources en veillant à bien suivre les instructions pour compiler TensorFlow pour processeurs uniquement. Ce processus permet d'obtenir un package pip (fichier .whl) que vous pouvez inclure dans votre requête de tâche d'entraînement en l'ajoutant à votre liste de packages.
La création d'un binaire TensorFlow à inclure en tant que package personnalisé est une approche plus complexe. Cependant, l'avantage est que vous pouvez utiliser les mises à jour TensorFlow les plus récentes pour entraîner votre modèle.
Étape suivante
- Consultez la liste des versions d'exécution compatibles.