Debugger: Erweiterte Demos und Visualisierung - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Debugger: Erweiterte Demos und Visualisierung

Die folgenden Demos führen Sie durch erweiterte Anwendungsfälle und Visualisierungsskripten mit Debugger.

Trainieren und Optimieren Ihrer Modelle mit Amazon SageMaker Experiments und Debugger

Nathalie Rauschmayr, AWS Applied Scientist | Länge: 49 Minuten 26 Sekunden

Erfahren Sie, wie Amazon SageMaker Experiments and Debugger die Verwaltung Ihrer Trainingsaufträge vereinfachen kann. Amazon SageMaker Debugger bietet einen transparenten Einblick in Trainingsjobs und speichert Trainingsmetriken in Ihrem Amazon S3-Bucket. Experimente ermöglichen es Ihnen, die Trainingsinformationen als Tests über SageMaker Studio aufzurufen und unterstützt die Visualisierung des Trainingsauftrags. Dies hilft Ihnen, die Modellqualität zu erhalten und gleichzeitig weniger wichtige Parameter basierend auf dem Prioritätsrang zu reduzieren.

Dieses Video zeigt eine Modellschnitt-Technik, die vortrainierte ResNet50- und AlexNet-Modelle leichter und erschwinglich macht und gleichzeitig hohe Standards der Modellgenauigkeit aufrechterhält.

Estimator trainiert solche Algorithmen, die vom PyTorch-Modellzoo in einem AWS Deep Learning Container mit PyTorch-Framework bereitgestellt werden, und extrahiert Trainingsmetriken aus dem Trainingsprozess.

Das Video zeigt auch, wie eine benutzerdefinierte Debugger-Regel eingerichtet wird, um die Genauigkeit eines beschnittenen Modells zu überwachen, ein Amazon-CloudWatch-Ereignis und eine AWS Lambda-Funktion auszulösen, wenn die Genauigkeit einen Schwellenwert erreicht, und um den Beschneidungsprozess automatisch zu stoppen, um redundante Iterationen zu vermeiden.

Die Lernziele sind wie folgt:

  • Hier erfahren Sie, wie mit SageMaker die ML-Modellschulung beschleunigt und die Modellqualität verbessert wird.

  • Verstehen Sie, wie Trainings-Iterationen mit SageMaker Experiments verwaltet werden, indem Eingabeparameter, Konfigurationen und Ergebnisse automatisch erfasst werden.

  • Erfahren Sie, wie Debugger den Trainingsprozess transparent macht, indem automatisch Echtzeit-Tensordaten von Metriken wie Gewichten, Gradienten und Aktivierungsausgaben von Convolutional Neural Networks erfasst werden.

  • Verwenden Sie CloudWatch, um Lambda auszulösen, wenn der Debugger Probleme erkennt.

  • Meistern Sie den SageMaker -Trainingsprozess mit SageMaker Experiments und Debugger.

Sie finden die Notebooks und Trainingsskripte, die in diesem Video von SageMaker PyTorch Iterative Model Pruning verwendet werden.

Die folgende Abbildung zeigt, wie der iterative Modellbeschneidungsprozess die Größe von AlexNet reduziert, indem die 100 am wenigsten signifikanten Filter basierend auf dem Wichtigkeitsrang, der von Aktivierungsausgaben und -verläufen ausgewertet wird, ausgeschnitten werden.

Der Beschneidungsprozess reduzierte die anfänglichen 50 Millionen Parameter auf 18 Millionen. Außerdem wurde die geschätzte Modellgröße von 201 MB auf 73 MB reduziert.


                Ein Bild, das Visualisierungen der Modellschnittausgabe enthält

Außerdem müssen Sie die Modellgenauigkeit verfolgen, und die folgende Abbildung zeigt, wie Sie den Modellschnitt plotten können, um Änderungen der Modellgenauigkeit basierend auf der Anzahl der Parameter in SageMaker Studio zu visualisieren.


                Ein Bild der Tensor-Visualisierung mit Debugger in SageMaker Studio

Wählen Sie auf der Registerkarte Experiments auf der SageMaker Studio-Benutzeroberfläche eine Liste der von Debugger aus dem Bereinigungsvorgang gespeicherten Tensoren aus und erstellen Sie den Bereich Testkomponentenliste. Wählen Sie alle zehn Iterationen aus, und wählen Sie Diagramm hinzufügen, um ein Testkomponenten-Diagramm zu erstellen. Nachdem Sie sich für ein Modell für die Bereitstellung entschieden haben, wählen Sie die Testkomponente aus und wählen Sie ein Menü, um eine Aktion auszuführen, oder wählen Sie Modell bereitstellen.

Anmerkung

Um ein Modell über SageMaker Studio mithilfe dieses Notebook-Beispiels bereitzustellen, fügen Sie eine Zeile am Ende der train Funktion im train.py Skript hinzu.

# In the train.py script, look for the train function in line 58. def train(epochs, batch_size, learning_rate): ... print('acc:{:.4f}'.format(correct/total)) hook.save_scalar("accuracy", correct/total, sm_metric=True) # Add the following code to line 128 of the train.py script to save the pruned models # under the current SageMaker Studio model directory torch.save(model.state_dict(), os.environ['SM_MODEL_DIR'] + '/model.pt')

Verwenden von SageMaker Debugger zum Überwachen einer Convolutional Autoencoder-Modelltraining

Dieses Notebook veranschaulicht, wie SageMaker Debugger Tensoren aus einem unbeaufsichtigten (oder selbstüberwachten) Lernprozess auf einem MNIST-Bilddatensatz handschriftlicher Zahlen visualisiert.

Das Trainingsmodell in diesem Notebook ist ein Convolutional-Autoencoder mit dem MXNet-Framework. Der Convolutional Autoencoder verfügt über ein flaschenhalsförmiges Convolutional Neural Network, das aus einem Encoder-Teil und einem Decoder-Teil besteht.

Der Encoder in diesem Beispiel verfügt über zwei Convolution-Ebenen, um eine komprimierte Darstellung (latente Variablen) der Eingabebilder zu erzeugen. In diesem Fall erzeugt der Encoder eine latente Variable der Größe (1, 20) aus einem Originaleingabebild der Größe (28, 28) und reduziert die Größe der Daten für das Training um das 40fache.

Der Decoder verfügt über zwei Deconvolutional-Schichten und stellt sicher, dass die latenten Variablen wichtige Informationen beibehalten, indem Ausgabebilder rekonstruiert werden.

Der Convolutional Encoder betreibt Clustering-Algorithmen mit kleinerer Eingabedatengröße und sowie die Leistung von Clustering-Algorithmen wie k-Means, k-NN und t-Distributed Stochastic Neighbor Embedding (t-SNE).

Dieses Notebook-Beispiel veranschaulicht, wie die latenten Variablen mithilfe von visualisiert werden, wie in der folgenden Animation gezeigt. Es zeigt auch, wie der t-SNE-Algorithmus die latenten Variablen in zehn Cluster klassifiziert und in einen zweidimensionalen Raum projiziert. Das Streudiagramm-Farbschema auf der rechten Seite des Bildes spiegelt die wahren Werte wider, um zu zeigen, wie gut das BERT-Modell und der T-SNE-Algorithmus die latenten Variablen in die Cluster organisieren.


                Ein konzeptionelles Bild des Convolutional Autoencoders

Verwenden von SageMaker Debugger zur Überwachung von Aufmerksamkeiten in der BERT-Modellschulung

Bidirectional Encode Representations from Transformers (BERT) ist ein Sprachrepräsentationsmodell. Wie der Name des Modells widerspiegelt, baut das BERT-Modell auf Transferlernen und dem Transformer-Modell für die Verarbeitung natürlicher Sprache (NLP) auf.

Das BERT-Modell ist vortrainiert für unbeaufsichtigte Aufgaben wie die Vorhersage fehlender Wörter in einem Satz oder die Vorhersage des nächsten Satzes, der natürlich einem vorherigen Satz folgt. Die Trainingsdaten enthalten 3,3 Milliarden Wörter (Tokens) englischen Textes, wie Wikipedia und elektronische Bücher. Als einfaches Beispiel kann das BERT-Modell den entsprechenden Verb-Tokens oder Pronomen-Tokens eines Subjekt-Tokens große Aufmerksamkeit schenken.

Das vortrainierte BERT-Modell kann mit einer zusätzlichen Ausgabeschicht optimiert werden, um eine hochmoderne Modellschulung in NLP-Aufgaben zu erreichen, wie z. B. automatisierte Beantwortung von Fragen, Textklassifizierung und vieles mehr.

Der Debugger sammelt Tensoren aus dem Feinabstimmungsprozess. Im Kontext von NLP wird das Gewicht von Neuronen als Aufmerksamkeit bezeichnet.

Dieses Notebook zeigt, wie das vortrainierte BERT-Modell aus dem GluonNLP-Modellzoo im Stanford-Frage- und Antwortdatensatz verwendet wird und wie SageMaker Debugger zur Überwachung des Trainingsauftrags eingerichtet wird.

Das Plotten von Aufmerksamkeitswerten und einzelnen Neuronen in der Abfrage und Schlüsselvektoren kann helfen, Ursachen für falsche Modellvorhersagen zu identifizieren. Mit SageMaker Debugger können Sie einfach die Tensoren abrufen und die attention-head view in Echtzeit plotten, während das Training fortschreitet, und verstehen, was das Modell lernt.

Die folgende Animation zeigt die Aufmerksamkeitswerte der ersten 20 Eingabetokens für zehn Iterationen im Schulungsauftrag, der im Notebook-Beispiel bereitgestellt wird.


                Eine Animation der Aufmerksamkeitsergebnisse

Verwenden von SageMaker Debugger zum Visualisieren von Klassenaktivierungskarten in Convolutional Neural Networks

Dieses Notebook veranschaulicht, wie Sie mit Klassenaktivierungskarten für die Bilderkennung und -klassifizierung plotten. Beim Deep Learning ist ein Convolutional Neural Network (CNN oder ConvNet) eine Klasse von tiefen neuronalen Netzwerken, die am häufigsten zur Analyse visueller Bilder eingesetzt werden. Eine der Anwendungen, die die Klassenaktivierungskarten übernimmt, sind selbstfahrende Autos, die die sofortige Erkennung und Klassifizierung von Bildern wie Verkehrszeichen, Straßen und Hindernisse erfordern.

In diesem Notebook wird das PyTorch ResNet-Modell anhand des deutschen Verkehrszeichen-Datasets trainiert, das mehr als 40 Klassen verkehrsbezogener Objekte und insgesamt mehr als 50.000 Bilder enthält.


                Eine Animation von CNN-Klassenaktivierungskarten

Während des Trainings sammelt SageMaker Debugger Tensoren, um die Klassenaktivierungskarten in Echtzeit zu plotten. Wie im animierten Bild gezeigt, hebt die Klassenaktivierungskarte (auch als Saliency Map bezeichnet) Regionen mit hoher Aktivierung in roter Farbe hervor.

Mithilfe von Tensoren, die von Debugger erfasst werden, können Sie visualisieren, wie sich die Aktivierungskarte während der Modellschulung entwickelt. Das Modell beginnt mit der Erkennung der Kante in der linken unteren Ecke zu Beginn des Trainingsauftrags. Im Laufe des Trainings verschiebt sich der Fokus in die Mitte und erkennt das Geschwindigkeitsbegrenzungszeichen, und das Modell prognostiziert das Eingabebild mit einem Konfidenzniveau von 97 % erfolgreich als Klasse 3, eine Klasse von Geschwindigkeitsbegrenzungszeichen von 60 km/h.