What’s New

transformers

AI

🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.

Latest v5.14.1 · by huggingfaceWebsitehuggingface/transformers

Changelog

v5.14.1

Patch release: v5.14.1

Changed
  • Bump FP8 kernels version
Fixed
  • Fix sdpa prefill with position_bias
  • Fix assisted decoding for models with EncoderDecoderCache
  • Fix deepgemm on multiple devices

Patch release v5.14.1

This patch solves a few issues which appeared when integrating Inkling model, most notably an issue affecting models using EncoderDecoderCache during assisted generation. It also fixes an issue that could appear during prefill with StaticCache and sdpa without padding for Inkling which uses a position_bias. It contains the following commits:

  • Fix sdpa prefill with position_bias (#47359) by @Cyrilvallez
  • Fix assisted decoding for models with EncoderDecoder cache & OlmoHybrid (#47361) by @Cyrilvallez
  • [FP8] Bump kernels version (#47344) by @vasqu
  • Fix deepgemm on multiple devices (#47323) by @IlyasMoutawwakil
v5.14.0

Release v5.14.0

Added
  • Add Inkling model, a 975B total/41B active multimodal model that accepts text, image and audio inputs
  • Add TIPSv2 model
  • Add TIPSv2 DPT model
  • Add Multi-Token Prediction (MTP) decoding support in generation
  • Add static ensemble verification for speculative decoding to improve draft token acceptance rates
Changed
  • GPTNeoX now remaps embed_out to lm_head
  • GPTBigCode has _supports_attention_backend = True enabled for vLLM compatibility
  • Simplify cache dispatch based on layer_types with explicit layer-type mappings for sliding and static layers
  • SDPA prefill now leverages FlashAttention kernel with StaticCache for significant performance gains
Fixed
  • Fix misleading synced_gpus warning in continuous batching mode
  • Fix crash in greedy assisted generation with different tokenizers
  • Fix Flash Attention performance regression affecting models like Qwen3-VL
  • Fix MoE decode optimization bug where grouped-to-batched matrix multiplication switch was not applied to experts in submodels
  • Fix CI read-only cache failures by patching cached_files in conftest
  • Fix MPS graph cache growth during variable-length batch training on Apple Silicon via torch_empty_cache_steps
  • Fix half-precision torch.compile crash in DETR-family sine position embeddings
  • Fix hardcoded paths in siglip checkpoint and vocab loading
  • Make DeepGEMM Triton fallback more robust when CUDA_HOME is unset or misconfigured
  • Remove deprecated package_name argument from LocalLayerRepository
  • DeepGEMM shouldn't pad on SM90
  • Resolve continuous batching XPU availability checks at runtime

Release v5.14.0

New Model additions
Inkling (fresh from Thinking Machines): 975B total, 41B active
  • Add Inkling model #47347 by @molbap @Cyrilvallez @eustlb and @zucchini-nlp

Inkling is a general-purpose multimodal model that accepts text, image and audio inputs and generates text outputs. It is intended for use in English and other languages, and across multiple coding languages. The model is designed to be used by developers building AI- powered applications, including agentic and tool-use systems, coding assistants, chatbots, and retrieval-augmented generation systems, and is suitable for general-purpose conversational use, instruction-following, and other natural language and multimodal tasks. It is released with open weights to support research, fine-tuning and integration into third-party products by downstream developers.

TIPSv2

Links: Documentation

  • Add TIPSv2 (#46347) by @Ternura143 in #46347
TIPSv2 DPT

Links: Documentation

  • Add TIPSv2 (#46347) by @Ternura143 in #46347
:rotating_light: Breaking changes

GPTNeoX now remaps embed_out to lm_head and GPTBigCode has _supports_attention_backend = True enabled for vLLM compatibility; users relying on the previous weight naming or attention backend behavior for these models should update their code accordingly.

  • :rotating_light: Fix GPTBigCode and GPTNeoX for the Transformers modelling backend for vLLM (#47198) by @hmellor
Kernels

Several kernel-related fixes and improvements were made, including pinning the kernels dependency to a compatible version in the benchmark workflow, removing a deprecated package_name argument from LocalLayerRepository, and making the DeepGEMM Triton fallback more robust when CUDA_HOME is unset or misconfigured. Additionally, SDPA prefill was updated to leverage the FlashAttention kernel with StaticCache, yielding significant performance gains (up to 260% faster for large input sizes).

  • Pin kernels to compatible version in benchmark workflow (#47339) by @tarekziade in [#47339]
  • [Fix] Remove deprecated argument from kernels call (#47100) by @remi-or in [#47100]
  • [Fix] Make DeepGEMM triton fallback more robust (#47126) by @remi-or in [#47126]
  • [sdpa] Allow prefill to use FA kernel with StaticCache (#47094) by @Cyrilvallez in [#47094]
Generation

Generation improvements include adding Multi-Token Prediction (MTP) decoding support, static ensemble verification for speculative decoding to improve draft token acceptance rates, and a fix for crashes in greedy assisted generation with different tokenizers. A misleading double-negative warning message for synced_gpus in continuous batching mode was also corrected.

  • [generation] Fix misleading synced_gpus warning in continuous batching (#47158) by @Partha-Shankar in [#47158]
  • [generate] Add proper MTP support (#46229) by @Cyrilvallez in [#46229]
  • Fix crash in greedy assisted generation with different tokenizers (#46936) by @Sunt-ing in [#46936]
  • [Generation] Add static ensemble verification for lossy speculative decoding (#45979) by @kasakh in [#45979]
Performance

Fixed a Flash Attention performance regression affecting models like Qwen3-VL and resolved a MoE decode optimization bug where the grouped-to-batched matrix multiplication switch was not applied to experts residing in submodels (e.g., VLMs with a nested text config).

  • Fix FA performance regression (#47134) by @andreasgoulas in [#47134]
  • Fix MoE decode optimization for experts living in a submodel (#47107) by @IlyasMoutawwakil in [#47107]
  • Make doc builds faster (#47099) by @mishig25 in [#47099]
Cache

Cache dispatch logic was simplified by introducing explicit layer-type mappings for sliding and static layers, reducing complexity in cache routing. Additionally, fixes were made for read-only cache failures in CPU CI environments and for MPS graph cache growth during variable-length batch training on Apple Silicon.

  • Fix CI read-only cache failures by patching cached_files in conftest (#47043) by @ydshieh in [#47043]
  • trainer: clear MPS graph cache via torch_empty_cache_steps (#45818) by @anagnorisis2peripeteia in [#45818]
  • [cache] Simplify cache dispatch based on layer_types (#47118) by @Cyrilvallez in [#47118]
Bugfixes and improvements
  • ci: cover xet as well (runtime error) (#47338) by @tarekziade in [#47338]
  • [docs] TokenizersBackend fallback (#47302) by @stevhliu in [#47302]
  • Resolve continuous batching XPU availability checks at runtime (#47185) by @kaixuanliu in [#47185]
  • [Nit] Add kernels_fallback_ok kwarg to is_flash_attn_N_available (#47318) by @remi-or in [#47318]
  • [Nit] Add expectations for gemma4 tests on H100 (#47311) by @remi-or in [#47311]
  • [docs] DeepGEMM requirements (#47324) by @stevhliu in [#47324]
  • DeepGEMM shouldn't pad on SM90 (#47313) by @IlyasMoutawwakil in [#47313]
  • Fix half-precision torch.compile crash in DETR-family sine position embeddings (#47238) by @David-Wu1119 in [#47238]
  • Fix hardcoded paths in siglip checkpoint/vocab loading (#47178) by @XanxusCrypto in [#47178]
  • Update AMD CI runner groups to amd-mi300 (#47307) by @Abdennacer-Badaoui in [#47307]
  • Point to Gemma 4 model in Gemma4ForCausalLM docstring example (#47255) by @lefft in [#47255]
  • Fix Qwen Omni batched text postprocessing (#47197) by @Sunt-ing in [#47197]
  • Fix AqlmConfig error messages to say "int" instead of "float" (#47089) by @Sreekant13 in [#47089]
  • Fix check for interactive stdout in _style function (#47283) by @smart8986 in [#47283]
  • Fix get_json_schema crash on non-string docstring choices (#47072) by @Sreekant13 in [#47072]
  • Make MODEL_IDS_TO_TOKENIZERS_BACKEND capture all DeepSeek R1 distills (#47296) by @hmellor in [#47296]
  • Update doc preprocessing regex to prevent ReDoS (#47187) by @WilliamRoyNelson in [#47187]
  • Shard on read Dtensor aware (#46717) by @3outeille in [#46717]
  • Switch AMD daily CI to mi300 runners (#47259) by @Abdennacer-Badaoui in [#47259]
  • tests: reduce processor test memory usage by using tiny Hub checkpoints (#47213) by @ydshieh in [#47213]
  • Torch compile backend defaults to "neuron" (#47035) by @michaelbenayoun in [#47035]
  • Fix flash-attn Docker build broken by setuptools 83 removing pkg_resources (#47251) by @ydshieh in [#47251]
  • Add heterogeneous config support (per-layer configuration) (#45333) by @eladsegal in [#45333]
  • [fix] update integration test values (#47146) by @eustlb in [#47146]
  • Fix DeepSpeed SP loss aggregation and LocalLayerRepository kwargs (#47073) by @sshivampeta in [#47073]
  • tests only for the top 10 download models (#47244) by @3outeille in [#47244]
  • Fix InputTokensDetails missing cache_write_tokens for openai>=2.34.0 (#47248) by @ydshieh in [#47248]
  • Revert "Trigger a scheduled run" (#47249) by @ydshieh in [#47249]
  • Remove Executorch from CI until latest version is supported and fully tested on CI env (#47242) by @IlyasMoutawwakil in [#47242]
  • Be more defensive with remap_legacy_layer_types for custom models (#47245) by @hmellor in [#47245]
  • Fix DistributedConfig docstring for unimplemented sp_plan (#47237) by @3outeille in [#47237]
  • Switch mlinter to 0.1.2 (#47172) by @tarekziade in [#47172]
  • Trigger a scheduled run (#47209) by @ydshieh in [#47209]
  • Make executorch exporter tests always use xnnpack backend (#47201) by @tarekziade in [#47201]
  • No agent PR descriptions (#45790) by @Rocketknight1 in [#45790]
  • Clarify that max_steps is required for datasets without len (#47155) by @albertvillanova in [#47155]
  • Cleanup pipelines, stop materializing generators (#47142) by @Rocketknight1 in [#47142]
  • Fix device_map computation when the no_split_modules have different sizes (#47203) by @Cyrilvallez in [#47203]
  • Add native FSDP2 module + migration (#46707) by @3outeille in [#46707]
  • Fix experts implementation in two spots (#47097) by @remi-or in [#47097]
  • [Fix] Remove old automatic cross attn pattern from output recorders (#47117) by @remi-or in [#47117]
  • 🌐 [i18n-KO] Translate accelerator_selection.md to Korean (#47157) by @kkwjk2718 in [#47157]
  • [i18n-KO] Translate optimum.md to Korean and fix Furiosa typo (#47156) by @kkwjk2718 in [#47156]
  • [docs] fix curly quotes rendering to straight quotes (#47135) by @clijo in [#47135]
  • Fix custom code which doesn't know about the new linear layer type names (#47174) by @hmellor in [#47174]
  • Reject path traversal in the transformers_weights config field (#46890) by @LinZiyuu in [#46890]
  • [docs] Custom code conversion mapping (#47114) by @stevhliu in [#47114]
  • Add exporters min version requirements and test skip (#47161) by @IlyasMoutawwakil in [#47161]
  • tests: reduce processor test memory usage and use tiny test assets (#47168) by @ydshieh in [#47168]
  • Clarify input device placement in the Quicktour inference example (#47136) by @samyuktahegde in [#47136]
  • Extend continuous batching memory prediction test to XPU (#47159) by @sywangyi in [#47159]
  • Fix case where _LazyAutoMapping.register is passed a str key (#47148) by @hmellor in [#47148]
  • [docs] MoE decode switching (#47149) by @stevhliu in [#47149]
  • add XPU output expectations for minicpm3 tests (#47092) by @kaixuanliu in [#47092]
  • Diffusion gemma: fix failed test cases (#47025) by @kaixuanliu in [#47025]
  • add XPU Expectation for cosmos3_omni tests (#46880) by @kaixuanliu in [#46880]
  • Fix IndexError Bug in XLMRoberta/Camembert ForMultipleChoice by restoring the pooler (#47147) by @pariidanDKE in [#47147]
  • Skip caching_allocator_warmup on Neuron (no reuse pool to warm; currently OOMs) (#47029) by @dacorvo in [#47029]
  • [docs] continuous batching (offloading behavior, max batch tokens, block size minimum) (#46925) by @stevhliu in [#46925]
  • [docs] fix autolinks (#46968) by @stevhliu in [#46968]
  • revert #47121 (#47144) by @eustlb in [#47144]
  • Fix output labels for AudioFlamingo3 (and related) models (#47112) by @ebezzam in [#47112]
  • Fix false len claims in Trainer docstrings (#47131) by @albertvillanova in [#47131]
  • processor tests: use tiny Hub repos to reduce CI memory (#47115) by @ydshieh in [#47115]
  • [serge] Fix 12 integration tests for model dac failing with output_mismatch (tensor values differ (6), other (6)) (#47121) by @sergereview[bot] in [#47121]
  • Fix CLI compatibility with huggingface_hub 1.22 (#47059) (#47064) by @dhruv7477 in [#47064]
  • we want to run the CI in the release branches (#47125) by @tarekziade in [#47125]
  • Small improvement (#47128) by @Cyrilvallez in [#47128]
  • [Model] Support use_cache=False for DeepSeek V4 (#46965) by @kylesayrs in [#46965]
  • docs-fix: IMDb dataset link in sequence classification guide (#47062) by @abhishekkapoorx in [#47062]
  • Fix AltCLIP text embedding resize test (#47079) by @IMvision12 in [#47079]
  • fix mask return-type contract regression and add correctness guard for (#47019) by @kaixuanliu in [#47019]
  • Fix save_pretrained with offloading and weight conversions (#47018) by @Cyrilvallez in [#47018]
  • Update dev (#47044) by @vasqu in [#47044]
  • [Gemma4] Update 1 integration test (#47042) by @vasqu in [#47042]
Significant community contributions

The following contributors have made significant changes to the library over the last release:

  • @ArthurZucker
    • v5.14.0
  • @tarekziade
    • ci: cover xet as well (runtime error) (#47338)
    • Pin kernels to compatible version in benchmark workflow (#47339)
    • Switch mlinter to 0.1.2 (#47172)
    • Make executorch exporter tests always use xnnpack backend (#47201)
    • Remove executorch from all-latest-gpu image + add torch smoke test (#47196)
    • we want to run the CI in the release branches (#47125)
  • @remi-or
    • [Nit] Add kernels_fallback_ok kwarg to is_flash_attn_N_available (#47318)
    • [Nit] Add expectations for gemma4 tests on H100 (#47311)
    • [Fix] Remove deprecated argument from kernels call (#47100)
    • [Fix] Make DeepGEMM triton fallback more robust (#47126)
    • Fix experts implementation in two spots (#47097)
    • [Fix] Remove old automatic cross attn pattern from output recorders (#47117)
  • @ydshieh
    • tests: reduce processor test memory usage by using tiny Hub checkpoints (#47213)
    • Fix flash-attn Docker build broken by setuptools 83 removing pkg_resources (#47251)
    • Fix InputTokensDetails missing cache_write_tokens for openai>=2.34.0 (#47248)
    • Revert "Trigger a scheduled run" (#47249)
    • Fix CI read-only cache failures by patching cached_files in conftest (#47043)
    • Trigger a scheduled run (#47209)
    • tests: reduce processor test memory usage and use tiny test assets (#47168)
    • processor tests: use tiny Hub repos to reduce CI memory (#47115)
  • @eladsegal
    • Add heterogeneous config support (per-layer configuration) (#45333)
  • @eustlb
    • [fix] update integration test values (#47146)
    • revert #47121 (#47144)
  • @Ternura143
    • Add TIPSv2 (#46347)
v5.13.1

Patch release v5.13.1

Fixed
  • Be more defensive with remap_legacy_layer_types for custom models
  • Fix custom code which doesn't know about the new linear layer type names
  • Fix case where _LazyAutoMapping.register is passed a str key

Patch release v5.13.1

This patch is focused on enabling transformers for the latest release of vllm!

  • Be more defensive with remap_legacy_layer_types for custom models (#47245) from @hmellor
  • Fix custom code which doesn't know about the new linear layer type names (#47174) from @hmellor
  • Fix case where _LazyAutoMapping.register is passed a str key (#47148) from @hmellor
v5.13.0

Release v5.13.0

Added
  • Add Kimi K2.5 model architecture supporting versions 2.5, 2.6, and 2.7
  • Add MiMo-V2-Flash Mixture-of-Experts language model with 256K context window support
  • Add Nemotron 3.5 ASR multilingual speech recognition model with streaming support
  • Add NemotronAsrStreaming English speech recognition model with cache-aware FastConformer-RNNT architecture
  • Add Qwen3 ASR automatic speech recognition model with forced aligner for transcript timestamping
  • Add ZAYA1 760M active parameter MoE language model

Release v5.13.0

New Model additions
KimiK 2.5, 2.6, and 2.7

This release includes the architecture for Kimi 2.5 which is used by 2.5-2.7:

Kimi K2.5 is an open-source, native multimodal agentic model that advances practical capabilities in long-horizon coding, coding-driven design, proactive autonomous execution, and swarm-based task orchestration. The model was proposed in Kimi K2.5: Visual Agentic Intelligence and further improved in [Kimi K2.6: Advancing Open-Source Coding](Kimi K2.5: Visual Agentic Intelligence).

Kimi K2.5 achieves significant improvements on complex, end-to-end coding tasks, generalizing robustly across programming languages (Rust, Go, Python) and domains spanning front-end, DevOps, and performance optimization. The model is capable of transforming simple prompts and visual inputs into production-ready interfaces and lightweight full-stack workflows, generating structured layouts, interactive elements, and rich animations with deliberate aesthetic precision.

Links: Documentation

  • Add new model: Kimi2-6 (#45630) by @zucchini-nlp in #45630
MiMo-V2-Flash

MiMo-V2-Flash is a Mixture-of-Experts (MoE) language model developed by the Xiaomi MiMo team. Designed to establish a new balance between long-context modeling capabilities and inference efficiency, the model is built for strong performance in complex reasoning and agentic tasks. Trained on 27T tokens with native 32k sequence lengths, MiMo-V2-Flash seamlessly supports an extended 256K context window while significantly reducing KV-cache storage compared to standard global attention models.

Links: Documentation

  • Add Xiaomi MiMo-V2 (#45144) by @casinca in #45144
Nemotron 3.5 ASR

Nemotron 3.5 ASR is a 600M-parameter multilingual speech recognition model from NVIDIA, built for high-quality transcription in both low-latency streaming and high-throughput batch settings, with native punctuation and capitalization. For streaming, it offers configurable chunk sizes—80ms, 160ms, 560ms, and 1120ms, letting users trade off latency against accuracy to suit their application. Its cache-aware FastConformer-RNNT architecture is central to this capability: unlike traditional buffered streaming, which repeatedly reprocesses overlapping audio windows, the model processes only each new incoming chunk while reusing cached encoder context from prior chunks. This eliminates redundant computation, significantly improves efficiency, and minimizes end-to-end delay without sacrificing accuracy, making it well suited to real-time transcription workloads.

Links: Documentation

  • Add Nemotron 3.5 ASR Streaming (#46565) by @eustlb in #46565
NemotronAsrStreaming

Nemotron ASR Streaming is a 600M-parameter English speech recognition model from NVIDIA, built for high-quality transcription in both low-latency streaming and high-throughput batch settings, with native punctuation and capitalization. For streaming, it offers configurable chunk sizes—80ms, 160ms, 560ms, and 1120ms, letting users trade off latency against accuracy to suit their application. Its cache-aware FastConformer-RNNT architecture is central to this capability: unlike traditional buffered streaming, which repeatedly reprocesses overlapping audio windows, the model processes only each new incoming chunk while reusing cached encoder context from prior chunks. This eliminates redundant computation, significantly improves efficiency, and minimizes end-to-end delay without sacrificing accuracy, making it well suited to real-time transcription workloads.

Links: Documentation

  • Add Nemotron ASR Streaming (#46332) by @eustlb in #46332
Qwen3 ASR

Qwen3 ASR is an automatic speech recognition model from Alibaba's Qwen team that combines a Whisper-style audio encoder with a Qwen3 language model decoder for speech-to-text transcription. The model supports automatic language detection and multilingual transcription.

A forced aligner model is also included. It can be used to timestamp a provided transcript and its audio. It uses the same audio encoder model with a classification head that predicts a word's length. This model can be used with the transcript from any ASR model (see the example below with Parakeet CTC).

Links: Documentation

  • Qwen3 ASR and Forced Aligner (#43838) by @mbtariq82 in #43838
ZAYA

ZAYA1 is a 760M active / 8.4B total parameter MoE language model trained by Zyphra. It combines Compressed Convolutional Attention (CCA), a nonlinear ZAYA1 router, and residual scaling.

Links: Documentation

  • [new model] Add Zyphra/ZAYA1-8B (#45862) by @JJJYmmm in #45862
VideoPrism

The VideoPrism model was proposed in the paper VideoPrism: A Foundational Visual Encoder for Video Understanding by Google DeepMind (blog post).

VideoPrism is a general-purpose video encoder that tackles diverse video understanding tasks with a single frozen model. The model is pretrained on a large-scale heterogeneous corpus containing 36M high-quality video-caption pairs and 582M video clips with noisy parallel text (e.g., ASR transcripts). The pretraining approach improves upon masked autoencoding through global-local distillation of semantic video embeddings and a token shuffling scheme, enabling the model to focus primarily on the video modality while leveraging text associated with videos. VideoPrism achieves state-of-the-art performance on 31 out of 33 video understanding benchmarks across four broad task groups, from web video question answering to computer vision for science.

Links: Documentation

  • Add Videoprism (#39895) by @MHRDYN7 in #39895
RADIO

RADIO (Reduce All Domains Into One) is a family of vision foundation models from NVIDIA trained by multi-teacher distillation (e.g. CLIP, DINOv2, SAM) into a single ViT backbone. It produces both an image-level summary embedding and dense spatial features, and supports variable input resolutions through a Cropped Position Embedding (CPE) patch generator.

Links: Documentation

  • Add support for RADIO models (#46425) by @meatybobby in #46425
MiniCPM3

MiniCPM3 is the third-generation MiniCPM dense language model from OpenBMB. The 4B variant (openbmb/MiniCPM3-4B) outperforms many 7B–9B open models on standard benchmarks while remaining lightweight enough for on-device usage.

MiniCPM3 combines several architectural ideas:

  • Multi-head Latent Attention (MLA) from DeepSeek-V2, which compresses the key/value cache into a low-rank latent representation while still using rotary embeddings on a portion of the query/key heads.
  • A standard SwiGLU MLP (no MoE).
  • Three scalar scaling factors that govern signal flow:
    • scale_emb — scales input embeddings.
    • scale_depth / sqrt(num_hidden_layers) — scales residual connections.
    • hidden_size / dim_model_base — scales hidden states before the language model head.

Links: Documentation

  • Add MiniCPM3 (#41116) by @bzantium in #41116
Breaking changes

A broad set of modeling changes have been made to standardize layer declarations, mask/cache construction, and hybrid-attention handling, making many models cleanly exportable (ONNX, torch.export, ExecuTorch) and fullgraph-compilable — users relying on internal modeling APIs may need to update their code accordingly.

  • 🚨 Modeling changes for export, compile, and hybrid-attention standardization (#46738) by @IlyasMoutawwakil

Attention masking for image tokens in Gemma 3/4 models has been fixed to correctly respect sliding window boundaries in local layers, which changes model behavior and may affect reproducibility of previous results.

  • 🚨 [gemma 3/4] Fix bidirectional attention masking crossing sliding window boundaries (#46850) by @douglas-reid

The Expert Parallelism (EP) router contract has been corrected across many models and FP8 scale format handling has been fixed, requiring users of EP or FP8 quantization with affected models to verify their configurations and potentially update conversion mappings.

  • 🚨 EP: fix EP router contract for many models + honor FP8 scale format (#46818) by @IlyasMoutawwakil

The Kernels integration has been synced to the latest version, which includes a breaking change where model-type repositories are no longer accepted by the kernels interface — users must migrate to the updated kernel repository format as shown in the updated tests.

  • :rotating_light: [Kernels] Sync to latest version (#46039) by @vasqu
HfExporters: Native, Unified export for PyTorch / ONNX / ExecuTorch

A native, in-Transformers export pipeline — one base class (HfExporter), three subclasses for the runtimes we care about, one unified API:

ExporterOutputRuntime
DynamoExporterExportedProgramAny PyTorch runtime, AOT compilation
OnnxExporterONNXProgramAny ONNX runtime (ORT, TensorRT, OpenVINO, …)
ExecutorchExporterExecutorchProgramManagerMobile and edge (ExecuTorch)

Same call shape across all three. Dynamic shapes by default. Generation-style models split automatically into prefill + decode (+ vision/audio sub-encoders for VLMs).

from transformers import AutoModelForMaskedLM, AutoTokenizer
from transformers.exporters import OnnxExporter, OnnxConfig

model_id = "hf-internal-testing/tiny-random-BertForMaskedLM"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForMaskedLM.from_pretrained(model_id).eval()
inputs = tokenizer(["Hello, my dog is cute"] * 2, return_tensors="pt")
onnx_program = OnnxExporter().export(model, inputs, config=OnnxConfig(dynamic=True))

new_input = tokenizer("Hello, my cat is so adorable!", return_tensors="pt")
torch.testing.assert_close(
    onnx_program.call_reference(**new_input)[0],   # numpy reference
    onnx_program(**new_input)[0],                  # onnxruntime
    rtol=1e-4, atol=1e-4,
)

Swap one line for another runtime — DynamoExporter() / DynamoConfig or ExecutorchExporter() / ExecutorchConfig(backend=...).

For generative models the prefill/decode split is captured automatically:

from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.exporters import OnnxExporter, OnnxConfig

model_id = "hf-internal-testing/tiny-random-LlamaForCausalLM"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id).eval()
inputs = tokenizer(["Hello, my dog is cute"] * 2, return_tensors="pt")

artifacts = OnnxExporter().export_for_generation(model, inputs, config=OnnxConfig(dynamic=True))
# {"prefill": ONNXProgram, "decode": ONNXProgram}
# For VLMs: also vision_encoder, audio_encoder, multi_modal_projector, language_model, lm_head
Kernels

Kernels: Fixed a silent SDPA math-kernel fallback for GQA models with head_dim > 256 (e.g., Gemma4) that caused O(S²) memory materialization, and resolved a regression where use_kernels=True failed to apply kernel mappings. Additional improvements include lazy loading of the default kernel mapping to prevent import failures with incompatible kernel versions, ROCm routing to AITER Triton kernels for AMD GPUs, GB10/SM121 Hub-kernel support for Qwen3.6 Gated DeltaNet, and expanded documentation for the kernel API.

  • Fix silent SDPA math-kernel fallback for GQA when key/value head_dim > 256 or differ (#46960) by @Butterfingrz in [#46960]
  • [docs] AITER kernels (#46871) by @stevhliu in [#46871]
  • Documentation for the kernel API (#46754) by @michaelbenayoun in [#46754]
  • update kernels-community/aiter-rope version (#46810) by @Abdennacer-Badaoui in [#46810]
  • Add GB10/SM121 Hub-kernel path for Qwen3.6 Gated DeltaNet (#46423) by @AzeezIsh in [#46423]
  • [Kernels] Trigger proper kernelization on use_kernels=True (#46755) by @vasqu in [#46755]
  • Lazily build the default kernel mapping to decouple kernels from normal transformers usage (#46681) by @jiqing-feng in [#46681]
  • Add some AITER kernel routing for ROCm (#46268) by @Abdennacer-Badaoui in [#46268]
  • fix: position ids does not exist in upstream rotary kernel (#46619) by @NanoCode012 in [#46619]
  • docs(zh): add Chinese translation of kernels.md (#46621) by @shoushinya123 in [#46621]
Generation

Several generation bugs were fixed, including Mamba2 chunked-prefill and speculative decoding for hybrid models (Zamba2, Nemotron-H, Bamba, FalconH1, GraniteMoeHybrid), beam search for Mamba models, prompt lookup decoding crashes with no EOS token, and incorrect stateful model handling for LFM2. Additional improvements include reduced unnecessary generation warnings, a fix for continuous batching output mutation, and a new option to keep input tensors on CPU during generation to avoid retracing on Neuron/TPU devices.

  • Fix Mamba2 chunked-prefill / speculative decoding for Zamba2, Nemotron-H, Bamba, FalconH1 and GraniteMoeHybrid (#46741) by @Sunt-ing in [#46741]
  • Remove some unnecessary generate warnings (#46955) by @Cyrilvallez in [#46955]
  • Reject assisted generation for LFM2 and LFM2-MoE (set _is_stateful) (#46937) by @Sunt-ing in [#46937]
  • Fix beam search for mamba models (#46819) by @Cyrilvallez in [#46819]
  • Fix prompt lookup decoding crash when no EOS token is configured (#46790) by @Sunt-ing in [#46790]
  • [Continuous Batching] Snapshot generation outputs without mutating request state (#46670) by @Incheonkirin in [#46670]
  • [docs] keep generation tensors on cpu (#46675) by @stevhliu in [#46675]
  • feat(generation): allow user to keep input tensors on cpu (#46590) by @dacorvo in [#46590]
Attention

Several attention-related bugs were fixed in this release, including silent SDPA math-kernel fallbacks for GQA with large head dimensions, broken Flash Attention with StaticCache, incorrect causal masking in Xcodec2, a cross-attention reshape regression in Blip2, and eager GQA support in Evolla. Accelerate hook handling was also corrected for models using linear attention to prevent silently wrong results during offloading.

  • Fix accelerate hooks for all models using linear attention (#46978) by @Cyrilvallez in [#46978]
  • Fix Xcodec2 attention to be non-causal. (#46963) by @ebezzam in [#46963]
  • Fix flash attention with StaticCache (#46914) by @Cyrilvallez in [#46914]
  • Fix Evolla eager attention for the GQA text decoder (#46860) by @jiqing-feng in [#46860]
  • [docs] metal flash attention (#46349) by @stevhliu in [#46349]
  • [Blip2] Fix cross attention reshape (#46695) by @vasqu in [#46695]
Cache

Cache APIs were improved by consolidating redundant getters into a cleaner get_max_length method and updating documentation accordingly. Several bug fixes were also applied, including correcting mask generation beyond sliding windows, fixing a dimension issue in cumulative length tracking, resolving device mismatches in offloaded cache for hybrid models, and fixing crashes when loading trust_remote_code models from symlinked local caches.

  • [docs] update cache apis (#46892) by @stevhliu in [#46892]
  • Rework some old cache getters/properties (#46862) by @Cyrilvallez in [#46862]
  • Fix expanded dim in the cache's cumulative length (#46856) by @Cyrilvallez in [#46856]
  • Fix mask when generating beyond sliding window (#46839) by @zucchini-nlp in [#46839]
  • Fix offloaded cache device mismatch on hybrid models (#46748) by @Sunt-ing in [#46748]
  • Fix dynamic module symlinked cache on trust_remote_code models (#46618) by @ldkhang1201 in [#46618]
Serve

Several fixes and improvements were made to the Serve functionality, including lazy imports to prevent CLI crashes when the optional serve extra is not installed, a fix for dropped attributes during serialization of subclassed Pydantic models, and added documentation for the kernel API.

  • fix(cli/serve): import serve handlers lazily so the CLI works without the serve extra (#46473) by @ in [#46473]
  • [Fix] Serve drops some attributes at serialization (#46680) by @remi-or in [#46680]
  • Reduce per_page from 100 to 50 in GitHub API calls to avoid server errors (#46678) by @ydshieh in [#46678]
Quantization

Fixed dtype casting bugs in Gemma4's vision and audio multimodal embedders when using BitsAndBytes quantization, where inputs were incorrectly cast to integer storage dtypes (uint8/int8) instead of the actual compute dtype. Also corrected FP8 quantization to round block scales before quantizing weights, ensuring dequantization produces correct values for ue8m0 (DeepSeek-V4 style) format.

  • [Gemma4] Fix dtype casting for quantized vision/audio embedders (#46933) by @sharmax-vikas in [#46933]
  • Fix dtype casting for quantized multimodal embedders (#46904) by @praful-srinivasan-027 in [#46904]
  • Round the ue8m0 FP8 scale before quantizing so dequant matches the stored inverse (#46763) by @Incheonkirin in [#46763]
Bugfixes and improvements
  • Update workflow callers to use transformers-ci (#47040) by @ydshieh in [#47040]
  • Add HunYuan VL model (#46417) by @Mi-Jiazhi in [#46417]
  • Add tiny_model_id support to ProcessorTesterMixin for memory-sensitive tests (#47005) by @ydshieh in [#47005]
  • chore(linter): add TRF018 modeling rule (#46259) by @tarekziade in [#46259]
  • [PoC] HF exporters (#41992) by @IlyasMoutawwakil in [#41992]
  • TST Skip PEFT tests if PEFT version is too low (#47027) by @BenjaminBossan in [#47027]
  • CI Add PEFT integration tests (#47021) by @BenjaminBossan in [#47021]
  • [glm-mode-dsa] Indexer uses interleaved rope (#46842) by @pcuenca in [#46842]
  • Use standard arg names in Mllama (#46977) by @zucchini-nlp in [#46977]
  • Bump min peft 0.19.1 remove weight conversion duplicate code (#46442) by @BenjaminBossan in [#46442]
  • Raise a loud error for missing prefix (#46980) by @Rocketknight1 in [#46980]
  • Fix typo in Qwen3 ASR no_split_module (#47002) by @ebezzam in [#47002]
  • only in the original repo (#46982) by @tarekziade in [#46982]
  • Fix typos in Gemma 4 Assistant documentation (#46975) by @RaunaqDavidNath in [#46975]
  • the CI status should be a comment (#46976) by @tarekziade in [#46976]
  • QwenVL model conversion (#46881) by @zucchini-nlp in [#46881]
  • Remove default dtype in FusedRMSNormGated modules (#46953) by @Cyrilvallez in [#46953]
  • FIX PEFT test changed error type (#46959) by @BenjaminBossan in [#46959]
  • Fix path traversal via vocab-file arguments in tokenizer_config.json (#46279) by @LinZiyuu in [#46279]
  • docs(conditional_detr): fix num_queries default in docstring (100 -> 300) (#46939) by @Kropiunig in [#46939]
  • Use common floats_list method for feature extractor tests. (#46956) by @ebezzam in [#46956]
  • Fix RT-DETR indexing error when num_feature_levels exceeds backbone o… (#46833) by @c1prk in [#46833]
  • Fix Florence2 training-loss double-shift (same pattern as Moonshine #… (#46898) by @sharmax-vikas in [#46898]
  • [Olmo3] different RoPE per layer type (#46911) by @zucchini-nlp in [#46911]
  • Use inspect.getsource instead of open() for source-reading in can_set*_implementation (#46207) by @rasmi in [#46207]
  • Don't pin the gated delta net norm to cuda:0 with a hardcoded device (#46817) by @Sunt-ing in [#46817]
  • Fix auto-mappings registration for remote code & fixes a few custom code issues (#46876) by @Cyrilvallez in [#46876]
  • Fix broken internal documentation links (#46945) by @sezer-muhammed in [#46945]
  • Insert a Grafana badge in the PR (#46774) by @tarekziade in [#46774]
  • [NemotronAsrStreaming] fix pipeline (#46870) by @eustlb in [#46870]
  • [NemotronAsrStreaming] processor without modular (#46865) by @eustlb in [#46865]
  • [Dia] Fix docs (#46923) by @vasqu in [#46923]
  • [Docs] Fix full disk offloading docs (#46905) by @kylesayrs in [#46905]
  • [CB] Changes to increase max_batch_tokens (#46712) by @remi-or in [#46712]
  • Redirect to diffusers pipe in docs for experimental features (#46875) by @zucchini-nlp in [#46875]
  • Install in docker (#46910) by @ydshieh in [#46910]
  • [CI] Use pre-computed _OLD_MODELS in test_new_models_require_torchvision_backend (#46882) by @ydshieh in [#46882]
  • call transformers-ci in a nightly run (#46811) by @tarekziade in [#46811]
  • [docs] full disk offloading (#46893) by @stevhliu in [#46893]
  • TST Run fast PEFT tests in normal CI (#45679) by @BenjaminBossan in [#45679]
  • nemotron_asr_streaming: set _supports_flex_attn to False (#46878) by @kaixuanliu in [#46878]
  • Add native masked MSE loss for Sapiens2ForPoseEstimation (#46764) by @Sainava in [#46764]
  • blip 2 fix (#46816) by @itazap in [#46816]
  • Use meshgrid for brevity (#46861) by @zucchini-nlp in [#46861]
  • Add xcodec2 model (#44178) by @ebezzam in [#44178]
  • Prevent auto-class from being modified for all models (#46844) by @zucchini-nlp in [#46844]
  • Add Spanish translation of the torch.compile page (#46852) by @delcenjo in [#46852]
  • docs: Update NeMo AutoModel doc examples (#46857) by @adil-a in [#46857]
  • [docs] distributed training (#44420) by @stevhliu in [#44420]
  • [docs] require trust_remote_code for custom_generate (#46677) by @stevhliu in [#46677]
  • add distributed config (#46705) by @3outeille in [#46705]
  • [Offloading] [Bugfix] Fix disk offloading of models with explicit tensor dtypes (#46849) by @kylesayrs in [#46849]
  • Streamable chat parsing (#45847) by @Rocketknight1 in [#45847]
  • Fix BitNet packed-weight unpacking dtype (F.linear dtype mismatch) (#46808) by @jiqing-feng in [#46808]
  • Fix typos in code (#46579) by @cyyever in [#46579]
  • Fix Moonshine training-loss double-shift (train against labels, not labels[..., 1:]) (#46784) by @Incheonkirin in [#46784]
  • [CB] Fix issues with FA read / writes (#46765) by @remi-or in [#46765]
  • Switch decorator order (#46853) by @Cyrilvallez in [#46853]
  • docs(trainer): add JIT checkpointing to trainer recipes (#46826) by @efazal in [#46826]
  • Import diffusion_gemma in models init (#46841) by @boringcrypto in [#46841]
  • [skills] help your agent get started (#45732) by @stevhliu in [#45732]
  • Fix use_cache with seq_len > 1 ( #46032) (#46084) by @Ramshankar07 in [#46084]
  • [Offloading] Support full disk offloading (#46749) by @kylesayrs in [#46749]
  • fix: raise ValueError for empty conversation in apply_chat_template (#46753) by @sharmax-vikas in [#46753]
  • Fix VideoPrismForVideoClassification returning last_hidden_state as h… (#46830) by @sharmax-vikas in [#46830]
  • Avoid NumPy 2.0 __array__ copy-keyword deprecation in create_mm_token_type_ids (#46827) by @qgallouedec in [#46827]
  • docs: update apple silicon doc with safetensors 0.8.0 benefits (#46744) by @McPatate in [#46744]
  • [CB] Add FA2 to the fast path (#46729) by @vasqu in [#46729]
  • Fix flex_attention block mask creation when get_seq_length returns a tensor (#46802) by @jiqing-feng in [#46802]
  • Fix left-padding token selection in BioGptForSequenceClassification (#46782) by @Sunt-ing in [#46782]
  • Fix broken internal links in model documentation (#46807) by @ShamSaleem in [#46807]
  • DiffusionGemma: mask layout and CI (#46654) by @zucchini-nlp in [#46654]
  • Use cached added-token dicts in per-token decode loops (#46535) by @ishan-1010 in [#46535]
  • fix another flaky test (#46767) by @zucchini-nlp in [#46767]
  • Fix secondary rate limit when downloading artifacts in slack report (#46796) by @ydshieh in [#46796]
  • docs: move SmolLM3 to Text models category in _toctree.yml (#46770) by @yyouretoast in [#46770]
  • Fix several bugs in cache_implementation=static (#46446) by @dacorvo in [#46446]
  • [CI] Fix artifact download path in self-comment-ci workflow (#46769) by @ydshieh in [#46769]
  • fixes per head minimaxm3 (#46719) by @ArthurZucker in [#46719]
  • [CI] Fix some failures introduced by myself :grimacing: (#46751) by @vasqu in [#46751]
  • Fix regression in ProcessorMixin._load_tokenizer_from_pretrained for tokenizers at root (#46592) by @ in [#46592]
  • fix(aria): use math.ceil in get_number_of_image_patches to match actual patch count (#46732) by @arnavkewalram in [#46732]
  • Return logits from semantic segmentation post-process (#46163) by @guarin in [#46163]
  • Fall back to the for-loop grouped_mm on CPU (#46743) by @Sunt-ing in [#46743]
  • Kernelize refactor (#46520) by @michaelbenayoun in [#46520]
  • ci: add comment explaining why secrets are not inherited in security gate (#46750) by @ydshieh in [#46750]
  • ci: trigger PR CI on ci-* branches (#46746) by @ydshieh in [#46746]
  • finegrained v3 (#46742) by @IlyasMoutawwakil in [#46742]
  • Improve AutoImageProcessor error for unavailable backends (#46727) by @sisaman in [#46727]
  • skip decorators must appear after @parameterized.expand in pytest (#46737) by @rasmi in [#46737]
  • [RecurrentGemma] Support attn_implementation dispatch (#46320) by @YangKai0616 in [#46320]
  • [docs] clarify initialization module usage (#46698) by @stevhliu in [#46698]
  • feat: bump safetensors to 0.8.0 (#46523) by @McPatate in [#46523]
  • ci: disable CircleCI by replacing config with no-op (#46721) by @ydshieh in [#46721]
  • [CB] Fix offloading (#46587) by @remi-or in [#46587]
  • [Templates] Update members (#46720) by @vasqu in [#46720]
  • feat[vLLM x v5]: Expose max_source_positions on VibeVoiceAsrConfig (#46472) by @harshaljanjani in [#46472]
  • Laguna: support per-element output gating (#46690) by @joerowell in [#46690]
  • ci: grant pull-requests:write to the security gate caller (#46715) by @ydshieh in [#46715]
  • Multi-gpu loading when the whole backbone is tied (#46625) by @zucchini-nlp in [#46625]
  • Delete docstring if same as in auto-doc (#46284) by @zucchini-nlp in [#46284]
  • Update GLM-5.2 docs (#46703) by @Dovis01 in [#46703]
  • add conversion scripts for EUPE (#46691) by @molbap in [#46691]
  • [docs] compile level and batch/scheduling limits (#46676) by @stevhliu in [#46676]
  • [blip_2] Support attn_implementation dispatch (#46401) by @YangKai0616 in [#46401]
  • [CTRL] Support attn_implementation dispatch (#46073) by @YangKai0616 in [#46073]
  • Lfm2: also thread seq_idx through ShortConv.slow_forward (non-fast-path) (#46633) by @ChangyiYang in [#46633]
  • feat(pipelines): accept numpy arrays and tensors in ImageClassificationPipeline (#39607) (#46573) by @kamran-nizamani in [#46573]
  • Smovlm: pad videos up to max frames (#46662) by @zucchini-nlp in [#46662]
  • mistral common backend fix (#46667) by @itazap in [#46667]
  • [pr template] update (#46606) by @stevhliu in [#46606]
  • Fix AttributeError in auto_factory when model_class lacks config_class (#46669) by @atharv1945 in [#46669]
  • [CB] Slice logits inside the model (#46660) by @remi-or in [#46660]
  • ci: add NO_COLOR=1 to suppress ANSI color codes in CI output (#46659) by @ydshieh in [#46659]
  • Fix dynamic RoPE not resetting inv_freq when layer_type is None (#46624) by @Incheonkirin in [#46624]
  • Better processing tests (#46374) by @zucchini-nlp in [#46374]
  • ci: add merge_group trigger to pr-ci-caller.yml (#46668) by @ydshieh in [#46668]
  • skip invalid quant_cache test for nemotron_h (#46368) by @kaixuanliu in [#46368]
  • Revert "Disable PR CI workflow for PRs from forked repo. during the weekend" (#46652) by @ydshieh in [#46652]
  • [CB] Fix seqlens and use TypedDict (#46593) by @remi-or in [#46593]
  • Disable PR CI workflow for PRs from forked repo. during the weekend (#46609) by @ydshieh in [#46609]
  • Update post release (#46608) by @vasqu in [#46608]
  • Fix peft lower bound (#46605) by @hmellor in [#46605]
  • Fix docstring formatting issues causing Sphinx autodoc warnings (#46596) by @kurtmckee in [#46596]
Significant community contributions

The following contributors have made significant changes to the library over the last release:

  • @ydshieh
    • Update workflow callers to use transformers-ci (#47040)
    • Add tiny_model_id support to ProcessorTesterMixin for memory-sensitive tests (#47005)
    • Install in docker (#46910)
    • [CI] Use pre-computed _OLD_MODELS in test_new_models_require_torchvision_backend (#46882)
    • Fix secondary rate limit when downloading artifacts in slack report (#46796)
    • [CI] Fix artifact download path in self-comment-ci workflow (#46769)
    • ci: add comment explaining why secrets are not inherited in security gate (#46750)
    • ci: trigger PR CI on ci-* branches (#46746)
    • ci: disable CircleCI by replacing config with no-op (#46721)
    • ci: grant pull-requests:write to the security gate caller (#46715)
    • Reduce per_page from 100 to 50 in GitHub API calls to avoid server errors (#46678)
    • ci: add NO_COLOR=1 to suppress ANSI color codes in CI output (#46659)
    • ci: add merge_group trigger to pr-ci-caller.yml (#46668)
    • Revert "Disable PR CI workflow for PRs from forked repo. during the weekend" (#46652)
    • Disable PR CI workflow for PRs from forked repo. during the weekend (#46609)
  • @Mi-Jiazhi
    • Add HunYuan VL model (#46417)
  • @tarekziade
    • chore(linter): add TRF018 modeling rule (#46259)
    • only in the original repo (#46982)
    • the CI status should be a comment (#46976)
    • Insert a Grafana badge in the PR (#46774)
    • call transformers-ci in a nightly run (#46811)
  • @casinca
    • Add Xiaomi MiMo-V2 (#45144)
  • @JJJYmmm
    • [new model] Add Zyphra/ZAYA1-8B (#45862)
  • @ebezzam
    • Fix typo in Qwen3 ASR no_split_module (#47002)
    • Fix Xcodec2 attention to be non-causal. (#46963)
    • Use common floats_list method for feature extractor tests. (#46956)
    • Add xcodec2 model (#44178)
  • @meatybobby
    • Add support for RADIO models (#46425)
  • @douglas-reid
    • 🚨 [gemma 3/4] Fix bidirectional attention masking crossing sliding window boundaries (#46850)
  • @Sunt-ing
    • Fix Mamba2 chunked-prefill / speculative decoding for Zamba2, Nemotron-H, Bamba, FalconH1 and GraniteMoeHybrid (#46741)
    • Reject assisted generation for LFM2 and LFM2-MoE (set _is_stateful) (#46937)
    • Don't pin the gated delta net norm to cuda:0 with a hardcoded device (#46817)
    • Fix prompt lookup decoding crash when no EOS token is configured (#46790)
    • Fix left-padding token selection in BioGptForSequenceClassification (#46782)
    • Fix offloaded cache device mismatch on hybrid models (#46748)
    • Fall back to the for-loop grouped_mm on CPU (#46743)
  • @eustlb
    • Add Nemotron 3.5 ASR Streaming (#46565)
    • [NemotronAsrStreaming] fix pipeline (#46870)
    • [NemotronAsrStreaming] processor without modular (#46865)
    • Add Nemotron ASR Streaming (#46332)
    • [fix] enable base64 str audio in load_audio (#46694)
  • @vasqu
    • [Dia] Fix docs (#46923)
    • [CB] Add FA2 to the fast path (#46729)
    • [Kernels] Trigger proper kernelization on use_kernels=True (#46755)
    • [CI] Fix some failures introduced by myself :grimacing: (#46751)
    • :rotating_light: [Kernels] Sync to latest version (#46039)
    • [Templates] Update members (#46720)
    • [Blip2] Fix cross attention reshape (#46695)
    • Update post release (#46608)
  • @mbtariq82
    • Qwen3 ASR and Forced Aligner (#43838)
  • @remi-or
    • [CB] Changes to increase max_batch_tokens (#46712)
    • [CB] Fix issues with FA read / writes (#46765)
    • [CB] Fix offloading (#46587)
    • [Fix] Serve drops some attributes at serialization (#46680)
    • [CB] Slice logits inside the model (#46660)
    • [CB] Fix seqlens and use TypedDict (#46593)
  • @jiqing-feng
    • Fix BitNet packed-weight unpacking dtype (F.linear dtype mismatch) (#46808)
    • Fix Evolla eager attention for the GQA text decoder (#46860)
    • Fix flex_attention block mask creation when get_seq_length returns a tensor (#46802)
    • Lazily build the default kernel mapping to decouple kernels from normal transformers usage (#46681)
  • @bzantium
    • Add MiniCPM3 (#41116)
  • @MHRDYN7
    • Add Videoprism (#39895)
  • @YangKai0616
    • [RecurrentGemma] Support attn_implementation dispatch (#46320)
    • [blip_2] Support attn_implementation dispatch (#46401)
    • [CTRL] Support attn_implementation dispatch (#46073)
v5.12.1

Patch release v5.12.1

Fixed
  • Fix peft lower bound
  • Fix auto tokenizer to properly resolve the mistral tokenizer when mistral-common is installed

Patch release v5.12.1

Updated the lower bound for PEFT and a fix for auto tokenizer to properly resolve the mistral tokenizer (when mistral-common is installed). This is similar to v.5.10.3 minus the fixes that were already included in the main release - vLLM will first target 5.10.3 :hugs:

  • Fix peft lower bound #46605 by @hmellor (#46605)
  • mistral common backend fix #46667 by @itazap (#46667)

Full Changelog: https://github.com/huggingface/transformers/compare/v5.12.0...v5.12.1

v5.10.3

Patch release v5.10.4

Fixed
  • regression introduced by #45534
  • image/video/audio_token_ids in ProcessorMixin
  • InternVL models
  • offsets in processing
  • peft lower bound
  • mistral common backend

Patch release v5.10.4

Update: Note that on pypi 5.10.3 doesn't exist and this this saved under 5.10.4 (so essentially a minor version skipped). Sorry about that, that's on me. Just wanted to clarify to make this less confusing!

A few fixes needed for vLLM to sync with transformers :hugs:

  • [fix] regression introduced by #45534 #46456 by @eustlb (#46456)
  • Fix {image/video/audio}_token_ids in ProcessorMixin #46500 by @hmellor (#46500)
  • Fix InternVL models #46524 by @hmellor (#46524)
  • Fix the offsets in processing #46525 by @zucchini-nlp (#46525)
  • Fix peft lower bound #46605 by @hmellor (#46605)
  • mistral common backend fix #46667 by @itazap (#46667)

Full Changelog: https://github.com/huggingface/transformers/compare/v5.10.2...v5.10.3

v5.12.0

Release v5.12.0

Added
  • Add MiniMax-M3-VL model, a vision-language model that pairs a CLIP-style vision tower with 3D rotary position embeddings and the MiniMax-M3 text backbone
  • Add PP-OCRv6 model with official weights, a lightweight OCR system with MetaFormer-style building blocks in three model tiers
  • Add Parakeet-RNNT model with Fast Conformer Encoder and RNN-T decoder
Changed
  • Make DiffusionGemma trainable
  • Require trust_remote_code to run a local-directory custom_generate
  • Remove unnecessary expand_as in get_placeholder_mask across VLMs
Fixed
  • Fix stop string matching for byte-fragment tokens
  • Fix torchaudio version not tied to torch version in docker file
  • Fix hf_hub_download not placing file in current dir for url_to_local_path
  • Honor a concrete dtype in AutoModel for composite checkpoints

Release v5.12.0

New Model additions
MiniMax-M3-VL

MiniMax-M3-VL is the vision-language member of the MiniMax-M3 family that pairs a CLIP-style vision tower with 3D rotary position embeddings with the MiniMax-M3 text backbone. It uses a mixed dense/sparse Mixture-of-Experts decoder with SwiGLU-OAI gated experts and a lightning indexer for block-sparse attention. The model processes images through a Conv3d patch embedding system and includes specialized components for efficient multimodal understanding and generation.

Links: Documentation

  • Add minimax m3vl (#46600) by @ArthurZucker in #46600
PP-OCRv6: update documentation and slow tests (#46576)

The official weights for PP-OCRv6 are out: PP-OCRv6 is a lightweight OCR system that combines architectural innovation with data-centric optimization. It redesigns the backbone, detection neck, and recognition neck around a unified MetaFormer-style building block with structural reparameterization. Three model tiers (medium, small, tiny) share the same block primitives, covering deployment scenarios from server to edge.

  • PP-OCRv6: update documentation and slow tests (#46576) by @ zhang-prog
Add Parakeet-RNNT (#46331)

ParakeetForRNNT: a Fast Conformer Encoder + an RNN-T (RNN Transducer) decoder

  • RNN-T Decoder: Standard neural transducer:
    • LSTM prediction network maintains language context across token predictions.
      • Joint network combines encoder and decoder outputs.
      • Greedy transducer decoding for inference: a blank emission advances the encoder frame by one, a non-blank emission stays on the same frame.
  • Add Parakeet-RNNT (#46331) by @eustlb
Bugfixes and improvements
  • [CI] don't export OTELs within the tests (#46602) by @tarekziade in [#46602]
  • [CI] capture checkers output in OTEL (#46601) by @tarekziade in [#46601]
  • Lfm2: thread seq_idx through ShortConv for packed/varlen inputs (#46588) by @ChangyiYang in [#46588]
  • put output_hidden_states into filter_output_hidden_states (#46422) by @molbap in [#46422]
  • a11 for checkers (#46599) by @tarekziade in [#46599]
  • Fix stop string matching for byte-fragment tokens (#46530) by @Incheonkirin in [#46530]
  • [DiffusionGemma] better docs and links (#46569) by @gante in [#46569]
  • Require trust_remote_code to run a local-directory custom_generate (#46483) by @LinZiyuu in [#46483]
  • Fix torchaudio version not tied to torch version in docker file (#46594) by @ydshieh in [#46594]
  • [CI] Enable PR CI for all fork PRs via security gate (#46591) by @ydshieh in [#46591]
  • [CB] [Minor] Add parameter to tune default compile level (#46533) by @remi-or in [#46533]
  • Make DiffusionGemma trainable (#46568) by @kashif in [#46568]
  • docs: 🌐 add Turkish translation for README file (#46312) by @onuralpszr in [#46312]
  • fix-trainer-tests (#46541) by @SunMarc in [#46541]
  • Remove unnecessary expand_as in get_placeholder_mask across VLMs (#44907) by @syncdoth in [#44907]
  • [CI] Catch all shell/process execution issues in security gate via Bandit JSON report (#46560) by @ydshieh in [#46560]
  • Honor a concrete dtype in AutoModel for composite checkpoints (#46514) by @qflen in [#46514]
  • [CI] Implement real security check in PR CI security gate (#46557) by @ydshieh in [#46557]
  • [CI] Add 60s delay in security gate for flow observation (#46555) by @ydshieh in [#46555]
  • [TBC] [CI] Auto-approve PR CI for fork PRs via security gate (#46553) by @ydshieh in [#46553]
  • [CI] fix and make less flaky (#46543) by @zucchini-nlp in [#46543]
  • Fix hf_hub_download not placing file in current dir for url_to_local_path (#46545) by @ydshieh in [#46545]
Significant community contributions

The following contributors have made significant changes to the library over the last release:

  • @ArthurZucker
    • Add minimax m3vl (#46600)
  • @eustlb
    • Add Parakeet-RNNT (#46331)
v5.11.0

Release v5.11.0

Added
  • Add DiffusionGemma model with block-autoregressive text generation using multi-canvas sampling for improved inference speed
  • Add DeepSeek-V3.2 model with DeepSeek Sparse Attention (DSA) for improved training and inference efficiency in long-context scenarios
  • Add fine-grained fp8/fp4 Triton kernel support
  • Add documentation for tensor parallelism support with continuous batching
  • Add max_requests_per_batch parameter to continuous batching
  • Add Cosmos3 model
Changed
  • Extend KernelConfig API to support n-to-1 module fusion and parameter transformation
  • Update FalconMamba fast-path warning to recommend pip install kernels instead of mamba-ssm
  • Use torchvision's native LANCZOS interpolation instead of PIL fallback
  • Support non-weight param names in TorchAo safetensors loading
Fixed
  • Fix dtype mismatch in NemotronH/Zamba2 Mamba2 CUDA-kernel path for out_proj
  • Fix model parallel beam search bugs in Qwen2-VL, Qwen2.5-VL, and Qwen3-VL MoE model families
  • Fix the offsets in processing
  • Fix trailing comma bug in DataCollatorForLanguageModeling example
  • Fix missing Gemma4Processor._compute_audio_num_tokens
  • Fix InternVL models
  • Fix regression introduced by previous changes
  • Fix fbgemm_fp8 to keep the current device aligned with the input tensor
  • Fix video classification pipeline video processor
  • Fix Cohere2MoeModel device map attribute error in tests

Release v5.11.0

New Model additions
DiffusionGemma

DiffusionGemma is engineered to reduce the sequential bottlenecks of standard causal language models by employing an encoder-decoder architecture specifically optimized for inference speed. During inference, DiffusionGemma leverages multi-canvas sampling, where rather than generating one token at a time, the model iteratively denoises a full block of tokens using a diffusion sampler. This block-autoregressive approach facilitates text generation at higher speeds compared to traditional sequential generation methods.

Links: Documentation

  • GPU go brr (#46540) by @gante in #46540
DeepSeek-V3.2

DeepSeek-V3.2-Exp is an experimental model from DeepSeek-AI that introduces DeepSeek Sparse Attention (DSA), a trainable, fine-grained sparse attention mechanism designed to improve training and inference efficiency in long-context scenarios. Built on top of DeepSeek-V3.1-Terminus with a 685B-parameter Mixture-of-Experts backbone, it reduces the quadratic cost of attention over long sequences by attending only to a selected subset of past tokens while maintaining virtually identical benchmark performance. The work was extended in DeepSeek-V3.2 which pairs DSA with scalable reinforcement learning and achieves gold-medal level results on competition math and competitive programming benchmarks.

Links: Documentation | Paper

  • Add deepseek 3.2 exp (#41251) by @ArthurZucker in #41251
Kernels

The KernelConfig API was extended to support n-to-1 module fusion and parameter transformation, simplifying how custom kernels are integrated with Transformers modules. Additional fixes include resolving a dtype mismatch in the Mamba2 CUDA kernel path for NemotronH/Zamba2, adding fine-grained fp8/fp4 Triton kernel support, and correcting the FalconMamba fast-path warning to recommend pip install kernels instead of mamba-ssm.

  • Extended & simplified n-to-1 kernel fusion via KernelConfig (#46339) by @michaelbenayoun in [#46339]
  • Triton finegrained fp8/fp4 (#46407) by @IlyasMoutawwakil in [#46407]
  • Fix dtype mismatch in NemotronH/Zamba2 Mamba2 CUDA-kernel path (out_proj) (#46487) by @yuekaizhang in [#46487]
  • fix(falcon_mamba): recommend pip install kernels in fast-path warning (#46343) by @Anai-Guo in [#46343]
Parallelization

Fixed model parallel beam search bugs in the Qwen2-VL, Qwen2.5-VL, and Qwen3-VL MoE model families, and added documentation for tensor parallelism support with continuous batching.

  • [docs] tp for continuous batching (#46019) by @stevhliu in [#46019]
  • revisit history parallel beam search tests to avoid unnecessary fix (#46495) by @kaixuanliu in [#46495]
  • fix qwen series VL model's model parallel bug (#46316) by @kaixuanliu in [#46316]
Bugfixes and improvements
  • Fix the offsets in processing (#46525) by @zucchini-nlp in [#46525]
  • Fix buggy action sha pin (#46534) by @ydshieh in [#46534]
  • Fix trailing comma bug in DataCollatorForLanguageModeling example (#46527) by @JemmaUZH in [#46527]
  • Fix missing Gemma4Processor._compute_audio_num_tokens (#46416) by @csantosbh in [#46416]
  • Fix InternVL models (#46524) by @hmellor in [#46524]
  • fix(afmoe): reduce tokens in test_compile_static_cache to avoid flaky bfloat16 drift (#46521) by @ydshieh in [#46521]
  • [CB] Add a "max_requests_per_batch" parameter (#46434) by @remi-or in [#46434]
  • revamp cv docs and fix rf-detr (#46219) by @merveenoyan in [#46219]
  • Update hub metadata (#46379) by @zucchini-nlp in [#46379]
  • extend DeepseekV4FlashIntegrationTest to non-cuda device (#46517) by @sywangyi in [#46517]
  • [docs] deepgemm (#46361) by @stevhliu in [#46361]
  • [fix] regression introduced by #45534 (#46456) by @eustlb in [#46456]
  • Use torchvision's native LANCZOS interpolation instead of PIL fallback (#46496) by @NicolasHug in [#46496]
  • Add debugging info in pr-ci-caller.yml (#46505) by @ydshieh in [#46505]
  • Fix tests: 'Cohere2MoeModel' object has no attribute 'hf_device_map' (#46337) by @kaixuanliu in [#46337]
  • Bump the actions group across 1 directory with 19 updates (#46414) by @dependabot[bot] in [#46414]
  • Log some information in .github/workflows/pr-ci-post-dashboard-link.yml (#46499) by @ydshieh in [#46499]
  • feat(quantizers): support non-weight param names in TorchAo safetensors loading (#46325) by @agesf in [#46325]
  • docs: fix typo in make_list_of_images docstring (#46469) by @ramkumar27072006 in [#46469]
  • add XPU expectation for deepseek_ocr2 model tests (#46492) by @kaixuanliu in [#46492]
  • Fix sapiens2 tests: add XPU device expectations (#46488) by @kaixuanliu in [#46488]
  • Add vLLM smoke test to CI (#46383) by @hmellor in [#46383]
  • extend deepseek v4 test to xpu (#46366) by @sywangyi in [#46366]
  • Added cosmos3 model (#46146) by @MaciejBalaNV in [#46146]
  • fbgemm_fp8:Keep the current device aligned with the input tensor (#46403) by @kaixuanliu in [#46403]
  • [Modular] Add no_inherit_decorators and fixup wrong RoPE related inheritances (#46440) by @Bissmella in [#46440]
  • skip deepgemm test except cuda (#46090) by @jiqing-feng in [#46090]
  • Fix/video classification pipeline video processor (#46256) by @J3r3myPerera in [#46256]
  • ci: less flaky test_assisted_decoding_matches_greedy_search_1_same (#46445) by @ydshieh in [#46445]
  • Fix flip_back graph break (#46344) by @guarin in [#46344]
  • Add the other processors to auto-mappings (#46046) by @zucchini-nlp in [#46046]
  • fix: compatibility with torch<=2.7 (#46393) by @andylin-hao in [#46393]
  • fix: remove dynamic per-actor Slack ID lookup in ssh-runner workflow (#46327) by @ydshieh in [#46327]
  • [docs] Romanian translation of pipeline_tutorial.md, pipeline_gradio.md, pipeline_webserver.md and add_new_pipeline.md. (#46388) by @filipinescu in [#46388]
  • [docs] gemma4 typos (#46351) by @stevhliu in [#46351]
  • [docs] padding-free training (#46333) by @stevhliu in [#46333]
  • fix[vLLM x v5]: Default untied embeddings in AudioFlamingo3 and VibeVoice (#46400) by @harshaljanjani in [#46400]
  • Fix deepspeed docker (#46108) by @SunMarc in [#46108]
  • Fix conversion for clip models (#46406) by @zucchini-nlp in [#46406]
  • ci: mention code quality failure in CI dashboard comment (#46415) by @ydshieh in [#46415]
  • Fix noisy logging from image_processing module aliases issue - 46298 (#46350) by @skshmjn in [#46350]
  • Raise tqdm minimum to 4.60 to match tqdm.contrib.logging import (#46397) by @n0gu-furiosa in [#46397]
  • fix(gemma4_unified): conversion script and config bugs (#46398) by @douglas-reid in [#46398]
  • [docs] remove sparsity from compressed-tensors (#46387) by @stevhliu in [#46387]
  • [CB] Fix crashes when fork is not possible (#46251) by @remi-or in [#46251]
  • Improve CI dashboard comment: rename and deduplicate (#46412) by @ydshieh in [#46412]
  • Fix missing f-string prefixes in error messages (#46354) by @joaopedroassad in [#46354]
  • Add workflow to post CI Grafana dashboard link to PR (#46410) by @ydshieh in [#46410]
  • [docs] Romanian translation of fast_tokenizers.md, custom_tokenizers.md, tokenizer_summary.md, image_processors.md and video_processors.md. (#46356) by @filipinescu in [#46356]
  • Clean up new models after release (#46092) by @zucchini-nlp in [#46092]
Significant community contributions

The following contributors have made significant changes to the library over the last release:

  • @ArthurZucker
    • Add deepseek 3.2 exp (#41251)
  • @gante
    • GPU go brr (#46540)
  • @merveenoyan
    • revamp cv docs and fix rf-detr (#46219)
  • @sgerrard
    • Quantization for small models (#46449)
  • @MaciejBalaNV
    • Added cosmos3 model (#46146)
  • @J3r3myPerera
    • Fix/video classification pipeline video processor (#46256)
  • @filipinescu
    • [docs] Romanian translation of pipeline_tutorial.md, pipeline_gradio.md, pipeline_webserver.md and add_new_pipeline.md. (#46388)
    • [docs] Romanian translation of fast_tokenizers.md, custom_tokenizers.md, tokenizer_summary.md, image_processors.md and video_processors.md. (#46356)
v5.10.1

Release v5.10.1

Added
  • Add Gemma4 unified multimodal model with encoder-free architecture that projects raw inputs directly into language model embedding space
  • Add Sapiens2 family of high-resolution vision transformers for human-centric computer vision tasks including pose estimation and body-part segmentation
  • Add DeepSeek-OCR-2 vision-language model for OCR and document understanding with hybrid attention mechanism
  • Add Mellum code-focused Mixture-of-Experts language model with 12B total parameters and 2.5B active parameters per token
  • Add FSDP initialization via from_pretrained
Changed
  • Gemma4 vision pooler now casts inputs to float32 before scaling to prevent float16 overflow with large checkpoints, which may cause minor numerical differences in outputs for users running Gemma-4 vision models in float16
  • Audio Language Models now have a dedicated base model class without a language modeling head, aligning with Vision Language Models design
Fixed
  • Fix dsv4 dequant with tensor parallelism and expert parallelism
  • Rework continuous batching manager for clearer control flow and improved tensor parallelism race condition handling
  • Fix model parallel beam search across multiple models
  • Fix model parallel issues for AltCLIP and ChineseClip models
  • Fix model parallel device mismatch issue in create_bidirectional_mask
  • Fix loss over-counting under tensor parallelism and expert parallelism configurations in Trainer.compute_loss

Release v5.10.1

v5.10.0 was yanked as we publish on a corrupted branch. Sorry everyone, this happens when we rush a release!!!

New Model additions
Gemma4 unified+ Gemma4 MTP

Gemma 4 12B Unified is an encoder-free multimodal model with pretrained and instruction-tuned variants. Unlike standard Gemma 4, which uses dedicated encoder towers, Gemma 4 12B Unified projects raw inputs directly into the language model's embedding space through lightweight linear pipelines. This results in a simpler architecture while maintaining strong multimodal performance.

Key differences from standard Gemma 4:

  • No Vision Tower: Raw pixel patches are projected directly into LM space via a Dense + LayerNorm pipeline with factorized 2D positional embeddings, replacing the vision encoder.
  • No Audio Tower: Raw 16 kHz waveform samples are chunked into fixed-length frames and projected through a simple RMSNorm → Linear pipeline, replacing the mel spectrogram + Conformer encoder.
  • Shared Multimodal Pipeline: Both vision and audio use the same Gemma4UnifiedMultimodalEmbedder (RMSNorm → Linear) for the final projection to text hidden space.

You can find the original Gemma 4 12B Unified checkpoints under the Gemma 4 release.

  • who needs encoders? (#46385) by @douglas-reid @sgerrard @vasqu @molbap
Sapiens2

Sapiens2 is a family of high-resolution vision transformers pretrained on ~1 billion curated human images, designed for human-centric computer vision tasks including pose estimation, body-part segmentation, surface normal estimation, and pointmap estimation. The models scale from 0.4B to 5B parameters and train at native 1K resolution, with hierarchical 4K variants for extended spatial reasoning. Sapiens2 achieves substantial improvements over its predecessor with +4 mAP in pose estimation, +24.3 mIoU in body-part segmentation, and 45.6% error reduction in normal estimation.

Links: Documentation | Paper

  • Add Sapiens2 Model (#45919) by @guarin in #45919
DeepSeek-OCR-2

DeepSeek-OCR-2 is an OCR-specialized vision-language model built on a distinctive architecture that combines a SAM ViT-B vision encoder with a Qwen2 hybrid attention encoder, connected through an MLP projector to a DeepSeek-V2 Mixture-of-Experts (MoE) language model. The model features a hybrid attention mechanism that applies bidirectional attention over image tokens and causal attention over query tokens, enabling efficient and accurate document understanding. It supports both plain OCR tasks and grounding capabilities with coordinate-aware output for document conversion to markdown format.

Links: Documentation

  • Add Deepseek-OCR-2 model (#45075) by @thisisiron in #45075
Mellum

Mellum is a code-focused Mixture-of-Experts language model developed by JetBrains. It is derived from the Qwen3-MoE architecture with per-layer-type RoPE and interleaved sliding window attention. The model has 12B total parameters with 2.5B active parameters per token, using 64 routed experts with 8 activated per token across 28 layers.

Links: Documentation

  • feat: Add support for JetBrains' Mellum v2 code generation model (#46112) by @shadeMe in #46112
Breaking changes

The Gemma4 vision pooler now casts inputs to float32 before scaling to prevent float16 overflow (inf saturation) with large checkpoints, which may cause minor numerical differences in outputs for users running Gemma-4 vision models in float16.

  • 🚨 Fix float16 overflow in Gemma4 vision pooler (#46277) by @Bluear7878

Audio Language Models (ALMs) now have a dedicated base model class without a language modeling head, aligning them with the design of Vision Language Models (VLMs); users relying on the previous model class structure should update their code to use the new base model class where appropriate.

  • 🚨 [ALM] Add base model without head (#45534) by @eustlb
Parallelization

This release includes numerous bug fixes for model parallelism across multiple models (Gemma4, AltCLIP, ChineseClip, Blip-2, Whisper, Ovis2, Moshi) and parallel execution strategies, including fixes for tensor parallelism (TP), expert parallelism (EP), beam search under model parallel settings, and loss over-counting under TP/EP configurations. The continuous batching manager was also reworked for clearer control flow and improved TP race condition handling, and FSDP initialization via from_pretrained was introduced.

  • Fix dsv4 dequant + tp/ep (#46378) by @IlyasMoutawwakil in [#46378]
  • [CB] [Major] Rework manager to have clearer control flow + handle TP (#46070) by @remi-or in [#46070]
  • fix series of bugs for model parallel beam search (#46280) by @kaixuanliu in [#46280]
  • Fix model parallel issue for altclip model and ChineseClip model (#45487) by @kaixuanliu in [#45487]
  • Model parallel fix (#46230) by @kaixuanliu in [#46230]
  • [Revert] FSDP+Dtensor refactor related changes (#46246) by @vasqu in [#46246]
  • Fix model parallel bugs for Gemma4 (#45817) by @kaixuanliu in [#45817]
  • init FSDP through from_pretrained (#46102) by @3outeille in [#46102]
  • fix model parallel device mismatch issue in create_bidirectional_mask (#46221) by @kaixuanliu in [#46221]
  • Trainer.compute_loss: fix loss over-counting under TP and EP-as-TP (#45994) by @AmineDiro in [#45994]
  • Fix caching allocator warmup byte estimation for EP model loading (#46149) by @sywangyi in [#46149]
Cache

Fixed a regression in encoder-decoder cache initialization where the decoder config was incorrectly applied to the cross-attention cache, and resolved a RuntimeError caused by buffer size limits when warming up the cache on MPS devices. Additional test infrastructure improvements were made to support read-only cache environments used in CI.

  • fix: cache warmup RuntimeError on mps (#46239) by @McPatate in [#46239]
  • Make more tests work with read-only cache (#46299) by @ydshieh in [#46299]
  • Update a test to avoid writing to the default xet cache (#46250) by @ydshieh in [#46250]
  • Fix a regression in encoder-decoder generation cache initialization (#46111) by @kaixuanliu in [#46111]
Quantization

Added support for DeepGEMM BF16, mixed FP8/FP4, and MegaMoE quantization via a grouped linear refactor, while fixing two bugs: an FP8 MoE reverse substring issue affecting DSv4 initialization, and a BitsAndBytes 4-bit/8-bit quantization bug that silently dropped chunked tensors from one-to-many weight converters.

  • DeepGEMM BF16 + mixed FP8/FP4 + MegaMoE + refactor (#45634) by @IlyasMoutawwakil in [#45634]
  • Fix fp8 moe reverse substring (#46265) by @ArthurZucker in [#46265]
  • Fix bnb 4bit/8bit quantization drop chunked tensors bug (#46210) by @kaixuanliu in [#46210]
Bugfixes and improvements
  • Fix wrong changes produced by style/repo. check bot (#46371) by @ydshieh in [#46371]
  • Fix path traversal when saving Bark voice preset embeddings (#46237) by @LinZiyuu in [#46237]
  • Pass library_name/version to Hub calls via a shared HfApi (#46318) by @Wauplin in [#46318]
  • docs: update ACL Anthology URL in CITATION.cff (#46352) by @irfaan101 in [#46352]
  • [docs] contributing (#45465) by @stevhliu in [#45465]
  • [docs] Romanian translation of contributing.md, modular_transformers.md, multimodal_processing.md, add_vision_processing_components.md, add_audio_processing_components.md, modeling_rules.md, model_output_tracing.md, auto_docstring.md, testing.md, pr_checks.md and add_new_model.md . (#46345) by @filipinescu in [#46345]
  • [docs] xpu continuous batching (#46334) by @stevhliu in [#46334]
  • Fix incorrect attribute mapping relationships in GLM MoE DSA Config (#46338) by @Dovis01 in [#46338]
  • Fix grammar typos in Whisper documentation (#46336) by @calliec-1223 in [#46336]
  • [docs] update num_items_in_batch for causal LMs (#46335) by @stevhliu in [#46335]
  • Update compressed tensors minimum version (#46342) by @SunMarc in [#46342]
  • Fix _is_package_available reporting available without a version (#46125) by @blipbyte in [#46125]
  • remove sec (#46346) by @ydshieh in [#46346]
  • fix: include transitive relative imports when loading from local directory (#46022) by @trducng in [#46022]
  • perf(feature_extraction_sequence): skip re-splitting already-batched numpy arrays in pad() (#46329) by @Anai-Guo in [#46329]
  • [Zamba] Support attn_implementation dispatch (#46317) by @YangKai0616 in [#46317]
  • Fix TestAppRoutes test failures caused by deprecated asyncio.get_event_loop() on Python 3.10+ (#46340) by @ydshieh in [#46340]
  • [Qwen3VL] Fix video token placeholder: use self.video_token instead of hardcoded "<|placeholder|>" (#46296) by @kpal002 in [#46296]
  • chore(linter): fixes for rule 16 (#46023) by @tarekziade in [#46023]
  • [docs] Romanian translation of weightconverter.md, models.md, custom_models.md, monkey_patching.md, fusion_mapping.md, how_to_hack_models.md, model_sharing.md and serialization.md. (#46309) by @filipinescu in [#46309]
  • Normalize CUDA OOM errors when comparing commit failures in check_bad_commit (#46322) by @ydshieh in [#46322]
  • Fix unhandled exception noise from background safetensors conversion thread (#45752) by @dhruv7477 in [#45752]
  • Add Expectations for pipeline token classification tests (#46151) by @kaixuanliu in [#46151]
  • [docs] fix auto-add release dates (#46283) by @zucchini-nlp in [#46283]
  • Separate pip command syntax for notebook and CLI tabs in Quickstart (#46243) by @pvelayudhan in [#46243]
  • Romanian translation of README.md, index.md, installation.md, _config.py and quicktour.md. (#46166) by @filipinescu in [#46166]
  • Fall back to flat kwarg when modality dict is passed without it (#46195) by @Ace3Z in [#46195]
  • Fix load_adapter OOM caused by full-model warmup sizing (#46145) by @Yooniel in [#46145]
  • Replace assert with raise ImportError for optuna/ray dependency checks (#46263) by @SebTardif in [#46263]
  • chore(linter): respect TRF017 modeling rule (#46260) by @tarekziade in [#46260]
  • Delete dead code in qwen-vl series (#45827) by @zucchini-nlp in [#45827]
  • qa: fix ty caching and align CI with local run (#46278) by @tarekziade in [#46278]
  • Guard DeviceMesh import in continuous batching (#46205) by @danyalahmed1995 in [#46205]
  • Processor compatibility with vLLM (#46258) by @zucchini-nlp in [#46258]
  • Fix PR CI workflow cancellation condition (#46276) by @ydshieh in [#46276]
  • [fix] toctree (#46106) by @stevhliu in [#46106]
  • add more generic support for distributed trainer tests (#46109) by @kaixuanliu in [#46109]
  • add XPU Expectations for florence2 and lfm2_vl model test (#46275) by @kaixuanliu in [#46275]
  • Fix StaticCache building an empty layer list when num_kv_shared_layers == 0 (#46235) by @tengomucho in [#46235]
  • Fix inverted assertion in remove_handler (#46227) by @SebTardif in [#46227]
  • [ShieldGemma2] Support attn_implementation dispatch (#46069) by @YangKai0616 in [#46069]
  • [Gemma4] Replace one-hot matmul with F.embedding in position embeddings (#46176) by @Sriniketh24 in [#46176]
  • fix: kosmos2.5: properly expand embeddings table (#45835) by @nunq in [#45835]
  • find pytest launch error in torch 2.13.0.dev20260526 (#46252) by @sywangyi in [#46252]
  • [Test][Kosmos2.5] Add XPU expectations for integration tests (#46135) by @YangKai0616 in [#46135]
  • Support FA2 flash_attn_with_kvcache for XPU continuous batching (#46028) by @YangKai0616 in [#46028]
  • [Configs] Fix layer type validation to include its mlp counterpart (#46220) by @vasqu in [#46220]
  • Fix num_items_in_batch over-counting for causal LM losses (#46204) by @qgallouedec in [#46204]
  • RF-DETR doc fixes (#46244) by @merveenoyan in [#46244]
  • Use main instead of commit SHA for now (#46241) by @ydshieh in [#46241]
  • Enable push event (to main) for PR CI workflow (#46240) by @ydshieh in [#46240]
  • fix(hrm_text): Add XPU Expectations for tests (#46214) by @kaixuanliu in [#46214]
  • [deepseek_v4] keep hc_head / sinks / position_bias in fp32 (#46198) by @ArthurZucker in [#46198]
  • Fix FSDP2 and distributed checkpointing imports for older PyTorch versions (#46141) by @ryota-komatsu in [#46141]
  • Fix Gemma4 Array Mask Indexing (#46203) by @petecao in [#46203]
  • utils: handle flash_attn missing from importlib packages_distributions without crashing (#45524) by @SAY-5 in [#45524]
  • [AMD CI] revert AMD mi325 hf-workflows ref from SHA back to @main (#46213) by @Abdennacer-Badaoui in [#46213]
  • [GLM-4.6V] Update with GLM-GA Processor (#46184) by @zRzRzRzRzRzRzR in [#46184]
  • update xpu expectation for falcon mamba (#46086) by @sywangyi in [#46086]
  • chore: enable Dependabot weekly GitHub Actions bumps (#46157) by @hf-dependantbot-rollout[bot] in [#46157]
  • Fix Gemma4 use_bidirectional_attention="all" mask behavior (#46079) by @oliverholworthy in [#46079]
  • Fix loading with only 1 device or distributed config (#46197) by @Cyrilvallez in [#46197]
  • Fix TypeError on list-typed ignore_keys_at_rope_validation in RoPE config (#46142) by @Charly21r in [#46142]
  • Support XPU autocast dtype fallback for FlashAttention (#46199) by @YangKai0616 in [#46199]
  • Fix path traversal when saving named chat templates (#46191) by @LinZiyuu in [#46191]
  • Fix is_last off-by-one in MaskGenerationPipeline for partial batches (#46136) by @J3r3myPerera in [#46136]
  • Fix wrong variable in check_model_type isinstance check (#46080) by @SebTardif in [#46080]
  • Enable passing kwargs through RoFormer models (#46171) by @ir2718 in [#46171]
  • Update cohere2_moe tp_plan (#46189) by @Cyrilvallez in [#46189]
  • Update release tool (#46193) by @Cyrilvallez in [#46193]
  • [loading] Fix base_model_prefix issues in conversions (#46067) by @Cyrilvallez in [#46067]
  • Bump dev version (#46188) by @Cyrilvallez in [#46188]
  • Update self-comment-ci (#46137) by @guarin in [#46137]
Significant community contributions

The following contributors have made significant changes to the library over the last release:

  • @filipinescu
    • [docs] Romanian translation of contributing.md, modular_transformers.md, multimodal_processing.md, add_vision_processing_components.md, add_audio_processing_components.md, modeling_rules.md, model_output_tracing.md, auto_docstring.md, testing.md, pr_checks.md and add_new_model.md . (#46345)
    • [docs] Romanian translation of weightconverter.md, models.md, custom_models.md, monkey_patching.md, fusion_mapping.md, how_to_hack_models.md, model_sharing.md and serialization.md. (#46309)
    • Romanian translation of README.md, index.md, installation.md, _config.py and quicktour.md. (#46166)
  • @remi-or
    • [CB] [Major] Rework manager to have clearer control flow + handle TP (#46070)
  • @thisisiron
    • Add Deepseek-OCR-2 model (#45075)
  • @kaixuanliu
    • Add Expectations for pipeline token classification tests (#46151)
    • fix series of bugs for model parallel beam search (#46280)
    • add more generic support for distributed trainer tests (#46109)
    • add XPU Expectations for florence2 and lfm2_vl model test (#46275)
    • Fix model parallel issue for altclip model and ChineseClip model (#45487)
    • Model parallel fix (#46230)
    • fix(hrm_text): Add XPU Expectations for tests (#46214)
    • Fix model parallel bugs for Gemma4 (#45817)
    • Fix bnb 4bit/8bit quantization drop chunked tensors bug (#46210)
    • fix model parallel device mismatch issue in create_bidirectional_mask (#46221)
    • Fix a regression in encoder-decoder generation cache initialization (#46111)
  • @shadeMe
    • feat: Add support for JetBrains' Mellum v2 code generation model (#46112)
  • @vasqu
    • [Revert] FSDP+Dtensor refactor related changes (#46246)
    • [Configs] Fix layer type validation to include its mlp counterpart (#46220)
  • @zRzRzRzRzRzRzR
    • [GLM-4.6V] Update with GLM-GA Processor (#46184)
  • @eustlb
    • 🚨 [ALM] Add base model without head (#45534)