Zum Inhalt springen
Kurzer Hinweis: flozi00 TechHub ist ein Solo-Nebenprojekt neben einem Vollzeitjob — persönliche Lernnotizen, keine offiziellen Aussagen. Kritische Schritte selbst prüfen.

Nemotron 3.5 Super VL: Wo visuelle Tokens komprimiert werden

C-RADIO-Patches, räumliche Umordnung, Frame-Paar-Projektion und änderungsbasiertes Pruning nachvollziehen; Token- und KV-Budgets sowie Laufzeitunterschiede prüfen.

8 Min. Lesezeitflozi00
aiarchitecturemultimodalvisionvideonemotroninferencekv-cache

KI-Hinweis: Dieser Artikel wurde mit Unterstützung generativer KI erstellt. Redaktionell verantwortlich: Florian Zimmermeister (flozi00). Impressum und Kontakt.

NVIDIA veröffentlichte Nemotron 3.5 Super VL 120B-A12B am 15. Oktober 2026, mit BF16- und NVFP4-Checkpoints sowie vLLM-/SGLang-Serving-Rezepten. Die BF16-Model-Card nennt OpenMDW-1.1 als maßgebliche Modelllizenz. Es handelt sich um ein nutzbares Text-/Bild-/Video-zu-Text-Modell; der allgemeine Klassenname mit „Omni“ belegt keine Audiounterstützung, und dieser Checkpoint hat sound_config: null.12

Dieser Guide prüft den BF16-Checkpoint unter 1f8953f7f0935358e3605150d22bc15df062061c und vLLM unter fce64bc5c2c939a4521bfb9b462c8c74c1c13893, Stand 20. Oktober 2026. Er verfolgt den visuellen Eingabepfad, statt den Bolt-Guide zu LatentMoE und Gewichtsspeicherung zu wiederholen. Die folgenden Zahlen sind aus Quellen hergeleitet, keine gemessenen Latenzen, Genauigkeiten oder VRAM-Spitzen.

Was die veröffentlichte Konfiguration verbindet

Der Sprach-Backbone besitzt 88 getrennte Blöcke: 40 Mamba-2-, 40 MoE- und acht Attention-Blöcke, mit Hidden-Breite 4.096. Das sind nicht 88 herkömmliche Attention-plus-FFN-Schichten. MoE-Blöcke wählen 22 von 512 gerouteten Experten und haben zusätzlich einen Shared Expert; die geroutete Latentbreite beträgt 1.024. Diese Zahlen entsprechen nicht Bolts heterogener Expertengeometrie.2

Tabellen und Formeln verwenden internationale Zahlenschreibweise: Komma als Tausendertrennzeichen, Punkt als Dezimaltrennzeichen.

Visuelle KomponenteCheckpoint-Wert
Vision-Transformer-Schichten / Breite / Attention-Heads32 / 1,280 / 16
Räumlicher RGB-Patch16 × 16 Pixel
Vision-Präfixtokens3 Class- + 7 Register-Tokens
Räumliche Downsample-Rate / Layoutversion0.5 / v2
Connector-Eingangs- / Zwischen- / Ausgangsbreite5,120 / 20,480 / 4,096
Zeitliche Patchgröße2 abgetastete Frames
Gespeicherte Video-Pruning-Rate0.7
Maximaler Kontext des Sprach-Backbones1,048,576 Tokens

Die Model Card bezeichnet den Encoder als C-RADIO. Sein Code liefert dichte Patch-Features an den Connector, keinen einzelnen gepoolten Bildvektor. Class- und Register-Präfixe wirken im Vision-Modell mit, werden aber vor der weitergereichten Feature-Sequenz abgetrennt.13

Bilder: dynamische Auflösung vor den Sprachtokens

Der exportierte Bildprozessor erzeugt pro Bild eine Kachel mit dynamischer Größe. Er verwendet ein 16-Pixel-Patchraster, Patch-Budgeteinstellungen von 1.024 bis 13.312 sowie gerade Rasterdimensionen für das spätere räumliche Zusammenlegen. Rundung und Seitenverhältnis bestimmen das tatsächliche Raster; diese Einstellungen versprechen nicht für jedes Bild exakt die maximale Tokenzahl. force_image_size: 512 belegt nicht, dass dieser Prozessor immer auf ein Quadrat mit 512 Pixeln skaliert.45

Der ausführbare Vorverarbeitungspfad verwendet antialiasierte bikubische Tensor-Interpolation mit align_corners=False, gefolgt von kanalweiser Normalisierung (x/255−μ)/σ(x/255-\mu)/\sigma. Diese Angabe ist präziser als „bikubisches Resize“ oder der ältere PIL-bezogene Kommentar in der Datei. Änderungen an Kernel, Antialiasing und Normalisierung verändern die Eingaben vor jeder gelernten Berechnung.5

Für ein verarbeitetes Bild der Größe H′×W′H'\times W' seien h=H′/16h=H'/16, w=W′/16w=W'/16 und P=hwP=hw. Der folgende Datenfluss lässt die zehn Vision-Präfixtokens nach ihrem Abtrennen weg. Das Beispiel beginnt mit einem bereits verarbeiteten 512 × 512 großen Bild; dies ist keine allgemeine Resize-Regel.

StufeAllgemeine Feature-FormBeispiel 512 × 512
Dichte Vision-Features[P, 1280][1024, 1280]
Abschließende Vision-LayerNorm[P, 1280][1024, 1280]
Räumliche 2 × 2-Umordnung[P/4, 5120][256, 5120]
RMSNorm → Linear → ReLU² → Linear[P/4, 4096][256, 4096]
Platzhalter im Sprachprompt ersetzenP/4 visuelle Positionen256 visuelle Positionen

Die abschließende Vision-LayerNorm vor der Umordnung wird hier aufgebaut, weil der gespeicherte Backbone MTP aktiviert hat. Sie ist von der RMSNorm des Connectors nach der Umordnung mit Epsilon 10−510^{-5} getrennt. Reihenfolge und Achsen lassen sich nicht vertauschen, ohne die Funktion zu verändern.67

Pixel Shuffle ist eine Permutation; der Connector nicht

Trotz des Namens verschiebt pixel_shuffle hier vier benachbarte Feature-Vektoren in einen breiteren Vektor. Für das gespeicherte v2-Layout sei VV das normalisierte Vision-Raster und zz seine Umordnung:

zi,j=concat⁡a,b∈{0,1}V2i+a, 2j+b,(h,w,1280)⟶(h/2,w/2,5120).z_{i,j}=\operatorname{concat}_{a,b\in\{0,1\}} V_{2i+a,\,2j+b}, \qquad (h,w,1280)\longrightarrow(h/2,w/2,5120).

Die Elementzahl bleibt gleich: P⋅1280=(P/4)⋅5120P\cdot1280=(P/4)\cdot5120. Bei einem teilbaren Raster ist die Umordnung selbst invertierbar. Sie mittelt nicht und verwirft für sich genommen nicht drei Viertel der skalaren Features. Der gelernte Connector berechnet anschließend:

ei,j=W2[ReLU⁡ ⁣(W1RMSNorm⁡(zi,j))]2,W1∈R20480×5120,W2∈R4096×20480.e_{i,j}=W_2\left[\operatorname{ReLU}\!\left(W_1\operatorname{RMSNorm}(z_{i,j})\right)\right]^2, \quad W_1\in\mathbb{R}^{20480\times5120},\quad W_2\in\mathbb{R}^{4096\times20480}.

Quadrieren erfolgt elementweise; die beiden linearen Schichten haben keinen Bias. Das ist eine gelernte nichtlineare Projektion auf Sprachbreite, kein verlustfreier Bildcodec. Gegenüber einer Verarbeitung jedes einzelnen Patches durch einen 4.096 breiten Connector erhält das Sprachmodell viermal weniger visuelle Positionen. Das vergleicht Tokenzahlen, nicht eine gemessene vierfache Ende-zu-Ende-Beschleunigung.6

Der Wrapper bettet den Textprompt ein und ersetzt Bild-Platzhalterzeilen durch diese Vektoren. Der Sprach-Backbone verarbeitet visuelle und Textpositionen damit in einer Sequenz; er greift nicht per Cross-Attention auf einen separaten dauerhaften Bildspeicher zu. Der LLM-Grundlagenguide erklärt die anschließende Token-zu-Ausgabe-Schleife.

Video: ein gelernter Zwei-Frame-Patch statt Frame-Mittelung

Für FF abgetastete Frames gibt es G=⌈F/2⌉G=\lceil F/2\rceil zeitliche Gruppen. Bei ungeradem FF wiederholt das exportierte Modell den letzten Frame, formt jedes Paar in sechs Kanäle um und verwendet eine eigene Video-Patch-Projektion. Jeder räumliche Patch hat jetzt 2⋅3⋅162=15362\cdot3\cdot16^2=1536 Eingabeskalare, die vor dem Vision Transformer auf 1.280 Features abgebildet werden.63

ug,i,j=Wvvec⁡(two aligned RGB patchesg,i,j),Wv∈R1280×1536,Nvisual,preprune=Ghw4.u_{g,i,j}=W_v\operatorname{vec} \left(\text{two aligned RGB patches}_{g,i,j}\right), \quad W_v\in\mathbb{R}^{1280\times1536},\qquad N_{\mathrm{visual,preprune}}=G\frac{hw}{4}.

Diese Projektion kann unterschiedliche Gewichte für beide Frames lernen; sie ist nicht auf deren Mittelwert beschränkt. Sie ist auch nicht allgemein invertierbar: Die lineare Abbildung hat bei 1.536 Eingabedimensionen höchstens Rang 1.280. Dieselbe räumliche Umordnung und derselbe Connector verarbeiten anschließend die Features jeder Gruppe. Bei gerader Framezahl ergeben Paarbildung und räumliches Zusammenlegen achtmal weniger Sprachpositionen, als jeden rohen räumlichen Patch jedes abgetasteten Frames separat zu behandeln. Bild- und Video-Patch-Projektoren sind unterschiedliche gelernte Abbildungen; das Verhältnis belegt deshalb keinen gleichwertigen Informationserhalt.

Der exportierte Prozessor kennzeichnet zeitliche Gruppen mit Frame-/Zeitstempeltext. Diese Angaben, Bildbegrenzungsmarker, die Frage und die Antwort verbrauchen zusätzliche Kontextpositionen jenseits der visuellen Zahl. Die Frame-Auswahl geschieht vor diesem Pfad: Ein Ereignis, das in keinem abgetasteten Frame erscheint, lässt sich durch einen größeren Sprachkontext nicht zurückholen.8

EVS: Änderungen erhalten, nicht Relevanz garantieren

Efficient Video Sampling (EVS) läuft nach Vision-Encoding und Projektion. An jeder räumlichen Position ss vergleicht es die Embeddings eg,se_{g,s} benachbarter zeitlicher Gruppen per Kosinusähnlichkeit. Die erste Gruppe erhält den künstlichen Score 255; spätere Scores liegen für endliche, von null verschiedene Vektoren in [0,2][0,2]. Für S=hw/4S=hw/4 Positionen pro Gruppe und die Pruning-Rate qq beträgt die verbleibende Zahl:9

dg,s=1−cos⁡(eg,s,eg−1,s)(g>0),K=max⁡ ⁣(S,⌊GS(1−q)⌋).d_{g,s}=1-\cos(e_{g,s},e_{g-1,s})\quad(g>0),\qquad K=\max\!\left(S,\left\lfloor GS(1-q)\right\rfloor\right).

Die Implementierung wählt die größten Scores global über den Clip, mit stabiler Reihenfolge bei Gleichständen. Alle Positionen der ersten Gruppe bleiben erhalten; spätere Gruppen müssen aber keine gleichen Kontingente behalten. Eine Pruning-Einstellung von 70 % entfernt deshalb nicht exakt 70 % aus jeder Gruppe. Bei kurzen Clips oder sehr großem qq dominiert die Untergrenze von einer Gruppe.

Kosinusdistanz ist eine Änderungsheuristik, kein Relevanzschätzer. Positive Skalierungen desselben Vektors haben Distanz null; Kamerabewegung kann große Feature-Änderungen erzeugen, ohne nützliche Evidenz hinzuzufügen. Ein kurzes relevantes Detail zwischen den abgetasteten Frames fehlt ganz. Gelöschte Vektoren werden nicht rekonstruiert, und es gibt keine Garantie, dass beliebige OCR- oder Tracking-Aufgaben eine bestimmte Rate überstehen. Dies sind aus dem Mechanismus abgeleitete Grenzen, keine gemessenen Modellfehler.

Ein reproduzierbares Tokenbudget, kein Durchsatzversprechen

Betrachtet werden 256 bereits abgetastete Frames. Unter der exportierten seitenverhältniserhaltenden Größenregel mit 1.024 Zielpatches wird eine 16:9-Eingabe auf 672 × 384 Pixel gebracht, also ein 42 × 24-Patchraster. Räumliches Zusammenlegen ergibt S=21⋅12=252S=21\cdot12=252, Paarbildung ergibt G=128G=128. Die folgenden Zahlen setzen exakt diese aufgelöste Geometrie und EVS voraus, nicht die Standards jeder Runtime.510

Die acht Attention-Blöcke des Backbones verwenden zwei KV-Heads mit Breite 128. Ihr ungeshardeter logischer KV-Beitrag aus KK erhaltenen visuellen Positionen ist M=2⋅8⋅2⋅128⋅b⋅KM=2\cdot8\cdot2\cdot128\cdot b\cdot K, wobei bb Bytes pro Skalar angibt. Das sind 8 KiB pro Position in BF16, ohne alle übrigen Positionen und Zustände.2

EVS-Pruning qErhaltene visuelle PositionenBackbone-BF16-KV dieser Positionen
032,256252 MiB
0.516,128126 MiB
0.79,67675.594 MiB

Diese Zahlen enthalten keine Zeitstempel-/Marker-/Texttokens, Mamba-Zustände, MTP-Zustände, Vision-Aktivierungen, Embedding-Caches, Gewichte, Parallelreplikation oder Allokationskosten. EVS verkürzt die nachgelagerte Sequenz und ihren Attention-Cache; das Vision-Encoding später gelöschter Features überspringt es nicht. Der fixierte vLLM-Encoder verwendet vor dem Pruning Frame-Microbatches von höchstens 128, ausgerichtet an zeitlichen Gruppen. Weniger finale Tokens beweisen keine proportional kleinere Vision-Speicherspitze oder Latenz.7

Tabelle 12 des technischen Berichts belässt Vision-Encoder und Connector selbst im veröffentlichten aggressiven NVFP4-Rezept in BF16. „NVFP4-Modell“ darf nicht als Vier-Bit-Format für jeden Tensor und jede Operation gelesen werden. Diese Aussage beschreibt die Präzisionsvorgabe des Berichts, keine neue Prüfung jedes quantisierten Shards.11

Laufzeitgrenzen vor dem Deployment prüfen

Pruning-Standards unterscheiden sich. Der Checkpoint speichert video_pruning_rate: 0.7. Das fixierte native vLLM-Modell liest stattdessen multimodal_config.video_pruning_rate; dieses Laufzeitfeld hat den Standard None, und der EVS-Zweig des Modells benötigt einen positiven Wert. Die aufgelöste Laufzeitoption, etwa --video-pruning-rate 0.5, ausdrücklich setzen und dokumentieren, statt den Checkpoint-Wert als aktiv vorauszusetzen. vLLM verwendet zudem einen eigenen Prozessor; deshalb aufgelöste Videogrößen- und Seitenverhältniseinstellungen prüfen, nicht nur das exportierte HF-Preprocessor-JSON.71210

Rechteckige Videos erfordern besondere Prüfung im exportierten HF-Pfad. Dessen Pruning-Aufruf leitet beide räumlichen Dimensionen aus int(sqrt(S)) ab. Bei S=252S=252 ergibt das 15×15=22515\times15=225; die 252 Positionen lassen sich nicht in diese Form bringen. Die aus dem Code folgende Shape-Inkonsistenz lässt sich ohne Gewichte reproduzieren. Der fixierte native vLLM-Pfad berechnet Zeilen und Spalten dagegen aus den tatsächlichen Frame-Dimensionen. Das ist eine Grenze dieses exportierten Pruning-Pfads, kein Beleg dafür, dass natives vLLM rechteckige Videos nicht verarbeiten kann.67

Kapazität und Batching sind getrennte Verträge. Die Backbone-Konfiguration erlaubt 1.048.576 Positionen; das exportierte Bild-Preprocessor-JSON enthält max_model_len: 16384 für seine Größenberechnung. Keiner dieser Werte reserviert automatisch Platz für jedes Bild, den vollständigen Textprompt und die Antwort. Außerdem verlangt der exportierte Prozessor bei Video per Assertion genau einen Texteintrag. Tatsächliche Prozessorausgabe, Platzhalterzahl, gemeinsames Sequenzbudget und Serving-Batchverhalten prüfen, statt diese Referenz-Assertion auf alle nativen Engines zu übertragen.48

MTP-Unterstützung hängt von der Runtime ab. Der Checkpoint-Index listet language_model.mtp.*-Tensoren, aber der exportierte HF-Wrapper deklariert für mtp.* ein Ignore-Muster für unerwartete Schlüssel und baut das Draft-Modul nicht auf. Der MTP-Kopf des Modells wird rekursiv geteilt; native vLLM-/SGLang-Rezepte aktivieren ihn. Einem einfachen Wrapper-Load darf nicht derselbe spekulative Ausführungspfad zugeschrieben werden. Hier werden weder spekulative Beschleunigung noch Akzeptanzraten gemessen.1361

Vor dem Produktionsbetrieb Modell- und Runtime-Revisionen fixieren sowie Resize-Parität, Padding ungerader Framezahlen, rechteckige Raster, tatsächliche Tokenzahlen, EVS-abhängige Genauigkeit und Speicherspitzen bei geplanter Parallelität testen. Medien-Ladeberechtigungen auf benötigte Eingaben beschränken; ein großzügiges Beispielkommando ist keine Sicherheitsrichtlinie. Dieser Artikel bietet eine Code-/Konfigurationsprüfung und CPU-Shape-/Zähltests, keine GPU-Inferenz oder Qualitätsbenchmarks.

Den übrigen Speicherbedarf erklärt der KV-Cache-Guide. Einen anderen visuellen Fusionspunkt zeigt Cloudflare Clef Omni: Dort endet der Pfad in Optionsbewertung statt in autoregressiver Textgenerierung wie bei diesem Modell.

Primärquellen

Footnotes

  1. NVIDIA, Super VL BF16 model card, release date October 15, 2026; deployment and MTP sections. ↩ ↩2 ↩3

  2. NVIDIA, released model configuration. ↩ ↩2 ↩3

  3. NVIDIA, exported RADIO implementation, RadioPatchEmbeddings, RadioModel. ↩ ↩2

  4. NVIDIA, preprocessor configuration. ↩ ↩2

  5. NVIDIA, exported image processor, _preprocess, _compute_target_patches, _compute_target_patches_video. ↩ ↩2 ↩3

  6. NVIDIA, exported model and connector, vision projector, forward/merge and MTP-loading behavior. ↩ ↩2 ↩3 ↩4 ↩5

  7. vLLM, native Nemotron VL model, connector, extract_feature, _process_video_input; the registry maps NemotronH_Omni_Reasoning_V3 to this implementation. ↩ ↩2 ↩3 ↩4

  8. NVIDIA, exported multimodal processor. ↩ ↩2

  9. vLLM, EVS retention implementation, retained count, cosine score and stable selection. ↩

  10. vLLM, native multimodal processor, video sizing helpers and resolved vision-config settings. ↩ ↩2

  11. NVIDIA, Nemotron 3.5 Super and Lightning Technical Report, dated October 14, 2026, Table 12, page 32. Copy rechecked October 25, 2026; SHA-256: 425d468015a34f91a8b4e3ce5831ddf664aa5abe669fcfce966832277ac0adf9. ↩

  12. vLLM, multimodal runtime configuration, video_pruning_rate and EVS default method. ↩

  13. NVIDIA, checkpoint tensor index, language_model.mtp.* entries. Tensor payloads were not downloaded. ↩