AI Platform Training verwendet Images, um die VMs zu konfigurieren, die Ihre Trainings- und Vorhersageanfragen in der Cloud ausführen. Diese Images enthalten das Basisbetriebssystem, Kerntechnologiepakete, pip-Pakete (Python-Bibliotheken) und Betriebssystempakete. Die Images werden regelmäßig aktualisiert, um neue Verbesserungen und Funktionen einzubinden. Mithilfe der AI Platform Training-Versionsverwaltung können Sie die richtige Konfiguration für die Arbeit mit Ihrem Modell auswählen.
Wichtige Hinweise zu Versionen
- Testen Sie die Trainingsjobs und Modelle immer gründlich, nachdem Sie auf eine neue Laufzeitversion umgestellt haben, unabhängig davon, ob es sich um eine Haupt- oder Nebenversion handelt.
AI Platform Training unterstützt jede Laufzeitversion nach ihrer Veröffentlichung zwölf Monate lang. Nach Ablauf der zwölf Monate können Sie keine Trainingsjobs, Batchvorhersagejobs oder Modellversionen mehr erstellen, die die Laufzeitversion verwenden.
24 Monate nach der Veröffentlichung der Laufzeitversion löscht AI Platform Prediction alle Modellversionen, die die Laufzeitversion verwenden.
Weitere Informationen zur zeitlichen Verfügbarkeit für Laufzeitversionen
Informationen zu Versionsnummern
Die in AI Platform Training verwendeten Images entsprechen der AI Platform Training-Laufzeitversion. Für die Laufzeitversion gilt das folgende Format:
major_version.minor_version
Haupt- und Nebenversionen
Neue Haupt- und Nebenversionen werden regelmäßig für mindestens einen der folgenden Zwecke erstellt:
- Versionen für:
- Betriebssystem
- Unterstützte Frameworks für maschinelles Lernen
- Änderungen oder Aktualisierungen der AI Platform Training-Funktionalität
Eine neue Hauptversion kann wichtige Änderungen enthalten, sodass Code, der für Vorgängerversionen geschrieben wurde, aktualisiert werden muss. Neue Nebenversionen sollten keine wichtigen Änderungen enthalten und mit allen Varianten derselben Hauptversion abwärtskompatibel sein.
Laufzeitversionen auswählen
Wählen Sie die Laufzeitversion aus, die die neuesten Versionen Ihres ML-Framework und anderer von Ihnen verwendeter Pakete unterstützt.
Version 1.13 ist die früheste AI Platform Training-Laufzeitversion, die Unterstützung für scikit-learn und XGBoost bietet.
Die Details der einzelnen Versionen finden Sie in der AI Platform Training-Versionsliste.
Laufzeitversion festlegen
Wenn Sie eine Trainingsjobanfrage senden, sollten Sie unbedingt die Laufzeitversion festlegen:
gcloud
Verwenden Sie das Flag --runtime-version
, wenn Sie den Befehl gcloud ai-platform jobs submit training
ausführen.
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
Geben Sie bei der Definition Ihrer Trainingsjobanfrage die runtimeVersion
an:
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}
Weitere Informationen zum Senden von Trainingsjobs finden Sie unter TrainingInput API.
Python-Version festlegen
Python 3.7 ist in der Laufzeitversion 1.15 und höher verfügbar.
Ältere Python-Versionen sind für bestimmte Laufzeitversionen verfügbar:
Python 3.5 ist verfügbar, wenn Sie die AI Platform Training-Laufzeitversion 1.13 bis 1.14 verwenden.
Python 2.7 ist in den Laufzeitversionen 1.15 und niedriger verfügbar.
Das folgende Beispiel zeigt, wie Python 3.7 für das Training festgelegt wird. Sie können Python 3.5 oder Python 2.7 auf ähnliche Weise angeben.
gcloud
Wenn Sie Python 3.7 für das Training verwenden möchten, geben Sie --python-version 3.7
an und verwenden Sie die Laufzeitversion 1.15 oder höher:
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
Wenn Sie für das Training Python 3.7 verwenden möchten, geben Sie als runtimeVersion
eine Version ab '1.15'
und als pythonVersion
die Version '3.7'
an:
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}
Weitere Informationen zum Senden von Trainingsjobs finden Sie unter TrainingInput API.
Benutzerdefinierte Pakete verwenden
Sie haben drei Möglichkeiten, die Pakete auf Ihren Trainingsinstanzen zu ändern:
- Sie erstellen einen benutzerdefinierten Container, der Ihre Abhängigkeiten für ein Image vorinstalliert.
- Sie geben PyPI-Pakete als Abhängigkeiten für Ihr Trainerpaket an.
- Sie laden Paketdateien (Tarballs) manuell hoch und fügen ihre Pfade als Trainingseingabe hinzu.
Benutzerdefinierten Container erstellen
Anstatt eine Laufzeitversion zu verwenden, können Sie einen Docker-Container erstellen, der Ihre Abhängigkeiten enthält. Weitere Informationen zur Verwendung von benutzerdefinierten Containern
# 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"]
PyPI-Paketabhängigkeiten einbeziehen
Sie können PyPI-Pakete und ihre Versionen mit dem normalen "setuptools"-Prozess als Abhängigkeiten des Trainerpakets angeben:
- Fügen Sie die Datei
setup.py
in das oberste Verzeichnis der Traineranwendung ein. Übergeben Sie beim Aufrufen von
setuptools.setup
in "setup.py" eine Liste der Abhängigkeiten und optional ihrer Versionen mit dem Parameterinstall_requires
. Das Vorgehen wird in folgendem Beispiel fürsetup.py
veranschaulicht: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 erzwingt die Neuinstallation von Paketen, sodass Sie Pakete im Image der Laufzeitversion durch neuere oder ältere Versionen überschreiben können.
Eigene Paketdateien hochladen
Sie können zusätzliche Paketdateien in die Trainingsjobanfrage einbinden. Sie laden die Pakete in Cloud Storage hoch und geben eine Liste der Pakete an, die auf jeder Trainingsinstanz installiert werden sollen. AI Platform Training installiert alle Pakete mit pip
. Pakete, die für andere Paketmanager konzipiert sind, werden nicht unterstützt.
gcloud
Verwenden Sie das Flag --packages
, wenn Sie den Befehl gcloud ai-platform jobs submit training
ausführen. Geben Sie den Wert als eine durch Kommas getrennte Liste der Pfade zu allen zusätzlichen Paketen an. Zwischen den Einträgen in der Liste dürfen keine Leerzeichen stehen.
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
Nehmen Sie alle zusätzlichen Pakete in die Liste auf, die Sie als Wert für packageUris
im Objekt "TrainingInput" verwenden.
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}
Benutzerdefinierte Versionen von TensorFlow für das Training angeben
Die Verwendung einer neueren Version von TensorFlow als letzte unterstützte Laufzeitversion in AI Platform Training ist für das Training möglich, nicht aber für die Vorhersage.
Wenn Sie eine TensorFlow-Version verwenden möchten, die noch nicht vollständig als AI Platform Training-Laufzeitversion unterstützt wird, schließen Sie diese mit einer der folgenden Methoden als benutzerdefinierte Abhängigkeit für Ihren Trainer ein:
Geben Sie die TensorFlow-Version in der Datei
setup.py
als PyPI-Abhängigkeit an. Nehmen Sie sie so in die Liste der erforderlichen Pakete auf:REQUIRED_PACKAGES = ['tensorflow>=2.11']
Erstellen Sie aus Quellen eine TensorFlow-Binärdatei und befolgen Sie dabei unbedingt die Anleitung für TensorFlow nur mit CPU-Unterstützung. Dieser Prozess liefert ein pip-Paket (eine WHL-Datei), das Sie in die Trainingsjobanfrage aufnehmen können, wenn Sie es in die Liste der Pakete einfügen.
Das Erstellen einer TensorFlow-Binärdatei, um diese als benutzerdefiniertes Paket einzuschließen, ist ein komplexerer Ansatz, hat aber den Vorteil, dass Sie beim Training des Modells die neuesten TensorFlow-Aktualisierungen verwenden können.
Weitere Informationen
- Liste der unterstützten Laufzeitversionen durchsehen