Gestione delle versioni di runtime

AI Platform Training utilizza le immagini per configurare le VM che gestiscono richieste di addestramento e previsione nel cloud. Queste immagini contengono la base sistema operativo, pacchetti tecnologici di base, pacchetti pip (Python librerie) e pacchetti del sistema operativo. Le immagini vengono aggiornate periodicamente a includere nuovi miglioramenti e nuove funzionalità. Controllo delle versioni di AI Platform Training consente di selezionare la configurazione giusta per lavorare con il tuo modello.

Note importanti sul controllo delle versioni

  • Devi sempre testare attentamente i job di addestramento e i modelli quando passi a una nuova versione di runtime, indipendentemente dal fatto che si tratti di un aggiornamento maggiore o minore.
  • AI Platform Training supporta ogni versione del runtime per 12 mesi dopo il suo . Dopo il periodo di 12 mesi, non potrai più creare job di addestramento, per i job di previsione batch o per le versioni del modello che utilizzano la versione del runtime.

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

    Scopri di più sulla cronologia della disponibilità per il runtime le versioni secondarie.

Informazioni sui numeri di versione

Le immagini utilizzate da AI Platform Training corrispondono Versione runtime di AI Platform Training. La versione del runtime utilizza seguente formato:

major_version.minor_version

Versioni maggiori e minori

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

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

Una nuova versione principale può includere modifiche che provocano un errore e che richiedono aggiornamenti del codice rispetto alle versioni precedenti. Una nuova versione secondaria non deve includere che interrompono l'esecuzione di modifiche ed essere compatibile con le versioni precedenti la stessa versione principale.

Selezione delle versioni del runtime

Assicurati di selezionare la versione del runtime che supporta le versioni più recenti di il tuo framework di machine learning e altri pacchetti che stai utilizzando.

La prima versione del runtime di AI Platform Training che fornisce supporto per scikit-learn e XGBoost sono versioni 1,13.

Puoi vedere i dettagli di ogni versione nel Elenco delle versioni di AI Platform Training.

Impostazione della versione del runtime

Assicurati di impostare la versione del 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 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 di più sull'invio di un job di addestramento nell'API TrainingInput.

Impostazione della versione Python

Python 3.7 è disponibile nel runtime versione 1.15 e successive.

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

  • Python 3.5 è disponibile se utilizzi il runtime di AI Platform Training dalla versione 1.13 alla 1.14.

  • Python 2.7 è disponibile nelle versioni del 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 utilizzare Python 3.7 per l'addestramento, specifica --python-version 3.7 e usa runtime versione 1.15 o successive:

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 una data 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}

Ulteriori dettagli sull'invio di un job di addestramento sono disponibili nel API TrainingInput.

Utilizzo di pacchetti personalizzati

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

  • creando un container personalizzato che preinstalla le tue dipendenze un'immagine
  • specifica i pacchetti PyPI come dipendenze per il pacchetto di addestramento
  • il caricamento manuale dei file dei pacchetti (tarball) e l'inclusione dei relativi percorsi come input di addestramento

Creazione di un container personalizzato

Anziché 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"]

Inclusione delle dipendenze del pacchetto PyPI

Puoi specificare i pacchetti PyPI e le relative versioni come dipendenze per il pacchetto del trainer utilizzando la normale procedura di setuptools:

  1. Nella directory di primo livello dell'applicazione di addestramento, includi un setup.py .
  2. Quando chiami setuptools.setup in setup.py, passa un elenco di dipendenze e, facoltativamente, le relative versioni come parametro install_requires. Questo il file setup.py di esempio illustra 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, quindi puoi sostituire i pacchetti che fanno parte dell'immagine della versione di runtime con versioni più recenti o precedenti.

Caricare i file dei pacchetti

Puoi includere file di pacchetti aggiuntivi come parte della richiesta del job di addestramento. Tu caricare i pacchetti su Cloud Storage e specificare un elenco di pacchetti su ogni istanza di addestramento. Installazioni AI Platform Training tutti i pacchetti con pip. I pacchetti progettati per altri gestori di pacchetti non sono supportati.

gcloud

Usa il flag --packages quando esegui gcloud ai-platform jobs submit training . Imposta il valore su un elenco separato da virgole di percorsi di tutte pacchetti aggiuntivi. Tieni presente che l'elenco non può contenere spazi vuoti tra le voci corrispondenti.

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

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

Specifica di versioni personalizzate di TensorFlow per l'addestramento

Utilizzo di una versione di TensorFlow più recente rispetto all'ultimo runtime supportato di AI Platform Training è possibile per l'addestramento, la previsione.

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

  1. Specifica la versione di TensorFlow nel file setup.py come dipendenza PyPI. Includila nell'elenco dei pacchetti richiesti come segue:

     REQUIRED_PACKAGES = ['tensorflow>=2.11']
    
  2. Crea un file binario TensorFlow da origini, assicurati di seguire le istruzioni relative a TensorFlow con supporto della CPU . Questo processo genera un pacchetto pip (file .whl) che puoi includere nella richiesta di lavoro di addestramento aggiungendolo al tuo elenco di pacchetti.

La creazione di un file binario TensorFlow da includere come pacchetto personalizzato è una procedura ma il vantaggio è che puoi usare la versione più recente vengono aggiornati durante l'addestramento del modello.

Passaggi successivi