Gestione delle versioni di runtime

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

AI Platform Training utilizza le immagini per configurare le VM per la gestione delle tue richieste di addestramento e previsione nel cloud. Queste immagini contengono il sistema operativo di base, i pacchetti di tecnologia di base, i pacchetti pip (librerie Python) e i pacchetti del sistema operativo. Le immagini vengono aggiornate periodicamente per includere nuovi miglioramenti e funzionalità. Il controllo delle versioni di AI Platform Training permette di selezionare la configurazione corretta per lavorare con il modello.

Note importanti sul controllo delle versioni

  • Dovresti sempre testare accuratamente i job e i modelli di addestramento quando passi a una nuova versione di runtime, che si tratti di un aggiornamento importante o di minore importanza.
  • AI Platform Training supporta ogni versione di runtime per 12 mesi dopo il rilascio. Dopo questo periodo di 12 mesi, non puoi più creare job di addestramento, job di previsione batch o versioni del modello che utilizzano la versione di runtime.

    Ventiquattro mesi dopo il rilascio della versione di runtime, AI Platform Prediction elimina tutte le versioni del modello che utilizzano la versione di runtime.

    Scopri di più sulla tempistiche della disponibilità per le versioni di runtime.

Informazioni sui numeri di versione

Le immagini usate da AI Platform Training corrispondono alla versione di runtime di AI Platform Training. La versione di runtime utilizza il seguente formato:

major_version.minor_version

Versioni principali e secondarie

Vengono create periodicamente nuove versioni principali e secondarie per incorporare una o più delle seguenti funzionalità:

  • Release per:
    • Sistema operativo
    • Framework di machine learning supportati
  • Modifiche o aggiornamenti alla funzionalità AI Platform Training.

Una nuova versione principale può includere modifiche che richiedono aggiornamenti del codice scritti in base alle versioni precedenti. Una nuova versione secondaria non deve includere modifiche che provocano errori e deve essere compatibile con tutte le varianti della stessa versione principale.

Selezione delle versioni di runtime

Assicurati di selezionare la versione di runtime che supporta le versioni più recenti del framework di machine learning e gli altri pacchetti in uso.

La prima versione di runtime di AI Platform Training che fornisce supporto per scikit-learn e XGBoost è la versione 1.13.

Puoi visualizzare i dettagli di ogni versione nell'elenco delle versioni di AI Platform Training.

Impostazione della versione di runtime

Assicurati di impostare la versione di runtime quando invii una richiesta di job di addestramento:

gcloud

Utilizza il flag --runtime-version quando esegui il comando 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

Imposta il runtimeVersion quando definisci la richiesta del job di addestramento:

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}

Scopri ulteriori dettagli sull'invio di un job di addestramento nell'API TrainingInput.

Impostazione della versione di Python

Python 3.7 è disponibile nel runtime di versione 1.15 e successive.

Le versioni Python precedenti sono disponibili per alcune versioni di runtime:

  • Python 3.5 è disponibile quando utilizzi il runtime di AI Platform Training dalle versioni 1.13 a 1.14.

  • Python 2.7 è disponibile nelle versioni di runtime 1.15 e precedenti.

L'esempio seguente mostra come specificare Python 3.7 per l'addestramento. Puoi specificare Python 3.5 o Python 2.7 in modo simile.

gcloud

Per usare Python 3.7 per l'addestramento, specifica --python-version 3.7 e utilizza la versione 1.15 o successiva di runtime:

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

Per utilizzare Python 3.7 per l'addestramento, imposta runtimeVersion sulla versione '1.15' o successiva e imposta pythonVersion su '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}

Scopri ulteriori dettagli sull'invio di un job di addestramento nell'API TrainingInput.

Utilizzo di pacchetti personalizzati

Esistono tre modi per modificare i pacchetti nelle istanze di addestramento:

  • creando un container personalizzato che preinstalla le dipendenze da un'immagine.
  • specificando i pacchetti PyPI come dipendenze dal tuo pacchetto
  • il caricamento manuale dei file dei pacchetti (tarball) e il relativo percorso come addestramento

Creare un container personalizzato

Invece di utilizzare una versione di runtime, puoi creare un container Docker per includere le tue dipendenze. Scopri di più su come utilizzare i container personalizzati.

# 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"]

incluse le dipendenze pacchetto PyPI

Puoi specificare i pacchetti PyPI e le relative versioni come dipendenze dal pacchetto del formatore utilizzando la normale procedura degli strumenti di configurazione:

  1. Nella directory di primo livello della tua applicazione del formatore, includi un file setup.py.
  2. Quando chiami setuptools.setup in setup.py, trasmetti un elenco di dipendenze e, facoltativamente, le relative versioni come parametro install_requires. Questo file setup.py di esempio mostra la procedura:

    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 forza la reinstallazione dei pacchetti, in modo che tu possa sostituire i pacchetti che fanno parte dell'immagine della versione di runtime con versioni più recenti o precedenti.

Caricamento dei tuoi file di pacchetti

Puoi includere file di pacchetto extra nella tua richiesta di un job di addestramento. Carichi i pacchetti in Cloud Storage e specifichi un elenco di pacchetti da installare su ciascuna istanza di addestramento. AI Platform Training installa tutti i pacchetti con pip. I pacchetti progettati per altri gestori di pacchetti non sono supportati.

gcloud

Utilizza il flag --packages quando esegui il comando gcloud ai-platform jobs submit training. Imposta il valore su un elenco di percorsi separati da virgole di tutti i pacchetti aggiuntivi. L'elenco non può contenere spazi vuoti tra le voci.

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

Aggiungi tutti i pacchetti aggiuntivi all'elenco che utilizzi per il valore di packageUris nell'oggetto 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}

Specificare versioni personalizzate di TensorFlow per l'addestramento

L'uso di una versione di TensorFlow più recente rispetto all'ultima versione di runtime supportata su AI Platform Training è possibile per l'addestramento, ma non per le previsioni.

Per utilizzare una versione di TensorFlow non ancora supportata come versione completa del runtime di AI Platform Training, includila come dipendenza personalizzata per il formatore utilizzando uno dei seguenti approcci:

  1. Specifica la versione di TensorFlow nel file setup.py come dipendenza PyPI. Includilo nel tuo elenco di pacchetti obbligatori come segue:

     REQUIRED_PACKAGES = ['tensorflow>=2.11']
    
  2. Crea un programma binario di TensorFlow dalle origini, assicurandoti di seguire le istruzioni solo per TensorFlow con supporto per CPU. Questo processo genera un pacchetto pip (file .whl) che puoi includere nella tua richiesta del job di addestramento aggiungendolo al tuo elenco di pacchetti.

Creare un programma binario di TensorFlow da includere come pacchetto personalizzato è un approccio più complesso, ma il vantaggio è che puoi utilizzare gli aggiornamenti più recenti di TensorFlow durante l'addestramento del modello.

Passaggi successivi