1 Punkte von GN⁺ 2024-09-01 | 1 Kommentare | Auf WhatsApp teilen
  • Ein Workshop, in dem man sich am Wochenende ein paar Stunden Zeit nimmt, um die Funktionsweise von LLMs im Code nachzuvollziehen und den Ablauf von Implementierung, Training und Nutzung in einem Durchgang kennenzulernen
  • Die Praxisübungen beginnen mit einer Einführung in LLMs und führen Schritt für Schritt über Eingabedaten, Tokenizer und die Implementierung der Modellarchitektur weiter
  • Nach der Architekturimplementierung behandelt der Workshop GPT-2 und Llama 2, Pretraining sowie das Laden vortrainierter Gewichte und schlägt damit die Brücke zur Nutzung realer Modelle
  • Enthalten sind auch die Nutzung von Gewichten mit LitGPT, Instruction Fine-Tuning, Benchmark-Evaluation und die Bewertung der Dialogleistung
  • Buch, GitHub-Repository, Workshop-Code, Lightning Studio und LitGPT-Repository werden bereitgestellt, sodass man leicht selbst mitmachen kann

Ablauf des 3-stündigen Workshop-Videos

  • Behandelt den Prozess, ein LLM zu implementieren, zu trainieren und zu nutzen in einem einzigen Coding-Workshop
  • Mit anklickbaren Kapitelmarken, sodass man direkt zu den benötigten Themen springen kann
  • Grundlagen und Eingabeverarbeitung

    • 0:00 Überblick über den Workshop
    • 2:17 Einführung in LLMs
    • 9:14 Workshop-Materialien
    • 10:48 Eingabedaten für LLMs verstehen
    • 23:25 Einfache Tokenizer-Klasse
  • Modellimplementierung und Training

    • 41:03 LLM-Architektur programmieren
    • 45:01 GPT-2 und Llama 2
    • 1:07:11 Pretraining
    • 1:29:37 Vortrainierte Gewichte laden
    • 1:45:12 Vortrainierte Gewichte mit LitGPT verwenden
  • Fine-Tuning und Evaluation

    • 1:53:09 Instruction Fine-Tuning
    • 2:08:21 Instruction Fine-Tuning mit LitGPT
    • 2:26:45 Benchmark-Evaluation
    • 2:36:55 Bewertung der Dialogleistung
    • 2:42:40 Abschluss

Materialien zum Mitmachen

1 Kommentare

 
GN⁺ 2024-09-01
Meinungen auf Hacker News
  • Vielleicht ist das eine dumme Frage, aber ich frage mich, ob das etwas anderes ist als Andrej Karpathys https://www.youtube.com/watch?v=kCc8FmEb1nY
    • Andrejs Reihe ist ebenfalls hervorragend, und auch Sebastians Buch und dieses Video sind hervorragend.
      Es gibt viele Überschneidungen, aber sie behandeln unterschiedliche Themen detaillierter oder setzen andere Schwerpunkte. Andrejs gesamte Reihe ist absolut sehenswert, und auch die kommenden Arbeiten von Eureka Labs sehen sehr vielversprechend aus. Sebastians Blog und Buch sind meiner Meinung nach ebenfalls Zeit und Geld wert
  • Sebastians Artikel sind gut, und ich freue mich auch auf das Buch. Es gibt viele Details dazu, wie LLMs aufgebaut sind; langfristig scheint das Schlachtfeld in diese Richtung zu gehen, daher wäre es schön, wenn auch stärker behandelt würde, wie Llama und OpenAI Trainingsdaten bereinigen und strukturieren können
  • PyTorch zu verwenden ist kein LLM von Grund auf bauen
    Es ist zwar ein gutes PyTorch-Tutorial, aber tun wir nicht so, als wäre das Low-Level
    • Wenn man einen Apfelkuchen von Grund auf machen will, muss man zuerst das Universum erfinden
    • Sebastians Inhalte sind wirklich gut, aber in diesem Punkt stimme ich zu. So richtig bin ich erst in Deep Learning hineingekommen, als ich wie in Karpathys Reihe damit angefangen habe, eine Automatic-Differentiation-Engine von Grund auf zu bauen.
      Davor hatte ich versucht, mit fast.ai zu lernen, aber dort beginnt man direkt damit, Netzwerke in Pytorch zu bauen, und ich war schnell wieder raus. Es fühlte sich ungefähr so langweilig an wie Java in der Highschool zu lernen; ich musste verstehen, womit ich da eigentlich arbeite
    • Bach spielen lernen: damit anfangen, selbst ein Klavier zu bauen
    • Nach welchem Maßstab ist das nicht Low-Level? Ist es nicht von Grund auf, wenn man in Python nur mit der socket API einen IRC-Client schreibt?
    • Im LLM-Kontext ist auch pytorch.nn Low-Level. In der Lehre ist es wichtig, nicht zu viele Abstraktionsschichten auf einmal zu behandeln
  • Ich habe früher einen praxisnahen Leitfaden geschrieben, wie man auf Azure nanoGPT von Grund auf trainiert. Er ist leicht Schritt für Schritt nachzumachen und ziemlich praktisch
    https://16x.engineer/2023/12/29/nanoGPT-azure-T4-ubuntu-guid...
    • Ich frage mich, ob es wirklich nur 200 Dollar gekostet hat.
      Außerdem interessiert mich, was man mit dem daraus entstandenen Modell tun konnte und wie man ihm aktuelle Ereignisse beibringt
  • Es mag irrational sein, aber ich habe grundsätzlich ein negatives Gefühl dabei, wenn statt programming oder development das Wort coding verwendet wird
    • Dass so eine Reaktion ausgerechnet bei einem Beitrag von jemandem kommt, der in dieser Community zu den sprachbesessensten Leuten zählt, wirkt ziemlich lautstark.
      Wenn man es nun genau nimmt: „code“ ist etwas, das auf den Inhalten des Mediums Codex aufbaut. Den historischen Hintergrund findet man unter https://en.wikipedia.org/wiki/Codex; ausgehend von Regelwerken im Rechtsbereich hat sich die Verwendung im Englischen spätestens seit der Mitte des 16. Jahrhunderts auf andere Bereiche ausgeweitet.
      „program“ bedeutet eher, eine Sammlung von Absichten zu enthalten und öffentlich zu machen, etwa im Sinne von „zuerst Bach spielen und danach Mozart“. Diese Verwendung kam einige Jahrhunderte später auf als code im Sinne eines „Regelwerks“.
      „develop“ gefällt mir als Begriff, weil es ein Entfalten bedeutet, impliziert aber nicht wie die beiden anderen Wörter Regeln oder sequenzielle Abläufe
    • Ich komme aus Brasilien, und interessant daran ist, dass meine Freunde und Kollegen auf Englisch normalerweise coding sagen, während Brasilianer untereinander häufig codar wie ein portugiesisches Verb verwenden.
      Den genauen Grund kenne ich nicht, aber ich vermute, dass es daran liegt, dass „program“ im brasilianischen Portugiesisch stark mit Prostitution verbunden ist
    • Stimme völlig zu. Vor einem Jahr haben wir dieses Thema schon einmal diskutiert: https://news.ycombinator.com/item?id=36924239
    • Das ist inzwischen wahrscheinlich eine unpopuläre Meinung, aber ich stimme zu, auch in einer Atmosphäre, in der solche Urteile als wertend oder Gatekeeping aufgefasst werden
    • Das entspricht eher einem europäischen Sprachgefühl
  • Das ist genau der Detailgrad, nach dem ich gesucht habe. Ich habe schon ziemlich viel Erfahrung mit Deep Learning und pytorch, daher möchte ich nicht sehen, wie das von Grund auf implementiert wird.
    Andrejs Material ist mir zu Low-Level, sodass ich mich eher in Details verliere. Das ist nicht als Kritik gemeint, sondern als Kommentar, der für Leute in einer ähnlichen Situation hilfreich sein könnte
  • Großartig. Erst gestern habe ich mich gefragt, wie Transformer/Attention und LLMs genau funktionieren.
    Vor langer Zeit habe ich einmal nachvollzogen, wie Backpropagation in tiefen RNNs funktioniert, daher dachte ich, dass der Rest ebenfalls interessant sein könnte
    • Wenn du Intuition entwickeln willst, erklären die 3b1b-Videos das ziemlich gut. Allerdings gehen sie nicht bis in die allerfeinsten Details
  • Gut. Es wäre schön, wenn es auch unter Windows 11 funktionieren würde.
    Wenn Windows nicht ausdrücklich erwähnt wird, sehe ich häufig, dass es in dieser Umgebung meist nicht getestet wurde und wegen irgendwelcher Probleme nicht gut läuft
    • Unter WSL2 kann man auf die GPU zugreifen, also sollte es wahrscheinlich problemlos laufen. Man sollte nur nicht vergessen, das Cuda toolkit zu installieren; es gibt auch etwas, das NVidia speziell für WSL2 anbietet
      https://developer.nvidia.com/cuda-downloads?target_os=Linux&...
    • Wenn es unter Windows 11 nicht geht, ist es auch eine Möglichkeit, es unter WSL (Windows Subsystem for Linux) zu versuchen
  • Diese Seite ist im Grunde nur ein Container für ein YouTube-Video. Da in der Seitenbeschreibung dieselben Links stehen, wäre es besser, den HN-Link so zu ändern, dass er direkt auf das Video zeigt
    • Im Gegenteil, dadurch wurde uns ein zusätzlicher Schritt erspart, Sebastians Raschkas Artikelsammlung zu finden
    • Er teilt viele Videos und Code, und das Material hat wirklich großen Wert. Warum nicht einfach den Creator unterstützen?
    • Gibt es einen Grund, die Website des Autors selbst nicht zu unterstützen? Die Seite sieht doch auch gut aus