8 Punkte von GN⁺ 2024-07-17 | 1 Kommentare | Auf WhatsApp teilen
  • Der Transformer, der 2017 aufkam, begann mit maschineller Übersetzung, breitete sich dann auf nahezu alle Bereiche aus und ist zu einem zentralen KI-Thema geworden, das moderne Ingenieure verstehen sollten
  • Dieser Leitfaden ist schrittweise aufgebaut — von neuronalen Netzen bis zu Attention — damit Ingenieure genau so weit folgen können, wie es zum Verständnis des Transformers nötig ist
  • Mit ausführbaren Python-Codebeispielen und Referenzmaterial endet das Lernen nicht beim Lesen, sondern kann praktisch nachvollzogen und überprüft werden
  • Der Hauptteil ist in neuronale Netze, RNN, NLP und Attention, Transformer sowie einen Anhang zu Python- und Mathematikgrundlagen gegliedert; zusätzlich wurden Abschnitte zu PyTorch und LLM-basierten Multi-Agents ergänzt
  • Die Nutzungsbedingungen für Bildung und nichtkommerzielle Zwecke sind vergleichsweise offen; bei Anfragen werden jedoch zur Verifizierung mindestens zwei SNS-Profile verlangt, wodurch anonyme Kontaktaufnahme eingeschränkt ist

Lernpfad zum Verständnis von Transformern

  • The Engineer’s Guide To Deep Learning ist ein kompaktes Handbuch, das Ingenieuren den minimal nötigen Pfad zum Verständnis von Transformern bietet
  • Die aktuelle Phase der KI wird als das dritte goldene Zeitalter beschrieben
    • Die beiden vorherigen goldenen Zeitalter lagen in den 1950er/1960er Jahren und in den 1980er Jahren
    • Damals übertrafen die Erwartungen die technischen Möglichkeiten, was zu Enttäuschung führte
    • Das aktuelle KI-Goldene-Zeitalter, das Mitte der 2010er begann, wird als eine Phase beschrieben, in der die Erwartungen fortlaufend übertroffen werden
  • Der Transformer war der Durchbruch von 2017
    • Ursprünglich wurde er als Modell für maschinelle Übersetzung entwickelt
    • Danach weitete sich sein Einfluss auf nahezu alle Bereiche aus
  • Als Lernhilfe werden ausführbare Python-Codebeispiele bereitgestellt
  • Zusätzlich werden weitere Referenzmaterialien vorgestellt, damit Leser je nach Bedarf passende Quellen auswählen können

Aufbau des Dokuments und Updates

  • Der Leitfaden springt nicht direkt zum Transformer, sondern baut die nötigen Grundlagen in sinnvoller Reihenfolge auf
  • Die Änderungshistorie wird seit der ersten Veröffentlichung am 21. Mai 2024 fortgeführt
      1. Juli 2024: PyTorch-Versionen für Part 1 und 2 hinzugefügt
      1. September 2024: Abschnitt zu LLM-basierten Multi-Agents hinzugefügt
  • Künftig könnten auch mehrere derzeit in Entwicklung befindliche Transformer-basierte Technologien sowie der nächste große Durchbruch in naher Zukunft behandelt werden

Nutzungsbedingungen und Kontaktweg

  • Die Nutzungsbedingungen in den Copyright-FAQ sind vor allem für Bildung und nichtkommerzielle Nutzung offen gehalten
    • Lehrkräfte und Studierende an Bildungseinrichtungen dürfen Dokumente und Abbildungen frei für Lernzwecke verwenden
    • Bei nichtkommerziellen Treffen und Vorträgen dürfen Dokumente und Abbildungen verwendet werden, wenn ein Link zur Website und der Copyright-Hinweis angegeben werden
    • Die Erläuterungen zu revenue share und full buyout im Abschnitt zur kommerziellen Nutzung seien scherzhaft gemeint; es bestehe keine Absicht, kommerzielle Beziehungen einzugehen
  • In Anfragen per E-Mail müssen zur Verifizierung mindestens zwei SNS-Adressen wie LinkedIn oder Twitter angegeben werden
  • Seit dem XZ-Backdoor-Vorfall werden keine Kontaktaufnahmen von anonymen Einzelpersonen angenommen

1 Kommentare

 
GN⁺ 2024-07-17
Meinungen auf Hacker News
  • Es gibt ziemlich viele bessere Materialien. The Annotated Transformer / Attention is All You Need: http://nlp.seas.harvard.edu/annotated-transformer/
    Transformers from Scratch: https://e2eml.school/transformers.html
    Auch Andrej Karpathys Einsteigerreihe ist gut: https://karpathy.ai/zero-to-hero.html
    Let's build GPT: from scratch, in code, spelled out: https://www.youtube.com/watch?v=kCc8FmEb1nY
    GPT with Andrej Karpathy: Part 1: https://medium.com/@kdwa2404/gpt-with-andrej-karpathy-part-1...
    3Blue1Browns „But what is a GPT? Visual intro to transformers | Chapter 5, Deep Learning“: https://www.youtube.com/watch?v=wjZofJX0v4M
    „Attention in transformers, visually explained | Chapter 6, Deep Learning“: https://www.youtube.com/watch?v=eMlx5fFNoYc
    Gesamte Neural-Network-Playlist von 3Blue1Brown: https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_6700...
    • Ergänzend: Alle oben genannten Seiten sind kostenlos. Die hier verlinkte Seite sagt: „Der Kauf vollständiger kommerzieller Nutzungsrechte für den gesamten Inhalt und das GitHub-Repository kostet 10.000.000 €“, und verlangt für kommerzielle Nutzung außerdem 20 % Lizenzgebühren.
      Für ein Keras-Tutorial ist das ziemlich teuer.
    • Eine etwas abseitige Frage: Ich würde gern an der Vesuvius Challenge teilnehmen, habe aber keinen Machine-Learning-Hintergrund und bin ein normaler Webentwickler. Ich frage mich, ob Karpathys Zero to Hero und das Buch Understanding Deep Learning ausreichen, um einen praktischen Machine-Learning-Hintergrund aufzubauen, oder ob ich noch mehr lernen sollte.
      Mein Plan ist, die Gewinnerlösungen des letzten Jahres zu verstehen und mir dann eine kleinere Teilaufgabe auszusuchen: https://scrollprize.org/
    • Auch die Folien von Lucas Beyer sind ziemlich gut: https://docs.google.com/presentation/d/1ZXFIhYczos679r70Yu8v...
  • Transformer-Tutorials scheinen so etwas wie die neuen Monad-Tutorials geworden zu sein.
  • Dieses Material geht vom Perzeptron bis zum Transformer sehr komprimiert durch alles hindurch.
    Der Abschnitt, in dem etwa die Gradienten eines LSTM hergeleitet werden, soll nicht dabei helfen, es im bevorzugten Framework zu implementieren, sondern dem Verständnis dienen.
    Auch der Zweck, Lösungen in mehreren Frameworks zu zeigen, besteht darin, die Verbindung herzustellen, wie die Gleichungen aussehen und wie sie im Code aussehen könnten.
  • Das Frustrierendste an Transformer-Dokumentation ist, dass sich fast alles nur auf Natural Language Processing konzentriert.
    Besonders interessant an der Transformer-Architektur ist, dass der Attention-Mechanismus permutationsinvariant ist. Umso mehr, wenn man keine Positions-Embeddings verwendet, um diese besondere Eigenschaft wieder auszugleichen; außerdem lassen sich bestimmte Knoten in einem Graphen oder einzelne Kanten beliebig maskieren, was viel Flexibilität bietet, Domänenwissen in die Architektur einfließen zu lassen.
    In vielen Fällen braucht man Positions-Embeddings vielleicht trotzdem, aber man kann intelligenter entwerfen, wenn man sich von der zu stark eingeschränkten Sicht löst, die Eingaben einer Attention-Schicht nur als einfache eindimensionale Sequenz zu betrachten.
  • Ich würde gern die Machine-Learning-/KI-Experten fragen: Wenn jemand von CRUD-/Backend-APIs in den ML-/AI-Bereich wechseln möchte, wäre ich dankbar für empfehlenswerte Einsteigerressourcen. Das Feld hat so viele Zweige, dass ich nicht weiß, wo ich anfangen soll.
    Soweit ich es verstehe, ist ein ML Engineer jemand, der mit Frameworks wie PyTorch Modelle baut, ein AI Engineer jemand, der per Prompt Engineering oder auf AI-Lösungen wie der OpenAI-/Claude-API Anwendungen baut, und MLOps sind Leute, die bei Deployment und Serving von Modellen helfen. Ich frage mich, ob diese Einteilung stimmt.
    • Für diese Begriffe gibt es keine offiziellen Definitionen. Es gibt nur eine notwendige Eselsbrücke: plausibel klingender Jobtitel → kann alles bedeuten, was das Unternehmen will.
      In der Praxis können die genannten Rollen alles umfassen, von „macht Spitzenforschung“ bis „hat schon einmal eine CSV geöffnet“.
    • 85 % der Zeit eines Machine-Learning-Projekts gehen für Datenqualität und ein wenig domänenspezifisches Feature Engineering drauf.
      Wenn du Wirkung erzielen willst, werde darin sehr gut. Das sind Fähigkeiten, die auch in Bereichen wie Systemintegration oder Business Analysis nützlich sind; Algorithmen und heutzutage sogar trainierte Modelle können dir die Forschenden liefern.
    • „AI Engineer“ würde man wohl eher als Application Engineer bezeichnen, der darauf spezialisiert ist, Machine Learning in Software zu integrieren.
    • Kaggle ist ein guter Ausgangspunkt.
  • Außer ein paar einleitenden Absätzen gibt es keinen Inhalt. Der eigentliche Content ergibt 404 not found.
    • Die Links im Text sind kaputt. Die Links im Hamburger-Menü funktionieren gut.
    • Das linke Menü auf dem Desktop funktioniert. Offenbar sind nur die Links auf der ersten Seite kaputt.
  • Dort steht sinngemäß: „Wenn Sie eine E-Mail senden, geben Sie zu Verifizierungszwecken bitte mindestens zwei Social-Media-Adressen wie LinkedIn oder Twitter an … Kontakte von anonymen Einzelpersonen werden nicht mehr angenommen.“
    Es ist ziemlich bitter zu sehen, dass selbst unter Technikern soziale Netzwerke als Mittel zur Identitäts- und Vertrauensprüfung übernommen werden. Es war schon schlimm genug, als einige Regierungen anfingen, für Visa-/Einwanderungsprüfungen Social-Network-Benutzernamen zu verlangen; jetzt braucht man sogar sozialen Nachweis, um einem Techniker eine E-Mail zu schicken?
    • „Kontakte von anonymen Einzelpersonen werden nicht mehr angenommen“ erinnert mich an den Witz, in dem jemand bei einem Rekrutierungszentrum des Air-Force-Hauptquartiers auftaucht. „Pilotenschein? Erfahrung? Qualifikationen?“, wird gefragt. „Keine. Ich bin nur gekommen, um Ihnen zu sagen, dass Sie nicht mit mir rechnen sollen!“
    • Wenn man den ausgelassenen Teil aufklappt, steht dort: „Wegen des XZ-Backdoor-Vorfalls werden Kontakte von anonymen Einzelpersonen nicht mehr angenommen.“
      Der XZ-Angreifer hätte sich vermutlich bei zahlreichen Diensten über GitHub anmelden können. Der Autor des Originaltexts hält es auch für wahrscheinlich, dass er etwas von PyPI herunterlädt, das durch ein über ein Jahr lang herumliegendes Token-Leak potenziell kompromittiert war.
      Außerdem ist er im Machine-Learning-Bereich, lädt also wahrscheinlich riesige Python-Frameworks von GitHub, conda und PyPI herunter, die schwer zu auditieren sind, und Leute in diesem Feld laden auch nicht vertrauenswürdige Modelle herunter und experimentieren damit.
      Und das Problem soll eine Plaintext-E-Mail sein, die man in einem Kommandozeilen-Mailclient mit deaktiviertem MIME und sonstigen Erweiterungen lesen kann?
  • Ein sehr gutes Material, um die Grundlagen knapp und schrittweise aufzubauen.