Tensor Cores, Triton, Residualnetzwerke und Vision Transformers

Zwischen 2015 und heute entwickelte sich Deep Learning von manuell optimiertem C++-GPU-Code und Faltungsnetzwerken hin zu hardwarebeschleunigten Matrixeinheiten und Transformer-Architekturen. Diese drei Meilensteine bestimmen, wie moderne KI-Modelle entwickelt und skaliert werden.
1. Die moderne CUDA-Entwicklung: Tensor Cores und OpenAI Triton
2012 schrieb Alex Krizhevsky hardwarenahen CUDA-C++-Code (cuda-convnet), um einzelne Gleitkommaoperationen auf gewöhnlichen CUDA-Kernen zu berechnen. Heute beruht Deep Learning auf spezialisierter Matrixhardware und Compilern auf höherer Abstraktionsebene.
- Von CUDA-Kernen zu Tensor Cores. Herkömmliche CUDA-Kerne führen pro Taktzyklus eine skalare Multiplikation und Addition aus. Mit der Volta-Architektur (2017) führte NVIDIA Tensor Cores ein, die ganze kleine Matrizen (etwa 4×4- oder 16×16-Blöcke) in einem einzigen Taktzyklus multiplizieren. Moderne Tensor Cores nutzen Formate mit gemischter Genauigkeit wie FP16, BF16 und FP8 und beschleunigen Matrixmultiplikationen um eine Größenordnung.
- cuDNN und automatische Kernel-Auswahl. Statt dass Forschende eigene C++-Faltungen schreiben, enthält NVIDIAs cuDNN-Bibliothek heute Hunderte vorkompilierte Assembler-Kernel. Zur Laufzeit messen Frameworks wie PyTorch die Leistung verschiedener Algorithmen für die genaue Form Ihres Tensors und wählen automatisch die schnellste Tensor-Core-Routine aus.
- OpenAI Triton (Python-basierte GPU-Programmierung). Wer direkt CUDA C++ schreibt, muss die Thread-Indizierung, Bankkonflikte im Shared Memory und die Warp-Synchronisierung manuell verwalten. Das von OpenAI veröffentlichte Triton ermöglicht Forschenden, leistungsfähige GPU-Kernel direkt in Python zu schreiben. Sie definieren Operationen auf Blockebene (Datenkacheln), und der Triton-Compiler kümmert sich automatisch um die Zusammenfassung von Speicherzugriffen, die Kachelung im Shared Memory und die Ablaufplanung der Tensor Cores. Dabei erreicht oder übertrifft er häufig die Leistung manuell optimierten CUDA-C++-Codes.
2. ResNet-Sprungverbindungen und der Fluss bei der Rückpropagation
Vor ResNet (2015) ließ die Stapelung von mehr als etwa 20 Faltungsschichten den Trainingsfehler sprunghaft steigen. Während Gradienten rückwärts durch Dutzende Multiplikationsschritte liefen, schrumpften sie gegen null (verschwindende Gradienten) oder wurden instabil.
- Residuen statt direkter Ausgaben lernen. In einem gewöhnlichen Netzwerkblock versuchen gestapelte Schichten, eine direkte Abbildung H(x) aus der Eingabe x zu lernen. ResNet führt eine Sprungverbindung (Identitätsabkürzung) ein, die die ursprüngliche Eingabe x direkt zur Ausgabe des Blocks addiert:
y=F(x)+x
Hier steht F(x) für die gestapelten Faltungsschichten. Statt die gesamte Repräsentation von Grund auf neu aufzubauen, müssen die Schichten nur das Residuum lernen (die kleine Anpassung F(x) = y - x). Wenn eine Schicht nicht benötigt wird, kann das Netzwerk F(x) leicht gegen null verschieben, sodass eine unveränderte Identitätsweiterleitung übrig bleibt.
- Eine durchgängige Schnellstraße für Gradienten. Bei der Rückpropagation berechnet die Kettenregel den Gradienten der Verlustfunktion (L) bezüglich der Eingabe x:
(∂ L)/(∂ x)=(∂ L)/(∂ y)((∂ F(x))/(∂ x)+1)
Durch den Term + 1, den die Identitätsabkürzung erzeugt, fließt der vorgelagerte Gradient ((∂ L)/(∂ y)) direkt rückwärts zu früheren Schichten, ohne durch kleine Gewichtsmatrizen in (∂ F(x))/(∂ x) verkleinert zu werden. Dadurch können sich Gradienten ungehindert durch mehr als 100 oder sogar mehr als 1.000 Schichten ausbreiten.
3. Der Wechsel von CNNs zu Vision Transformers (ViT)
Fast ein Jahrzehnt nach AlexNet dominierten Convolutional Neural Networks (CNNs, Faltungsnetzwerke) das maschinelle Sehen, indem sie kleine lokale Filter über Bilder gleiten ließen. 2020 stellte Google den Vision Transformer (ViT) vor und übertrug damit die Transformer-Architektur aus der Verarbeitung natürlicher Sprache auf Bilder.
| Merkmal | Convolutional Neural Networks (CNNs) | Vision Transformers (ViT) |
|---|---|---|
| Eingabeverarbeitung | Verarbeitet das gesamte zweidimensionale Bildraster mit gleitenden Filtern (z. B. 3×3). | Teilt das Bild in Ausschnitte fester Größe (z. B. 16×16 Pixel) und flacht sie zu einer Token-Sequenz ab. |
| Rezeptives Feld | Zunächst lokal. Frühe Schichten sehen nur benachbarte Pixel; globaler Kontext entsteht langsam in tiefen Schichten. | Sofort global. Selbstaufmerksamkeit verbindet jeden Bildausschnitt bereits ab Schicht 1 mit jedem anderen Ausschnitt. |
| Induktiver Bias | Hoch. Eingebaute Annahmen über Translationsinvarianz und zweidimensionale räumliche Lokalität helfen CNNs, auch mit kleineren Datensätzen gut zu lernen. | Niedrig. Keine eingebauten zweidimensionalen räumlichen Regeln (stattdessen Positions-Embeddings), weshalb riesige Datensätze zum Erlernen visueller Struktur erforderlich sind. |
| Hardware-Skalierung | Beruht auf spezialisierten Faltungs-Kerneln und komplexen Speicherzugriffsmustern. | Beruht fast vollständig auf dichten Matrixmultiplikationen (GEMMs), die die Tensor Cores moderner GPUs mit höchster Effizienz auslasten. |
- Warum ViTs die moderne KI eroberten. Während CNNs für leichtgewichtige Mobil- und Edge-Geräte weiterhin effizient sind, skalieren Vision Transformers viel besser, wenn sie mit Hunderten Millionen Bildern trainiert werden. Weil ViTs Bilder außerdem als Token-Sequenzen darstellen, also im exakt gleichen Format wie Text und Audio, ermöglichten sie modernen multimodalen KI-Modellen (wie GPT-4o und Gemini), Bildverarbeitung und Sprache innerhalb einer einzigen einheitlichen Architektur zu verarbeiten.