ai-center
2021.10
false
UiPath logo, featuring letters U and I in white
Kein Support
AI Center – Benutzerhandbuch
Automation CloudAutomation SuiteStandalone
Last updated 11. Nov. 2024

Vollständige Pipelines

Eine vollständige Pipeline wird verwendet, um ein neues Machine Learning-Modell zu trainieren und die Leistung dieses neuen Modells auszuwerten, und dies in einem einzigen Schritt. Darüber hinaus wird vor dem Training ein Vorverarbeitungsschritt ausgeführt, der die Datenmanipulation/das Training eines trainierten Machine Learning-Modells ermöglicht.

Um diese Pipeline zu verwenden, muss das Paket Code enthalten, um Daten zu verarbeiten, ein Modell zu trainieren, auszuwerten und zu speichern (die Funktionen process_data(), train (), evaluate() und save() in der Datei train.py). Dieser Code erzeugt zusammen mit einem Dataset oder Unterordner innerhalb eines Datasets und optional einem Auswertungssatz eine neue Paketversion, eine Punktzahl (die Rückgabe der Funktion evaluate() für die neue Version des Modells) und jegliche Ausgaben, die der Benutzer zusätzlich zur Punktzahl beibehalten möchte.

Erstellen vollständiger Pipelines

Erstellen Sie eine neue vollständige Pipeline, wie hier beschrieben. Stellen Sie sicher, dass Sie die folgenden Informationen für vollständige Pipelines zur Verfügung stellen:

  • Wählen Sie im Feld Pipelinetyp die Option Vollständige Pipelineausführung aus.
  • Wählen Sie im Feld Eingabe-Dataset auswählen ein Dataset oder einen Ordner aus, aus dem Sie Daten für das vollständige Training importieren möchten. Alle Dateien in diesem Dataset/Ordner müssen während der Laufzeit der Pipeline am Pfad, der in der Variablen data_directory gespeichert ist, lokal verfügbar sein.
  • Wählen Sie im Feld Auswertungs-Dataset ein Dataset oder einen Ordner aus, aus dem Sie Daten für die Auswertung importieren möchten. Alle Dateien in diesem Dataset/Ordner müssen während der Laufzeit der Pipeline am Pfad, der in der Variablen test_data_directory gespeichert ist, lokal verfügbar sein. Wenn kein Ordner ausgewählt ist, wird erwartet, dass Ihre Pipeline etwas in die Verzeichnisvariable test_data_directory in der Funktion process_data schreibt. Wenn Sie keinen Ordner auswählen und Ihre process_data nicht in das test_data_directory schreibt, dann ist das an die Auswertungsfunktion übergebene Verzeichnis leer.
  • Geben Sie im Abschnitt Parameter eingeben die von Ihrer Pipeline definierten und verwendeten Umgebungsvariablen ein, falls vorhanden. Die Umgebungsvariablen sind:
    • training_data_directory mit Standardwert dataset/training: Definiert, wo die Trainingsdaten lokal für die Pipeline zugänglich sind. Dieses Verzeichnis wird als Eingabe für die train()-Funktion verwendet. Die meisten Benutzer müssen dies nie über die Benutzeroberfläche überschreiben und können einfach Daten in os.environ['training_data_directory'] in der Funktion process_data schreiben und können erwarten, dass das Argument data_directory in train(self, data_directory mit os.environ['training_data_directory'] aufgerufen wird.
    • test_data_directory mit Standardwert dataset/test: Definiert, wo auf die Testdaten lokal für die Pipeline zugegriffen werden kann. Dieses Verzeichnis wird als Eingabe für die evaluate()-Funktion verwendet. Die meisten Benutzer müssen dies nie über die Benutzeroberfläche überschreiben und können einfach Daten in os.environ['test_data_directory'] in der Funktion process_data schreiben und können erwarten, dass das Argument data_directory in evaluate(self, data_directory mit os.environ['test_data_directory'] aufgerufen wird.
    • artifacts_directory mit Standardwert Artefakte: Dies definiert den Pfad zu einem Verzeichnis, das als Hilfsdaten im Zusammenhang mit dieser Pipeline beibehalten wird. Die meisten, wenn nicht sogar alle Benutzer werden dies niemals über die Benutzeroberfläche überschreiben müssen. Während der Pipelineausführung kann alles gespeichert werden, einschließlich Bilder, PDF-Dateien und Unterordner. Alle Daten, die Ihr Code in das Verzeichnis schreibt, welches durch den Pfad os.environ['artifacts_directory'] spezifiziert ist, werden am Ende der Pipelineausführung hochgeladen und können auf der Seite Pipelinedetails angezeigt werden.
    • save_training_data mit Standardwert true: Bei true wird der Ordner training_data_directory am Ende der Pipelineausführung als Ausgabe der Pipeline unter dem Verzeichnis training_data_directory hochgeladen.
    • save_test_data mit Standardwert true: Bei true wird der Ordner test_data_directory am Ende der Pipelineausführung als Ausgabe der Pipeline unter dem Verzeichnis test_data_directory hochgeladen.

Je nachdem, ob Sie ein Auswertungs-Dataset auswählen oder nicht, können Sie vollständige Pipelines folgendermaßen erstellen:

Explizites Auswählen von Auswertungsdaten

Im folgenden Video erfahren Sie, wie Sie eine vollständige Pipeline mit der neu trainierten Paketversion 1.1 erstellen können. Achten Sie darauf, dasselbe Dataset (in unserem Beispiel tutorialdataset) sowohl als Eingabe-Dataset als auch als Auswertungs-Dataset auszuwählen.



Kein explizites Auswählen von Auswertungsdaten

Im folgenden Video erfahren Sie, wie Sie eine vollständige Pipeline mit der neu trainierten Paketversion 1.1 erstellen können. Wählen Sie das Eingabe-Dataset aus, aber lassen Sie das Auswertungs-Dataset unausgewählt.



Ergebnisse der Ausführung einer vollständigen Pipeline

Hinweis: Die Pipelineausführung kann einige Zeit in Anspruch nehmen. Sehen Sie nach einer kurzen Zeit nach, ob sich der Status geändert hat.

Nachdem die Pipeline ausgeführt wurde, änderte sich der Status der Pipeline auf der Seite Pipelines in Erfolgreich. Auf der Seite Pipelinedetails werden die beliebigen Dateien und Ordner im Zusammenhang mit der Pipelineausführung angezeigt.

  • Die Funktion train() wird auf train.csv trainiert und nicht auf dem unveränderten Inhalt des Datenordners (example1.txt und example2.txt). Die process_data kann verwendet werden, um Daten basierend auf jeglichen benutzerdefinierten Parametern dynamisch aufzuteilen.
  • Die erste vollständige Pipeline führt Auswertungen in einem Verzeichnis mit example1.txt, example2.txt und test.csv aus. Die zweite vollständige Pipeline führt Auswertungen in einem Verzeichnis nur mit test.csv aus. Dies ist der Unterschied darin, dass beim Erstellen der zweiten vollständigen Pipelineausführung keine explizit festgelegte Auswertung ausgewählt wird. Auf diese Weise können Sie sowohl Auswertungen zu neuen Daten von UiPath Robotern erhalten als auch Daten, die bereits in Ihrem Projekt vorhanden sind, dynamisch aufteilen.
  • Jede einzelne Komponente kann beliebige Artefakte als Teil einer Pipeline schreiben (Histogramme, Tensorboard-Protokolle, Verteilungsdiagramme usw.)
  • Die ZIP-Datei des ML-Pakets ist die neue Paketversion, die automatisch von der Trainingspipeline generiert wird.
  • Der Ordner „Artefakte“ ist nur sichtbar, wenn er nicht leer ist, er gruppiert alle von der Pipeline generierten Artefakte neu und wird im Ordner artifacts_directory gespeichert.
  • Der Ordner „Training“ ist nur sichtbar wenn save_training_data auf true festgelegt ist und ist eine Kopie des Ordners training_data_directory.
  • Der Ordner „Test“ ist nur sichtbar, wenn save_training_data auf true festgelegt ist und ist eine Kopie des Ordners test_data_directory.

Konzeptanalogie für die Erstellung Ihrer eigenen vollständigen Pipelines

Hier ist eine konzeptionell analoge Ausführung einer vollständigen Pipeline auf einem Paket, zum Beispiel Version 1.1, die Ausgabe einer Trainingspipeline auf Version 1.0.

Wichtig: Dies ist ein vereinfachtes Beispiel. Wir möchten damit veranschaulichen, wie Datasets und Pakete in einer vollständigen Pipeline interagieren. Die Schritte sollen lediglich das Konzept vermitteln und stellen nicht die Funktionsweise der Plattform dar.
  1. Kopieren Sie Paketversion 1.1 in ~/mlpackage.
  2. Erstellen Sie ein Verzeichnis mit dem Namen ./dataset.
  3. Kopieren Sie den Inhalt des Eingabe-Datasets in ./dataset.
  4. Wenn der Benutzer etwas im Feld Auswertungs-Dataset auswählen festgelegt hat, kopieren Sie dieses Auswertungs-Dataset und legen Sie es unter ./dataset/test ab.
  5. Legen Sie Die Umgebungsvariablen training_data_directory=./dataset/training und test_data_directory=./dataset/test fest.
  6. Führen Sie den folgenden Python-Code aus:
    from train import Main
    m = Main()
    m.process_data('./dataset')
    m.evaluate(os.environ['test_data_directory'])
    m.train(os.environ['training_data_directory'])
    m.evaluate(os.environ['test_data_directory'])from train import Main
    m = Main()
    m.process_data('./dataset')
    m.evaluate(os.environ['test_data_directory'])
    m.train(os.environ['training_data_directory'])
    m.evaluate(os.environ['test_data_directory'])
  7. Behalten Sie den Inhalts von ~/mlpackage als Paketversion 1.2 bei. Behalten Sie geschriebene Artefakte bei und machen Sie Momentaufnahmen der Daten, wenn save_data auf true festgelegt ist.
    Hinweis: Das Vorhandensein der Umgebungsvariablen training_data_directory und test_data_directory bedeutet, dass process_data diese Variablen verwenden kann, um Daten dynamisch aufzuteilen.

Pipelineausgaben

Die Datei _results.json enthält eine Zusammenfassung der Pipelineausführung, die alle Eingaben/Ausgaben und Ausführungszeiten einer vollständigen Pipeline offenlegt.
{
    "parameters": {
        "pipeline": "< Pipeline_name >",
        "inputs": {
            "package": "<Package_name>",
            "version": "<version_number>",
      "input_data": "<storage_directory>",       
            "evaluation_data": "<storage_directory>/None",
            "gpu": "True/False"
        },
        "env": {
            "key": "value",
            ...
        }
    },
    "run_summary": {
     "execution_time": <time>, #in seconds 
     "start_at": <timestamp>, #in seconds 
     "end_at": <timestamp>, #in seconds 
     "outputs": {
        "previous_score": <previous_score>, #float
        "current_score": <current_score>, #float
        "training_data": "<training_storage_directory>/None", 
        "test_data": "<test_storage_directory>/None",
        "artifacts_data": "<artifacts_storage_directory>",
        "package": "<Package_name>",
        "version": "<new_version>"  
         }
    }
}{
    "parameters": {
        "pipeline": "< Pipeline_name >",
        "inputs": {
            "package": "<Package_name>",
            "version": "<version_number>",
      "input_data": "<storage_directory>",       
            "evaluation_data": "<storage_directory>/None",
            "gpu": "True/False"
        },
        "env": {
            "key": "value",
            ...
        }
    },
    "run_summary": {
     "execution_time": <time>, #in seconds 
     "start_at": <timestamp>, #in seconds 
     "end_at": <timestamp>, #in seconds 
     "outputs": {
        "previous_score": <previous_score>, #float
        "current_score": <current_score>, #float
        "training_data": "<training_storage_directory>/None", 
        "test_data": "<test_storage_directory>/None",
        "artifacts_data": "<artifacts_storage_directory>",
        "package": "<Package_name>",
        "version": "<new_version>"  
         }
    }
}

Modell-Governance

Wie bei anderen Pipelinetypen können Trainings- und Auswertungsdaten in einer Momentaufnahme erhalten bleiben, wenn Sie den Parameter save_training_data auf true und den Parameter save_test_data ebenfalls auf true festlegen.

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
Uipath Logo White
Vertrauen und Sicherheit
© 2005–2024 UiPath. Alle Rechte vorbehalten