- Versionshinweise
- Bevor Sie beginnen
- Erste Schritte
- Installieren von AI Center
- Migration und Upgrade
- Projekte
- Datasets
- Data Labeling
- ML-Pakete
- Sofort einsetzbare Pakete
- Pipelines
- Trainingspipelines
- Auswertungspipelines
- Vollständige Pipelines
- Pipelines verwalten
- Schließen der Schleife
- ML-Skills
- ML-Protokolle
- Document UnderstandingTM im AI Center
- Anleitungen zu …
- Lizenzierung
- Grundlegende Anleitung zur Fehlerbehebung
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.
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.
- 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 Verzeichnisvariabletest_data_directory
in der Funktionprocess_data
schreibt. Wenn Sie keinen Ordner auswählen und Ihreprocess_data
nicht in dastest_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 dietrain()
-Funktion verwendet. Die meisten Benutzer müssen dies nie über die Benutzeroberfläche überschreiben und können einfach Daten inos.environ['training_data_directory']
in der Funktionprocess_data
schreiben und können erwarten, dass das Argument data_directory intrain(self, data_directory
mitos.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 dieevaluate()
-Funktion verwendet. Die meisten Benutzer müssen dies nie über die Benutzeroberfläche überschreiben und können einfach Daten inos.environ['test_data_directory']
in der Funktionprocess_data
schreiben und können erwarten, dass das Argument data_directory inevaluate(self, data_directory
mitos.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 Pfados.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 Ordnertraining_data_directory
am Ende der Pipelineausführung als Ausgabe der Pipeline unter dem Verzeichnistraining_data_directory
hochgeladen.save_test_data
mit Standardwert true: Bei true wird der Ordnertest_data_directory
am Ende der Pipelineausführung als Ausgabe der Pipeline unter dem Verzeichnistest_data_directory
hochgeladen.
- 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.
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). Dieprocess_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 Ordnerstraining_data_directory
. - Der Ordner „Test“ ist nur sichtbar, wenn
save_training_data
auf true festgelegt ist und ist eine Kopie des Ordnerstest_data_directory
.
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.
_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>"
}
}
}