Laufzeitversionen verwalten

AI Platform verwendet Images zum Konfigurieren der VMs, die Ihre Trainings- und Vorhersageanfragen in der Cloud verarbeiten. 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-Versionsverwaltung können Sie die richtige Konfiguration für die Arbeit mit Ihrem Modell auswählen.

Wichtige Hinweise zur Versionsverwaltung

  • Die AI Platform-Standardlaufzeitversion, die von der AI Platform Training and Prediction API verwendet wird, ist Version 1.0. Wenn Sie keine Laufzeitversion angeben, verwendet AI Platform die Version 1.0.
  • 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.

Informationen zu Versionsnummern

Die in AI Platform verwendeten Images entsprechen der AI Platform-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-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-Frameworks und anderer von Ihnen verwendeter Pakete unterstützt. Wenn Sie für die unten genannten Aufgaben keine Laufzeitversion angeben, verwendet AI Platform die Standardversion 1.0, um Ihre Anfrage auszuführen.

Die Details der einzelnen Versionen finden Sie in der AI Platform-Versionsliste.

So geben Sie die Laufzeitversion für einen Trainingsjob an

Wenn Sie eine Trainingsjobanfrage senden, sollten Sie unbedingt die Laufzeitversion festlegen. Andernfalls verwendet AI Platform die Standardversion 1.0 für Ihren Trainingsjob.

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 1.13

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': '1.13',
    'pythonVersion': '3.5'}

job_spec = {'jobId': my_job_name, 'trainingInput': training_inputs}

Weitere Informationen zum Senden von Trainingsjobs finden Sie unter TrainingInput API.

So geben Sie die Python-Version für einen Trainingsjob an

Python 3.5 ist mit einer AI Platform-Laufzeitversion ab 1.4 verfügbar. Wenn Sie einen Trainingsjob mit Python 3.5 senden möchten, geben Sie die Python-Version 3.5 und eine Laufzeitversion ab 1.4 an.

Ist keine Python-Version angegeben, wird standardmäßig 2.7 verwendet.

gcloud

Verwenden Sie das Flag --python-version, um die Python-Version 3.5 anzugeben. Als Laufzeitversion muss eine Version ab 1.4 angegeben sein:

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.5
    --region us-central1 \
    --runtime-version 1.13

Python

Geben Sie als runtimeVersion eine Version ab '1.4' und als pythonVersion die Version '3.5' 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': '1.13',
    'pythonVersion': '3.5'}

job_spec = {'jobId': my_job_name, 'trainingInput': training_inputs}

Weitere Informationen zum Senden von Trainingsjobs finden Sie unter TrainingInput API.

So geben Sie die Laufzeitversion für eine Modellversion an

Wenn Sie eine bereitgestellte Modellversion aus einem trainierten Modell erstellen, müssen Sie eine Laufzeitversion angeben. Sie wird als Standardlaufzeitversion für Online- und Batchvorhersageanfragen festgelegt. Wenn Sie keine Laufzeitversion angeben, verwendet AI Platform die Version 1.0.

gcloud

Verwenden Sie das Flag --runtime-version, wenn Sie den Befehl gcloud ai-platform versions create ausführen:

gcloud ai-platform versions create version_name \
    --model model_name
    --origin gs://my/trained/model/path
    --runtime-version 1.13

Python

Legen Sie die runtimeVersion fest, wenn Sie die Versionsressource definieren:

versionDef = {'name' = 'v1',
    'description' = 'The first iteration of the completely_made_up model',
    'deploymentUri' = 'gs://my/model/output/directory',
    'runtimeVersion' = '1.13'}
 

So geben Sie eine Laufzeitversion für die Batchvorhersage an

Sie können die zu verwendende Laufzeitversion angeben, wenn Sie einen Batchvorhersagejob erstellen. Wenn Sie keine Laufzeitversion angeben, verwendet AI Platform die Standardlaufzeitversion, die in der Modellversion festgelegt ist.

gcloud

Verwenden Sie das Flag --runtime-version, wenn Sie den Befehl gcloud ai-platform jobs submit prediction ausführen:

gcloud ai-platform jobs submit prediction my_batch_job_333 \
    --model my_model \
    --input-paths gs://my/cloud/storage/data/path/* \
    --output-path gs://my/cloud/storage/data/output/path
    --region us-central1 \
    --data-format text \
    --runtime-version 1.13

Python

Legen Sie die runtimeVersion in PredictionInput fest:

body = {
    'jobId': 'my_batch_job_333',
    'predictionInput': {
        'dataFormat': 'JSON',
        'inputPaths': ['gs://my/cloud/storage/data/path/*'],
        'outputPath': 'gs://my/cloud/storage/data/output/path',
        'region': 'us-central1',
        'modelName': 'projects/my_project/models/my_model',
        'runtimeVersion': '1.13'}}

Laufzeitversionen für die Onlinevorhersage

Achten Sie beim Erstellen Ihrer Modellversion darauf, die Laufzeitversion anzugeben, die Sie für Anfragen für Onlinevorhersagen verwenden möchten. Wenn die Standardlaufzeitversion der Modellversion ungültig ist, erstellen Sie eine neue Modellversion mit der richtigen Laufzeitversion.

Anfragen für eine Onlinevorhersage verwenden immer die Standardlaufzeitversion der Modellversion. Diese kann in der Anfrage für eine Onlinevorhersage nicht durch eine andere Laufzeitversion überschrieben werden.

Alternative Pakete angeben (nur Training)

Sie haben drei Möglichkeiten, um die Pakete auf Ihren Trainingsinstanzen zu ändern:

  • Sie laden Paketdateien (Tarballs) manuell hoch und fügen ihre Pfade als Trainingseingabe hinzu.
  • Sie geben PyPI-Pakete als Abhängigkeiten für Ihr Trainerpaket an.
  • Beta: Sie erstellen einen benutzerdefinierten Container, der Ihre Abhängigkeiten für ein Image vorinstalliert.

So stellen Sie Paketdateien bereit

Sie können zusätzliche Paketdateien in die Trainingsjobanfrage einbinden. Diese werden dann auf jeder Trainingsinstanz installiert. AI Platform 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 \
    --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': '1.13'}

    job_spec = {'jobId': my_job_name, 'trainingInput’: training_inputs}

So beziehen Sie PyPI-Paketabhängigkeiten ein

Sie können PyPI-Pakete und ihre Versionen mit dem normalen "setuptools"-Prozess als Abhängigkeiten des Trainerpakets angeben:

  1. Fügen Sie die Datei setup.py in das oberste Verzeichnis der Traineranwendung ein.
  2. Übergeben Sie beim Aufrufen von setuptools.setup in setup.py eine Liste der Abhängigkeiten und optional ihrer Versionen mit dem Parameter install_requires. Das Vorgehen wird in folgendem Beispiel für setup.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 erzwingt die Neuinstallation von Paketen, sodass Sie Pakete im Image der Laufzeitversion durch neuere oder ältere Versionen überschreiben können.

So erstellen Sie einen benutzerdefinierten Container (Beta)

Anstatt eine Laufzeitversion zu verwenden, können Sie einen Docker-Container erstellen, der Ihre Abhängigkeiten enthält. Weitere Informationen zum Verwenden von benutzerdefinierten Containern finden Sie hier.

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

Benutzerdefinierte Versionen von TensorFlow für das Training angeben

Die Verwendung einer neueren Version von TensorFlow als die letzte unterstützte Laufzeitversion in AI Platform ist für das Training möglich, nicht jedoch für die Vorhersage.

Wenn Sie eine TensorFlow-Version verwenden möchten, die noch nicht vollständig als AI Platform-Laufzeitversion unterstützt wird, schließen Sie diese mit einer der folgenden Methoden als benutzerdefinierte Abhängigkeit für Ihren Trainer ein:

  1. 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>=1.13']
    
  2. 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, indem Sie es der Liste der Pakete hinzufü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

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

AI Platform für TensorFlow