AI Platform Training utilizza le immagini per configurare le VM che gestiscono le 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. L'upgrade delle immagini viene eseguito periodicamente per includere nuovi miglioramenti e funzionalità. Il controllo delle versioni di AI Platform Training ti consente di selezionare la configurazione giusta per lavorare con il tuo modello.
Note importanti sulla gestione 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 rilascio. Al termine del periodo di 12 mesi, non potrai 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ù sulle tempistiche di disponibilità per le versioni del runtime.
Informazioni sui numeri di versione
Le immagini utilizzate da AI Platform Training corrispondono alla versione di runtime di AI Platform Training. La versione del runtime utilizza il seguente formato:
major_version.minor_version
Versioni principali e secondarie
Vengono create periodicamente nuove versioni principali e secondarie per incorporare uno o più dei seguenti elementi:
- Uscite per:
- Sistema operativo
- Framework di machine learning supportati
- Modifiche o aggiornamenti alla funzionalità di AI Platform Training.
Una nuova versione principale potrebbe includere modifiche che provocano errori che richiedono aggiornamenti al codice scritto per le versioni precedenti. Una nuova versione minore non deve includere modifiche che provocano un errore e deve essere compatibile con le versioni precedenti di tutte le varianti della stessa versione principale.
Selezione delle versioni di runtime
Assicurati di selezionare la versione del runtime che supporta le versioni più recenti del tuo framework di machine learning e degli altri pacchetti in uso.
La prima versione di runtime di AI Platform Training che supporta 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 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 Python precedenti sono disponibili per determinate 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 utilizza la versione 1.15 o successiva del 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 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 di più 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:
- Creazione di un container personalizzato che preinstalla le dipendenze su un'immagine
- specifica i pacchetti PyPI come dipendenze per il pacchetto di addestramento
- caricare manualmente i file del pacchetto (tarball) e includere i relativi percorsi come input per l'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"]
Sono incluse le dipendenze dei pacchetti PyPI
Puoi specificare i pacchetti PyPI e le relative versioni come dipendenze per il pacchetto del trainer utilizzando la normale procedura di setuptools:
- Nella directory di primo livello dell'applicazione per formatori, includi un file
setup.py
. Quando chiami
setuptools.setup
in setup.py, passa un elenco di dipendenze e, facoltativamente, le relative versioni come parametroinstall_requires
. Questo filesetup.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, quindi puoi sostituire i pacchetti che fanno parte dell'immagine della versione di runtime con versioni più recenti o precedenti.
Caricare i file del pacchetto
Puoi includere file del pacchetto aggiuntivi nella richiesta del job di addestramento. Carichi i pacchetti su Cloud Storage e specifichi un elenco di pacchetti da installare su ogni istanza di addestramento. AI Platform Training installa tutti i pacchetti con pip
. I pacchetti progettati per altri gestori dei 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 separato da virgole dei percorsi di tutti
i pacchetti aggiuntivi. Tieni presente che l'elenco non può contenere spazi 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 utilizzato 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}
Specifica di versioni personalizzate di TensorFlow per l'addestramento
L'utilizzo di una versione di TensorFlow più recente rispetto all'ultima versione del runtime supportata su AI Platform Training è possibile per l'addestramento, ma non per la previsione.
Per utilizzare una versione di TensorFlow non ancora supportata come versione completa del runtime di AI Platform Training, includila come dipendenza personalizzata per il tuo trainer utilizzando uno dei seguenti approcci:
Specifica la versione di TensorFlow nel file
setup.py
come dipendenza PyPI. Includilo nell'elenco dei pacchetti richiesti come segue:REQUIRED_PACKAGES = ['tensorflow>=2.11']
Compila un file binario di TensorFlow dalle sorgenti, assicurandoti di seguire le istruzioni per TensorFlow con supporto solo per la CPU. Questo processo genera un pacchetto pip (file .whl) che puoi includere nella richiesta del job di addestramento aggiungendolo al tuo elenco di pacchetti.
La creazione di un file binario di TensorFlow da includere come pacchetto personalizzato è un approccio più complesso, ma il vantaggio è che puoi utilizzare gli aggiornamenti di TensorFlow più recenti durante l'addestramento del modello.
Passaggi successivi
- Esamina l'elenco delle versioni del runtime supportate.