AI Platform Training usa imágenes para configurar las VM que atienden tus solicitudes de entrenamiento y predicción en la nube. Estas imágenes contienen el sistema operativo base, los paquetes de tecnología principal, los paquetes de pip (bibliotecas de Python) y los paquetes de sistema operativo. Las imágenes se actualizan de forma periódica a fin de que incluyan las características y las mejoras nuevas. El control de versiones de AI Platform Training te permite seleccionar la configuración adecuada para trabajar con tu modelo.
Notas importantes sobre el control de versiones
- Siempre debes probar los modelos y trabajos de entrenamiento a fondo cuando cambias a una nueva versión del entorno de ejecución, sin importar si se trata de una actualización principal o secundaria.
AI Platform Training es compatible con cada versión del entorno de ejecución durante los 12 meses posteriores a su lanzamiento. Después del período de 12 meses, ya no podrás crear trabajos de entrenamiento, trabajos de predicción por lotes ni versiones de modelos que usen esa versión del entorno de ejecución.
A los veinticuatro meses del lanzamiento de la versión del entorno de ejecución, AI Platform Prediction borra todas las versiones de modelos que usan la versión del entorno de ejecución.
Obtén más información sobre el plazo de disponibilidad de las versiones del entorno de ejecución.
Información sobre los números de versión
Las imágenes que usa AI Platform Training corresponden a la versión del entorno de ejecución de AI Platform Training. La versión del entorno de ejecución usa el siguiente formato:
major_version.minor_version
Versiones principales y secundarias
Se crean versiones principales y secundarias de forma periódica para incorporar una o más de las siguientes opciones:
- Actualizaciones de lo siguiente
- :
- Sistema operativo
- Marcos de trabajo de aprendizaje automático compatibles
- Cambios o actualizaciones de las funciones de AI Platform Training.
Una versión principal nueva puede incluir cambios rotundos que requieran actualizaciones del código escrito para las versiones anteriores. Una versión secundaria nueva no debería incluir cambios rotundos y debería ser compatible con todas las variaciones de la misma versión principal.
Cómo seleccionar versiones del entorno de ejecución
Asegúrate de seleccionar la versión del entorno de ejecución que admita las últimas versiones de tu framework de aprendizaje automático y otros paquetes que uses.
La versión más antigua del entorno de ejecución de AI Platform Training que es compatible con scikit-learn y XGBoost es la versión 1.13.
Puedes ver los detalles de cada versión en la lista de versiones de AI Platform Training.
Configura la versión del entorno de ejecución
Asegúrate de configurar la versión del entorno de ejecución cuando envíes una solicitud de trabajo de entrenamiento:
gcloud
Usa la marca --runtime-version
cuando ejecutes el comandogcloud 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
Configura la runtimeVersion
cuando definas tu solicitud de trabajo de entrenamiento:
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}
Obtén más detalles sobre cómo enviar un trabajo de entrenamiento en la API TrainingInput.
Configura la versión de Python
Python 3.7 está disponible en las versiones 1.15 y posteriores del entorno de ejecución.
Las versiones anteriores de Python están disponibles para ciertas versiones de entorno de ejecución:
Python 3.5 está disponible cuando usas una de las versiones desde la 1.13 a la 1.14 del entorno de ejecución de AI Platform Training.
Python 2.7 está disponible en las versiones 1.15 y anteriores del entorno de ejecución.
En el siguiente ejemplo, se muestra cómo especificar Python 3.7 para el entrenamiento. Puedes especificar Python 3.5 o Python 2.7 de manera similar.
gcloud
Si deseas usar Python 3.7 para el entrenamiento, especifica --python-version 3.7
y usa las versiones 1.15 o posteriores del entorno de ejecución.
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
Si deseas usar Python 3.7 para el entrenamiento, configura runtimeVersion
como la versión '1.15'
o una versión posterior y configura pythonVersion
como '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}
Obtén más detalles sobre cómo enviar un trabajo de entrenamiento en la API TrainingInput.
Usa paquetes personalizados
Hay tres formas de cambiar los paquetes de tus instancias de entrenamiento:
- Crea un contenedor personalizado que instale previamente tus dependencias en una imagen.
- Especifica los paquetes PyPI como dependencias de tu paquete de entrenador.
- subir manualmente los archivos de paquetes (tarballs) y luego incluir sus rutas como entrada de entrenamiento
Compila un contenedor personalizado
En lugar de utilizar una versión del entorno de ejecución, puedes crear un contenedor de Docker para incluir tus dependencias. Obtén más información sobre cómo usar contenedores personalizados.
# 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"]
Incluye dependencias de paquetes de PyPI
Puedes especificar paquetes de PyPI y sus versiones como dependencias de tu paquete de entrenador mediante el proceso normal de herramientas de configuración:
- En el directorio de nivel superior de la aplicación entrenadora, incluye un archivo
setup.py
. Cuando llames a
setuptools.setup
en setup.py, pasa una lista de dependencias y, opcionalmente, sus versiones como el parámetroinstall_requires
. Este archivosetup.py
de ejemplo muestra el siguiente procedimiento: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 fuerza la reinstalación de los paquetes, por lo que puedes anular los paquetes que son parte de la imagen de la versión del entorno de ejecución con versiones más nuevas o más antiguas.
Sube tus propios archivos de paquetes
Puedes incluir archivos de paquetes adicionales como parte de tu solicitud de trabajo de entrenamiento. Sube los paquetes a Cloud Storage y especifica una lista de los paquetes que se deben instalar en cada instancia de entrenamiento. AI Platform Training instala todos los paquetes con pip
. No se admiten los paquetes diseñados para otros administradores de paquetes.
gcloud
Usa la marca --packages
cuando ejecutes el comandogcloud ai-platform jobs submit training
. Configura el valor en una lista separada por comas de las rutas a todos los paquetes adicionales. Ten en cuenta que la lista no puede contener espacios en blanco entre las entradas.
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
Agrega todos los paquetes adicionales a la lista que usas para el valor de packageUris
en el objeto 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}
Especifica versiones personalizadas de TensorFlow para entrenamiento
Para el entrenamiento, es posible usar una versión más reciente de TensorFlow que la última versión del entorno de ejecución compatible en AI Platform Training, pero no para la predicción.
Si deseas usar una versión de TensorFlow que todavía no es compatible con una versión completa del entorno de ejecución de AI Platform Training, inclúyela como una dependencia personalizada para tu entrenador mediante uno de los siguientes métodos:
Especifica la versión de TensorFlow en tu archivo
setup.py
como dependencia de PyPI. Inclúyela en tu lista de paquetes obligatorios de la siguiente manera:REQUIRED_PACKAGES = ['tensorflow>=2.11']
Compila un binario de TensorFlow a partir de las fuentes y asegúrate de seguir las instrucciones para TensorFlow solo con asistencia de CPU. Este proceso produce un paquete pip (archivo .whl) que puedes incluir en tu solicitud de trabajo de entrenamiento si lo agregas a tu lista de paquetes.
La compilación de un binario de TensorFlow para incluirlo como un paquete personalizado es un enfoque más complejo, pero la ventaja es que puedes usar las actualizaciones más recientes de TensorFlow cuando entrenas tu modelo.