Im maschinellen Lernen sind gleich.

Codierung, Warten auf Ergebnisse, Interpretation, Rückkehr zur Codierung. Außerdem einige Zwischenpräsentationen des eigenen Fortschritts. Aber die Dinge, die meistens gleich sind, bedeutet nicht, dass es nichts zu lernen gibt. Ganz im Gegenteil! Vor zwei bis drei Jahren begann ich die tägliche Gewohnheit, Lektionen aufzuschreiben, die ich aus meiner ML -Arbeit gelernt habe. Beim Rückblick einige der Lektionen aus diesem Monat fand ich drei praktische Lektionen, die auffallen:

  1. Protokollieren Sie weiter einfach
  2. Verwenden Sie ein experimentelles Notizbuch
  3. Über Nacht rennen im Auge

Protokollieren Sie weiter einfach

Jahrelang habe ich Gewichte und Vorurteile (W & B) als mein Experiment-Logger verwendet. Tatsächlich conflict ich einmal unter den High 5% aller aktiven Benutzer. Die Statistiken in der folgenden Abbildung zeigen mir, dass ich zu diesem Zeitpunkt quick 25000 Modelle trainiert habe, kumulative 5000 Stunden Berechnung verwendet und mehr als 500 Hyperparameter -Suchvorgänge durchgeführt habe. Ich habe es für Papiere, für große Projekte wie Wettervorhersage mit großen Datensätzen und für die Verfolgung unzähliger kleiner Experimente verwendet.

Meine einmaligen Statistiken der Verwendung von W & B für Experiment -Protokollierung. Bild des Autors.

Und W & B ist wirklich ein tolles Werkzeug: Wenn Sie schöne Dashboards wünschen und mit einem Workforce zusammenarbeiten, sind W & B SHINES. Und bis vor kurzem, als ich Daten aus geschulten neuronalen Netzwerken rekonstruierte, leitete ich mehrere Hyperparameter -Sweeps und die Visualisierungsfunktionen von W & B waren von unschätzbarem Wert. Ich könnte Rekonstruktionen direkt über Läufe vergleichen.

Aber ich erkannte, dass W & B für die meisten meiner Forschungsprojekte übertrieben conflict. Ich habe selten individuelle Läufe überprüft, und sobald ein Projekt abgeschlossen conflict, saßen die Protokolle nur da, und ich machte nichts mit ihnen. Als ich das genannte Datenrekonstruktionsprojekt dann neu gestaltete, habe ich die W & B -Integration explizit entfernt. Nicht, weil etwas daran nicht stimmte, sondern weil es nicht notwendig conflict.

Jetzt ist mein Setup viel einfacher. Ich habe gerade ausgewählte Metriken bei CSV- und Textdateien protokolliert und direkt auf die Festplatte geschrieben. Bei Hyperparameter -Suchanfragen verlasse ich mich auf Optuna. Nicht einmal die verteilte Model mit einem zentralen Server – nur lokaler Optuna, speichern Sie Studienzustände in einer Gurkendatei. Wenn etwas abstürzt, lade ich neu und gehe fort. Pragmatisch und ausreichend (für meine Anwendungsfälle).

Der wichtigste Einblick hier ist Folgendes: Protokollierung ist nicht die Arbeit. Es ist ein Unterstützungssystem. Verbringen Sie 99% Ihrer Zeit damit, sich für das zu entscheiden, was Sie protokollieren möchten – Gradienten? Gewichte? Verteilungen? Und mit welcher Frequenz? – kann Sie leicht von der tatsächlichen Forschung ablenken. Für mich sind einfache, lokale Protokollierungsabdeckungen alle Bedürfnisse mit minimaler Einrichtungsanstrengung.

Führen Sie experimentelle Labornotizenbücher

Im Dezember 1939 schrieb William Shockley eine Idee in sein Labor -Notizbuch: Ersetzen Sie Vakuumrohre durch Halbleiter. Ungefähr 20 Jahre später erhielten Shockley und zwei Kollegen in Bell Labs Nobelpreise für die Erfindung des modernen Transistors.

Während die meisten von uns keine nobelwürdigen Einträge in unsere Notizbücher schreiben, können wir trotzdem aus dem Prinzip lernen. Zugegeben, im maschinellen Lernen verfügen unsere Laboraten weder Chemikalien noch Testrohre, wie wir uns alle vorstellen, wenn wir an ein Labor denken. Stattdessen sind unsere Labore oft unsere Laptop; Das gleiche Gerät, mit dem ich diese Zeilen schreibe, hat im Laufe der Jahre unzählige Modelle geschult. Und diese Labors sind von Natur aus portabel, insbesondere wenn wir uns aus der Ferne auf Hochleistungs-Berechnen-Clustern entwickeln. Noch besser ist diese Cluster dank von hochqualifiziertem administrativen Zeug rund um die Uhr-also ist immer Zeit, ein Experiment durchzuführen!

Aber die Frage ist, welches Experiment? Hier stellte mich ein ehemaliger Kollege die Idee vor, ein Labornotiok aufzuspalten, und in letzter Zeit bin ich in einfachster Type zurückgekehrt. Bevor ich langjährige Experimente beginne, schreibe ich auf:

Was ich teste und warum ich es teste.

Dann, wenn ich später – normalerweise am nächsten Morgen – zurückkomme, kann ich sofort sehen, welche Ergebnisse bereit sind und was ich gehofft hatte zu lernen. Es ist einfach, aber es verändert den Workflow. Anstatt nur „erneut zu übertragen“, bis es funktioniert, werden diese speziellen Experimente Teil einer dokumentierten Rückkopplungsschleife. Fehler sind leichter zu interpretieren. Erfolge sind leichter zu replizieren.

Führen Sie Experimente über Nacht durch

Das ist ein kleiner, aber schmerzhafter Unterricht, den ich diesen Monat (wieder) gelernt habe.

An einem Freitagabend entdeckte ich einen Fehler, der meine Experimentergebnisse beeinflussen könnte. Ich habe es gepatcht und die Experimente zur Validierung wieder aufgenommen. Am Samstagmorgen waren die Läufe beendet – aber als ich die Ergebnisse inspizierte, wurde mir klar, dass ich vergessen hatte, eine wichtige Ablation aufzunehmen. Was bedeutete … ein weiterer ganzen Tag des Wartens.

In ML ist über Nacht Zeit kostbar. Für uns Programmierer ist es Ruhe. Für unsere Experimente ist es Arbeit. Wenn wir während des Schlafenes kein Experiment laufen, verschwenden wir freie Rechenzyklen effektiv.

Das bedeutet nicht, dass Sie Experimente nur aus Gründen des Himmels durchführen sollten. Aber wann immer es einen sinnvollen Begin gibt, ist es die perfekte Zeit, sie abends zu starten. Cluster werden oft untergeblieben und Ressourcen sind schneller verfügbar, und vor allem werden Sie Ergebnisse zum Analysieren am nächsten Morgen haben.

Ein einfacher Trick ist, dies absichtlich zu planen. Wie Cal Newport in seinem Buch „Deep Work“ erwähnt, beginnen gute Arbeitstage in der Nacht zuvor. Wenn Sie heute die Aufgaben von morgen kennen, können Sie die richtigen Experimente rechtzeitig einrichten.


* Das ist W & B nicht verprügelt (es wäre genauso gewesen mit, z. B. MLFlow), sondern die Benutzer aufzufordern, zu bewerten, was ihre Projektziele sind, und dann die meiste Zeit damit verbringen, diese Ziele mit äußerster Fokus zu verfolgen.

** Fußnote: Nur Zusammenarbeit reicht in meinen Augen nicht aus, um mit solchen gemeinsamen Dashboards zu rechtfertigen. Sie müssen mehr Einblicke aus solchen gemeinsamen Instruments erhalten als die Zeit, die sie aufgebraucht haben.

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert