Heute habe ich fast zwei Stunden damit verbracht, mit einer Kollegin bzw. einem Kollegen auf der Arbeit über zustandslose GPUs in @OpenGradient zu streiten. Es begann ziemlich einfach: Wir debuggen einen Fall, bei dem die Inferenzergebnisse leicht danebenlagen, und das Gespräch driftete langsam in Richtung Architektur ab. Aber irgendwann ging es nicht mehr wirklich um GPUs.

Er vertrat die Auffassung, zustandslose GPUs seien der richtige Weg, weil sie sich leicht skalieren lassen: Jede GPU kann jede Anfrage übernehmen, ohne Sitzungsabhängigkeit oder einen zu pflegenden KV-Cache. Ich habe ihm beim Skalierungsargument nicht widersprochen. Aber ich stellte ihm eine direkte Frage: „Wenn es keinen Zustand gibt, wie verfolgt man dann konkret zurück, wenn etwas schiefgeht?“

In OpenGradient gelangt eine Anfrage nicht einfach direkt in das Modell. Sie geht zuerst durch Retrieval, Vektor-Suche, Caching und wird erst danach zu einem Kontext zusammengesetzt. Was die GPU tatsächlich sieht, ist nur die final verpackte Eingabe. Ab diesem Punkt ist das Problem nicht mehr wirklich in der GPU selbst.

Er sagte, so funktioniere es eben bei verteilten Systemen. Guter Punkt. Aber ich fühlte dennoch anders. Früher hatte man wenigstens etwas, woran man den Sitzungszustand oder eine Art Ausführungskontext festmachen und den man inspizieren konnte. Jetzt ist alles aufgesplittet in Cache, Retrieval, Embeddings, Timing … jedes Teil lebt irgendwo anders.

Es gab einen Teil der Diskussion, in dem wir immer wieder dieselbe Frage umrundeten: Was genau skalieren wir hier? Er sagte: Compute. Ich sagte: Nein, es fühlt sich eher so an, als würden wir den Prozess skalieren, der die Eingabe zusammenbaut, bevor das Modell überhaupt läuft. Die GPU ist am Ende nur die Ausführung in einer viel längeren Kette.

Was mir an OpenGradient auffiel, ist, wie viel schwieriger das Debugging dadurch wird. Die GPU macht ihre Arbeit, das Modell passt, die Latenz sieht normal aus. Aber wenn die Ausgaben voneinander abweichen, gibt es keinen einzigen Ort, auf den man zeigen und sagen kann: „Hier ist es schiefgelaufen.“

Zustandslose GPUs vereinfachen das System nicht wirklich. Sie verlagern die Komplexität nach oben, wodurch Fehler viel schwerer auf eine klare Ursache zurückzuführen sind.

$OPG #OPG $XCX $CAP