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

Dr. Nathalie RauschmaSpeed, AWS Applied Scientist | Länge: 49 Minuten 26 Sekunden

Erfahren Sie, wie Amazon SageMaker Experiments und Debugger die Verwaltung Ihrer Trainingsaufträge vereinfachen können. Amazon SageMaker Debugger bietet transparente Einblicke in Trainingsaufträge und speichert Trainingsmetriken in Ihrem Amazon S3-Bucket. SageMaker Mit Experimenten können Sie die Trainingsinformationen als Tests über SageMaker Studio aufrufen 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 Modellbereinigungstechnik, die vortrainierte ResNet50- AlexNet Modelle leichter und kostengünstiger macht und gleichzeitig hohe Standards für die Modellgenauigkeit beibehält.

SageMaker Estimator trainiert diese Algorithmen, die aus dem PyTorch Modell-Zoo in einem AWS Deep Learning Containers mit PyTorch Framework bereitgestellt werden, und Debugger extrahiert Trainingsmetriken aus dem Trainingsprozess.

Das Video zeigt auch, wie Sie eine benutzerdefinierte Debugger-Regel einrichten, um die Genauigkeit eines gekürzten Modells zu überwachen, ein Amazon- CloudWatch Ereignis und eine - AWS Lambda Funktion auszulösen, wenn die Genauigkeit einen Schwellenwert erreicht, und den Bereinigungsprozess automatisch zu beenden, um redundante Iterationen zu vermeiden.

Die Lernziele sind wie folgt:

  • Erfahren Sie, wie Sie verwenden, SageMaker um das Training von ML-Modellen zu beschleunigen und die Modellqualität zu verbessern.

  • Erfahren Sie, wie Sie Trainingsiterationen mit SageMaker Experiments verwalten, indem Sie Eingabeparameter, Konfigurationen und Ergebnisse automatisch erfassen.

  • 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.

  • Beherrschen Sie den SageMaker Trainingsprozess mit SageMaker Experiments und Debugger.

Die in diesem Video verwendeten Notebooks und Trainingsskripts finden Sie unter SageMaker Debugger PyTorch Iterative Model Beschneidung.

Die folgende Abbildung zeigt, wie der iterative Modellbereinigungsprozess die Größe von reduziert, AlexNet indem die 100 am wenigsten wichtigen Filter basierend auf dem anhand von Aktivierungsausgaben und Gradienten ausgewerteten Wichtigkeitsrang herausgeschnitten 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

Sie müssen auch die Modellgenauigkeit verfolgen, und die folgende Abbildung zeigt, wie Sie den Prozess der Modellbereinigung darstellen können, um Änderungen der Modellgenauigkeit basierend auf der Anzahl der Parameter in SageMaker Studio zu visualisieren.

Ein Bild der Tensorvisualisierung mit Debugger in SageMaker Studio

Wählen Sie in SageMaker Studio die Registerkarte Experimente aus, wählen Sie eine Liste der vom Debugger gespeicherten Tensoren aus dem Bereinigungsprozess aus und erstellen Sie dann einen Bereich mit der Liste der Testkomponenten. 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 mithilfe des folgenden Notebook-Beispiels über SageMaker Studio bereitzustellen, fügen Sie eine Zeile am Ende der train Funktion im train.pySkript 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 des SageMaker Debuggers zur Überwachung einer Convolutional Autoencoder Model Training

Dieses Notebook zeigt, wie SageMaker Debugger Tensoren aus einem unbeaufsichtigten (oder selbstbeaufsichtigten) Lernprozess in einem MNIST-Bilddatensatz mit handgeschriebenen 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 des SageMaker Debuggers zur Überwachung von Aufmerksamkeiten im BERT-Modelltraining

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 Ausgabeebene fein abgestimmt werden, um state-of-the-art Modelltraining in NLP-Aufgaben zu erreichen, z. B. automatisierte Antworten auf Fragen, Textklassifizierung und viele andere.

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

Dieses Notebook zeigt, wie Sie das vortrainierte BERT-Modell aus dem GluonNLP-Modellzoo im Stanford-Datensatz Fragen und Antworten verwenden und wie Sie SageMaker Debugger zur Überwachung des Trainingsauftrags einrichten.

Das Plotten von Aufmerksamkeitswerten und einzelnen Neuronen in der Abfrage und Schlüsselvektoren kann helfen, Ursachen für falsche Modellvorhersagen zu identifizieren. Mit SageMaker dem Debugger können Sie die Tensoren abrufen und die Aufmerksamkeitsansicht in Echtzeit darstellen, 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 des SageMaker Debuggers zur Visualisierung von Klassenaktivierungskarten in Convolutional Neural Networks (CNNs)

Dieses Notebook zeigt, wie Sie SageMaker Debugger verwenden, um Klassenaktivierungskarten für die Bilderkennung und -klassifizierung in konvolutionalen neuronalen Netzwerken (CNNs) darzustellen. Beim Deep Learning ist ein Convolutional Neural Network (CNN oder ConvNet) eine Klasse von Deep Neural Networks, die am häufigsten auf die Analyse visueller Bilder angewendet 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 Datensatzes für Datenverkehrszeichen in Deutschland trainiert, der mehr als 40 Klassen von Objekten im Zusammenhang mit dem Datenverkehr und insgesamt mehr als 50.000 Bilder enthält.

Eine Animation von CNN-Klassenaktivierungskarten

Während des Trainingsprozesses sammelt SageMaker der Debugger Tensoren, um die Klassenaktivierungskarten in Echtzeit darzustellen. 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.