NVIDIA hat veröffentlicht Nemotron-Labs-TwoTowerein Diffusionssprachmodell, das auf einem vorab trainierten autoregressiven Rückgrat aufbaut. Der Versand erfolgt als offene Gewichte unter der NVIDIA Nemotron Open Mannequin License. Das Launch zielt auf einen Durchsatzengpass bei der Textgenerierung ab.
Autoregressive (AR) Modelle dekodieren jeweils einen Token. Dieser serielle Prozess begrenzt den Generierungsdurchsatz. Diskrete Diffusionssprachmodelle gehen einen anderen Weg. Sie generieren parallel Token und verfeinern diese iterativ.
Die meisten Diffusionssprachmodelle verwenden ein Netzwerk für zwei Aufgaben. Es stellt saubere Token dar und entstört beschädigte Token bei jedem Schritt. TwoTower teilt diese Arbeitsplätze in zwei Türme auf. Es behält 98,7 % der aggregierten Benchmark-Qualität der AR-Basislinie bei. Es wird außerdem ein 2,42-fach höherer Durchsatz bei der Generierung von Wanduhren gemeldet.
TL;DR
- TwoTower teilt die Diffusion in einen eingefrorenen AR-Kontextturm und einen trainierten Denoiser-Turm auf.
- Es behält 98,7 % der AR-Qualität bei 2,42-fachem Durchsatz (γ=0,8, S=16, 2×H100).
- Der Denoiser wurde auf ~2,1T-Tokens trainiert; das Rückgrat verwendete 25T.
- Ein Prüfpunkt führt die Modi Diffusion, Mock-AR und AR-Dekodierung aus.
Nemotron-Labs-TwoTower
TwoTower ist ein blockweises autoregressives Diffusionsmodell. Es basiert auf Nemotron-3-Nano-30B-A3B, einem Hybrid-Spine mit offenem Gewicht. Dieses Rückgrat verbindet Mamba-2-, Selbstaufmerksamkeits- und Expertenmix-Schichten (MoE).
Jeder Turm hat 52 Schichten: 23 Mamba-2, 6 Selbstaufmerksamkeit und 23 MoE. Der freigegebene Kontrollpunkt transportiert beide Türme, etwa 60 Milliarden Gesamtparameter. Die aktiven Parameter professional Token betragen etwa 3B professional Turm. Das MoE nutzt 128 routbare Experten, von denen 6 aktiviert sind, sowie 2 gemeinsam genutzte Experten.
Beide Türme beginnen als Kopien desselben Spine-Kontrollpunkts. Nur der Denoiser-Turm wird trainiert. Der AR-Kontextturm bleibt eingefroren. Der Denoiser wurde mit ~2,1T-Tokens trainiert, einem Bruchteil des 25T-Token-Vortrainings des Backbones.
Wie die beiden Türme funktionieren
Der AR-Kontextturm läuft kausal über die Immediate- und Dedicated-Tokens. Es erzeugt einen KV-Cache professional Schicht und endgültige Mamba-2-Zustände. Es bewahrt die autoregressive Fähigkeit des Backbones.
Der Diffusion Denoiser Tower verfeinert verrauschte Blöcke. Innerhalb eines Blocks wird bidirektionale In-Block-Aufmerksamkeit genutzt. Es bleibt kausal in Bezug auf vergangene saubere Blöcke.
Die Türme verbinden sich Schicht für Schicht. Denoiser-Schicht ich Übergreifend auf die Kontextturmebene ausgerichtet ich. Diese auf Ebenen ausgerichtete Queraufmerksamkeit ermöglicht einen mehrskaligen Zugriff auf die Darstellungen des Backbones. Frühere Ansätze übertragen nur den letzten verborgenen Zustand.
Zwei weitere Denoiser-Modifikationen sind wichtig. Mamba-2-Schichten säen ihren Anfangszustand aus dem Mamba-Zustand des Kontextturms. Der Diffusionszeitschritt moduliert jede Schicht durch adaLN-Einzelzeitkonditionierung. Dieses adaLN-Modul fügt nur etwa 1,5 Millionen Parameter hinzu.
Die Generierung läuft Block für Block ab. Jeder Block beginnt als S (MASK)-Token. Der Denoiser verfeinert es noch einmal T Schritte aus und schreibt es dann fest. Der Kontextturm verarbeitet dann festgeschriebene Token, um seine Caches zu aktualisieren.
Dies erklärt, warum mehrere Rauschunterdrückungsschritte immer noch die Ein-Token-Dekodierung übertreffen können. Bei der autoregressiven Dekodierung wird professional Schritt genau ein Token festgeschrieben. TwoTower schreibt zu Beginn der Verfeinerung mehrere Token professional Schritt fest.
Benchmarks
Bei den Evaluierungen wird BF16 auf 2×H100-GPUs verwendet. Der Standardarbeitspunkt ist die Konfidenzdemaskierung, Schwellenwert γ=0,8, Blockgröße S=16. Die Tabelle vergleicht die AR-Basislinie mit der TwoTower-Diffusionsdekodierung.
| Aufgabe | Nemotron-3-Nano-30B-A3B (AR) | Nemotron-Labs-TwoTower (Diffusion) |
|---|---|---|
| MMLU (5-Schuss, ACC) | 78,56 | 78,24 |
| MMLU-Professional (5-Schuss, CoT EM) | 62,59 | 60,93 |
| ARC-Problem (25-Schuss, acc_norm) | 91,72 | 92,66 |
| WinoGrande (5-Schuss, gem.) | 76.09 | 76.09 |
| RENNEN (0-Schuss, ACC) | 88,90 | 88,90 |
| HumanEval (0-Schuss) | 79,27 | 75,58 |
| MBPP-Sanitized (3-Schuss) | 74,71 | 74,28 |
| GSM8K (8-Schuss, ACC) | 92,49 | 90,14 |
| MATH-500 (4-Schuss) | 84,40 | 80,60 |
| MMLU International Lite (5-Schuss) | 73,97 | 73,94 |
| MGSM (8-Schuss, durchschnittlicher Akku) | 80,80 | 80,40 |
| Qualität bleibt erhalten | 100 % | 98,7 % |
| Erzeugungsdurchsatz (× AR) | 1,0× | 2,42× |
Das Allgemeinwissen bleibt innerhalb von etwa einem Punkt der AR-Grundlinie. Code und Mathematik weisen eine leichte Verschlechterung auf. Der gesunde Menschenverstand und die mehrsprachigen Ergebnisse werden wiederhergestellt oder leicht verbessert. Durch die Senkung von γ werden mehr Token professional Schritt festgeschrieben und der Durchsatz erhöht, allerdings mit geringerer Qualität.
Ausführen: Drei Generationsmodi
Der Prüfpunkt macht drei Inferenzpfade verfügbar. Die vollständige Zwei-Tower-Diffusion nutzt 2 GPUs, etwa 59 GB professional GPU in BF16. Der Nur-AR-Modus läuft auf einer einzelnen 80-GB-GPU.
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name = "nvidia/Nemotron-Labs-TwoTower-30B-A3B-Base-BF16"
tokenizer = AutoTokenizer.from_pretrained(model_name)
mannequin = AutoModelForCausalLM.from_pretrained(
model_name, torch_dtype=torch.bfloat16, trust_remote_code=True,
)
# context tower -> GPU 0, denoiser tower -> GPU 1
mannequin.place_towers_on_devices("cuda:0", "cuda:1")
mannequin.eval()
immediate = "France is a rustic "
inputs = tokenizer(immediate, return_tensors="pt").to("cuda:0")
outputs = mannequin.generate_mask_diffusion(
inputs("input_ids"), max_new_tokens=128,
block_size=16, steps_per_block=16, mask_token_id=3,
temperature=0.1, confidence_threshold=0.8,
eos_token_id=tokenizer.eos_token_id,
)
print(tokenizer.decode(outputs(0)(inputs("input_ids").form(1):), skip_special_tokens=True))
Die drei Modi sind generate_mask_diffusion(), generate_mock_ar()Und generate_ar(). Die Maskenverbreitung verpflichtet sich bis zu block_size Token professional Schritt. Mock-AR und AR verpflichten einen Token professional Schritt.
Wo es passt: Anwendungsfälle
Der direkteste Anwendungsfall ist eine schnellere Batch-Generierung. Ein Datenteam, das synthetischen Textual content erstellt, kann einen kleinen Qualitätsverlust gegen den Durchsatz eintauschen. Bei γ=0,8 beträgt die Qualität dieses Handels 1,3 % bei 2,42-facher Geschwindigkeit.
Ein zweiter Anwendungsfall ist die Optimierung des Kompromisses zwischen Qualität und Durchsatz. Durch Erhöhen von γ bleibt die Qualität erhalten, wie es im NVIDIA-Papier heißt. Durch das Verringern von γ werden aus Geschwindigkeitsgründen mehr Token professional Schritt festgeschrieben.
Ein dritter Anwendungsfall ist die Drop-in-Anpassung. Der Kontextturm behält seinen LM-Kopf für spekulative Dekodierung, Verifizierung oder AR-Bewertung. Groups können AR und Diffusion von einem Kontrollpunkt aus ausführen.
Stärken und Schwächen
Stärken:
- Offene Gewichte unter der NVIDIA Nemotron Open Mannequin License; bereit für die kommerzielle Nutzung
- 98,7 % der AR-Qualität bleiben bei 2,42-fachem Durchsatz im Standardbetriebspunkt erhalten
- Ein Prüfpunkt unterstützt Diffusion, Mock-AR und AR-Dekodierung
- Denoiser wurde auf ~2,1T-Tokens trainiert, kein vollständiges Re-Pretrain
- Der Sequenzlängen-Cache-Speicher skaliert wie die AR-Basislinie
Schwächen:
- Für die vollständige Zwei-Tower-Diffusion sind in BF16 zwei GPUs und etwa 59 GB professional GPU erforderlich
- Code und Mathematik verschlechtern sich stärker als das Allgemeinwissen (HumanEval 79,27 → 75,58)
- Wenn beide Türme resident bleiben, erhöht sich der feste Speicherbedarf für das Modellgewicht
- Der freigegebene Prüfpunkt ist ein Basismodell vor der Befehlsoptimierung oder -ausrichtung
- Ein Durchsatz über 3× geht mit größeren Qualitätsverlusten einher
Interaktiver Erklärer
Schauen Sie sich das an Papier Und Gewichte. Sie können uns auch gerne weiter folgen Twitter und vergessen Sie nicht, bei uns mitzumachen 150k+ML SubReddit und Abonnieren Unser Publication. Warten! Bist du im Telegram? Jetzt können Sie uns auch per Telegram kontaktieren.
Möchten Sie mit uns zusammenarbeiten, um Ihr GitHub-Repo ODER Ihre Hugging Face Web page ODER Produktveröffentlichung ODER Ihr Webinar usw. zu bewerben? Vernetzen Sie sich mit uns
