Transformers v5.16.0: Neue Modelle und umfangreiche Verbesserungen

imagem 57

Neue Modelle

Die Version 5.16.0 bringt mehrere neue Architekturen mit sich.

Qwen4-Exp

Qwen4-Exp baut auf der hybriden Text- und Multimodal-Architektur von Qwen3.5 auf und integriert drei Schlüsselkomponenten: GatedResidual (GR), Qwen Sparse Attention (QSA) und Per-Layer Embedding (PLE).

GR ist eine von Qwen entwickelte Residualarchitektur, die Hyper-Connection mit GatedNorm kombiniert. Sie mischt mehrere Residualströme mit feingranularem elementweisem Gating vor jedem Aufmerksamkeits- und Mixture-of-Experts-Block (MoE) und steuert anschließend, wie viel der Blockausgabe in jeden Strom zurückgespeist wird.

QSA verwendet mehrere Query-Köpfe, um komprimierte Schlüsselblöcke zu bewerten, wählt die relevantesten zusammenhängenden Token-Blöcke aus und hält den unvollständigen Endblock unkomprimiert. Diese blockweise Auswahl reduziert den Indexierungsaufwand und verbessert die Speicherlokalität für lange Sequenzen. In Kombination mit Gated DeltaNet ist Qwen4-Exp die erste hybride Architektur, die lineare und spärliche Aufmerksamkeit integriert, was die Inferenzeffizienz bei langen Kontexten erheblich steigert.

PLE reichert ausgewählte Decoder-Schichten mit schichtspezifischen lexikalischen Merkmalen an, die aus gehashten Token-n-Grammen und einer dilatierten tiefenweisen Faltung gewonnen werden.

Dokumentation ist verfügbar.

GraniteSpeech5

Granite Speech 5.0 Turbo CTC ist ein leichtgewichtiger (~470 Millionen Parameter) Conformer-Encoder für automatische Spracherkennung, trainiert mit Connectionist Temporal Classification (CTC) auf BPE-Zieleinheiten. Er ist ein schnelles, encoder-only Mitglied der Granite-Speech-Familie: Die Transkription erfordert einen einzigen Vorwärtsdurchlauf gefolgt von gierigem CTC-Decoding, ohne autoregressiven Decoder.

Architektonisch erweitert es den Granite-Speech-Conformer-CTC-Encoder um:

  1. Frame-Stapelung + blockweise Zeitsubsampling: Der Merkmalsextraktor stapelt Paare von log-mel(+delta)-Frames (2x), und die ersten beiden Conformer-Blöcke reduzieren die Zeit jeweils um den Faktor 2 durch eine tiefenweise Faltung mit Schrittweite 2 (mit einem gemittelten Residualpfad), was eine Gesamtreduktion um 8x bei einem Mel-Hop von 10 ms ergibt.
  2. Blockaufmerksamkeit mit Shaws relativen Positions-Embeddings: Die Aufmerksamkeit wird über Blöcke fester Größe berechnet (die Sequenz wird rechts auf eine ganze Anzahl von Blöcken aufgefüllt, wobei aufgefüllte Frames maskiert werden), unter Verwendung getrennter biasfreier Query/Key/Value-Projektionen.
  3. Selbstkonditioniertes CTC: Die CTC-Posterioris der mittleren Schicht werden projiziert und in die verborgenen Zustände zurückgespeist; der CTC-Kopf wird zwischen dieser Mittelschicht-Selbstkonditionierung und der endgültigen Vorhersage geteilt.

Dokumentation ist verfügbar.

Step3p7

Step-3.7-Flash wurde von StepFun im Blog „Step 3.7 Flash“ vorgeschlagen. Es ist ein spärliches Mixture-of-Experts-Vision-Language-Modell mit 198 Milliarden Parametern, das ein 196B-Parameter-MoE-Sprach-Backbone mit einem 1,8B-Parameter-Vision-Encoder für natives Bildverständnis kombiniert.

StepFun hat keinen technischen Bericht zu Step-3.7-Flash veröffentlicht; die folgenden Details stammen aus der Konfiguration des veröffentlichten Checkpoints.

  • Spärlicher MoE-Decoder: Alle außer den ersten 3 Decoder-Schichten durchlaufen einen MoE-Block mit 288 gerouteten Experten (Top-8 pro Token) plus einem geteilten Experten. Der Router bewertet Experten mit einer Sigmoid-Funktion und einem gelernten Bias pro Experte anstelle eines zusätzlichen Lastausgleichsverlusts – dieselbe Strategie wie bei DeepSeek-V3.
  • Gated Attention: Jede Aufmerksamkeitsschicht fügt eine zusätzliche Projektion hinzu, deren Sigmoid-Ausgabe den Aufmerksamkeitsoutput pro Kopf vor der Ausgabeprojektion steuert – derselbe Mechanismus wie bei Qwen3-Next. Eine Teilmenge der Schichten verwendet weniger Köpfe und ein gleitendes Fenster anstelle voller Aufmerksamkeit.
  • Multi-Token-Vorhersage: Einige Checkpoints enthalten zusätzliche Decoder-Schichten, die für Multi-Token-Vorhersage trainiert wurden und die von generate() für spekulatives Decoding mittels use_mtp=True genutzt werden können.
  • Vision-Encoder: Ein SigLIP-artiger ViT mit 2D-Rotationspositions-Embeddings und einer gelernten Skalierung pro Schicht auf den Aufmerksamkeits- und MLP-Zweigen. Seine Ausgabe wird durch zwei Faltungen mit Schrittweite 2 um das 4-fache heruntergetastet, bevor ein linearer Projektor sie auf die verborgene Größe des Textmodells abbildet.
  • Dynamisches Bild-Tiling: Anstelle eines festen Kachelrasters wählt der Bildprozessor sein Kachelfenster anhand des Seitenverhältnisses jedes Bildes und erzeugt eine verkleinerte globale Ansicht plus null oder mehr lokale hochauflösende Ausschnitte pro Bild.

Dokumentation ist verfügbar.

CohereCompass

CohereCompass ist die Basisarchitektur für kleine, spezialisierte (Visions-)Sprachmodelle, die von Cohere trainiert werden.

Dokumentation ist verfügbar.

Breaking Changes

Die veraltete Tensor-Parallel-Implementierung wurde durch ein DTensor-natives Backend ersetzt. Nutzer, die die bisherige TP-API für Inferenz oder Training verwenden, müssen auf die neue DTensor-basierte Schnittstelle migrieren.

Die Dispatch-Logik für attn_implementation="sdpa" wird jetzt korrekt für die Modelle wav2vec2_conformer, wav2vec2-bert und SeamlessM4T/v2 unterstützt. Dies kann das Initialisierungsverhalten für Nutzer ändern, die zuvor Workarounds verwendet haben.

Der FuyuProcessor gibt das Feld image_patch_indices nicht mehr zurück. Code, der von diesem Feld abhängt, muss entsprechend aktualisiert werden.

Cache

In dieser Version wurden mehrere Cache-bezogene Fehler behoben, darunter ein Off-by-one-Fehler im Sliding-Window-Cache, eine Cache-Korruption beim spekulativen Decoding von Whisper, Probleme bei der Cache-Nutzung von CpmAnt, die Generierung von Qwen2.5-Omni/Qwen3-Omni-MoE mit kompilierbaren Caches sowie das Laden komprimierter Tensoren für ausschließlich KV-Cache-quantisierte Modelle. Zusätzlich wurde die Dokumentation für das Entfernen von Cache-Tokens mit negativen Werten ergänzt und die Unterstützung für schichtspezifische Cache-Konfigurationen eingeführt, sodass Modelle mit heterogenen Schichtkonfigurationen unterschiedliche Cache-Einstellungen pro Schicht verwenden können.

Generierung

Diese Version behebt mehrere Generierungsfehler in verschiedenen Modellen, darunter Probleme beim spekulativen Decoding von Whisper (UnboundLocalError, Cache-Korruption, Geschwindigkeitsregression und Positions-IDs für links gepolsterte Batches), eine defekte Bildgenerierung in Emu3, fehlerhafte Ausgaben in OLMo/GPTNeoX sowie die Generierung von Qwen2.5-Omni/Qwen3-Omni-MoE mit kompilierbaren Caches. Darüber hinaus werden die Logit-Verteilungen für Kandidatengeneratoren, die Sampling verwenden, nun korrekt ausgerichtet, indem Logits nach Anwendung der Logit-Prozessoren zurückgegeben werden.

Aufmerksamkeit

Mehrere aufmerksamkeitsbezogene Fehlerbehebungen wurden vorgenommen, darunter die Korrektur eines Tippfehlers in der SigLIP2-Dokumentation, die Behebung von Flash/SDPA-Aufmerksamkeits-Dispatch-Tests für xcodec2 und ROCm-RDNA-GPUs, die Lösung eines Problems, bei dem eine GPT2-Cross-Attention-Maske stillschweigend verworfen wurde, sowie die Deklaration der SDPA-Unterstützung im TimmWrapper. Außerdem wurde die Unterstützung für schichtspezifische Cache-Konfiguration und Aufmerksamkeitsmasken-Auswahl eingeführt, sodass Modelle mit heterogenen Schichtkonfigurationen unterschiedliche Werte für sliding_window, attention_chunk_size und number_of_conv_states pro Schicht verwenden können.

Quantisierung

Bei der Quantisierung wurden Verbesserungen vorgenommen: Die NVFP4-Quantisierung über HF-Kernels wurde hinzugefügt (ermöglicht On-the-fly-BF16-Gewichtsquantisierung mit etwa 50 % Speicherreduktion), und mehrere Fehler behoben: eine Regression in is_quantization_compressed, die zu falschen Modul-Layouts für Checkpoints im gepackten Format führte, wurde rückgängig gemacht, Fehler bei der CLIP-Gewichtsinitialisierung mit quantisierten Checkpoints behoben und das KV-Cache-Quantisierungssetup für ausschließlich KV-Cache-quantisierte Modelle wiederhergestellt.

Parallelisierung

Eine naive Pipeline-Parallel-Inferenz-Engine wurde eingeführt, die geteilte/ungeteilte Gewichtseinbettungen mit nahtloser generate()-Integration unterstützt. Gleichzeitig wurde die Abwärtskompatibilität für die Tensor-Parallel-API mit einem Deprecation-Zyklus für tp_plan in from_pretrained() wiederhergestellt. Zudem wurde ein Modellparallelitätsfehler im BLT-Modell behoben, der die Strahlsuche beeinträchtigte.

Kernels

Die Kernel-Unterstützung wurde verbessert: Die Dokumentation wurde aktualisiert, um unterstützte Modelle hervorzuheben, ein Absturz beim Export von kernel-dekorierte Funktionen wurde durch einen is_torchdynamo_exporting-Guard behoben, und die Standardversion des Flash-Attention-2-Hub-Kernels wurde auf v3 angehoben, um Kompatibilitätsprobleme mit neueren PyTorch-Versionen zu lösen.

Fehlerbehebungen und Verbesserungen

Zahlreiche weitere Fehlerbehebungen und Verbesserungen wurden vorgenommen, darunter:

  • Korrektur der modularen Konvertierung von video-llama.
  • Behebung von Fehlern im clvp-Modell.
  • Stets geteilte Einbettungen für LongT5 und Pop2Piano.
  • Verwendung eines Generators mit Seed für den LengthGroupedSampler im Trainer zur deterministischen Evaluierungsreihenfolge bei per_device_eval_batch_size > 1.
  • Behebung eines Fehlers, bei dem AutoTokenizer für DeepSeek-R1-Distill-Qwen-Modelle ein TokenizersBackend zurückgab.
  • Unterstützung für BatchFeature in längengruppierten Samplern.
  • Behebung von dtype-Problemen im grouped_mm_fallback für LoRA-Training auf Mamba und anderen Modellen.
  • Berechnung des MoE-Lastausgleichsverlusts pro Schicht zur Vermeidung riesiger One-hot-Materialisierung (−99,7 % bei 128k).
  • Behebung von EOS-Problemen bei Kandidatengeneratoren.
  • Ehren von processor_kwargs={} in multimodalen Pipelines.
  • Hinzufügen einer optionalen Pixel-Obergrenze pro Frame (cap_pixels_per_frame) im Qwen3-VL-Videoprozessor.
  • Behebung von DynamicCache-Rekonstruktion während des ExecuTorch-Exports.
  • Korrektur des Standard-Vokabularumfangs von DeepSeek V2.
  • Behebung von Problemen mit veralteten Erwartungswerten in Integrationstests für viele Modelle (Gemma, Gemma3n, InternVL, Mistral3, Qwen2.5-Omni, LLaVA, Florence2, ModernVBERT, TableTransformer, PI0, EsmFold2, OLMoE, OLMo, AXK1, Whisper, DeepSeekV2, etc.).
  • Verbesserungen an der CI-Infrastruktur, einschließlich der Vermeidung doppelter Tests, dem Hinzufügen von MLU-Unterstützung für is_flash_linear_attention_available, dem Aktualisieren des AutoRound XPU/CPU-Backends und dem Entfernen der täglichen Nightly-CI.
  • Weitere kleinere Korrekturen in Dokumentation, Tests und Build-Prozessen.

Bedeutende Community-Beiträge

Viele Community-Mitglieder haben in dieser Version maßgeblich zur Verbesserung der Bibliothek beigetragen, insbesondere durch CI-Optimierungen, Fehlerbehebungen, neue Modellimplementierungen und Dokumentationsaktualisierungen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert