3 Punkte von GN⁺ 2025-07-30 | 1 Kommentare | Auf WhatsApp teilen
  • Auf einem 2,5 Jahre alten MacBook Pro M2 wurde mit dem GLM-4.5 Air 3bit-Modell der Code für ein Space-Invaders-Spiel in einem Durchgang erzeugt
  • Das Modell ist ein aktuelles Open-Weight-Modell, das von Z.ai aus China unter der MIT-Lizenz veröffentlicht wurde, und zeigt starke Leistungen in Coding-Benchmarks
  • Dank der 44-GB-quantisierten Version lässt es sich auch auf PCs mit 64 GB RAM ausführen
  • Mit der ml-explore/mlx-lm-Bibliothek auf dem neuesten Commit wurde das Modell lokal betrieben; dabei wurden eine vergleichsweise hohe Geschwindigkeit und ein stabiler Betrieb erlebt
  • Kürzlich veröffentlichte große, auf lokales Coding spezialisierte Sprachmodelle zeigen sehr starke Fähigkeiten bei der Codegenerierung und entwickeln sich rasant weiter

Erfahrungen beim Erzeugen von JavaScript Space Invaders mit GLM-4.5 Air und MLX

  1. Juli 2025

Die gestern vorgestellte Modellfamilie GLM-4.5 ist ein aktuelles leistungsstarkes Open-Weight-Modell, das von Z.ai aus China unter der MIT-Lizenz veröffentlicht wurde.
In Coding-Benchmarks wird es als leistungsstark bewertet und kann sich mit bestehenden Modellen wie Claude Sonnet 4 messen.

Schon das kleinste Modell, GLM-4.5 Air, hat insgesamt 106 Milliarden Parameter und ist rund 206 GB groß.
Ivan Fioravanti hat eine auf 3 Bit auf 44 GB quantisierte Version veröffentlicht, die sich in MLX ausführen lässt und dadurch auch auf Notebooks mit 64 GB Speicher läuft.
Im eigenen Test zeigte selbst dieses kleinere Modell eine sehr starke Leistung.

Eingegebener Prompt:

Ein Prompt mit der Aufforderung, eine Seite zu schreiben, die Space Invaders in HTML und JavaScript implementiert

Das Modell brauchte etwas Zeit, um die Antwort zu erzeugen, und dieses Ergebnis wurde erfolgreich ausgegeben.
Obwohl es sich um ein einfaches Beispiel handelt, ist es beeindruckend, dass ein 2,5 Jahre altes Notebook (MacBook Pro M2 mit 64 GB) bereits beim ersten Versuch funktionsfähigen und erstaunlich vollständigen Code direkt erzeugt hat.

So wird das Modell ausgeführt

from mlx_lm import load, generate
model, tokenizer = load("mlx-community/GLM-4.5-Air-3bit")
  • Die 44 GB großen Modellgewichte werden im Ordner ~/.cache/huggingface/hub/models--mlx-community--GLM-4.5-Air-3bit gespeichert

  • Der Prompt wird wie folgt eingegeben, um die Generierung auszuführen

prompt = "Write an HTML and JavaScript page implementing space invaders"
messages = [{"role": "user", "content": prompt}]
prompt = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt=True
)
response = generate(
    model, tokenizer,
    prompt=prompt,
    verbose=True,
    max_tokens=8192
)
  • Im Generierungsprozess wurden zunächst die Anforderungen des Problems und Informationen zum Spieldesign geordnet ausgegeben
  • Anschließend wurden tatsächlich lauffähiger HTML-, CSS- und JavaScript-Code mit hoher Geschwindigkeit erzeugt

Generierungsstatistik

  • Prompt: 14 Tokens, Generierung mit 14,095 Tokens pro Sekunde

  • Hauptteil: 4193 Tokens, Generierung mit 25,564 Tokens pro Sekunde

  • Maximale Speichernutzung: 47,687 GB

  • Der vollständige Gesprächsverlauf ist unter diesem gist-Link verfügbar

  • Den ausgegebenen Quellcode gibt es im GitHub-Beispiel

  • Ein direkter Test im Browser ist ebenfalls möglich

Pelican-Benchmark-Test

  • Mit dem Benchmark pelican riding a bicycle wurde auch die Fähigkeit des Modells zur SVG-Bilderzeugung bewertet
  • Auf den Prompt Generate an SVG of a pelican riding a bicycle hin wurde erfolgreich kreativer SVG-Bildcode erzeugt
  • Das Modell verbraucht dabei bis zu etwa 48 GB RAM und liefert anschließend das Ergebnis zurück
  • Auf dem Notebook mussten einige Apps geschlossen werden, um genug Speicher freizumachen
  • Auch die Geschwindigkeit ist auf einem zufriedenstellenden Niveau

Fortschritte bei lokalen Coding-Modellen

  • Im Jahr 2025 konzentrieren sich die meisten großen Sprachmodelle auf eine Verbesserung der Leistung bei der Codegenerierung
  • Dadurch zeigen sie auch auf lokaler Hardware eine hohe praktische Nutzbarkeit für Codegenerierung
  • Sie nähern sich einem Niveau, das beim ersten LLaMA-Versuch vor zwei Jahren kaum vorstellbar war
  • Auf demselben aktuell genutzten Notebook lassen sich nun die Vorteile leistungsstarker Open-Source-Modelle wie GLM-4.5 Air, Mistral 3.2 Small, Gemma 3 und Qwen 3 nutzen, die nacheinander erscheinen
  • Durch die Veröffentlichung verschiedener hochwertiger, auf Coding spezialisierter Sprachmodelle, die lokal laufen, hat sich die Entwicklungsumgebung in den letzten sechs Monaten verbessert

1 Kommentare

 
GN⁺ 2025-07-30
Hacker-News-Kommentar
  • Als ich vor 2 Jahren zum ersten Mal mit LLaMA in Berührung kam, hätte ich mir nie vorstellen können, dass Modelle wie das heutige GLM 4.5 Air (Gemma 3, Qwen 3, Mistral 3.2 Small usw.) auf dem Laptop laufen würden, den ich damals benutzt habe. Sowohl die Qualität als auch die Veröffentlichungsgeschwindigkeit der offenen Modelle haben meine Erwartungen weit übertroffen. Als ChatGPT im Dezember 2022 erschien, waren die besten offenen Modelle, die es damals gab, übrigens GPT-J (ca. 6–7B) und GPT-neoX (etwa 22B?). Ich habe tatsächlich fast einen Monat lang einen Nutzerdienst mit gpt-j betrieben, aber die Qualität war miserabel und es folgte Anweisungen überhaupt nicht, sodass es nur halbwegs funktionierte, wenn man Prompts wie Geschichten formulierte oder mehrere Beispiele hineinschrieb. Danach wurde das LLama-Modell „geleakt“ (ich denke, es war ein absichtlicher Leak), und die Geschichte änderte sich. In der L1-Ära erschienen verschiedenste Optimierungen wie Quantisierung und Fine-Tuning, mit L2 wurde Fine-Tuning dann ernsthaft kommerzialisiert (die meisten Fine-Tunes waren besser als Metas Original), und nach Alpacas LoRA-Demo kamen extrem starke Modelle wie Mistral, Mixtral, L3, Gemma, Qwen, DeepSeek, glm, Granite usw. heraus. Einer Analyse zufolge liegen offene Modelle etwa 6 Monate hinter den Modellen zurück, die von State-of-the-Art-Laboren veröffentlicht werden (wobei man annimmt, dass die Labore ihre besten Modelle nicht veröffentlichen, sondern intern etwa für die Kuratierung der nächsten Trainingsdaten verwenden). Ein Rückstand von 6 Monaten ist völlig verrückt. Ich dachte, bis zum Niveau von GPT-3.5 würde es etwa 2 Jahre dauern, aber ich hätte mir nie vorstellen können, dass wir in einer Welt landen, in der man solche Modelle lokal laufen lässt und sogar selbst fine-tunt

    • Ich habe eine Zeit lang immer wieder gefragt, wie man LLM-Fine-Tuning oder LoRA (parameter-effizientes Fine-Tuning) eigentlich erstellt oder verwendet. Ich habe nie wirklich nützliche Antworten bekommen, und die Websuche ist voller SEO-/Werbeartikel. Wie man SD-LoRAs erstellt und benutzt, weiß ich seit 2 Jahren und beherrsche es gut. Aber nur bei LLM-LoRAs fühlt sich alles wie ein verstecktes Geheimnis an

    • Dass Zuck (Mark Zuckerberg) es persönlich irgendwo wie auf 4chan geleakt hat, ist eher unwahrscheinlich

    • Ich frage mich, ob GLM 4.5 besser ist als Qwen3 coder

  • Ich finde es immer noch erstaunlich, dass eine Codegenerierung wie diese auf einem MacBook Pro M2 mit 64 GB möglich ist, das ich vor 2,5 Jahren gekauft habe. Vor allem kam Code heraus, der ohne Änderungen auf Anhieb lief. Ich glaube, wir unterschätzen massiv, welches Potenzial in der heutigen Hardware steckt. Mir macht Sorge, dass die „Bitter Lesson“ („Magie hängt von Rechenressourcen ab“) und die Denkweise von den „Grenzen effizienter Berechnung“ kluge Leute eher davon abhalten, innovative Ansätze zu erforschen. Tatsächlich könnte es sogar eher ineffizienter sein, wenn man sieht, dass heutige Modelle auch dann noch Leistung behalten, wenn man die Gewichtspräzision nach dem Training massiv reduziert

    • War der Kern der Bitter Lesson nicht eher, dass man große Datenmengen braucht? Auch das als Beispiel genannte Modell wurde schließlich auf einem riesigen Korpus von etwa 22 Billionen Tokens trainiert
  • Ich frage mich, ob die Implementierung wirklich verstanden wurde oder ob nur geschaut wurde, dass sie irgendwie läuft. Selbst ein LLM könnte bei typischen Interviewfragen wohl ungefähr richtige Antworten ausspucken. Kolleg:innen haben einmal mit einem LLM eine JSON-Visualisierungs-App gebaut, als sie Datenänderungen präsentieren wollten, und ich habe mich gefragt, warum man etwas Neues baut, wenn es bereits funktionierende JSON-Viewer gibt. Im Arbeitsalltag scheint es so, als würden Leute LLMs meist zur Aufwertung von Präsentationen nutzen und kaum für Werkzeuge, die tatsächlich praktisch verwendet werden. Ein anderer Kollege brauchte ein Makro, um große Mengen an Lehrmaterial zu bearbeiten, und begann damit, erst einmal eine Rubrik für LLM-Prompts zu erstellen, danach die Makroanforderungen in Präsentationsfolien zusammenzufassen und diese wieder ins LLM zu werfen. Das System war so kompliziert, dass ich nicht glaube, dass damit tatsächlich Zeit gespart wurde. Das Ergebnis war zwar faszinierend, aber oft für andere Menschen völlig nutzlos

    • Ich habe den Code überflogen und verstanden, was er tut, aber wenn ich nur prüfe, ob etwas läuft, schaue ich nicht tiefer hinein. Wenn ich mit LLMs produktionsreifen Code schreibe, überprüfe ich jede einzelne Zeile. Ich committe Code nur dann, wenn ich ihn so gut verstehe, dass ich ihn anderen erklären könnte. Es gibt einen ausführlichen Artikel darüber, wie LLMs beim Schreiben von produktivem Code eingesetzt werden können
      https://simonwillison.net/2025/Mar/11/using-llms-for-code/

    • Das LLM selbst ist genau diese Lösung

    • Wegwerfcode ist tatsächlich ein Bereich, in dem AI ihren wahren Wert zeigt. Wenn sie mir absurdes Boilerplate für Build-Systeme oder Animationscode automatisch erzeugt, nehme ich das sehr gern (wenn man bedenkt, wie viel Arbeit 3Blue1Brown in Animationen steckt, würde ich AI dort ausdrücklich begrüßen). Dass Menschen ohne Programmierkenntnisse wenigstens einen Prototyp bauen und ihn dann an professionelle Entwickler weitergeben können, ist ein echter Mehrwert. Man muss die Details des resultierenden Codes nicht verstehen; es reicht, ihn als bestanden/nicht bestanden zu beurteilen, und das ist praktisch enorm nützlich. Probleme mit „Millionenwert“ liegen allerdings eher woanders, etwa bei der Behebung echter Service-Bugs oder dem Hinzufügen von Features, und dort stößt AI an Grenzen. Andererseits war Wegwerfcode früher oft ein Wachstumsfeld für Junior-Entwickler, und dass AI ihnen das wegnimmt, ist ein bedenklicher Punkt

  • Ich vermute, dass die Trainingsdaten dieses Modells wahrscheinlich sehr viele in verschiedenen Sprachen geschriebene Space-Invaders-Implementierungen enthielten

    • Der echte Test ist, ob das Modell auch auf detaillierte Umsetzungswünsche reagieren kann wie: „Ändere die Funktion, lass das Raumschiff nach unten schießen, lass es von links/rechts erscheinen, füge einen 2-Spieler-Modus hinzu“

    • Vermutlich wurden manche synthetischen Daten auch dadurch erzeugt, dass das Modell bereits im Datensatz vorhandene Spiele kopiert hat. Wenn ich mir von LLMs erzeugten React-Frontend-Code anschaue, sieht alles irgendwie gleich aus

    • Diese Diskussion ist eigentlich schon seit 3 Jahren vorbei. Seit gpt3 ist praktisch aller nutzbare Code in den Trainingsdaten enthalten, und wir sind in nur 2 Jahren von „der Code sieht richtig aus, ist aber in Wirklichkeit komplett falsch“ zu „eine funktionierende Full-Stack-App wird in 0-shot einfach so erzeugt“ gekommen. Entscheidend für diesen Sprung sind nicht bloß Datensätze, sondern Post-Training, Reinforcement Learning (RL), lange Kontexte, agentisches Verhalten usw. Frühe Modelle hatten Grenzen von 2/4k Tokens, heute ist die Lage völlig anders. Einfach nur von Daten zu reden, ohne diese Perspektive, verfehlt den Punkt komplett

    • Die visuelle Ähnlichkeit zum Spiel Breakout ist interessant

    • Auch solche Kommentare haben am Ende wahrscheinlich eine hohe Chance, als ähnliche synthetische Bemerkungen ohne echte Analyse massenhaft in den Trainingsdaten gelandet zu sein

  • Ich habe ein M4 Mac mit 128 GB RAM und lade gerade GLM-4.5-Air-q5-hi-mlx (80 GB) in LM Studio herunter. Ich werde die Ergebnisse bald teilen

  • Ich denke, es ist sehr bedeutend, zu zeigen, dass LLMs lokal auf einem Laptop laufen können. Früher war so etwas mit kleinen Modellen fast unmöglich, also ist das ein wirklich wichtiger Meilenstein. Bei einer speziellen, engen Domäne wie Space Invaders wäre es aber vermutlich effizienter, einfach eine bestehende Implementierung auf GitHub oder anderswo zu suchen und herunterzuladen. In solchen Fällen ist das Trainingsset selbst extrem klein, und auch der Vektorraum des Modells kann nur begrenzt sein, sodass die Wahrscheinlichkeit hoch ist, dass der resultierende Code dem Original sehr ähnelt oder fast Copy-paste ist. Außerdem muss man dem Modell noch beim Tippen zusehen, wodurch der Mehrwert sehr gering ist. Ich finde es klüger, ein LLM einfach zu bitten: „Finde mir bestehenden Space-Invaders-Quellcode auf GitHub in Sprache X.“ Es ist schon lustig, wenn man ChatGPT solche Codebereinigungen überlässt und das LLM dann dazu gebracht wird, immer wieder zu behaupten, „es gibt kaum Overfitting, und das Modell memoriert nicht“ (ich glaube beides nicht besonders)

    • Ich konnte diese Warnmeldung in ChatGPT nicht reproduzieren. Tatsächlich steckt hinter dem Einfügen solcher Warnhinweise viel politische Macht (direkt oder leicht umformuliert), und das finde ich ziemlich interessant
  • Ich habe es mit Claude Sonnet 4 versucht, aber es funktioniert nicht richtig. Das 3bit-quantisierte GLM-4.5 Air liegt also vorn. Der zugehörige Chatverlauf: https://claude.ai/share/dc9eccbf-b34a-4e2b-af86-ec2dd83687ea Claude Opus 4 funktioniert zwar ebenfalls, liegt aber weit hinter dem von Simon geposteten GLM-4.5 zurück: https://claude.ai/share/5ddc0e94-3429-4c35-ad3f-2c9a2499fb5d

  • Ich habe den Titel zuerst falsch gelesen als: „Unser 2,5 Jahre altes Kind schreibt jetzt Space Invaders in JavaScript (GLM-4.5 Air)“. Aber in ein paar Jahren könnte das tatsächlich möglich sein

  • Diese Diskussion wirft eine interessante science-fiction-artige Frage auf. Wenn die Binärdatei einer zukünftigen künstlichen Intelligenz durch ein Wurmloch auf heutige Consumer-Hardware fiele, könnte man diese Superintelligenz oder zumindest einen schwachen Agenten dann ausführen (oder könnte sie sich über Netzwerk und Überzeugungskraft auf anderer Hardware selbst bootstrappen)?

    • Das ist genau die Grundannahme meiner bisherigen ML-Forschung. Wenn man nur „Wurmloch“ durch „genetische Programmierung/Neuroevolution usw.“ ersetzt, ist es dasselbe. Die extrem optimierte Software der Demoszene hat mich auf diesen Weg gebracht. Die Frage, die ich mir in letzter Zeit immer wieder stelle, lautet: „Wie groß wäre die Kolmogorov-Komplexität einer Binärdatei, die sämtliche Fähigkeiten der aktuellen LLM-Generation in gleicher Weise bereitstellt?“ Falls diese Größe (Komplexität) auf meinem heutigen Desktop ausführbar wäre, wie sähe das Bild dann aus? Mein PC rendert AAA-Spiele mit 400 fps, und ich glaube einfach nicht, dass der Unterschied zu einem LLM, das UTF-8-Text mit 100b/s ausgibt, so groß sein muss

    • Das ist der Teil, den ich wirklich faszinierend finde. Wie viele verborgene Fähigkeiten gibt es noch, und wie könnte man das noch extremer ausreizen? Und was wäre sogar mit exotischer, neuer Hardware? Wir arbeiten meist mit Abstraktionen, weil das menschliche Gehirn Grenzen hat. Dadurch konzentrieren wir uns auf enge Bereiche, aber Abstraktionen sind teuer, und ich frage mich, welches Potenzial darin liegt, diese Grenzen aufzuheben

  • Ich frage mich, ob es eine Website gibt, die minimale/empfohlene Hardware zum lokalen Ausführen von LLMs zusammenfasst, so etwas wie „Systemanforderungen“ bei Spielen

    • Mit LM Studio (neben vielen anderen Tools) ist es sehr einfach, ein Modell auszuwählen, das zur eigenen Hardwareleistung passt

    • Zusätzlich zu den anderen Antworten ist eine gute Faustregel, dass die meisten lokalen Modelle bei q4-Quantisierung die beste Performance zeigen (man braucht etwas mehr als die Hälfte der Größe der Modellparameter als Speicher). Bei einem 14B-Modell sind das zum Beispiel etwa 8 GB, dazu kommt noch der Context-Speicher, also sind für ein 14B-Modell ungefähr 10 GB VRAM ein vernünftiger Richtwert. Wenn bei q4 noch Ressourcen übrig sind, nimmt man ein Modell mit mehr Parametern, andernfalls geht man auf eine kleinere Quantisierung herunter

    • Hier gibt es ebenfalls nützliche Informationen
      https://www.reddit.com/r/LocalLLaMA/

    • Ich finde diese Website sehr hilfreich
      https://apxml.com/tools/vram-calculator

    • Wenn man ein HuggingFace-Konto hat, kann man seine vorhandene Hardware registrieren und dann für jedes Modell sofort sehen, ob es darauf laufen kann