transformers 5.0.0rc2__py3-none-any.whl → 5.0.0rc3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- transformers/__init__.py +9 -28
- transformers/audio_utils.py +32 -32
- transformers/cache_utils.py +15 -124
- transformers/cli/chat.py +3 -3
- transformers/cli/serve.py +2 -2
- transformers/cli/transformers.py +2 -1
- transformers/configuration_utils.py +31 -33
- transformers/conversion_mapping.py +5 -1
- transformers/convert_slow_tokenizer.py +3 -8
- transformers/core_model_loading.py +14 -15
- transformers/data/processors/glue.py +0 -1
- transformers/data/processors/utils.py +0 -1
- transformers/data/processors/xnli.py +0 -1
- transformers/dependency_versions_table.py +4 -4
- transformers/distributed/configuration_utils.py +1 -2
- transformers/dynamic_module_utils.py +23 -23
- transformers/feature_extraction_sequence_utils.py +19 -23
- transformers/feature_extraction_utils.py +14 -14
- transformers/generation/candidate_generator.py +1 -2
- transformers/generation/configuration_utils.py +54 -39
- transformers/generation/continuous_batching/__init__.py +0 -1
- transformers/generation/continuous_batching/cache.py +34 -6
- transformers/generation/continuous_batching/cache_manager.py +25 -12
- transformers/generation/continuous_batching/continuous_api.py +54 -23
- transformers/generation/continuous_batching/requests.py +25 -4
- transformers/generation/continuous_batching/scheduler.py +117 -49
- transformers/generation/logits_process.py +0 -128
- transformers/generation/streamers.py +0 -1
- transformers/generation/utils.py +16 -26
- transformers/generation/watermarking.py +2 -3
- transformers/hf_argparser.py +9 -13
- transformers/hyperparameter_search.py +1 -2
- transformers/image_processing_base.py +9 -9
- transformers/image_processing_utils.py +11 -12
- transformers/image_processing_utils_fast.py +53 -53
- transformers/image_transforms.py +29 -29
- transformers/image_utils.py +30 -32
- transformers/integrations/awq.py +1 -3
- transformers/integrations/deepspeed.py +1 -1
- transformers/integrations/eetq.py +0 -1
- transformers/integrations/fbgemm_fp8.py +1 -2
- transformers/integrations/finegrained_fp8.py +8 -7
- transformers/integrations/flash_attention.py +1 -1
- transformers/integrations/flex_attention.py +1 -1
- transformers/integrations/fp_quant.py +4 -6
- transformers/integrations/ggml.py +0 -1
- transformers/integrations/integration_utils.py +2 -3
- transformers/integrations/mxfp4.py +5 -6
- transformers/integrations/quark.py +2 -4
- transformers/integrations/torchao.py +4 -6
- transformers/loss/loss_lw_detr.py +356 -0
- transformers/loss/loss_utils.py +2 -0
- transformers/masking_utils.py +47 -51
- transformers/model_debugging_utils.py +4 -5
- transformers/modelcard.py +14 -192
- transformers/modeling_attn_mask_utils.py +19 -19
- transformers/modeling_flash_attention_utils.py +27 -27
- transformers/modeling_gguf_pytorch_utils.py +5 -5
- transformers/modeling_layers.py +21 -22
- transformers/modeling_outputs.py +242 -253
- transformers/modeling_rope_utils.py +32 -32
- transformers/modeling_utils.py +67 -90
- transformers/models/__init__.py +4 -0
- transformers/models/afmoe/configuration_afmoe.py +26 -29
- transformers/models/afmoe/modeling_afmoe.py +30 -33
- transformers/models/afmoe/modular_afmoe.py +16 -18
- transformers/models/aimv2/configuration_aimv2.py +2 -5
- transformers/models/aimv2/modeling_aimv2.py +20 -21
- transformers/models/aimv2/modular_aimv2.py +7 -9
- transformers/models/albert/configuration_albert.py +0 -1
- transformers/models/albert/modeling_albert.py +67 -69
- transformers/models/albert/tokenization_albert.py +1 -4
- transformers/models/align/configuration_align.py +0 -1
- transformers/models/align/modeling_align.py +61 -62
- transformers/models/align/processing_align.py +2 -30
- transformers/models/altclip/configuration_altclip.py +0 -1
- transformers/models/altclip/modeling_altclip.py +76 -77
- transformers/models/altclip/processing_altclip.py +2 -15
- transformers/models/apertus/__init__.py +0 -1
- transformers/models/apertus/configuration_apertus.py +18 -21
- transformers/models/apertus/modeling_apertus.py +31 -34
- transformers/models/apertus/modular_apertus.py +28 -30
- transformers/models/arcee/configuration_arcee.py +20 -23
- transformers/models/arcee/modeling_arcee.py +31 -34
- transformers/models/arcee/modular_arcee.py +20 -23
- transformers/models/aria/configuration_aria.py +20 -23
- transformers/models/aria/image_processing_aria.py +25 -27
- transformers/models/aria/modeling_aria.py +63 -66
- transformers/models/aria/modular_aria.py +78 -85
- transformers/models/aria/processing_aria.py +28 -35
- transformers/models/audio_spectrogram_transformer/configuration_audio_spectrogram_transformer.py +0 -1
- transformers/models/audio_spectrogram_transformer/feature_extraction_audio_spectrogram_transformer.py +3 -6
- transformers/models/audio_spectrogram_transformer/modeling_audio_spectrogram_transformer.py +6 -8
- transformers/models/audioflamingo3/__init__.py +0 -1
- transformers/models/audioflamingo3/configuration_audioflamingo3.py +0 -1
- transformers/models/audioflamingo3/modeling_audioflamingo3.py +22 -23
- transformers/models/audioflamingo3/modular_audioflamingo3.py +12 -17
- transformers/models/audioflamingo3/processing_audioflamingo3.py +6 -8
- transformers/models/auto/auto_factory.py +4 -5
- transformers/models/auto/configuration_auto.py +26 -5
- transformers/models/auto/feature_extraction_auto.py +5 -7
- transformers/models/auto/image_processing_auto.py +13 -26
- transformers/models/auto/modeling_auto.py +18 -199
- transformers/models/auto/processing_auto.py +2 -1
- transformers/models/auto/tokenization_auto.py +21 -22
- transformers/models/auto/video_processing_auto.py +7 -8
- transformers/models/autoformer/configuration_autoformer.py +4 -7
- transformers/models/autoformer/modeling_autoformer.py +98 -100
- transformers/models/aya_vision/configuration_aya_vision.py +0 -1
- transformers/models/aya_vision/modeling_aya_vision.py +35 -37
- transformers/models/aya_vision/modular_aya_vision.py +26 -29
- transformers/models/aya_vision/processing_aya_vision.py +25 -53
- transformers/models/bamba/configuration_bamba.py +29 -32
- transformers/models/bamba/modeling_bamba.py +60 -64
- transformers/models/bamba/modular_bamba.py +51 -55
- transformers/models/bark/configuration_bark.py +4 -7
- transformers/models/bark/generation_configuration_bark.py +3 -5
- transformers/models/bark/modeling_bark.py +40 -55
- transformers/models/bark/processing_bark.py +19 -41
- transformers/models/bart/configuration_bart.py +0 -1
- transformers/models/bart/modeling_bart.py +115 -117
- transformers/models/barthez/tokenization_barthez.py +1 -4
- transformers/models/bartpho/tokenization_bartpho.py +6 -7
- transformers/models/beit/configuration_beit.py +0 -11
- transformers/models/beit/image_processing_beit.py +53 -56
- transformers/models/beit/image_processing_beit_fast.py +8 -9
- transformers/models/beit/modeling_beit.py +51 -53
- transformers/models/bert/configuration_bert.py +0 -1
- transformers/models/bert/modeling_bert.py +111 -122
- transformers/models/bert/tokenization_bert.py +2 -4
- transformers/models/bert/tokenization_bert_legacy.py +3 -5
- transformers/models/bert_generation/configuration_bert_generation.py +0 -1
- transformers/models/bert_generation/modeling_bert_generation.py +47 -49
- transformers/models/bert_generation/tokenization_bert_generation.py +2 -3
- transformers/models/bert_japanese/tokenization_bert_japanese.py +5 -6
- transformers/models/bertweet/tokenization_bertweet.py +1 -3
- transformers/models/big_bird/configuration_big_bird.py +0 -1
- transformers/models/big_bird/modeling_big_bird.py +107 -109
- transformers/models/big_bird/tokenization_big_bird.py +1 -4
- transformers/models/bigbird_pegasus/configuration_bigbird_pegasus.py +0 -1
- transformers/models/bigbird_pegasus/modeling_bigbird_pegasus.py +109 -111
- transformers/models/biogpt/configuration_biogpt.py +0 -1
- transformers/models/biogpt/modeling_biogpt.py +69 -71
- transformers/models/biogpt/modular_biogpt.py +59 -61
- transformers/models/biogpt/tokenization_biogpt.py +3 -5
- transformers/models/bit/configuration_bit.py +0 -1
- transformers/models/bit/image_processing_bit.py +21 -24
- transformers/models/bit/image_processing_bit_fast.py +0 -1
- transformers/models/bit/modeling_bit.py +9 -11
- transformers/models/bitnet/configuration_bitnet.py +18 -21
- transformers/models/bitnet/modeling_bitnet.py +31 -34
- transformers/models/bitnet/modular_bitnet.py +4 -6
- transformers/models/blenderbot/configuration_blenderbot.py +0 -1
- transformers/models/blenderbot/modeling_blenderbot.py +64 -95
- transformers/models/blenderbot/tokenization_blenderbot.py +0 -1
- transformers/models/blenderbot_small/configuration_blenderbot_small.py +0 -1
- transformers/models/blenderbot_small/modeling_blenderbot_small.py +66 -68
- transformers/models/blenderbot_small/tokenization_blenderbot_small.py +1 -3
- transformers/models/blip/configuration_blip.py +0 -1
- transformers/models/blip/image_processing_blip.py +17 -20
- transformers/models/blip/image_processing_blip_fast.py +0 -1
- transformers/models/blip/modeling_blip.py +60 -71
- transformers/models/blip/modeling_blip_text.py +63 -65
- transformers/models/blip/processing_blip.py +5 -36
- transformers/models/blip_2/configuration_blip_2.py +0 -1
- transformers/models/blip_2/modeling_blip_2.py +70 -71
- transformers/models/blip_2/processing_blip_2.py +8 -38
- transformers/models/bloom/configuration_bloom.py +0 -1
- transformers/models/bloom/modeling_bloom.py +58 -59
- transformers/models/blt/configuration_blt.py +71 -74
- transformers/models/blt/modeling_blt.py +73 -76
- transformers/models/blt/modular_blt.py +57 -59
- transformers/models/bridgetower/configuration_bridgetower.py +0 -1
- transformers/models/bridgetower/image_processing_bridgetower.py +34 -35
- transformers/models/bridgetower/image_processing_bridgetower_fast.py +7 -8
- transformers/models/bridgetower/modeling_bridgetower.py +107 -109
- transformers/models/bridgetower/processing_bridgetower.py +2 -16
- transformers/models/bros/configuration_bros.py +0 -1
- transformers/models/bros/modeling_bros.py +78 -80
- transformers/models/bros/processing_bros.py +2 -12
- transformers/models/byt5/tokenization_byt5.py +4 -6
- transformers/models/camembert/configuration_camembert.py +0 -1
- transformers/models/camembert/modeling_camembert.py +91 -93
- transformers/models/camembert/modular_camembert.py +51 -54
- transformers/models/camembert/tokenization_camembert.py +1 -4
- transformers/models/canine/configuration_canine.py +0 -1
- transformers/models/canine/modeling_canine.py +73 -75
- transformers/models/canine/tokenization_canine.py +0 -1
- transformers/models/chameleon/configuration_chameleon.py +24 -27
- transformers/models/chameleon/image_processing_chameleon.py +21 -24
- transformers/models/chameleon/image_processing_chameleon_fast.py +0 -1
- transformers/models/chameleon/modeling_chameleon.py +53 -56
- transformers/models/chameleon/processing_chameleon.py +16 -41
- transformers/models/chinese_clip/configuration_chinese_clip.py +0 -1
- transformers/models/chinese_clip/image_processing_chinese_clip.py +21 -24
- transformers/models/chinese_clip/image_processing_chinese_clip_fast.py +0 -1
- transformers/models/chinese_clip/modeling_chinese_clip.py +65 -66
- transformers/models/chinese_clip/processing_chinese_clip.py +2 -15
- transformers/models/clap/configuration_clap.py +0 -1
- transformers/models/clap/feature_extraction_clap.py +9 -10
- transformers/models/clap/modeling_clap.py +88 -89
- transformers/models/clap/processing_clap.py +2 -15
- transformers/models/clip/configuration_clip.py +0 -1
- transformers/models/clip/image_processing_clip.py +21 -24
- transformers/models/clip/image_processing_clip_fast.py +0 -1
- transformers/models/clip/modeling_clip.py +45 -46
- transformers/models/clip/processing_clip.py +2 -14
- transformers/models/clip/tokenization_clip.py +2 -5
- transformers/models/clipseg/configuration_clipseg.py +0 -1
- transformers/models/clipseg/modeling_clipseg.py +86 -87
- transformers/models/clipseg/processing_clipseg.py +8 -39
- transformers/models/clvp/configuration_clvp.py +1 -3
- transformers/models/clvp/feature_extraction_clvp.py +7 -10
- transformers/models/clvp/modeling_clvp.py +119 -115
- transformers/models/clvp/number_normalizer.py +1 -2
- transformers/models/clvp/processing_clvp.py +3 -20
- transformers/models/clvp/tokenization_clvp.py +0 -1
- transformers/models/code_llama/tokenization_code_llama.py +3 -6
- transformers/models/codegen/configuration_codegen.py +0 -1
- transformers/models/codegen/modeling_codegen.py +48 -48
- transformers/models/codegen/tokenization_codegen.py +5 -6
- transformers/models/cohere/configuration_cohere.py +20 -23
- transformers/models/cohere/modeling_cohere.py +35 -38
- transformers/models/cohere/modular_cohere.py +24 -28
- transformers/models/cohere/tokenization_cohere.py +5 -6
- transformers/models/cohere2/configuration_cohere2.py +21 -24
- transformers/models/cohere2/modeling_cohere2.py +34 -37
- transformers/models/cohere2/modular_cohere2.py +39 -41
- transformers/models/cohere2_vision/image_processing_cohere2_vision_fast.py +6 -7
- transformers/models/cohere2_vision/modeling_cohere2_vision.py +28 -30
- transformers/models/cohere2_vision/modular_cohere2_vision.py +21 -23
- transformers/models/cohere2_vision/processing_cohere2_vision.py +6 -36
- transformers/models/colpali/configuration_colpali.py +0 -1
- transformers/models/colpali/modeling_colpali.py +14 -16
- transformers/models/colpali/modular_colpali.py +11 -51
- transformers/models/colpali/processing_colpali.py +14 -52
- transformers/models/colqwen2/modeling_colqwen2.py +20 -22
- transformers/models/colqwen2/modular_colqwen2.py +29 -68
- transformers/models/colqwen2/processing_colqwen2.py +16 -52
- transformers/models/conditional_detr/configuration_conditional_detr.py +0 -1
- transformers/models/conditional_detr/image_processing_conditional_detr.py +64 -66
- transformers/models/conditional_detr/image_processing_conditional_detr_fast.py +22 -22
- transformers/models/conditional_detr/modeling_conditional_detr.py +78 -80
- transformers/models/conditional_detr/modular_conditional_detr.py +1 -3
- transformers/models/convbert/configuration_convbert.py +0 -1
- transformers/models/convbert/modeling_convbert.py +85 -87
- transformers/models/convbert/tokenization_convbert.py +0 -1
- transformers/models/convnext/configuration_convnext.py +0 -1
- transformers/models/convnext/image_processing_convnext.py +18 -21
- transformers/models/convnext/image_processing_convnext_fast.py +5 -6
- transformers/models/convnext/modeling_convnext.py +5 -8
- transformers/models/convnextv2/configuration_convnextv2.py +0 -1
- transformers/models/convnextv2/modeling_convnextv2.py +5 -8
- transformers/models/cpm/tokenization_cpm.py +6 -7
- transformers/models/cpm/tokenization_cpm_fast.py +3 -5
- transformers/models/cpmant/configuration_cpmant.py +0 -1
- transformers/models/cpmant/modeling_cpmant.py +38 -40
- transformers/models/cpmant/tokenization_cpmant.py +1 -3
- transformers/models/csm/configuration_csm.py +49 -51
- transformers/models/csm/generation_csm.py +13 -14
- transformers/models/csm/modeling_csm.py +78 -81
- transformers/models/csm/modular_csm.py +56 -58
- transformers/models/csm/processing_csm.py +25 -68
- transformers/models/ctrl/configuration_ctrl.py +0 -1
- transformers/models/ctrl/modeling_ctrl.py +38 -41
- transformers/models/ctrl/tokenization_ctrl.py +0 -1
- transformers/models/cvt/configuration_cvt.py +0 -1
- transformers/models/cvt/modeling_cvt.py +13 -15
- transformers/models/cwm/__init__.py +0 -1
- transformers/models/cwm/configuration_cwm.py +3 -5
- transformers/models/cwm/modeling_cwm.py +32 -34
- transformers/models/cwm/modular_cwm.py +10 -12
- transformers/models/d_fine/configuration_d_fine.py +0 -1
- transformers/models/d_fine/modeling_d_fine.py +81 -82
- transformers/models/d_fine/modular_d_fine.py +8 -9
- transformers/models/dab_detr/configuration_dab_detr.py +0 -1
- transformers/models/dab_detr/modeling_dab_detr.py +68 -70
- transformers/models/dac/configuration_dac.py +0 -1
- transformers/models/dac/feature_extraction_dac.py +6 -9
- transformers/models/dac/modeling_dac.py +21 -23
- transformers/models/data2vec/configuration_data2vec_audio.py +0 -1
- transformers/models/data2vec/configuration_data2vec_text.py +0 -1
- transformers/models/data2vec/configuration_data2vec_vision.py +0 -1
- transformers/models/data2vec/modeling_data2vec_audio.py +52 -56
- transformers/models/data2vec/modeling_data2vec_text.py +91 -93
- transformers/models/data2vec/modeling_data2vec_vision.py +41 -42
- transformers/models/data2vec/modular_data2vec_audio.py +6 -1
- transformers/models/data2vec/modular_data2vec_text.py +51 -54
- transformers/models/dbrx/configuration_dbrx.py +18 -19
- transformers/models/dbrx/modeling_dbrx.py +39 -42
- transformers/models/dbrx/modular_dbrx.py +31 -33
- transformers/models/deberta/configuration_deberta.py +0 -1
- transformers/models/deberta/modeling_deberta.py +57 -60
- transformers/models/deberta/tokenization_deberta.py +2 -5
- transformers/models/deberta_v2/configuration_deberta_v2.py +0 -1
- transformers/models/deberta_v2/modeling_deberta_v2.py +63 -65
- transformers/models/deberta_v2/tokenization_deberta_v2.py +1 -4
- transformers/models/decision_transformer/configuration_decision_transformer.py +0 -1
- transformers/models/decision_transformer/modeling_decision_transformer.py +48 -50
- transformers/models/deepseek_v2/configuration_deepseek_v2.py +34 -37
- transformers/models/deepseek_v2/modeling_deepseek_v2.py +32 -33
- transformers/models/deepseek_v2/modular_deepseek_v2.py +40 -42
- transformers/models/deepseek_v3/configuration_deepseek_v3.py +35 -38
- transformers/models/deepseek_v3/modeling_deepseek_v3.py +31 -33
- transformers/models/deepseek_v3/modular_deepseek_v3.py +4 -5
- transformers/models/deepseek_vl/configuration_deepseek_vl.py +2 -3
- transformers/models/deepseek_vl/image_processing_deepseek_vl.py +25 -26
- transformers/models/deepseek_vl/image_processing_deepseek_vl_fast.py +7 -6
- transformers/models/deepseek_vl/modeling_deepseek_vl.py +31 -31
- transformers/models/deepseek_vl/modular_deepseek_vl.py +11 -43
- transformers/models/deepseek_vl/processing_deepseek_vl.py +10 -41
- transformers/models/deepseek_vl_hybrid/configuration_deepseek_vl_hybrid.py +3 -5
- transformers/models/deepseek_vl_hybrid/image_processing_deepseek_vl_hybrid.py +35 -35
- transformers/models/deepseek_vl_hybrid/image_processing_deepseek_vl_hybrid_fast.py +16 -16
- transformers/models/deepseek_vl_hybrid/modeling_deepseek_vl_hybrid.py +33 -33
- transformers/models/deepseek_vl_hybrid/modular_deepseek_vl_hybrid.py +71 -90
- transformers/models/deepseek_vl_hybrid/processing_deepseek_vl_hybrid.py +12 -44
- transformers/models/deformable_detr/configuration_deformable_detr.py +0 -1
- transformers/models/deformable_detr/image_processing_deformable_detr.py +59 -61
- transformers/models/deformable_detr/image_processing_deformable_detr_fast.py +17 -17
- transformers/models/deformable_detr/modeling_deformable_detr.py +66 -67
- transformers/models/deformable_detr/modular_deformable_detr.py +1 -3
- transformers/models/deit/configuration_deit.py +0 -1
- transformers/models/deit/image_processing_deit.py +18 -21
- transformers/models/deit/image_processing_deit_fast.py +0 -1
- transformers/models/deit/modeling_deit.py +16 -18
- transformers/models/depth_anything/configuration_depth_anything.py +0 -1
- transformers/models/depth_anything/modeling_depth_anything.py +5 -8
- transformers/models/depth_pro/configuration_depth_pro.py +0 -1
- transformers/models/depth_pro/image_processing_depth_pro.py +22 -23
- transformers/models/depth_pro/image_processing_depth_pro_fast.py +6 -7
- transformers/models/depth_pro/modeling_depth_pro.py +21 -23
- transformers/models/detr/configuration_detr.py +0 -1
- transformers/models/detr/image_processing_detr.py +64 -66
- transformers/models/detr/image_processing_detr_fast.py +22 -23
- transformers/models/detr/modeling_detr.py +70 -72
- transformers/models/dia/configuration_dia.py +5 -8
- transformers/models/dia/feature_extraction_dia.py +6 -9
- transformers/models/dia/generation_dia.py +40 -36
- transformers/models/dia/modeling_dia.py +61 -64
- transformers/models/dia/modular_dia.py +52 -54
- transformers/models/dia/processing_dia.py +39 -29
- transformers/models/dia/tokenization_dia.py +3 -6
- transformers/models/diffllama/configuration_diffllama.py +20 -23
- transformers/models/diffllama/modeling_diffllama.py +42 -45
- transformers/models/diffllama/modular_diffllama.py +16 -18
- transformers/models/dinat/configuration_dinat.py +0 -1
- transformers/models/dinat/modeling_dinat.py +40 -42
- transformers/models/dinov2/configuration_dinov2.py +0 -1
- transformers/models/dinov2/modeling_dinov2.py +11 -13
- transformers/models/dinov2_with_registers/configuration_dinov2_with_registers.py +1 -1
- transformers/models/dinov2_with_registers/modeling_dinov2_with_registers.py +12 -13
- transformers/models/dinov2_with_registers/modular_dinov2_with_registers.py +5 -7
- transformers/models/dinov3_convnext/configuration_dinov3_convnext.py +4 -7
- transformers/models/dinov3_convnext/modeling_dinov3_convnext.py +3 -6
- transformers/models/dinov3_vit/configuration_dinov3_vit.py +5 -8
- transformers/models/dinov3_vit/image_processing_dinov3_vit_fast.py +5 -6
- transformers/models/dinov3_vit/modeling_dinov3_vit.py +14 -16
- transformers/models/dinov3_vit/modular_dinov3_vit.py +11 -13
- transformers/models/distilbert/configuration_distilbert.py +0 -1
- transformers/models/distilbert/modeling_distilbert.py +44 -46
- transformers/models/distilbert/tokenization_distilbert.py +0 -1
- transformers/models/doge/__init__.py +0 -1
- transformers/models/doge/configuration_doge.py +25 -28
- transformers/models/doge/modeling_doge.py +42 -45
- transformers/models/doge/modular_doge.py +57 -58
- transformers/models/donut/configuration_donut_swin.py +0 -1
- transformers/models/donut/image_processing_donut.py +26 -29
- transformers/models/donut/image_processing_donut_fast.py +5 -10
- transformers/models/donut/modeling_donut_swin.py +44 -46
- transformers/models/donut/processing_donut.py +5 -26
- transformers/models/dots1/configuration_dots1.py +27 -29
- transformers/models/dots1/modeling_dots1.py +31 -34
- transformers/models/dots1/modular_dots1.py +0 -1
- transformers/models/dpr/configuration_dpr.py +0 -1
- transformers/models/dpr/modeling_dpr.py +37 -39
- transformers/models/dpr/tokenization_dpr.py +7 -9
- transformers/models/dpr/tokenization_dpr_fast.py +7 -9
- transformers/models/dpt/configuration_dpt.py +0 -1
- transformers/models/dpt/image_processing_dpt.py +65 -66
- transformers/models/dpt/image_processing_dpt_fast.py +13 -14
- transformers/models/dpt/modeling_dpt.py +19 -21
- transformers/models/dpt/modular_dpt.py +10 -11
- transformers/models/edgetam/configuration_edgetam.py +0 -1
- transformers/models/edgetam/modeling_edgetam.py +39 -41
- transformers/models/edgetam/modular_edgetam.py +2 -6
- transformers/models/edgetam_video/__init__.py +0 -1
- transformers/models/edgetam_video/configuration_edgetam_video.py +0 -1
- transformers/models/edgetam_video/modeling_edgetam_video.py +76 -77
- transformers/models/edgetam_video/modular_edgetam_video.py +16 -18
- transformers/models/efficientloftr/configuration_efficientloftr.py +4 -5
- transformers/models/efficientloftr/image_processing_efficientloftr.py +14 -16
- transformers/models/efficientloftr/image_processing_efficientloftr_fast.py +4 -4
- transformers/models/efficientloftr/modeling_efficientloftr.py +27 -29
- transformers/models/efficientloftr/modular_efficientloftr.py +1 -3
- transformers/models/efficientnet/configuration_efficientnet.py +0 -1
- transformers/models/efficientnet/image_processing_efficientnet.py +23 -26
- transformers/models/efficientnet/image_processing_efficientnet_fast.py +14 -15
- transformers/models/efficientnet/modeling_efficientnet.py +12 -14
- transformers/models/electra/configuration_electra.py +0 -1
- transformers/models/electra/modeling_electra.py +101 -103
- transformers/models/emu3/configuration_emu3.py +5 -7
- transformers/models/emu3/image_processing_emu3.py +44 -39
- transformers/models/emu3/modeling_emu3.py +59 -62
- transformers/models/emu3/modular_emu3.py +32 -34
- transformers/models/emu3/processing_emu3.py +18 -43
- transformers/models/encodec/configuration_encodec.py +2 -4
- transformers/models/encodec/feature_extraction_encodec.py +10 -13
- transformers/models/encodec/modeling_encodec.py +25 -29
- transformers/models/encoder_decoder/configuration_encoder_decoder.py +0 -1
- transformers/models/encoder_decoder/modeling_encoder_decoder.py +17 -19
- transformers/models/eomt/configuration_eomt.py +0 -1
- transformers/models/eomt/image_processing_eomt.py +53 -55
- transformers/models/eomt/image_processing_eomt_fast.py +15 -16
- transformers/models/eomt/modeling_eomt.py +16 -18
- transformers/models/eomt/modular_eomt.py +11 -13
- transformers/models/ernie/configuration_ernie.py +0 -1
- transformers/models/ernie/modeling_ernie.py +121 -132
- transformers/models/ernie/modular_ernie.py +91 -103
- transformers/models/ernie4_5/configuration_ernie4_5.py +18 -20
- transformers/models/ernie4_5/modeling_ernie4_5.py +31 -33
- transformers/models/ernie4_5/modular_ernie4_5.py +1 -3
- transformers/models/ernie4_5_moe/configuration_ernie4_5_moe.py +27 -29
- transformers/models/ernie4_5_moe/modeling_ernie4_5_moe.py +36 -38
- transformers/models/ernie4_5_moe/modular_ernie4_5_moe.py +7 -9
- transformers/models/ernie4_5_vl_moe/configuration_ernie4_5_vl_moe.py +0 -1
- transformers/models/ernie4_5_vl_moe/image_processing_ernie4_5_vl_moe.py +34 -35
- transformers/models/ernie4_5_vl_moe/image_processing_ernie4_5_vl_moe_fast.py +6 -7
- transformers/models/ernie4_5_vl_moe/modeling_ernie4_5_vl_moe.py +84 -87
- transformers/models/ernie4_5_vl_moe/modular_ernie4_5_vl_moe.py +86 -89
- transformers/models/ernie4_5_vl_moe/processing_ernie4_5_vl_moe.py +3 -5
- transformers/models/ernie4_5_vl_moe/video_processing_ernie4_5_vl_moe.py +17 -18
- transformers/models/esm/configuration_esm.py +2 -4
- transformers/models/esm/modeling_esm.py +32 -34
- transformers/models/esm/modeling_esmfold.py +42 -44
- transformers/models/esm/openfold_utils/chunk_utils.py +6 -6
- transformers/models/esm/openfold_utils/loss.py +1 -2
- transformers/models/esm/openfold_utils/protein.py +13 -13
- transformers/models/esm/openfold_utils/tensor_utils.py +6 -6
- transformers/models/esm/tokenization_esm.py +2 -4
- transformers/models/evolla/configuration_evolla.py +29 -32
- transformers/models/evolla/modeling_evolla.py +58 -61
- transformers/models/evolla/modular_evolla.py +45 -47
- transformers/models/evolla/processing_evolla.py +23 -35
- transformers/models/exaone4/configuration_exaone4.py +19 -22
- transformers/models/exaone4/modeling_exaone4.py +32 -35
- transformers/models/exaone4/modular_exaone4.py +40 -42
- transformers/models/falcon/configuration_falcon.py +22 -25
- transformers/models/falcon/modeling_falcon.py +73 -76
- transformers/models/falcon_h1/configuration_falcon_h1.py +40 -43
- transformers/models/falcon_h1/modeling_falcon_h1.py +52 -55
- transformers/models/falcon_h1/modular_falcon_h1.py +47 -48
- transformers/models/falcon_mamba/configuration_falcon_mamba.py +0 -1
- transformers/models/falcon_mamba/modeling_falcon_mamba.py +46 -47
- transformers/models/falcon_mamba/modular_falcon_mamba.py +10 -13
- transformers/models/fast_vlm/configuration_fast_vlm.py +1 -0
- transformers/models/fast_vlm/modeling_fast_vlm.py +36 -36
- transformers/models/fast_vlm/modular_fast_vlm.py +2 -3
- transformers/models/fastspeech2_conformer/configuration_fastspeech2_conformer.py +2 -5
- transformers/models/fastspeech2_conformer/modeling_fastspeech2_conformer.py +45 -47
- transformers/models/fastspeech2_conformer/tokenization_fastspeech2_conformer.py +1 -3
- transformers/models/flaubert/configuration_flaubert.py +0 -1
- transformers/models/flaubert/modeling_flaubert.py +124 -128
- transformers/models/flaubert/tokenization_flaubert.py +3 -5
- transformers/models/flava/configuration_flava.py +5 -6
- transformers/models/flava/image_processing_flava.py +66 -67
- transformers/models/flava/image_processing_flava_fast.py +42 -43
- transformers/models/flava/modeling_flava.py +108 -107
- transformers/models/flava/processing_flava.py +2 -12
- transformers/models/flex_olmo/__init__.py +0 -1
- transformers/models/flex_olmo/configuration_flex_olmo.py +23 -25
- transformers/models/flex_olmo/modeling_flex_olmo.py +37 -39
- transformers/models/flex_olmo/modular_flex_olmo.py +35 -37
- transformers/models/florence2/configuration_florence2.py +0 -1
- transformers/models/florence2/modeling_florence2.py +39 -40
- transformers/models/florence2/modular_florence2.py +52 -81
- transformers/models/florence2/processing_florence2.py +18 -47
- transformers/models/fnet/configuration_fnet.py +0 -1
- transformers/models/fnet/modeling_fnet.py +69 -80
- transformers/models/fnet/tokenization_fnet.py +0 -1
- transformers/models/focalnet/configuration_focalnet.py +0 -1
- transformers/models/focalnet/modeling_focalnet.py +39 -41
- transformers/models/fsmt/configuration_fsmt.py +0 -1
- transformers/models/fsmt/modeling_fsmt.py +47 -48
- transformers/models/fsmt/tokenization_fsmt.py +3 -5
- transformers/models/funnel/configuration_funnel.py +0 -1
- transformers/models/funnel/modeling_funnel.py +91 -93
- transformers/models/funnel/tokenization_funnel.py +2 -5
- transformers/models/fuyu/configuration_fuyu.py +23 -26
- transformers/models/fuyu/image_processing_fuyu.py +29 -31
- transformers/models/fuyu/image_processing_fuyu_fast.py +12 -13
- transformers/models/fuyu/modeling_fuyu.py +26 -29
- transformers/models/fuyu/processing_fuyu.py +9 -36
- transformers/models/gemma/configuration_gemma.py +20 -23
- transformers/models/gemma/modeling_gemma.py +32 -34
- transformers/models/gemma/modular_gemma.py +28 -29
- transformers/models/gemma/tokenization_gemma.py +3 -6
- transformers/models/gemma2/configuration_gemma2.py +25 -28
- transformers/models/gemma2/modeling_gemma2.py +34 -37
- transformers/models/gemma2/modular_gemma2.py +55 -57
- transformers/models/gemma3/configuration_gemma3.py +28 -29
- transformers/models/gemma3/image_processing_gemma3.py +29 -31
- transformers/models/gemma3/image_processing_gemma3_fast.py +9 -10
- transformers/models/gemma3/modeling_gemma3.py +86 -89
- transformers/models/gemma3/modular_gemma3.py +85 -86
- transformers/models/gemma3/processing_gemma3.py +5 -5
- transformers/models/gemma3n/configuration_gemma3n.py +9 -10
- transformers/models/gemma3n/feature_extraction_gemma3n.py +9 -11
- transformers/models/gemma3n/modeling_gemma3n.py +80 -89
- transformers/models/gemma3n/modular_gemma3n.py +66 -75
- transformers/models/gemma3n/processing_gemma3n.py +12 -26
- transformers/models/git/configuration_git.py +0 -1
- transformers/models/git/modeling_git.py +84 -86
- transformers/models/git/processing_git.py +2 -14
- transformers/models/glm/configuration_glm.py +19 -21
- transformers/models/glm/modeling_glm.py +32 -35
- transformers/models/glm/modular_glm.py +4 -7
- transformers/models/glm4/configuration_glm4.py +19 -21
- transformers/models/glm4/modeling_glm4.py +35 -37
- transformers/models/glm4/modular_glm4.py +8 -10
- transformers/models/glm46v/configuration_glm46v.py +0 -1
- transformers/models/glm46v/image_processing_glm46v.py +35 -36
- transformers/models/glm46v/image_processing_glm46v_fast.py +7 -7
- transformers/models/glm46v/modeling_glm46v.py +51 -51
- transformers/models/glm46v/modular_glm46v.py +1 -3
- transformers/models/glm46v/processing_glm46v.py +7 -41
- transformers/models/glm46v/video_processing_glm46v.py +9 -11
- transformers/models/glm4_moe/configuration_glm4_moe.py +25 -28
- transformers/models/glm4_moe/modeling_glm4_moe.py +32 -35
- transformers/models/glm4_moe/modular_glm4_moe.py +26 -29
- transformers/models/glm4_moe_lite/__init__.py +28 -0
- transformers/models/glm4_moe_lite/configuration_glm4_moe_lite.py +235 -0
- transformers/models/glm4_moe_lite/modeling_glm4_moe_lite.py +740 -0
- transformers/models/glm4_moe_lite/modular_glm4_moe_lite.py +304 -0
- transformers/models/glm4v/configuration_glm4v.py +14 -17
- transformers/models/glm4v/image_processing_glm4v.py +34 -36
- transformers/models/glm4v/image_processing_glm4v_fast.py +6 -7
- transformers/models/glm4v/modeling_glm4v.py +133 -151
- transformers/models/glm4v/modular_glm4v.py +131 -182
- transformers/models/glm4v/processing_glm4v.py +7 -41
- transformers/models/glm4v/video_processing_glm4v.py +9 -11
- transformers/models/glm4v_moe/configuration_glm4v_moe.py +119 -122
- transformers/models/glm4v_moe/modeling_glm4v_moe.py +237 -297
- transformers/models/glm4v_moe/modular_glm4v_moe.py +54 -163
- transformers/models/glm_image/__init__.py +31 -0
- transformers/models/glm_image/configuration_glm_image.py +352 -0
- transformers/models/glm_image/image_processing_glm_image.py +503 -0
- transformers/models/glm_image/image_processing_glm_image_fast.py +296 -0
- transformers/models/glm_image/modeling_glm_image.py +1590 -0
- transformers/models/glm_image/modular_glm_image.py +1480 -0
- transformers/models/glm_image/processing_glm_image.py +217 -0
- transformers/models/glmasr/__init__.py +0 -1
- transformers/models/glmasr/configuration_glmasr.py +0 -1
- transformers/models/glmasr/modeling_glmasr.py +17 -18
- transformers/models/glmasr/modular_glmasr.py +16 -18
- transformers/models/glmasr/processing_glmasr.py +7 -8
- transformers/models/glpn/configuration_glpn.py +0 -1
- transformers/models/glpn/image_processing_glpn.py +11 -12
- transformers/models/glpn/image_processing_glpn_fast.py +8 -9
- transformers/models/glpn/modeling_glpn.py +10 -12
- transformers/models/got_ocr2/configuration_got_ocr2.py +5 -8
- transformers/models/got_ocr2/image_processing_got_ocr2.py +22 -24
- transformers/models/got_ocr2/image_processing_got_ocr2_fast.py +6 -7
- transformers/models/got_ocr2/modeling_got_ocr2.py +40 -42
- transformers/models/got_ocr2/modular_got_ocr2.py +31 -34
- transformers/models/got_ocr2/processing_got_ocr2.py +42 -63
- transformers/models/gpt2/configuration_gpt2.py +0 -1
- transformers/models/gpt2/modeling_gpt2.py +106 -108
- transformers/models/gpt2/tokenization_gpt2.py +6 -9
- transformers/models/gpt_bigcode/configuration_gpt_bigcode.py +0 -1
- transformers/models/gpt_bigcode/modeling_gpt_bigcode.py +73 -80
- transformers/models/gpt_neo/configuration_gpt_neo.py +0 -1
- transformers/models/gpt_neo/modeling_gpt_neo.py +63 -64
- transformers/models/gpt_neox/configuration_gpt_neox.py +19 -22
- transformers/models/gpt_neox/modeling_gpt_neox.py +70 -72
- transformers/models/gpt_neox/modular_gpt_neox.py +64 -66
- transformers/models/gpt_neox/tokenization_gpt_neox.py +2 -5
- transformers/models/gpt_neox_japanese/configuration_gpt_neox_japanese.py +15 -18
- transformers/models/gpt_neox_japanese/modeling_gpt_neox_japanese.py +41 -44
- transformers/models/gpt_neox_japanese/tokenization_gpt_neox_japanese.py +1 -3
- transformers/models/gpt_oss/configuration_gpt_oss.py +21 -24
- transformers/models/gpt_oss/modeling_gpt_oss.py +34 -35
- transformers/models/gpt_oss/modular_gpt_oss.py +17 -19
- transformers/models/gpt_sw3/tokenization_gpt_sw3.py +4 -4
- transformers/models/gptj/configuration_gptj.py +0 -1
- transformers/models/gptj/modeling_gptj.py +82 -81
- transformers/models/granite/configuration_granite.py +23 -26
- transformers/models/granite/modeling_granite.py +39 -41
- transformers/models/granite/modular_granite.py +29 -31
- transformers/models/granite_speech/configuration_granite_speech.py +0 -1
- transformers/models/granite_speech/feature_extraction_granite_speech.py +1 -3
- transformers/models/granite_speech/modeling_granite_speech.py +21 -23
- transformers/models/granite_speech/processing_granite_speech.py +11 -4
- transformers/models/granitemoe/configuration_granitemoe.py +26 -29
- transformers/models/granitemoe/modeling_granitemoe.py +35 -37
- transformers/models/granitemoe/modular_granitemoe.py +21 -23
- transformers/models/granitemoehybrid/__init__.py +0 -1
- transformers/models/granitemoehybrid/configuration_granitemoehybrid.py +38 -41
- transformers/models/granitemoehybrid/modeling_granitemoehybrid.py +60 -64
- transformers/models/granitemoehybrid/modular_granitemoehybrid.py +18 -20
- transformers/models/granitemoeshared/configuration_granitemoeshared.py +27 -30
- transformers/models/granitemoeshared/modeling_granitemoeshared.py +48 -52
- transformers/models/granitemoeshared/modular_granitemoeshared.py +19 -21
- transformers/models/grounding_dino/configuration_grounding_dino.py +0 -1
- transformers/models/grounding_dino/image_processing_grounding_dino.py +60 -62
- transformers/models/grounding_dino/image_processing_grounding_dino_fast.py +17 -18
- transformers/models/grounding_dino/modeling_grounding_dino.py +94 -96
- transformers/models/grounding_dino/modular_grounding_dino.py +2 -3
- transformers/models/grounding_dino/processing_grounding_dino.py +10 -38
- transformers/models/groupvit/configuration_groupvit.py +0 -1
- transformers/models/groupvit/modeling_groupvit.py +69 -70
- transformers/models/helium/configuration_helium.py +20 -22
- transformers/models/helium/modeling_helium.py +33 -36
- transformers/models/helium/modular_helium.py +3 -7
- transformers/models/herbert/tokenization_herbert.py +4 -6
- transformers/models/hgnet_v2/configuration_hgnet_v2.py +0 -1
- transformers/models/hgnet_v2/modeling_hgnet_v2.py +6 -9
- transformers/models/hgnet_v2/modular_hgnet_v2.py +6 -9
- transformers/models/hiera/configuration_hiera.py +0 -1
- transformers/models/hiera/modeling_hiera.py +60 -62
- transformers/models/hubert/configuration_hubert.py +0 -1
- transformers/models/hubert/modeling_hubert.py +35 -37
- transformers/models/hubert/modular_hubert.py +8 -11
- transformers/models/hunyuan_v1_dense/configuration_hunyuan_v1_dense.py +21 -24
- transformers/models/hunyuan_v1_dense/modeling_hunyuan_v1_dense.py +30 -33
- transformers/models/hunyuan_v1_dense/modular_hunyuan_v1_dense.py +3 -5
- transformers/models/hunyuan_v1_moe/configuration_hunyuan_v1_moe.py +25 -28
- transformers/models/hunyuan_v1_moe/modeling_hunyuan_v1_moe.py +32 -35
- transformers/models/hunyuan_v1_moe/modular_hunyuan_v1_moe.py +5 -7
- transformers/models/ibert/configuration_ibert.py +0 -1
- transformers/models/ibert/modeling_ibert.py +60 -62
- transformers/models/ibert/quant_modules.py +0 -1
- transformers/models/idefics/configuration_idefics.py +0 -1
- transformers/models/idefics/image_processing_idefics.py +13 -15
- transformers/models/idefics/modeling_idefics.py +60 -61
- transformers/models/idefics/perceiver.py +1 -3
- transformers/models/idefics/processing_idefics.py +32 -48
- transformers/models/idefics/vision.py +22 -24
- transformers/models/idefics2/configuration_idefics2.py +0 -1
- transformers/models/idefics2/image_processing_idefics2.py +31 -32
- transformers/models/idefics2/image_processing_idefics2_fast.py +7 -8
- transformers/models/idefics2/modeling_idefics2.py +56 -58
- transformers/models/idefics2/processing_idefics2.py +10 -68
- transformers/models/idefics3/configuration_idefics3.py +0 -1
- transformers/models/idefics3/image_processing_idefics3.py +42 -43
- transformers/models/idefics3/image_processing_idefics3_fast.py +11 -12
- transformers/models/idefics3/modeling_idefics3.py +52 -54
- transformers/models/idefics3/processing_idefics3.py +15 -69
- transformers/models/ijepa/configuration_ijepa.py +0 -1
- transformers/models/ijepa/modeling_ijepa.py +10 -11
- transformers/models/ijepa/modular_ijepa.py +5 -7
- transformers/models/imagegpt/configuration_imagegpt.py +0 -1
- transformers/models/imagegpt/image_processing_imagegpt.py +17 -18
- transformers/models/imagegpt/image_processing_imagegpt_fast.py +8 -9
- transformers/models/imagegpt/modeling_imagegpt.py +57 -58
- transformers/models/informer/configuration_informer.py +6 -9
- transformers/models/informer/modeling_informer.py +84 -86
- transformers/models/informer/modular_informer.py +13 -16
- transformers/models/instructblip/configuration_instructblip.py +0 -1
- transformers/models/instructblip/modeling_instructblip.py +43 -44
- transformers/models/instructblip/processing_instructblip.py +10 -36
- transformers/models/instructblipvideo/configuration_instructblipvideo.py +0 -1
- transformers/models/instructblipvideo/modeling_instructblipvideo.py +55 -55
- transformers/models/instructblipvideo/modular_instructblipvideo.py +34 -36
- transformers/models/instructblipvideo/processing_instructblipvideo.py +14 -33
- transformers/models/instructblipvideo/video_processing_instructblipvideo.py +4 -5
- transformers/models/internvl/configuration_internvl.py +0 -1
- transformers/models/internvl/modeling_internvl.py +41 -43
- transformers/models/internvl/modular_internvl.py +19 -21
- transformers/models/internvl/processing_internvl.py +12 -45
- transformers/models/internvl/video_processing_internvl.py +8 -9
- transformers/models/jais2/configuration_jais2.py +20 -22
- transformers/models/jais2/modeling_jais2.py +32 -34
- transformers/models/jais2/modular_jais2.py +20 -22
- transformers/models/jamba/configuration_jamba.py +0 -1
- transformers/models/jamba/modeling_jamba.py +43 -46
- transformers/models/jamba/modular_jamba.py +37 -38
- transformers/models/janus/configuration_janus.py +0 -1
- transformers/models/janus/image_processing_janus.py +35 -37
- transformers/models/janus/image_processing_janus_fast.py +12 -13
- transformers/models/janus/modeling_janus.py +41 -43
- transformers/models/janus/modular_janus.py +60 -63
- transformers/models/janus/processing_janus.py +17 -43
- transformers/models/jetmoe/configuration_jetmoe.py +20 -23
- transformers/models/jetmoe/modeling_jetmoe.py +39 -42
- transformers/models/jetmoe/modular_jetmoe.py +30 -33
- transformers/models/kosmos2/configuration_kosmos2.py +0 -1
- transformers/models/kosmos2/modeling_kosmos2.py +145 -146
- transformers/models/kosmos2/processing_kosmos2.py +40 -55
- transformers/models/kosmos2_5/__init__.py +0 -1
- transformers/models/kosmos2_5/configuration_kosmos2_5.py +0 -1
- transformers/models/kosmos2_5/image_processing_kosmos2_5.py +10 -12
- transformers/models/kosmos2_5/image_processing_kosmos2_5_fast.py +2 -11
- transformers/models/kosmos2_5/modeling_kosmos2_5.py +108 -109
- transformers/models/kosmos2_5/processing_kosmos2_5.py +8 -29
- transformers/models/kyutai_speech_to_text/configuration_kyutai_speech_to_text.py +23 -25
- transformers/models/kyutai_speech_to_text/feature_extraction_kyutai_speech_to_text.py +12 -14
- transformers/models/kyutai_speech_to_text/modeling_kyutai_speech_to_text.py +59 -66
- transformers/models/kyutai_speech_to_text/modular_kyutai_speech_to_text.py +19 -21
- transformers/models/kyutai_speech_to_text/processing_kyutai_speech_to_text.py +2 -8
- transformers/models/lasr/configuration_lasr.py +1 -3
- transformers/models/lasr/feature_extraction_lasr.py +10 -12
- transformers/models/lasr/modeling_lasr.py +18 -21
- transformers/models/lasr/modular_lasr.py +8 -10
- transformers/models/lasr/processing_lasr.py +12 -6
- transformers/models/lasr/tokenization_lasr.py +2 -4
- transformers/models/layoutlm/configuration_layoutlm.py +0 -1
- transformers/models/layoutlm/modeling_layoutlm.py +67 -69
- transformers/models/layoutlmv2/configuration_layoutlmv2.py +0 -1
- transformers/models/layoutlmv2/image_processing_layoutlmv2.py +18 -21
- transformers/models/layoutlmv2/image_processing_layoutlmv2_fast.py +5 -6
- transformers/models/layoutlmv2/modeling_layoutlmv2.py +48 -50
- transformers/models/layoutlmv2/processing_layoutlmv2.py +14 -44
- transformers/models/layoutlmv2/tokenization_layoutlmv2.py +63 -74
- transformers/models/layoutlmv3/configuration_layoutlmv3.py +0 -1
- transformers/models/layoutlmv3/image_processing_layoutlmv3.py +24 -26
- transformers/models/layoutlmv3/image_processing_layoutlmv3_fast.py +7 -8
- transformers/models/layoutlmv3/modeling_layoutlmv3.py +49 -51
- transformers/models/layoutlmv3/processing_layoutlmv3.py +14 -46
- transformers/models/layoutlmv3/tokenization_layoutlmv3.py +64 -75
- transformers/models/layoutxlm/configuration_layoutxlm.py +0 -1
- transformers/models/layoutxlm/modular_layoutxlm.py +0 -1
- transformers/models/layoutxlm/processing_layoutxlm.py +14 -44
- transformers/models/layoutxlm/tokenization_layoutxlm.py +65 -76
- transformers/models/led/configuration_led.py +1 -4
- transformers/models/led/modeling_led.py +113 -267
- transformers/models/levit/configuration_levit.py +0 -1
- transformers/models/levit/image_processing_levit.py +19 -21
- transformers/models/levit/image_processing_levit_fast.py +0 -1
- transformers/models/levit/modeling_levit.py +17 -19
- transformers/models/lfm2/configuration_lfm2.py +22 -23
- transformers/models/lfm2/modeling_lfm2.py +42 -44
- transformers/models/lfm2/modular_lfm2.py +29 -29
- transformers/models/lfm2_moe/__init__.py +0 -1
- transformers/models/lfm2_moe/configuration_lfm2_moe.py +1 -2
- transformers/models/lfm2_moe/modeling_lfm2_moe.py +44 -45
- transformers/models/lfm2_moe/modular_lfm2_moe.py +8 -9
- transformers/models/lfm2_vl/configuration_lfm2_vl.py +0 -1
- transformers/models/lfm2_vl/image_processing_lfm2_vl_fast.py +34 -5
- transformers/models/lfm2_vl/modeling_lfm2_vl.py +31 -33
- transformers/models/lfm2_vl/modular_lfm2_vl.py +24 -27
- transformers/models/lfm2_vl/processing_lfm2_vl.py +14 -34
- transformers/models/lightglue/image_processing_lightglue.py +16 -15
- transformers/models/lightglue/image_processing_lightglue_fast.py +4 -4
- transformers/models/lightglue/modeling_lightglue.py +28 -30
- transformers/models/lightglue/modular_lightglue.py +28 -28
- transformers/models/lighton_ocr/__init__.py +28 -0
- transformers/models/lighton_ocr/configuration_lighton_ocr.py +128 -0
- transformers/models/lighton_ocr/modeling_lighton_ocr.py +460 -0
- transformers/models/lighton_ocr/modular_lighton_ocr.py +403 -0
- transformers/models/lighton_ocr/processing_lighton_ocr.py +229 -0
- transformers/models/lilt/configuration_lilt.py +0 -1
- transformers/models/lilt/modeling_lilt.py +53 -55
- transformers/models/llama/configuration_llama.py +21 -24
- transformers/models/llama/modeling_llama.py +31 -34
- transformers/models/llama/tokenization_llama.py +2 -4
- transformers/models/llama4/configuration_llama4.py +20 -22
- transformers/models/llama4/image_processing_llama4_fast.py +8 -9
- transformers/models/llama4/modeling_llama4.py +70 -71
- transformers/models/llama4/processing_llama4.py +33 -57
- transformers/models/llava/configuration_llava.py +0 -1
- transformers/models/llava/image_processing_llava.py +25 -28
- transformers/models/llava/image_processing_llava_fast.py +6 -7
- transformers/models/llava/modeling_llava.py +35 -37
- transformers/models/llava/processing_llava.py +18 -51
- transformers/models/llava_next/configuration_llava_next.py +0 -1
- transformers/models/llava_next/image_processing_llava_next.py +43 -45
- transformers/models/llava_next/image_processing_llava_next_fast.py +5 -6
- transformers/models/llava_next/modeling_llava_next.py +42 -44
- transformers/models/llava_next/processing_llava_next.py +18 -47
- transformers/models/llava_next_video/configuration_llava_next_video.py +0 -1
- transformers/models/llava_next_video/modeling_llava_next_video.py +53 -55
- transformers/models/llava_next_video/modular_llava_next_video.py +44 -46
- transformers/models/llava_next_video/processing_llava_next_video.py +21 -63
- transformers/models/llava_next_video/video_processing_llava_next_video.py +0 -1
- transformers/models/llava_onevision/configuration_llava_onevision.py +0 -1
- transformers/models/llava_onevision/image_processing_llava_onevision.py +40 -42
- transformers/models/llava_onevision/image_processing_llava_onevision_fast.py +6 -7
- transformers/models/llava_onevision/modeling_llava_onevision.py +60 -62
- transformers/models/llava_onevision/modular_llava_onevision.py +51 -52
- transformers/models/llava_onevision/processing_llava_onevision.py +21 -53
- transformers/models/llava_onevision/video_processing_llava_onevision.py +0 -1
- transformers/models/longcat_flash/__init__.py +0 -1
- transformers/models/longcat_flash/configuration_longcat_flash.py +32 -35
- transformers/models/longcat_flash/modeling_longcat_flash.py +30 -31
- transformers/models/longcat_flash/modular_longcat_flash.py +17 -19
- transformers/models/longformer/configuration_longformer.py +1 -4
- transformers/models/longformer/modeling_longformer.py +99 -101
- transformers/models/longt5/configuration_longt5.py +0 -1
- transformers/models/longt5/modeling_longt5.py +43 -44
- transformers/models/luke/configuration_luke.py +0 -1
- transformers/models/luke/modeling_luke.py +179 -181
- transformers/models/luke/tokenization_luke.py +99 -105
- transformers/models/lw_detr/__init__.py +27 -0
- transformers/models/lw_detr/configuration_lw_detr.py +374 -0
- transformers/models/lw_detr/modeling_lw_detr.py +1698 -0
- transformers/models/lw_detr/modular_lw_detr.py +1611 -0
- transformers/models/lxmert/configuration_lxmert.py +0 -1
- transformers/models/lxmert/modeling_lxmert.py +63 -74
- transformers/models/m2m_100/configuration_m2m_100.py +0 -1
- transformers/models/m2m_100/modeling_m2m_100.py +69 -71
- transformers/models/m2m_100/tokenization_m2m_100.py +8 -8
- transformers/models/mamba/configuration_mamba.py +0 -1
- transformers/models/mamba/modeling_mamba.py +43 -44
- transformers/models/mamba2/configuration_mamba2.py +0 -1
- transformers/models/mamba2/modeling_mamba2.py +44 -46
- transformers/models/marian/configuration_marian.py +0 -1
- transformers/models/marian/modeling_marian.py +84 -86
- transformers/models/marian/tokenization_marian.py +6 -6
- transformers/models/markuplm/configuration_markuplm.py +0 -1
- transformers/models/markuplm/feature_extraction_markuplm.py +1 -2
- transformers/models/markuplm/modeling_markuplm.py +60 -62
- transformers/models/markuplm/processing_markuplm.py +31 -38
- transformers/models/markuplm/tokenization_markuplm.py +67 -77
- transformers/models/mask2former/configuration_mask2former.py +4 -7
- transformers/models/mask2former/image_processing_mask2former.py +84 -85
- transformers/models/mask2former/image_processing_mask2former_fast.py +29 -29
- transformers/models/mask2former/modeling_mask2former.py +90 -92
- transformers/models/mask2former/modular_mask2former.py +6 -8
- transformers/models/maskformer/configuration_maskformer.py +5 -8
- transformers/models/maskformer/configuration_maskformer_swin.py +0 -1
- transformers/models/maskformer/image_processing_maskformer.py +84 -85
- transformers/models/maskformer/image_processing_maskformer_fast.py +28 -29
- transformers/models/maskformer/modeling_maskformer.py +56 -58
- transformers/models/maskformer/modeling_maskformer_swin.py +18 -20
- transformers/models/mbart/configuration_mbart.py +0 -1
- transformers/models/mbart/modeling_mbart.py +111 -113
- transformers/models/mbart/tokenization_mbart.py +2 -4
- transformers/models/mbart50/tokenization_mbart50.py +3 -5
- transformers/models/megatron_bert/configuration_megatron_bert.py +0 -1
- transformers/models/megatron_bert/modeling_megatron_bert.py +139 -150
- transformers/models/metaclip_2/modeling_metaclip_2.py +46 -46
- transformers/models/metaclip_2/modular_metaclip_2.py +19 -21
- transformers/models/mgp_str/configuration_mgp_str.py +0 -1
- transformers/models/mgp_str/modeling_mgp_str.py +14 -16
- transformers/models/mgp_str/processing_mgp_str.py +3 -20
- transformers/models/mgp_str/tokenization_mgp_str.py +1 -3
- transformers/models/mimi/configuration_mimi.py +38 -40
- transformers/models/mimi/modeling_mimi.py +76 -79
- transformers/models/minimax/__init__.py +0 -1
- transformers/models/minimax/configuration_minimax.py +32 -36
- transformers/models/minimax/modeling_minimax.py +41 -44
- transformers/models/minimax/modular_minimax.py +50 -53
- transformers/models/minimax_m2/__init__.py +28 -0
- transformers/models/minimax_m2/configuration_minimax_m2.py +211 -0
- transformers/models/minimax_m2/modeling_minimax_m2.py +704 -0
- transformers/models/minimax_m2/modular_minimax_m2.py +369 -0
- transformers/models/ministral/configuration_ministral.py +20 -22
- transformers/models/ministral/modeling_ministral.py +31 -33
- transformers/models/ministral/modular_ministral.py +27 -29
- transformers/models/ministral3/configuration_ministral3.py +19 -22
- transformers/models/ministral3/modeling_ministral3.py +31 -33
- transformers/models/ministral3/modular_ministral3.py +4 -5
- transformers/models/mistral/configuration_mistral.py +19 -22
- transformers/models/mistral/modeling_mistral.py +31 -33
- transformers/models/mistral/modular_mistral.py +11 -12
- transformers/models/mistral3/configuration_mistral3.py +0 -1
- transformers/models/mistral3/modeling_mistral3.py +43 -42
- transformers/models/mistral3/modular_mistral3.py +35 -35
- transformers/models/mixtral/configuration_mixtral.py +24 -27
- transformers/models/mixtral/modeling_mixtral.py +35 -38
- transformers/models/mixtral/modular_mixtral.py +26 -29
- transformers/models/mlcd/configuration_mlcd.py +0 -1
- transformers/models/mlcd/modeling_mlcd.py +10 -12
- transformers/models/mlcd/modular_mlcd.py +9 -11
- transformers/models/mllama/configuration_mllama.py +5 -8
- transformers/models/mllama/image_processing_mllama.py +23 -25
- transformers/models/mllama/image_processing_mllama_fast.py +5 -6
- transformers/models/mllama/modeling_mllama.py +81 -84
- transformers/models/mllama/processing_mllama.py +6 -55
- transformers/models/mluke/tokenization_mluke.py +97 -103
- transformers/models/mm_grounding_dino/configuration_mm_grounding_dino.py +0 -1
- transformers/models/mm_grounding_dino/modeling_mm_grounding_dino.py +94 -96
- transformers/models/mm_grounding_dino/modular_mm_grounding_dino.py +0 -1
- transformers/models/mobilebert/configuration_mobilebert.py +0 -1
- transformers/models/mobilebert/modeling_mobilebert.py +75 -85
- transformers/models/mobilebert/tokenization_mobilebert.py +0 -1
- transformers/models/mobilenet_v1/configuration_mobilenet_v1.py +0 -1
- transformers/models/mobilenet_v1/image_processing_mobilenet_v1.py +20 -23
- transformers/models/mobilenet_v1/image_processing_mobilenet_v1_fast.py +0 -1
- transformers/models/mobilenet_v1/modeling_mobilenet_v1.py +13 -16
- transformers/models/mobilenet_v2/configuration_mobilenet_v2.py +0 -1
- transformers/models/mobilenet_v2/image_processing_mobilenet_v2.py +48 -51
- transformers/models/mobilenet_v2/image_processing_mobilenet_v2_fast.py +10 -11
- transformers/models/mobilenet_v2/modeling_mobilenet_v2.py +17 -20
- transformers/models/mobilevit/configuration_mobilevit.py +0 -1
- transformers/models/mobilevit/image_processing_mobilevit.py +41 -44
- transformers/models/mobilevit/image_processing_mobilevit_fast.py +8 -9
- transformers/models/mobilevit/modeling_mobilevit.py +17 -19
- transformers/models/mobilevitv2/configuration_mobilevitv2.py +0 -1
- transformers/models/mobilevitv2/modeling_mobilevitv2.py +17 -20
- transformers/models/modernbert/configuration_modernbert.py +34 -34
- transformers/models/modernbert/modeling_modernbert.py +123 -125
- transformers/models/modernbert/modular_modernbert.py +155 -155
- transformers/models/modernbert_decoder/configuration_modernbert_decoder.py +30 -32
- transformers/models/modernbert_decoder/modeling_modernbert_decoder.py +45 -47
- transformers/models/modernbert_decoder/modular_modernbert_decoder.py +69 -70
- transformers/models/moonshine/configuration_moonshine.py +22 -24
- transformers/models/moonshine/modeling_moonshine.py +63 -65
- transformers/models/moonshine/modular_moonshine.py +72 -73
- transformers/models/moshi/configuration_moshi.py +18 -21
- transformers/models/moshi/modeling_moshi.py +130 -133
- transformers/models/mpnet/configuration_mpnet.py +0 -1
- transformers/models/mpnet/modeling_mpnet.py +55 -57
- transformers/models/mpnet/tokenization_mpnet.py +1 -4
- transformers/models/mpt/configuration_mpt.py +1 -9
- transformers/models/mpt/modeling_mpt.py +58 -60
- transformers/models/mra/configuration_mra.py +0 -1
- transformers/models/mra/modeling_mra.py +54 -56
- transformers/models/mt5/configuration_mt5.py +0 -1
- transformers/models/mt5/modeling_mt5.py +75 -77
- transformers/models/musicgen/configuration_musicgen.py +0 -1
- transformers/models/musicgen/modeling_musicgen.py +108 -111
- transformers/models/musicgen/processing_musicgen.py +3 -21
- transformers/models/musicgen_melody/configuration_musicgen_melody.py +0 -1
- transformers/models/musicgen_melody/feature_extraction_musicgen_melody.py +8 -9
- transformers/models/musicgen_melody/modeling_musicgen_melody.py +106 -109
- transformers/models/musicgen_melody/processing_musicgen_melody.py +3 -22
- transformers/models/mvp/configuration_mvp.py +0 -1
- transformers/models/mvp/modeling_mvp.py +115 -119
- transformers/models/myt5/tokenization_myt5.py +8 -10
- transformers/models/nanochat/configuration_nanochat.py +0 -1
- transformers/models/nanochat/modeling_nanochat.py +32 -35
- transformers/models/nanochat/modular_nanochat.py +12 -14
- transformers/models/nemotron/configuration_nemotron.py +20 -23
- transformers/models/nemotron/modeling_nemotron.py +49 -52
- transformers/models/nllb/tokenization_nllb.py +7 -9
- transformers/models/nllb_moe/configuration_nllb_moe.py +0 -1
- transformers/models/nllb_moe/modeling_nllb_moe.py +67 -69
- transformers/models/nougat/image_processing_nougat.py +29 -32
- transformers/models/nougat/image_processing_nougat_fast.py +4 -5
- transformers/models/nougat/processing_nougat.py +37 -39
- transformers/models/nougat/tokenization_nougat.py +5 -7
- transformers/models/nystromformer/configuration_nystromformer.py +0 -1
- transformers/models/nystromformer/modeling_nystromformer.py +61 -63
- transformers/models/olmo/configuration_olmo.py +18 -21
- transformers/models/olmo/modeling_olmo.py +31 -34
- transformers/models/olmo/modular_olmo.py +5 -9
- transformers/models/olmo2/configuration_olmo2.py +18 -21
- transformers/models/olmo2/modeling_olmo2.py +32 -35
- transformers/models/olmo2/modular_olmo2.py +29 -31
- transformers/models/olmo3/__init__.py +0 -1
- transformers/models/olmo3/configuration_olmo3.py +20 -23
- transformers/models/olmo3/modeling_olmo3.py +31 -34
- transformers/models/olmo3/modular_olmo3.py +31 -33
- transformers/models/olmoe/configuration_olmoe.py +24 -26
- transformers/models/olmoe/modeling_olmoe.py +37 -39
- transformers/models/olmoe/modular_olmoe.py +12 -13
- transformers/models/omdet_turbo/configuration_omdet_turbo.py +0 -1
- transformers/models/omdet_turbo/modeling_omdet_turbo.py +38 -40
- transformers/models/omdet_turbo/processing_omdet_turbo.py +19 -67
- transformers/models/oneformer/configuration_oneformer.py +4 -7
- transformers/models/oneformer/image_processing_oneformer.py +83 -84
- transformers/models/oneformer/image_processing_oneformer_fast.py +33 -34
- transformers/models/oneformer/modeling_oneformer.py +123 -124
- transformers/models/oneformer/processing_oneformer.py +28 -43
- transformers/models/openai/configuration_openai.py +0 -1
- transformers/models/openai/modeling_openai.py +50 -51
- transformers/models/openai/tokenization_openai.py +2 -5
- transformers/models/opt/configuration_opt.py +0 -1
- transformers/models/opt/modeling_opt.py +74 -75
- transformers/models/ovis2/__init__.py +0 -1
- transformers/models/ovis2/configuration_ovis2.py +0 -1
- transformers/models/ovis2/image_processing_ovis2.py +22 -24
- transformers/models/ovis2/image_processing_ovis2_fast.py +6 -7
- transformers/models/ovis2/modeling_ovis2.py +43 -45
- transformers/models/ovis2/modular_ovis2.py +30 -32
- transformers/models/ovis2/processing_ovis2.py +12 -40
- transformers/models/owlv2/configuration_owlv2.py +0 -1
- transformers/models/owlv2/image_processing_owlv2.py +20 -21
- transformers/models/owlv2/image_processing_owlv2_fast.py +7 -8
- transformers/models/owlv2/modeling_owlv2.py +82 -87
- transformers/models/owlv2/modular_owlv2.py +6 -7
- transformers/models/owlv2/processing_owlv2.py +20 -49
- transformers/models/owlvit/configuration_owlvit.py +0 -1
- transformers/models/owlvit/image_processing_owlvit.py +21 -22
- transformers/models/owlvit/image_processing_owlvit_fast.py +2 -3
- transformers/models/owlvit/modeling_owlvit.py +81 -86
- transformers/models/owlvit/processing_owlvit.py +20 -48
- transformers/models/paddleocr_vl/__init__.py +0 -1
- transformers/models/paddleocr_vl/configuration_paddleocr_vl.py +19 -19
- transformers/models/paddleocr_vl/image_processing_paddleocr_vl.py +34 -35
- transformers/models/paddleocr_vl/image_processing_paddleocr_vl_fast.py +12 -12
- transformers/models/paddleocr_vl/modeling_paddleocr_vl.py +76 -76
- transformers/models/paddleocr_vl/modular_paddleocr_vl.py +68 -68
- transformers/models/paddleocr_vl/processing_paddleocr_vl.py +1 -3
- transformers/models/paligemma/configuration_paligemma.py +0 -1
- transformers/models/paligemma/modeling_paligemma.py +51 -53
- transformers/models/paligemma/processing_paligemma.py +13 -66
- transformers/models/parakeet/configuration_parakeet.py +1 -4
- transformers/models/parakeet/feature_extraction_parakeet.py +10 -12
- transformers/models/parakeet/modeling_parakeet.py +18 -22
- transformers/models/parakeet/modular_parakeet.py +16 -18
- transformers/models/parakeet/processing_parakeet.py +12 -5
- transformers/models/parakeet/tokenization_parakeet.py +2 -4
- transformers/models/patchtsmixer/configuration_patchtsmixer.py +5 -8
- transformers/models/patchtsmixer/modeling_patchtsmixer.py +60 -62
- transformers/models/patchtst/configuration_patchtst.py +6 -9
- transformers/models/patchtst/modeling_patchtst.py +72 -74
- transformers/models/pe_audio/__init__.py +0 -1
- transformers/models/pe_audio/configuration_pe_audio.py +14 -16
- transformers/models/pe_audio/feature_extraction_pe_audio.py +6 -8
- transformers/models/pe_audio/modeling_pe_audio.py +26 -27
- transformers/models/pe_audio/modular_pe_audio.py +16 -17
- transformers/models/pe_audio/processing_pe_audio.py +0 -1
- transformers/models/pe_audio_video/__init__.py +0 -1
- transformers/models/pe_audio_video/configuration_pe_audio_video.py +15 -17
- transformers/models/pe_audio_video/modeling_pe_audio_video.py +60 -61
- transformers/models/pe_audio_video/modular_pe_audio_video.py +52 -53
- transformers/models/pe_audio_video/processing_pe_audio_video.py +0 -1
- transformers/models/pe_video/__init__.py +0 -1
- transformers/models/pe_video/configuration_pe_video.py +14 -16
- transformers/models/pe_video/modeling_pe_video.py +21 -22
- transformers/models/pe_video/modular_pe_video.py +11 -12
- transformers/models/pe_video/video_processing_pe_video.py +2 -4
- transformers/models/pegasus/configuration_pegasus.py +0 -1
- transformers/models/pegasus/modeling_pegasus.py +63 -65
- transformers/models/pegasus/tokenization_pegasus.py +1 -4
- transformers/models/pegasus_x/configuration_pegasus_x.py +0 -1
- transformers/models/pegasus_x/modeling_pegasus_x.py +50 -52
- transformers/models/perceiver/configuration_perceiver.py +0 -1
- transformers/models/perceiver/image_processing_perceiver.py +22 -25
- transformers/models/perceiver/image_processing_perceiver_fast.py +5 -6
- transformers/models/perceiver/modeling_perceiver.py +135 -136
- transformers/models/perceiver/tokenization_perceiver.py +3 -6
- transformers/models/perception_lm/configuration_perception_lm.py +0 -1
- transformers/models/perception_lm/image_processing_perception_lm_fast.py +8 -9
- transformers/models/perception_lm/modeling_perception_lm.py +38 -40
- transformers/models/perception_lm/modular_perception_lm.py +31 -33
- transformers/models/perception_lm/processing_perception_lm.py +13 -47
- transformers/models/perception_lm/video_processing_perception_lm.py +0 -1
- transformers/models/persimmon/configuration_persimmon.py +18 -21
- transformers/models/persimmon/modeling_persimmon.py +39 -42
- transformers/models/phi/configuration_phi.py +19 -22
- transformers/models/phi/modeling_phi.py +35 -37
- transformers/models/phi/modular_phi.py +23 -23
- transformers/models/phi3/configuration_phi3.py +23 -26
- transformers/models/phi3/modeling_phi3.py +33 -36
- transformers/models/phi3/modular_phi3.py +13 -17
- transformers/models/phi4_multimodal/configuration_phi4_multimodal.py +25 -26
- transformers/models/phi4_multimodal/feature_extraction_phi4_multimodal.py +7 -9
- transformers/models/phi4_multimodal/image_processing_phi4_multimodal_fast.py +7 -7
- transformers/models/phi4_multimodal/modeling_phi4_multimodal.py +54 -56
- transformers/models/phi4_multimodal/modular_phi4_multimodal.py +59 -60
- transformers/models/phi4_multimodal/processing_phi4_multimodal.py +7 -42
- transformers/models/phimoe/configuration_phimoe.py +26 -29
- transformers/models/phimoe/modeling_phimoe.py +35 -38
- transformers/models/phimoe/modular_phimoe.py +0 -1
- transformers/models/phobert/tokenization_phobert.py +4 -6
- transformers/models/pix2struct/configuration_pix2struct.py +0 -1
- transformers/models/pix2struct/image_processing_pix2struct.py +15 -19
- transformers/models/pix2struct/image_processing_pix2struct_fast.py +7 -10
- transformers/models/pix2struct/modeling_pix2struct.py +42 -45
- transformers/models/pix2struct/processing_pix2struct.py +5 -26
- transformers/models/pixio/__init__.py +0 -1
- transformers/models/pixio/configuration_pixio.py +0 -1
- transformers/models/pixio/modeling_pixio.py +7 -9
- transformers/models/pixio/modular_pixio.py +3 -6
- transformers/models/pixtral/configuration_pixtral.py +11 -14
- transformers/models/pixtral/image_processing_pixtral.py +26 -28
- transformers/models/pixtral/image_processing_pixtral_fast.py +5 -6
- transformers/models/pixtral/modeling_pixtral.py +22 -25
- transformers/models/pixtral/processing_pixtral.py +18 -52
- transformers/models/plbart/configuration_plbart.py +0 -1
- transformers/models/plbart/modeling_plbart.py +100 -102
- transformers/models/plbart/modular_plbart.py +30 -32
- transformers/models/plbart/tokenization_plbart.py +4 -5
- transformers/models/poolformer/configuration_poolformer.py +0 -1
- transformers/models/poolformer/image_processing_poolformer.py +21 -24
- transformers/models/poolformer/image_processing_poolformer_fast.py +6 -7
- transformers/models/poolformer/modeling_poolformer.py +10 -12
- transformers/models/pop2piano/configuration_pop2piano.py +0 -1
- transformers/models/pop2piano/feature_extraction_pop2piano.py +6 -9
- transformers/models/pop2piano/modeling_pop2piano.py +22 -23
- transformers/models/pop2piano/processing_pop2piano.py +25 -33
- transformers/models/pop2piano/tokenization_pop2piano.py +15 -23
- transformers/models/prompt_depth_anything/configuration_prompt_depth_anything.py +1 -0
- transformers/models/prompt_depth_anything/image_processing_prompt_depth_anything.py +28 -28
- transformers/models/prompt_depth_anything/image_processing_prompt_depth_anything_fast.py +14 -15
- transformers/models/prompt_depth_anything/modeling_prompt_depth_anything.py +9 -10
- transformers/models/prompt_depth_anything/modular_prompt_depth_anything.py +9 -10
- transformers/models/prophetnet/configuration_prophetnet.py +26 -28
- transformers/models/prophetnet/modeling_prophetnet.py +109 -130
- transformers/models/prophetnet/tokenization_prophetnet.py +14 -16
- transformers/models/pvt/configuration_pvt.py +0 -1
- transformers/models/pvt/image_processing_pvt.py +17 -20
- transformers/models/pvt/image_processing_pvt_fast.py +0 -1
- transformers/models/pvt/modeling_pvt.py +19 -21
- transformers/models/pvt_v2/configuration_pvt_v2.py +2 -4
- transformers/models/pvt_v2/modeling_pvt_v2.py +21 -23
- transformers/models/qwen2/configuration_qwen2.py +18 -21
- transformers/models/qwen2/modeling_qwen2.py +31 -33
- transformers/models/qwen2/modular_qwen2.py +11 -12
- transformers/models/qwen2/tokenization_qwen2.py +2 -5
- transformers/models/qwen2_5_omni/configuration_qwen2_5_omni.py +20 -23
- transformers/models/qwen2_5_omni/modeling_qwen2_5_omni.py +135 -128
- transformers/models/qwen2_5_omni/modular_qwen2_5_omni.py +116 -109
- transformers/models/qwen2_5_omni/processing_qwen2_5_omni.py +41 -49
- transformers/models/qwen2_5_vl/configuration_qwen2_5_vl.py +22 -25
- transformers/models/qwen2_5_vl/modeling_qwen2_5_vl.py +94 -96
- transformers/models/qwen2_5_vl/modular_qwen2_5_vl.py +46 -85
- transformers/models/qwen2_5_vl/processing_qwen2_5_vl.py +7 -43
- transformers/models/qwen2_audio/configuration_qwen2_audio.py +0 -1
- transformers/models/qwen2_audio/modeling_qwen2_audio.py +27 -29
- transformers/models/qwen2_audio/processing_qwen2_audio.py +13 -42
- transformers/models/qwen2_moe/configuration_qwen2_moe.py +28 -31
- transformers/models/qwen2_moe/modeling_qwen2_moe.py +36 -39
- transformers/models/qwen2_moe/modular_qwen2_moe.py +7 -10
- transformers/models/qwen2_vl/configuration_qwen2_vl.py +22 -24
- transformers/models/qwen2_vl/image_processing_qwen2_vl.py +38 -40
- transformers/models/qwen2_vl/image_processing_qwen2_vl_fast.py +8 -9
- transformers/models/qwen2_vl/modeling_qwen2_vl.py +91 -92
- transformers/models/qwen2_vl/processing_qwen2_vl.py +7 -44
- transformers/models/qwen2_vl/video_processing_qwen2_vl.py +35 -13
- transformers/models/qwen3/configuration_qwen3.py +20 -23
- transformers/models/qwen3/modeling_qwen3.py +31 -34
- transformers/models/qwen3/modular_qwen3.py +4 -6
- transformers/models/qwen3_moe/configuration_qwen3_moe.py +25 -28
- transformers/models/qwen3_moe/modeling_qwen3_moe.py +36 -39
- transformers/models/qwen3_moe/modular_qwen3_moe.py +10 -13
- transformers/models/qwen3_next/configuration_qwen3_next.py +31 -34
- transformers/models/qwen3_next/modeling_qwen3_next.py +39 -42
- transformers/models/qwen3_next/modular_qwen3_next.py +33 -34
- transformers/models/qwen3_omni_moe/configuration_qwen3_omni_moe.py +85 -88
- transformers/models/qwen3_omni_moe/modeling_qwen3_omni_moe.py +107 -110
- transformers/models/qwen3_omni_moe/modular_qwen3_omni_moe.py +122 -148
- transformers/models/qwen3_omni_moe/processing_qwen3_omni_moe.py +40 -48
- transformers/models/qwen3_vl/configuration_qwen3_vl.py +16 -19
- transformers/models/qwen3_vl/modeling_qwen3_vl.py +74 -77
- transformers/models/qwen3_vl/modular_qwen3_vl.py +68 -105
- transformers/models/qwen3_vl/processing_qwen3_vl.py +6 -42
- transformers/models/qwen3_vl/video_processing_qwen3_vl.py +10 -12
- transformers/models/qwen3_vl_moe/configuration_qwen3_vl_moe.py +21 -25
- transformers/models/qwen3_vl_moe/modeling_qwen3_vl_moe.py +80 -83
- transformers/models/qwen3_vl_moe/modular_qwen3_vl_moe.py +33 -36
- transformers/models/rag/configuration_rag.py +0 -1
- transformers/models/rag/modeling_rag.py +116 -118
- transformers/models/rag/retrieval_rag.py +2 -4
- transformers/models/rag/tokenization_rag.py +0 -50
- transformers/models/recurrent_gemma/configuration_recurrent_gemma.py +21 -24
- transformers/models/recurrent_gemma/modeling_recurrent_gemma.py +31 -34
- transformers/models/reformer/configuration_reformer.py +0 -1
- transformers/models/reformer/modeling_reformer.py +67 -68
- transformers/models/reformer/tokenization_reformer.py +3 -6
- transformers/models/regnet/configuration_regnet.py +0 -1
- transformers/models/regnet/modeling_regnet.py +7 -9
- transformers/models/rembert/configuration_rembert.py +0 -1
- transformers/models/rembert/modeling_rembert.py +108 -110
- transformers/models/rembert/tokenization_rembert.py +1 -4
- transformers/models/resnet/configuration_resnet.py +0 -1
- transformers/models/resnet/modeling_resnet.py +8 -10
- transformers/models/roberta/configuration_roberta.py +0 -1
- transformers/models/roberta/modeling_roberta.py +91 -93
- transformers/models/roberta/modular_roberta.py +55 -58
- transformers/models/roberta/tokenization_roberta.py +2 -5
- transformers/models/roberta/tokenization_roberta_old.py +2 -4
- transformers/models/roberta_prelayernorm/configuration_roberta_prelayernorm.py +0 -1
- transformers/models/roberta_prelayernorm/modeling_roberta_prelayernorm.py +91 -93
- transformers/models/roc_bert/configuration_roc_bert.py +0 -1
- transformers/models/roc_bert/modeling_roc_bert.py +119 -121
- transformers/models/roc_bert/tokenization_roc_bert.py +88 -94
- transformers/models/roformer/configuration_roformer.py +0 -1
- transformers/models/roformer/modeling_roformer.py +79 -81
- transformers/models/roformer/tokenization_roformer.py +3 -6
- transformers/models/roformer/tokenization_utils.py +0 -1
- transformers/models/rt_detr/configuration_rt_detr.py +0 -1
- transformers/models/rt_detr/configuration_rt_detr_resnet.py +0 -1
- transformers/models/rt_detr/image_processing_rt_detr.py +54 -55
- transformers/models/rt_detr/image_processing_rt_detr_fast.py +15 -15
- transformers/models/rt_detr/modeling_rt_detr.py +80 -82
- transformers/models/rt_detr/modeling_rt_detr_resnet.py +2 -4
- transformers/models/rt_detr/modular_rt_detr.py +14 -14
- transformers/models/rt_detr_v2/configuration_rt_detr_v2.py +0 -1
- transformers/models/rt_detr_v2/modeling_rt_detr_v2.py +79 -81
- transformers/models/rt_detr_v2/modular_rt_detr_v2.py +2 -4
- transformers/models/rwkv/configuration_rwkv.py +0 -1
- transformers/models/rwkv/modeling_rwkv.py +29 -31
- transformers/models/sam/configuration_sam.py +0 -1
- transformers/models/sam/image_processing_sam.py +59 -60
- transformers/models/sam/image_processing_sam_fast.py +21 -22
- transformers/models/sam/modeling_sam.py +33 -35
- transformers/models/sam/processing_sam.py +39 -27
- transformers/models/sam2/configuration_sam2.py +0 -1
- transformers/models/sam2/image_processing_sam2_fast.py +14 -15
- transformers/models/sam2/modeling_sam2.py +45 -47
- transformers/models/sam2/modular_sam2.py +43 -44
- transformers/models/sam2/processing_sam2.py +31 -47
- transformers/models/sam2_video/configuration_sam2_video.py +0 -1
- transformers/models/sam2_video/modeling_sam2_video.py +69 -70
- transformers/models/sam2_video/modular_sam2_video.py +60 -79
- transformers/models/sam2_video/processing_sam2_video.py +49 -66
- transformers/models/sam2_video/video_processing_sam2_video.py +1 -4
- transformers/models/sam3/configuration_sam3.py +0 -1
- transformers/models/sam3/image_processing_sam3_fast.py +17 -20
- transformers/models/sam3/modeling_sam3.py +54 -56
- transformers/models/sam3/modular_sam3.py +3 -8
- transformers/models/sam3/processing_sam3.py +29 -48
- transformers/models/sam3_tracker/__init__.py +0 -1
- transformers/models/sam3_tracker/configuration_sam3_tracker.py +0 -1
- transformers/models/sam3_tracker/modeling_sam3_tracker.py +34 -36
- transformers/models/sam3_tracker/modular_sam3_tracker.py +0 -1
- transformers/models/sam3_tracker/processing_sam3_tracker.py +31 -47
- transformers/models/sam3_tracker_video/__init__.py +0 -1
- transformers/models/sam3_tracker_video/configuration_sam3_tracker_video.py +0 -1
- transformers/models/sam3_tracker_video/modeling_sam3_tracker_video.py +70 -70
- transformers/models/sam3_tracker_video/modular_sam3_tracker_video.py +2 -4
- transformers/models/sam3_tracker_video/processing_sam3_tracker_video.py +50 -66
- transformers/models/sam3_video/configuration_sam3_video.py +0 -1
- transformers/models/sam3_video/modeling_sam3_video.py +29 -31
- transformers/models/sam3_video/processing_sam3_video.py +25 -45
- transformers/models/sam_hq/__init__.py +1 -1
- transformers/models/sam_hq/configuration_sam_hq.py +0 -1
- transformers/models/sam_hq/modeling_sam_hq.py +39 -41
- transformers/models/sam_hq/modular_sam_hq.py +17 -19
- transformers/models/sam_hq/{processing_samhq.py → processing_sam_hq.py} +39 -28
- transformers/models/seamless_m4t/configuration_seamless_m4t.py +0 -1
- transformers/models/seamless_m4t/feature_extraction_seamless_m4t.py +8 -11
- transformers/models/seamless_m4t/modeling_seamless_m4t.py +180 -182
- transformers/models/seamless_m4t/processing_seamless_m4t.py +18 -39
- transformers/models/seamless_m4t/tokenization_seamless_m4t.py +15 -20
- transformers/models/seamless_m4t_v2/configuration_seamless_m4t_v2.py +0 -1
- transformers/models/seamless_m4t_v2/modeling_seamless_m4t_v2.py +193 -195
- transformers/models/seed_oss/configuration_seed_oss.py +23 -25
- transformers/models/seed_oss/modeling_seed_oss.py +30 -32
- transformers/models/seed_oss/modular_seed_oss.py +3 -4
- transformers/models/segformer/configuration_segformer.py +0 -10
- transformers/models/segformer/image_processing_segformer.py +39 -42
- transformers/models/segformer/image_processing_segformer_fast.py +7 -8
- transformers/models/segformer/modeling_segformer.py +24 -26
- transformers/models/segformer/modular_segformer.py +5 -6
- transformers/models/seggpt/configuration_seggpt.py +0 -1
- transformers/models/seggpt/image_processing_seggpt.py +38 -41
- transformers/models/seggpt/modeling_seggpt.py +28 -30
- transformers/models/sew/configuration_sew.py +0 -1
- transformers/models/sew/modeling_sew.py +33 -35
- transformers/models/sew/modular_sew.py +10 -12
- transformers/models/sew_d/configuration_sew_d.py +0 -1
- transformers/models/sew_d/modeling_sew_d.py +28 -30
- transformers/models/shieldgemma2/configuration_shieldgemma2.py +0 -1
- transformers/models/shieldgemma2/modeling_shieldgemma2.py +15 -17
- transformers/models/shieldgemma2/processing_shieldgemma2.py +3 -5
- transformers/models/siglip/configuration_siglip.py +0 -1
- transformers/models/siglip/image_processing_siglip.py +17 -20
- transformers/models/siglip/image_processing_siglip_fast.py +0 -1
- transformers/models/siglip/modeling_siglip.py +38 -39
- transformers/models/siglip/processing_siglip.py +2 -14
- transformers/models/siglip/tokenization_siglip.py +6 -7
- transformers/models/siglip2/configuration_siglip2.py +1 -1
- transformers/models/siglip2/image_processing_siglip2.py +15 -16
- transformers/models/siglip2/image_processing_siglip2_fast.py +4 -5
- transformers/models/siglip2/modeling_siglip2.py +54 -54
- transformers/models/siglip2/modular_siglip2.py +23 -25
- transformers/models/siglip2/processing_siglip2.py +2 -14
- transformers/models/smollm3/configuration_smollm3.py +23 -26
- transformers/models/smollm3/modeling_smollm3.py +31 -34
- transformers/models/smollm3/modular_smollm3.py +27 -29
- transformers/models/smolvlm/configuration_smolvlm.py +1 -1
- transformers/models/smolvlm/image_processing_smolvlm.py +42 -43
- transformers/models/smolvlm/image_processing_smolvlm_fast.py +12 -12
- transformers/models/smolvlm/modeling_smolvlm.py +51 -52
- transformers/models/smolvlm/modular_smolvlm.py +15 -17
- transformers/models/smolvlm/processing_smolvlm.py +15 -76
- transformers/models/smolvlm/video_processing_smolvlm.py +7 -8
- transformers/models/speech_encoder_decoder/configuration_speech_encoder_decoder.py +0 -1
- transformers/models/speech_encoder_decoder/modeling_speech_encoder_decoder.py +20 -23
- transformers/models/speech_to_text/configuration_speech_to_text.py +0 -1
- transformers/models/speech_to_text/feature_extraction_speech_to_text.py +10 -13
- transformers/models/speech_to_text/modeling_speech_to_text.py +52 -54
- transformers/models/speech_to_text/processing_speech_to_text.py +4 -30
- transformers/models/speech_to_text/tokenization_speech_to_text.py +5 -6
- transformers/models/speecht5/configuration_speecht5.py +0 -1
- transformers/models/speecht5/feature_extraction_speecht5.py +16 -37
- transformers/models/speecht5/modeling_speecht5.py +172 -174
- transformers/models/speecht5/number_normalizer.py +0 -1
- transformers/models/speecht5/processing_speecht5.py +3 -37
- transformers/models/speecht5/tokenization_speecht5.py +4 -5
- transformers/models/splinter/configuration_splinter.py +0 -1
- transformers/models/splinter/modeling_splinter.py +54 -56
- transformers/models/splinter/tokenization_splinter.py +2 -4
- transformers/models/squeezebert/configuration_squeezebert.py +0 -1
- transformers/models/squeezebert/modeling_squeezebert.py +60 -62
- transformers/models/squeezebert/tokenization_squeezebert.py +0 -1
- transformers/models/stablelm/configuration_stablelm.py +20 -23
- transformers/models/stablelm/modeling_stablelm.py +39 -42
- transformers/models/starcoder2/configuration_starcoder2.py +19 -22
- transformers/models/starcoder2/modeling_starcoder2.py +33 -36
- transformers/models/starcoder2/modular_starcoder2.py +13 -15
- transformers/models/superglue/configuration_superglue.py +3 -3
- transformers/models/superglue/image_processing_superglue.py +15 -15
- transformers/models/superglue/image_processing_superglue_fast.py +4 -5
- transformers/models/superglue/modeling_superglue.py +32 -33
- transformers/models/superpoint/image_processing_superpoint.py +15 -15
- transformers/models/superpoint/image_processing_superpoint_fast.py +4 -5
- transformers/models/superpoint/modeling_superpoint.py +13 -14
- transformers/models/swiftformer/configuration_swiftformer.py +0 -1
- transformers/models/swiftformer/modeling_swiftformer.py +12 -14
- transformers/models/swin/configuration_swin.py +0 -1
- transformers/models/swin/modeling_swin.py +58 -70
- transformers/models/swin2sr/configuration_swin2sr.py +0 -1
- transformers/models/swin2sr/image_processing_swin2sr.py +10 -13
- transformers/models/swin2sr/image_processing_swin2sr_fast.py +2 -5
- transformers/models/swin2sr/modeling_swin2sr.py +26 -28
- transformers/models/swinv2/configuration_swinv2.py +0 -1
- transformers/models/swinv2/modeling_swinv2.py +55 -67
- transformers/models/switch_transformers/configuration_switch_transformers.py +0 -1
- transformers/models/switch_transformers/modeling_switch_transformers.py +32 -33
- transformers/models/switch_transformers/modular_switch_transformers.py +29 -30
- transformers/models/t5/configuration_t5.py +0 -1
- transformers/models/t5/modeling_t5.py +75 -77
- transformers/models/t5/tokenization_t5.py +1 -3
- transformers/models/t5gemma/configuration_t5gemma.py +33 -34
- transformers/models/t5gemma/modeling_t5gemma.py +96 -99
- transformers/models/t5gemma/modular_t5gemma.py +117 -118
- transformers/models/t5gemma2/configuration_t5gemma2.py +53 -54
- transformers/models/t5gemma2/modeling_t5gemma2.py +96 -99
- transformers/models/t5gemma2/modular_t5gemma2.py +134 -135
- transformers/models/table_transformer/configuration_table_transformer.py +0 -1
- transformers/models/table_transformer/modeling_table_transformer.py +46 -48
- transformers/models/tapas/configuration_tapas.py +0 -1
- transformers/models/tapas/modeling_tapas.py +64 -66
- transformers/models/tapas/tokenization_tapas.py +115 -153
- transformers/models/textnet/configuration_textnet.py +0 -1
- transformers/models/textnet/image_processing_textnet.py +22 -25
- transformers/models/textnet/image_processing_textnet_fast.py +5 -6
- transformers/models/textnet/modeling_textnet.py +13 -14
- transformers/models/time_series_transformer/configuration_time_series_transformer.py +5 -8
- transformers/models/time_series_transformer/modeling_time_series_transformer.py +79 -81
- transformers/models/timesfm/configuration_timesfm.py +0 -1
- transformers/models/timesfm/modeling_timesfm.py +17 -19
- transformers/models/timesfm/modular_timesfm.py +16 -18
- transformers/models/timesformer/configuration_timesformer.py +0 -1
- transformers/models/timesformer/modeling_timesformer.py +13 -16
- transformers/models/timm_backbone/configuration_timm_backbone.py +0 -1
- transformers/models/timm_backbone/modeling_timm_backbone.py +4 -6
- transformers/models/timm_wrapper/configuration_timm_wrapper.py +2 -3
- transformers/models/timm_wrapper/image_processing_timm_wrapper.py +4 -5
- transformers/models/timm_wrapper/modeling_timm_wrapper.py +13 -15
- transformers/models/trocr/configuration_trocr.py +0 -1
- transformers/models/trocr/modeling_trocr.py +38 -40
- transformers/models/trocr/processing_trocr.py +5 -25
- transformers/models/tvp/configuration_tvp.py +0 -1
- transformers/models/tvp/image_processing_tvp.py +50 -52
- transformers/models/tvp/image_processing_tvp_fast.py +9 -10
- transformers/models/tvp/modeling_tvp.py +25 -27
- transformers/models/tvp/processing_tvp.py +2 -14
- transformers/models/udop/configuration_udop.py +0 -1
- transformers/models/udop/modeling_udop.py +63 -66
- transformers/models/udop/processing_udop.py +7 -26
- transformers/models/udop/tokenization_udop.py +80 -93
- transformers/models/umt5/configuration_umt5.py +0 -1
- transformers/models/umt5/modeling_umt5.py +80 -81
- transformers/models/unispeech/configuration_unispeech.py +0 -1
- transformers/models/unispeech/modeling_unispeech.py +47 -49
- transformers/models/unispeech/modular_unispeech.py +20 -22
- transformers/models/unispeech_sat/configuration_unispeech_sat.py +0 -1
- transformers/models/unispeech_sat/modeling_unispeech_sat.py +63 -65
- transformers/models/unispeech_sat/modular_unispeech_sat.py +21 -23
- transformers/models/univnet/feature_extraction_univnet.py +14 -14
- transformers/models/univnet/modeling_univnet.py +7 -8
- transformers/models/upernet/configuration_upernet.py +0 -1
- transformers/models/upernet/modeling_upernet.py +10 -13
- transformers/models/vaultgemma/__init__.py +0 -1
- transformers/models/vaultgemma/configuration_vaultgemma.py +24 -26
- transformers/models/vaultgemma/modeling_vaultgemma.py +34 -36
- transformers/models/vaultgemma/modular_vaultgemma.py +29 -31
- transformers/models/video_llama_3/image_processing_video_llama_3.py +40 -40
- transformers/models/video_llama_3/image_processing_video_llama_3_fast.py +8 -8
- transformers/models/video_llama_3/modeling_video_llama_3.py +66 -66
- transformers/models/video_llama_3/modular_video_llama_3.py +101 -112
- transformers/models/video_llama_3/processing_video_llama_3.py +5 -39
- transformers/models/video_llama_3/video_processing_video_llama_3.py +18 -18
- transformers/models/video_llava/configuration_video_llava.py +0 -1
- transformers/models/video_llava/image_processing_video_llava.py +35 -38
- transformers/models/video_llava/modeling_video_llava.py +52 -54
- transformers/models/video_llava/processing_video_llava.py +38 -78
- transformers/models/video_llava/video_processing_video_llava.py +0 -1
- transformers/models/videomae/configuration_videomae.py +0 -1
- transformers/models/videomae/image_processing_videomae.py +31 -34
- transformers/models/videomae/modeling_videomae.py +13 -15
- transformers/models/videomae/video_processing_videomae.py +0 -1
- transformers/models/vilt/configuration_vilt.py +0 -1
- transformers/models/vilt/image_processing_vilt.py +29 -30
- transformers/models/vilt/image_processing_vilt_fast.py +9 -10
- transformers/models/vilt/modeling_vilt.py +76 -78
- transformers/models/vilt/processing_vilt.py +2 -14
- transformers/models/vipllava/configuration_vipllava.py +0 -1
- transformers/models/vipllava/modeling_vipllava.py +38 -39
- transformers/models/vipllava/modular_vipllava.py +30 -32
- transformers/models/vision_encoder_decoder/configuration_vision_encoder_decoder.py +0 -1
- transformers/models/vision_encoder_decoder/modeling_vision_encoder_decoder.py +18 -21
- transformers/models/vision_text_dual_encoder/configuration_vision_text_dual_encoder.py +0 -1
- transformers/models/vision_text_dual_encoder/modeling_vision_text_dual_encoder.py +18 -21
- transformers/models/vision_text_dual_encoder/processing_vision_text_dual_encoder.py +2 -16
- transformers/models/visual_bert/configuration_visual_bert.py +0 -1
- transformers/models/visual_bert/modeling_visual_bert.py +90 -92
- transformers/models/vit/configuration_vit.py +0 -1
- transformers/models/vit/image_processing_vit.py +19 -22
- transformers/models/vit/image_processing_vit_fast.py +0 -1
- transformers/models/vit/modeling_vit.py +13 -15
- transformers/models/vit_mae/configuration_vit_mae.py +0 -1
- transformers/models/vit_mae/modeling_vit_mae.py +21 -23
- transformers/models/vit_msn/configuration_vit_msn.py +0 -1
- transformers/models/vit_msn/modeling_vit_msn.py +10 -12
- transformers/models/vitdet/configuration_vitdet.py +0 -1
- transformers/models/vitdet/modeling_vitdet.py +12 -14
- transformers/models/vitmatte/configuration_vitmatte.py +1 -4
- transformers/models/vitmatte/image_processing_vitmatte.py +15 -18
- transformers/models/vitmatte/image_processing_vitmatte_fast.py +14 -15
- transformers/models/vitmatte/modeling_vitmatte.py +9 -11
- transformers/models/vitpose/configuration_vitpose.py +3 -6
- transformers/models/vitpose/image_processing_vitpose.py +24 -25
- transformers/models/vitpose/image_processing_vitpose_fast.py +9 -10
- transformers/models/vitpose/modeling_vitpose.py +10 -12
- transformers/models/vitpose_backbone/configuration_vitpose_backbone.py +0 -1
- transformers/models/vitpose_backbone/modeling_vitpose_backbone.py +8 -10
- transformers/models/vits/configuration_vits.py +0 -1
- transformers/models/vits/modeling_vits.py +34 -35
- transformers/models/vits/tokenization_vits.py +3 -4
- transformers/models/vivit/configuration_vivit.py +0 -1
- transformers/models/vivit/image_processing_vivit.py +36 -39
- transformers/models/vivit/modeling_vivit.py +5 -7
- transformers/models/vjepa2/__init__.py +0 -1
- transformers/models/vjepa2/configuration_vjepa2.py +0 -1
- transformers/models/vjepa2/modeling_vjepa2.py +30 -32
- transformers/models/vjepa2/video_processing_vjepa2.py +0 -1
- transformers/models/voxtral/__init__.py +0 -1
- transformers/models/voxtral/configuration_voxtral.py +0 -1
- transformers/models/voxtral/modeling_voxtral.py +17 -25
- transformers/models/voxtral/modular_voxtral.py +10 -19
- transformers/models/voxtral/processing_voxtral.py +25 -48
- transformers/models/wav2vec2/configuration_wav2vec2.py +0 -1
- transformers/models/wav2vec2/feature_extraction_wav2vec2.py +7 -10
- transformers/models/wav2vec2/modeling_wav2vec2.py +67 -122
- transformers/models/wav2vec2/processing_wav2vec2.py +6 -35
- transformers/models/wav2vec2/tokenization_wav2vec2.py +20 -332
- transformers/models/wav2vec2_bert/configuration_wav2vec2_bert.py +0 -1
- transformers/models/wav2vec2_bert/modeling_wav2vec2_bert.py +49 -52
- transformers/models/wav2vec2_bert/modular_wav2vec2_bert.py +45 -48
- transformers/models/wav2vec2_bert/processing_wav2vec2_bert.py +6 -35
- transformers/models/wav2vec2_conformer/configuration_wav2vec2_conformer.py +0 -1
- transformers/models/wav2vec2_conformer/modeling_wav2vec2_conformer.py +62 -65
- transformers/models/wav2vec2_conformer/modular_wav2vec2_conformer.py +15 -18
- transformers/models/wav2vec2_phoneme/tokenization_wav2vec2_phoneme.py +16 -17
- transformers/models/wav2vec2_with_lm/processing_wav2vec2_with_lm.py +36 -55
- transformers/models/wavlm/configuration_wavlm.py +0 -1
- transformers/models/wavlm/modeling_wavlm.py +45 -48
- transformers/models/wavlm/modular_wavlm.py +4 -5
- transformers/models/whisper/configuration_whisper.py +0 -1
- transformers/models/whisper/english_normalizer.py +3 -4
- transformers/models/whisper/feature_extraction_whisper.py +9 -24
- transformers/models/whisper/generation_whisper.py +26 -48
- transformers/models/whisper/modeling_whisper.py +68 -70
- transformers/models/whisper/processing_whisper.py +3 -20
- transformers/models/whisper/tokenization_whisper.py +9 -30
- transformers/models/x_clip/configuration_x_clip.py +0 -1
- transformers/models/x_clip/modeling_x_clip.py +68 -69
- transformers/models/x_clip/processing_x_clip.py +2 -14
- transformers/models/xcodec/configuration_xcodec.py +4 -6
- transformers/models/xcodec/modeling_xcodec.py +15 -17
- transformers/models/xglm/configuration_xglm.py +0 -1
- transformers/models/xglm/modeling_xglm.py +49 -55
- transformers/models/xglm/tokenization_xglm.py +1 -4
- transformers/models/xlm/configuration_xlm.py +0 -1
- transformers/models/xlm/modeling_xlm.py +126 -130
- transformers/models/xlm/tokenization_xlm.py +3 -5
- transformers/models/xlm_roberta/configuration_xlm_roberta.py +0 -1
- transformers/models/xlm_roberta/modeling_xlm_roberta.py +90 -92
- transformers/models/xlm_roberta/modular_xlm_roberta.py +50 -53
- transformers/models/xlm_roberta/tokenization_xlm_roberta.py +1 -4
- transformers/models/xlm_roberta_xl/configuration_xlm_roberta_xl.py +0 -1
- transformers/models/xlm_roberta_xl/modeling_xlm_roberta_xl.py +91 -93
- transformers/models/xlm_roberta_xl/modular_xlm_roberta_xl.py +67 -70
- transformers/models/xlnet/configuration_xlnet.py +0 -11
- transformers/models/xlnet/modeling_xlnet.py +149 -162
- transformers/models/xlnet/tokenization_xlnet.py +1 -4
- transformers/models/xlstm/configuration_xlstm.py +3 -5
- transformers/models/xlstm/modeling_xlstm.py +62 -65
- transformers/models/xmod/configuration_xmod.py +0 -1
- transformers/models/xmod/modeling_xmod.py +98 -100
- transformers/models/yolos/configuration_yolos.py +0 -1
- transformers/models/yolos/image_processing_yolos.py +60 -62
- transformers/models/yolos/image_processing_yolos_fast.py +18 -18
- transformers/models/yolos/modeling_yolos.py +12 -14
- transformers/models/yolos/modular_yolos.py +2 -4
- transformers/models/yoso/configuration_yoso.py +0 -1
- transformers/models/yoso/modeling_yoso.py +60 -62
- transformers/models/zamba/configuration_zamba.py +0 -1
- transformers/models/zamba/modeling_zamba.py +68 -69
- transformers/models/zamba2/configuration_zamba2.py +36 -37
- transformers/models/zamba2/modeling_zamba2.py +84 -87
- transformers/models/zamba2/modular_zamba2.py +43 -45
- transformers/models/zoedepth/configuration_zoedepth.py +0 -1
- transformers/models/zoedepth/image_processing_zoedepth.py +28 -29
- transformers/models/zoedepth/image_processing_zoedepth_fast.py +11 -12
- transformers/models/zoedepth/modeling_zoedepth.py +14 -16
- transformers/pipelines/__init__.py +50 -49
- transformers/pipelines/any_to_any.py +14 -22
- transformers/pipelines/audio_utils.py +1 -2
- transformers/pipelines/base.py +12 -16
- transformers/pipelines/deprecated/__init__.py +0 -1
- transformers/pipelines/image_text_to_text.py +0 -1
- transformers/pipelines/image_to_text.py +4 -44
- transformers/pipelines/question_answering.py +4 -43
- transformers/pipelines/text_classification.py +1 -14
- transformers/pipelines/token_classification.py +1 -22
- transformers/pipelines/video_classification.py +1 -9
- transformers/pipelines/zero_shot_audio_classification.py +0 -1
- transformers/pipelines/zero_shot_classification.py +0 -6
- transformers/pipelines/zero_shot_image_classification.py +0 -7
- transformers/processing_utils.py +95 -95
- transformers/quantizers/base.py +10 -0
- transformers/quantizers/quantizer_quark.py +0 -1
- transformers/quantizers/quantizer_torchao.py +3 -3
- transformers/testing_utils.py +3 -37
- transformers/tokenization_mistral_common.py +554 -903
- transformers/tokenization_utils_base.py +109 -122
- transformers/tokenization_utils_sentencepiece.py +5 -6
- transformers/tokenization_utils_tokenizers.py +5 -5
- transformers/trainer.py +6 -9
- transformers/trainer_jit_checkpoint.py +1 -2
- transformers/training_args.py +3 -3
- transformers/utils/attention_visualizer.py +1 -1
- transformers/utils/auto_docstring.py +564 -12
- transformers/utils/doc.py +1 -1
- transformers/utils/dummy_pt_objects.py +0 -42
- transformers/utils/generic.py +1 -1
- transformers/utils/loading_report.py +3 -3
- transformers/utils/quantization_config.py +8 -10
- transformers/video_processing_utils.py +19 -20
- transformers/video_utils.py +18 -22
- {transformers-5.0.0rc2.dist-info → transformers-5.0.0rc3.dist-info}/METADATA +19 -19
- transformers-5.0.0rc3.dist-info/RECORD +2067 -0
- transformers-5.0.0rc2.dist-info/RECORD +0 -2042
- {transformers-5.0.0rc2.dist-info → transformers-5.0.0rc3.dist-info}/WHEEL +0 -0
- {transformers-5.0.0rc2.dist-info → transformers-5.0.0rc3.dist-info}/entry_points.txt +0 -0
- {transformers-5.0.0rc2.dist-info → transformers-5.0.0rc3.dist-info}/licenses/LICENSE +0 -0
- {transformers-5.0.0rc2.dist-info → transformers-5.0.0rc3.dist-info}/top_level.txt +0 -0
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# coding=utf-8
|
|
2
1
|
# Copyright 2025 The HuggingFace Inc. team
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -120,7 +119,7 @@ class RequestState:
|
|
|
120
119
|
|
|
121
120
|
# Required fields
|
|
122
121
|
request_id: str
|
|
123
|
-
initial_tokens: list[int] # Initial prompt tokens
|
|
122
|
+
initial_tokens: list[int] # Initial prompt tokens # TODO: rename this as prefill tokens
|
|
124
123
|
# Optional fields
|
|
125
124
|
record_timestamps: bool = False # Whether to record timestamps for the generated tokens
|
|
126
125
|
num_children: int = 0 # Number of children requests
|
|
@@ -138,6 +137,8 @@ class RequestState:
|
|
|
138
137
|
error: str | None = None # Error message if the request failed
|
|
139
138
|
lifespan: tuple[float, float] = (-1, -1) # (time request was no longer pending, time request finished)
|
|
140
139
|
_timestamps: list[float] = field(default_factory=list) # Timestamps of the generated tokens
|
|
140
|
+
_true_initial_tokens: int = 0 # The true number of initial tokens, useful when soft resetting requests
|
|
141
|
+
# TODO: remove the attribute above to _num_initial_tokens once initial_tokens is renamed
|
|
141
142
|
|
|
142
143
|
@property
|
|
143
144
|
def status(self) -> RequestStatus:
|
|
@@ -221,6 +222,9 @@ class RequestState:
|
|
|
221
222
|
|
|
222
223
|
def to_generation_output(self):
|
|
223
224
|
"""Convert the request state to a GenerationOutput object."""
|
|
225
|
+
if self._true_initial_tokens:
|
|
226
|
+
self.generated_tokens = self.initial_tokens[self._true_initial_tokens :] + self.generated_tokens
|
|
227
|
+
self.initial_tokens = self.initial_tokens[: self._true_initial_tokens]
|
|
224
228
|
return GenerationOutput(
|
|
225
229
|
request_id=self.request_id,
|
|
226
230
|
prompt_ids=self.initial_tokens,
|
|
@@ -243,14 +247,31 @@ class RequestState:
|
|
|
243
247
|
generated_tokens=self.generated_tokens[:],
|
|
244
248
|
allocated_blocks=self.allocated_blocks,
|
|
245
249
|
position_offset=self.position_offset,
|
|
246
|
-
|
|
250
|
+
_status=self.status,
|
|
247
251
|
max_new_tokens=self.max_new_tokens,
|
|
248
252
|
eos_token_id=self.eos_token_id,
|
|
249
253
|
streaming=self.streaming,
|
|
250
254
|
created_time=t,
|
|
251
255
|
lifespan=(t, -1),
|
|
252
|
-
|
|
256
|
+
_timestamps=None if self.timestamps is None else self.timestamps[:],
|
|
253
257
|
error=self.error,
|
|
254
258
|
record_timestamps=self.record_timestamps,
|
|
255
259
|
)
|
|
256
260
|
return new_request
|
|
261
|
+
|
|
262
|
+
def create_equivalent_initial_request(self) -> "RequestState":
|
|
263
|
+
"""Creates an equivalent new request by removing the generated tokens and adding them to the initial prompt. The
|
|
264
|
+
created request has THE SAME request_id. Notably, we can retrieve the original request from the created one with
|
|
265
|
+
the _true_initial_tokens attribute."""
|
|
266
|
+
new_state = RequestState(
|
|
267
|
+
request_id=self.request_id,
|
|
268
|
+
initial_tokens=self.initial_tokens + self.generated_tokens,
|
|
269
|
+
num_children=self.num_children,
|
|
270
|
+
record_timestamps=self.record_timestamps,
|
|
271
|
+
tokens_to_process=self.initial_tokens + self.generated_tokens,
|
|
272
|
+
max_new_tokens=self.max_new_tokens - len(self.generated_tokens),
|
|
273
|
+
eos_token_id=self.eos_token_id,
|
|
274
|
+
streaming=self.streaming,
|
|
275
|
+
)
|
|
276
|
+
new_state._true_initial_tokens = self._true_initial_tokens + len(self.initial_tokens)
|
|
277
|
+
return new_state
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# coding=utf-8
|
|
2
1
|
# Copyright 2025 The HuggingFace Inc. team
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -18,7 +17,7 @@ from collections import deque
|
|
|
18
17
|
|
|
19
18
|
from ...utils.metrics import attach_tracer, traced
|
|
20
19
|
from .cache import PagedAttentionCache
|
|
21
|
-
from .requests import RequestState, RequestStatus
|
|
20
|
+
from .requests import RequestState, RequestStatus, logger
|
|
22
21
|
|
|
23
22
|
|
|
24
23
|
class Scheduler(ABC):
|
|
@@ -37,6 +36,10 @@ class Scheduler(ABC):
|
|
|
37
36
|
self._cancellation_lock = threading.Lock()
|
|
38
37
|
self._requests_to_cancel: set[str] = set()
|
|
39
38
|
self._requests_to_fork: list[RequestState] = []
|
|
39
|
+
# This state is used to avoid infinite loops when offloading requests
|
|
40
|
+
self.block_new_requests = False
|
|
41
|
+
# This is to compute the cache used by a new request being scheduled
|
|
42
|
+
self.cache_budget_module = None if cache.num_full_attention_groups else cache.config.sliding_window
|
|
40
43
|
|
|
41
44
|
@traced
|
|
42
45
|
def add_waiting_request(self, state: RequestState):
|
|
@@ -52,10 +55,11 @@ class Scheduler(ABC):
|
|
|
52
55
|
self.waiting_requests_order.append(state.request_id)
|
|
53
56
|
|
|
54
57
|
@abstractmethod
|
|
55
|
-
def schedule_batch(self, token_budget: int) -> list[RequestState]:
|
|
56
|
-
"""Schedules requests for the next batch based on available token
|
|
57
|
-
should be processed in the current batch, considering the
|
|
58
|
-
The token_budget is the maximum number of tokens that can be processed in
|
|
58
|
+
def schedule_batch(self, token_budget: int, cache_budget: int) -> list[RequestState]:
|
|
59
|
+
"""Schedules requests for the next batch based on available token and cache budgets. This method selects which
|
|
60
|
+
requests should be processed in the current batch, considering the budgets and the scheduler's prioritization
|
|
61
|
+
rules. The token_budget is the maximum number of tokens that can be processed in a batch, and the cache_budget
|
|
62
|
+
is the maximum number of KV cache entries that can be read in a batch."""
|
|
59
63
|
|
|
60
64
|
@traced
|
|
61
65
|
def has_pending_requests(self) -> bool:
|
|
@@ -63,14 +67,13 @@ class Scheduler(ABC):
|
|
|
63
67
|
return len(self.active_requests) or len(self.waiting_requests)
|
|
64
68
|
|
|
65
69
|
@traced
|
|
66
|
-
def finish_request(self, request_id: str, evict_from_cache: bool = True):
|
|
70
|
+
def finish_request(self, request_id: str, evict_from_cache: bool = True) -> None:
|
|
67
71
|
"""Completes processing of a request and optionally frees its allocated cache blocks. This method is called
|
|
68
72
|
when a request has finished generation or encountered an error.
|
|
69
73
|
"""
|
|
70
74
|
if evict_from_cache:
|
|
71
75
|
self.cache.free_blocks(request_id)
|
|
72
|
-
|
|
73
|
-
del self.active_requests[request_id]
|
|
76
|
+
self.active_requests.pop(request_id, None)
|
|
74
77
|
|
|
75
78
|
@traced
|
|
76
79
|
def get_active_request_static_outputs(self, request_id: str) -> list[int]:
|
|
@@ -90,10 +93,8 @@ class Scheduler(ABC):
|
|
|
90
93
|
"""Remove all cancelled requests from active and waiting queues."""
|
|
91
94
|
with self._cancellation_lock:
|
|
92
95
|
for request_id in self._requests_to_cancel:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
if request_id in self.waiting_requests:
|
|
96
|
-
del self.waiting_requests[request_id]
|
|
96
|
+
self.active_requests.pop(request_id, None)
|
|
97
|
+
self.waiting_requests.pop(request_id, None)
|
|
97
98
|
if request_id in self.waiting_requests_order:
|
|
98
99
|
self.waiting_requests_order.remove(request_id)
|
|
99
100
|
self.cache.free_blocks(request_id)
|
|
@@ -107,7 +108,7 @@ class Scheduler(ABC):
|
|
|
107
108
|
)
|
|
108
109
|
|
|
109
110
|
@traced
|
|
110
|
-
def _allocate_blocks_if_needed(self, state: RequestState) -> bool:
|
|
111
|
+
def _allocate_blocks_if_needed(self, state: RequestState, len_next_tokens: int) -> bool:
|
|
111
112
|
"""Allocate additional cache blocks for a request if the currently allocated blocks are insufficient to
|
|
112
113
|
accommodate the next tokens. It calculates how many blocks are needed based on the request's current
|
|
113
114
|
cache occupancy and the number of tokens to be processed. The allocation itself is done by the CacheAllocator
|
|
@@ -116,20 +117,16 @@ class Scheduler(ABC):
|
|
|
116
117
|
# 1. we check that the occupancy is less than the requested length
|
|
117
118
|
# 2. we allocate enough blocks to cover the requested length
|
|
118
119
|
current_len = state.current_len()
|
|
119
|
-
len_next_tokens = len(state.tokens_to_process)
|
|
120
120
|
occupancy = state.allocated_blocks * self.cache.block_size - current_len
|
|
121
121
|
if occupancy < len_next_tokens or state.allocated_blocks == 0:
|
|
122
122
|
blocks_needed = ((len_next_tokens - occupancy + 1) // self.cache.block_size) + 1
|
|
123
|
-
allocated = self.cache.allocate_blocks(blocks_needed, state)
|
|
123
|
+
allocated = self.cache.allocate_blocks(blocks_needed, state.request_id, state.allocated_blocks)
|
|
124
124
|
if allocated is None:
|
|
125
125
|
return False
|
|
126
126
|
state.allocated_blocks += allocated
|
|
127
127
|
return True
|
|
128
128
|
|
|
129
|
-
|
|
130
|
-
def _prepare_request_for_processing(
|
|
131
|
-
self, state: RequestState, token_budget: int, request_ids_to_remove_from_waiting: set[str]
|
|
132
|
-
) -> None:
|
|
129
|
+
def _infer_request_tokens(self, state: RequestState, request_ids_to_remove_from_waiting: set[str]) -> list[int]:
|
|
133
130
|
"""Prepares a request for processing in the current batch. If prefix sharing is enabled, and the request was
|
|
134
131
|
pending, this is where we look for a prefix match and split the request if found."""
|
|
135
132
|
# If prefix sharing is enabled, we look for a prefix match and split the request if found
|
|
@@ -139,6 +136,8 @@ class Scheduler(ABC):
|
|
|
139
136
|
self.active_requests[state.request_id] = state
|
|
140
137
|
request_ids_to_remove_from_waiting.add(state.request_id)
|
|
141
138
|
state.status = RequestStatus.SPLIT_PENDING_REMAINDER
|
|
139
|
+
# We keep track of the number of allocated blocks to avoid double allocation
|
|
140
|
+
state.allocated_blocks += prefill_length // self.cache.block_size
|
|
142
141
|
# Even if we match the whole request, we keep at least 1 token to start decoding
|
|
143
142
|
prefill_length = min(prefill_length, len(state.tokens_to_process) - 1)
|
|
144
143
|
state.remaining_prefill_tokens = state.tokens_to_process[prefill_length:]
|
|
@@ -151,8 +150,19 @@ class Scheduler(ABC):
|
|
|
151
150
|
# Otherwise, the tokens to process are the prompt ids, which are the full prompt or the last predicted tokens
|
|
152
151
|
else:
|
|
153
152
|
request_tokens = state.tokens_to_process
|
|
154
|
-
|
|
155
|
-
|
|
153
|
+
return request_tokens
|
|
154
|
+
|
|
155
|
+
def _schedule_request(
|
|
156
|
+
self,
|
|
157
|
+
state: RequestState,
|
|
158
|
+
request_tokens: list[int],
|
|
159
|
+
token_budget: int,
|
|
160
|
+
request_ids_to_remove_from_waiting: set[str],
|
|
161
|
+
) -> None:
|
|
162
|
+
"""Schedules a request for the current batch, updating the request's status according to the token budget left.
|
|
163
|
+
If the request has children (for parallel decoding), it ensures at least one token remains before the request is
|
|
164
|
+
forked."""
|
|
165
|
+
# If the request has one or more children we make sure not to prefill it entirely
|
|
156
166
|
if state.num_children > 0 and token_budget >= len(request_tokens) - 1:
|
|
157
167
|
token_budget = len(request_tokens) - 1
|
|
158
168
|
self._requests_to_fork.append(state)
|
|
@@ -196,7 +206,7 @@ class FIFOScheduler(Scheduler):
|
|
|
196
206
|
self.safety_margin = safety_margin
|
|
197
207
|
|
|
198
208
|
@traced
|
|
199
|
-
def schedule_batch(self, token_budget: int) -> list[RequestState]:
|
|
209
|
+
def schedule_batch(self, token_budget: int, cache_budget: int) -> list[RequestState] | None:
|
|
200
210
|
priority_states: list[RequestState] = []
|
|
201
211
|
second_priority_states: list[RequestState] = []
|
|
202
212
|
scheduled_requests = []
|
|
@@ -208,33 +218,60 @@ class FIFOScheduler(Scheduler):
|
|
|
208
218
|
second_priority_states.append(state)
|
|
209
219
|
|
|
210
220
|
# Add waiting requests to second priority
|
|
211
|
-
|
|
212
|
-
|
|
221
|
+
if not self.block_new_requests:
|
|
222
|
+
for req_id in self.waiting_requests_order:
|
|
223
|
+
second_priority_states.append(self.waiting_requests[req_id])
|
|
213
224
|
|
|
214
225
|
candidates = priority_states + second_priority_states
|
|
215
226
|
request_ids_to_remove_from_waiting = set()
|
|
216
227
|
safety_margins = self.safety_margin * self.cache.num_blocks
|
|
217
228
|
|
|
229
|
+
one_allocation_failed = False
|
|
230
|
+
|
|
218
231
|
for state in candidates:
|
|
219
232
|
# If we are out the safety margin, we only accept decoding requests or the first prefill request
|
|
220
233
|
num_free_blocks = self.cache.get_num_free_blocks()
|
|
221
234
|
outside_safety_margin = num_free_blocks < safety_margins
|
|
222
235
|
if outside_safety_margin and scheduled_requests and state.status != RequestStatus.DECODING:
|
|
236
|
+
logger.info(
|
|
237
|
+
f"Outside safety margin, breaking out of scheduling loop. {num_free_blocks = } {safety_margins = }"
|
|
238
|
+
)
|
|
223
239
|
break
|
|
224
240
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
241
|
+
# Check cache budget
|
|
242
|
+
cache_needed = state.current_len()
|
|
243
|
+
cache_needed = (
|
|
244
|
+
cache_needed if self.cache_budget_module is None else cache_needed % self.cache_budget_module
|
|
245
|
+
)
|
|
246
|
+
if cache_budget < cache_needed:
|
|
247
|
+
continue
|
|
248
|
+
|
|
249
|
+
# Infer the tokens that will be present in the batch if token budget is enough
|
|
250
|
+
request_tokens = self._infer_request_tokens(state, request_ids_to_remove_from_waiting)
|
|
251
|
+
# Account for token budget
|
|
252
|
+
request_len = min(len(request_tokens), token_budget)
|
|
253
|
+
# Check there will be enough cache for the new tokens
|
|
254
|
+
allocation_successful = self._allocate_blocks_if_needed(state, request_len)
|
|
255
|
+
|
|
256
|
+
# If the allocation would not be successful, we move on to the next request
|
|
257
|
+
if not allocation_successful:
|
|
258
|
+
one_allocation_failed = True
|
|
259
|
+
# If we have reached a request that was waiting, all subsequent requests are also waiting, and will need
|
|
260
|
+
# allocation as well. So if there is no more free blocks, we can safely break out of the loop.
|
|
261
|
+
if num_free_blocks == 0 and state.request_id in self.waiting_requests:
|
|
262
|
+
logger.info(f"Breaking mid-loop for request {state.request_id} because the cache is full")
|
|
230
263
|
break
|
|
231
264
|
continue
|
|
232
265
|
|
|
233
|
-
#
|
|
266
|
+
# If this point is reached, it means we can safely schedule the request
|
|
267
|
+
self._schedule_request(state, request_tokens, token_budget, request_ids_to_remove_from_waiting)
|
|
268
|
+
request_len = len(state.tokens_to_process) # it may change after scheduling
|
|
234
269
|
scheduled_requests.append(state)
|
|
235
270
|
|
|
236
|
-
# Update the token
|
|
271
|
+
# Update the token and cache budgets
|
|
237
272
|
token_budget -= request_len
|
|
273
|
+
cache_budget -= cache_needed
|
|
274
|
+
|
|
238
275
|
# If using prefix sharing, we make note of the blocks that will be computed in the forward pass
|
|
239
276
|
if self.cache.allow_block_sharing:
|
|
240
277
|
tokens_in_current_block = state.current_len() % self.cache.block_size
|
|
@@ -248,18 +285,24 @@ class FIFOScheduler(Scheduler):
|
|
|
248
285
|
if was_waiting:
|
|
249
286
|
request_ids_to_remove_from_waiting.add(req_id)
|
|
250
287
|
|
|
251
|
-
# Early exit of the loop if we have no
|
|
252
|
-
if token_budget == 0:
|
|
288
|
+
# Early exit of the loop if we have no budget left
|
|
289
|
+
if token_budget == 0 or cache_budget == 0:
|
|
253
290
|
break
|
|
254
291
|
|
|
292
|
+
# We remove waiting requests before checking requests were scheduled, because there might have been prefill matches
|
|
255
293
|
self.waiting_requests_order = deque(
|
|
256
294
|
[req_id for req_id in self.waiting_requests_order if req_id not in request_ids_to_remove_from_waiting]
|
|
257
295
|
)
|
|
258
296
|
|
|
297
|
+
# If no requests were scheduled and the cache is full, we signal it by returning None
|
|
298
|
+
if not scheduled_requests and one_allocation_failed:
|
|
299
|
+
return None
|
|
300
|
+
|
|
259
301
|
return scheduled_requests
|
|
260
302
|
|
|
261
303
|
|
|
262
304
|
# FIXME: prioritize adding from waiting reqs before scheduling `RequestStatus.DECODING` when cache space allows it
|
|
305
|
+
# TODO: further consolidate the code by making more of it common. The reference Scheduler is FIFO, not this one.
|
|
263
306
|
@attach_tracer()
|
|
264
307
|
class PrefillFirstScheduler(Scheduler):
|
|
265
308
|
"""Scheduler that prioritizes split prefill requests over decoding requests. This scheduler ensures that split
|
|
@@ -267,7 +310,7 @@ class PrefillFirstScheduler(Scheduler):
|
|
|
267
310
|
decoding requests."""
|
|
268
311
|
|
|
269
312
|
@traced
|
|
270
|
-
def schedule_batch(self, token_budget: int) -> list[RequestState]:
|
|
313
|
+
def schedule_batch(self, token_budget: int, cache_budget: int) -> list[RequestState] | None:
|
|
271
314
|
priority_states: list[RequestState] = []
|
|
272
315
|
second_priority_states: list[RequestState] = []
|
|
273
316
|
scheduled_requests = []
|
|
@@ -280,27 +323,47 @@ class PrefillFirstScheduler(Scheduler):
|
|
|
280
323
|
second_priority_states.append(state)
|
|
281
324
|
|
|
282
325
|
# Add waiting requests to second priority
|
|
283
|
-
|
|
284
|
-
|
|
326
|
+
if not self.block_new_requests:
|
|
327
|
+
for req_id in self.waiting_requests_order:
|
|
328
|
+
second_priority_states.append(self.waiting_requests[req_id])
|
|
285
329
|
|
|
286
330
|
candidates = priority_states + second_priority_states
|
|
287
|
-
|
|
288
331
|
request_ids_to_remove_from_waiting = set()
|
|
332
|
+
one_allocation_failed = False
|
|
289
333
|
|
|
290
334
|
for state in candidates:
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
335
|
+
# Check cache budget
|
|
336
|
+
cache_needed = state.current_len()
|
|
337
|
+
cache_needed = (
|
|
338
|
+
cache_needed if self.cache_budget_module is None else cache_needed % self.cache_budget_module
|
|
339
|
+
)
|
|
340
|
+
if cache_budget < cache_needed:
|
|
341
|
+
continue
|
|
342
|
+
|
|
343
|
+
# Infer the tokens that will be present in the batch if token budget is enough
|
|
344
|
+
request_tokens = self._infer_request_tokens(state, request_ids_to_remove_from_waiting)
|
|
345
|
+
# Account for token budget
|
|
346
|
+
request_len = min(len(request_tokens), token_budget)
|
|
347
|
+
# Check there will be enough cache for the new tokens
|
|
348
|
+
allocation_successful = self._allocate_blocks_if_needed(state, request_len)
|
|
349
|
+
|
|
350
|
+
# If the allocation would not be successful, we move on to the next request
|
|
351
|
+
if not allocation_successful:
|
|
352
|
+
one_allocation_failed = True
|
|
353
|
+
# If the request was waiting, all requests afterwards will need allocation, so we break if the cache is full
|
|
354
|
+
if state.request_id in self.waiting_requests and self.cache.get_num_free_blocks() == 0:
|
|
296
355
|
break
|
|
297
356
|
continue
|
|
298
357
|
|
|
299
|
-
#
|
|
358
|
+
# If this point is reached, it means we can safely schedule the request
|
|
359
|
+
self._schedule_request(state, request_tokens, token_budget, request_ids_to_remove_from_waiting)
|
|
360
|
+
request_len = len(state.tokens_to_process) # it may change after scheduling
|
|
300
361
|
scheduled_requests.append(state)
|
|
301
362
|
|
|
302
|
-
# Update the token
|
|
363
|
+
# Update the token and cache budgets
|
|
303
364
|
token_budget -= request_len
|
|
365
|
+
cache_budget -= cache_needed
|
|
366
|
+
|
|
304
367
|
# If using prefix sharing, we make note of the blocks that will be computed in the forward pass
|
|
305
368
|
if self.cache.allow_block_sharing:
|
|
306
369
|
tokens_in_current_block = state.current_len() % self.cache.block_size
|
|
@@ -310,18 +373,23 @@ class PrefillFirstScheduler(Scheduler):
|
|
|
310
373
|
|
|
311
374
|
# Remove the request from the waiting queue and mark it as removed
|
|
312
375
|
req_id = state.request_id
|
|
313
|
-
|
|
314
|
-
|
|
376
|
+
was_waiting = self.waiting_requests.pop(req_id, None) is not None
|
|
377
|
+
if was_waiting:
|
|
315
378
|
request_ids_to_remove_from_waiting.add(req_id)
|
|
316
379
|
|
|
317
|
-
# Early exit of the loop if we have no
|
|
318
|
-
if token_budget == 0:
|
|
380
|
+
# Early exit of the loop if we have no budget left
|
|
381
|
+
if token_budget == 0 or cache_budget == 0:
|
|
319
382
|
break
|
|
320
383
|
|
|
384
|
+
# We remove waiting requests before checking requests were scheduled, because there might have been prefill matches
|
|
321
385
|
self.waiting_requests_order = deque(
|
|
322
386
|
[req_id for req_id in self.waiting_requests_order if req_id not in request_ids_to_remove_from_waiting]
|
|
323
387
|
)
|
|
324
388
|
|
|
389
|
+
# If no requests were scheduled and the cache is full, we signal it by returning None
|
|
390
|
+
if not scheduled_requests and one_allocation_failed:
|
|
391
|
+
return None
|
|
392
|
+
|
|
325
393
|
return scheduled_requests
|
|
326
394
|
|
|
327
395
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# coding=utf-8
|
|
2
1
|
# Copyright 2024 The HuggingFace Inc. team and Google DeepMind.
|
|
3
2
|
#
|
|
4
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1543,133 +1542,6 @@ class PrefixConstrainedLogitsProcessor(LogitsProcessor):
|
|
|
1543
1542
|
return scores_processed
|
|
1544
1543
|
|
|
1545
1544
|
|
|
1546
|
-
class HammingDiversityLogitsProcessor(LogitsProcessor):
|
|
1547
|
-
r"""
|
|
1548
|
-
[`LogitsProcessor`] that enforces diverse beam search.
|
|
1549
|
-
Note that this logits processor is only effective for [`PreTrainedModel.group_beam_search`]. See [Diverse Beam
|
|
1550
|
-
Search: Decoding Diverse Solutions from Neural Sequence Models](https://huggingface.co/papers/1610.02424) for more
|
|
1551
|
-
details.
|
|
1552
|
-
Traditional beam search often generates very similar sequences across different beams.
|
|
1553
|
-
`HammingDiversityLogitsProcessor` addresses this by penalizing beams that generate tokens already chosen by other
|
|
1554
|
-
beams in the same time step.
|
|
1555
|
-
Args:
|
|
1556
|
-
diversity_penalty (`float`):
|
|
1557
|
-
This value is subtracted from a beam's score if it generates a token same as any beam from other group at a
|
|
1558
|
-
particular time. A higher `diversity_penalty` will enforce greater diversity among the beams. Adjusting
|
|
1559
|
-
this value can help strike a balance between diversity and natural likelihood.
|
|
1560
|
-
num_beams (`int`):
|
|
1561
|
-
Number of beams for beam search. 1 means no beam search.
|
|
1562
|
-
num_beam_groups (`int`):
|
|
1563
|
-
Number of groups to divide `num_beams` into in order to ensure diversity among different groups of beams.
|
|
1564
|
-
[this paper](https://huggingface.co/papers/1610.02424) for more details.
|
|
1565
|
-
Examples:
|
|
1566
|
-
```python
|
|
1567
|
-
>>> from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
|
|
1568
|
-
>>> import torch
|
|
1569
|
-
>>> # Initialize the model and tokenizer
|
|
1570
|
-
>>> tokenizer = AutoTokenizer.from_pretrained("google-t5/t5-base")
|
|
1571
|
-
>>> model = AutoModelForSeq2SeqLM.from_pretrained("google-t5/t5-base")
|
|
1572
|
-
>>> # A long text about the solar system
|
|
1573
|
-
>>> text = (
|
|
1574
|
-
... "The Solar System is a gravitationally bound system comprising the Sun and the objects that orbit it, "
|
|
1575
|
-
... "either directly or indirectly. Of the objects that orbit the Sun directly, the largest are the eight "
|
|
1576
|
-
... "planets, with the remainder being smaller objects, such as the five dwarf planets and small Solar System "
|
|
1577
|
-
... "bodies. The Solar System formed 4.6 billion years ago from the gravitational collapse of a giant "
|
|
1578
|
-
... "interstellar molecular cloud."
|
|
1579
|
-
... )
|
|
1580
|
-
>>> inputs = tokenizer("summarize: " + text, return_tensors="pt")
|
|
1581
|
-
>>> # Generate diverse summary
|
|
1582
|
-
>>> outputs_diverse = model.generate(
|
|
1583
|
-
... **inputs,
|
|
1584
|
-
... num_beam_groups=2,
|
|
1585
|
-
... diversity_penalty=10.0,
|
|
1586
|
-
... max_length=100,
|
|
1587
|
-
... num_beams=4,
|
|
1588
|
-
... num_return_sequences=2,
|
|
1589
|
-
... )
|
|
1590
|
-
>>> summaries_diverse = tokenizer.batch_decode(outputs_diverse, skip_special_tokens=True)
|
|
1591
|
-
>>> # Generate non-diverse summary
|
|
1592
|
-
>>> outputs_non_diverse = model.generate(
|
|
1593
|
-
... **inputs,
|
|
1594
|
-
... max_length=100,
|
|
1595
|
-
... num_beams=4,
|
|
1596
|
-
... num_return_sequences=2,
|
|
1597
|
-
... )
|
|
1598
|
-
>>> summary_non_diverse = tokenizer.batch_decode(outputs_non_diverse, skip_special_tokens=True)
|
|
1599
|
-
>>> # With `diversity_penalty`, the resulting beams are much more diverse
|
|
1600
|
-
>>> print(summary_non_diverse)
|
|
1601
|
-
['the solar system formed 4.6 billion years ago from the collapse of a giant interstellar molecular cloud. of the objects that orbit the Sun directly, the largest are the eight planets.',
|
|
1602
|
-
'the Solar System formed 4.6 billion years ago from the collapse of a giant interstellar molecular cloud. of the objects that orbit the Sun directly, the largest are the eight planets.']
|
|
1603
|
-
>>> print(summaries_diverse)
|
|
1604
|
-
['the solar system formed 4.6 billion years ago from the collapse of a giant interstellar molecular cloud. of the objects that orbit the Sun directly, the largest are the eight planets.',
|
|
1605
|
-
'the solar system formed 4.6 billion years ago from the collapse of a giant interstellar molecular cloud. of the objects that orbit the Sun directly, the largest are the eight planets. the rest of the objects are smaller objects, such as the five dwarf planets and small solar system bodies.']
|
|
1606
|
-
```
|
|
1607
|
-
"""
|
|
1608
|
-
|
|
1609
|
-
def __init__(self, diversity_penalty: float, num_beams: int, num_beam_groups: int):
|
|
1610
|
-
logger.warning_once(
|
|
1611
|
-
"`HammingDiversityLogitsProcessor` is deprecated and will be removed in v4.62.0, as constrained beam search has been moved to the Hub: https://hf.co/transformers-community/constrained-beam-search."
|
|
1612
|
-
)
|
|
1613
|
-
if not isinstance(diversity_penalty, float) or (not diversity_penalty > 0.0):
|
|
1614
|
-
raise ValueError("`diversity_penalty` should be a float strictly larger than 0.")
|
|
1615
|
-
self._diversity_penalty = diversity_penalty
|
|
1616
|
-
if not isinstance(num_beams, int) or num_beams < 2:
|
|
1617
|
-
raise ValueError("`num_beams` should be an integer strictly larger than 1.")
|
|
1618
|
-
self._num_beams = num_beams
|
|
1619
|
-
if not isinstance(num_beam_groups, int) or num_beam_groups < 2:
|
|
1620
|
-
raise ValueError("`num_beam_groups` should be an integer strictly larger than 1.")
|
|
1621
|
-
if num_beam_groups > num_beams:
|
|
1622
|
-
raise ValueError("`beam_groups` has to be smaller or equal to `num_beams`.")
|
|
1623
|
-
self._num_sub_beams = num_beams // num_beam_groups
|
|
1624
|
-
|
|
1625
|
-
def __call__(
|
|
1626
|
-
self,
|
|
1627
|
-
input_ids: torch.LongTensor,
|
|
1628
|
-
scores: torch.FloatTensor,
|
|
1629
|
-
current_tokens: torch.LongTensor,
|
|
1630
|
-
beam_group_idx: int,
|
|
1631
|
-
) -> torch.FloatTensor:
|
|
1632
|
-
r"""
|
|
1633
|
-
Args:
|
|
1634
|
-
input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):
|
|
1635
|
-
Indices of input sequence tokens in the vocabulary. [What are input IDs?](../glossary#input-ids)
|
|
1636
|
-
scores (`torch.FloatTensor` of shape `(batch_size, config.vocab_size)`):
|
|
1637
|
-
Prediction scores of a language modeling head. These can be logits for each vocabulary when not using
|
|
1638
|
-
beam search or log softmax for each vocabulary token when using beam search
|
|
1639
|
-
current_tokens (`torch.LongTensor` of shape `(batch_size)`):
|
|
1640
|
-
Indices of input sequence tokens in the vocabulary, corresponding to the tokens selected by the other
|
|
1641
|
-
beam groups in the current generation step.
|
|
1642
|
-
beam_group_idx (`int`):
|
|
1643
|
-
The index of the beam group currently being processed.
|
|
1644
|
-
Return:
|
|
1645
|
-
`torch.FloatTensor` of shape `(batch_size, config.vocab_size)`:
|
|
1646
|
-
The processed prediction scores.
|
|
1647
|
-
"""
|
|
1648
|
-
# hamming diversity: penalise using same token in current group which was used in previous groups at
|
|
1649
|
-
# the same time step
|
|
1650
|
-
batch_size = current_tokens.shape[0] // self._num_beams
|
|
1651
|
-
group_start_idx = beam_group_idx * self._num_sub_beams
|
|
1652
|
-
group_end_idx = min(group_start_idx + self._num_sub_beams, self._num_beams)
|
|
1653
|
-
group_size = group_end_idx - group_start_idx
|
|
1654
|
-
vocab_size = scores.shape[-1]
|
|
1655
|
-
|
|
1656
|
-
if group_start_idx == 0:
|
|
1657
|
-
return scores
|
|
1658
|
-
|
|
1659
|
-
scores_processed = scores.clone()
|
|
1660
|
-
for batch_idx in range(batch_size):
|
|
1661
|
-
# predicted tokens of last time step of previous groups
|
|
1662
|
-
previous_group_tokens = current_tokens[
|
|
1663
|
-
batch_idx * self._num_beams : batch_idx * self._num_beams + group_start_idx
|
|
1664
|
-
]
|
|
1665
|
-
token_frequency = torch.bincount(previous_group_tokens, minlength=vocab_size).to(scores.device)
|
|
1666
|
-
scores_processed[batch_idx * group_size : (batch_idx + 1) * group_size] -= (
|
|
1667
|
-
self._diversity_penalty * token_frequency
|
|
1668
|
-
)
|
|
1669
|
-
|
|
1670
|
-
return scores_processed
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
1545
|
class ForcedBOSTokenLogitsProcessor(LogitsProcessor):
|
|
1674
1546
|
r"""
|
|
1675
1547
|
[`LogitsProcessor`] that enforces the specified token as the first generated token. Used with encoder-decoder
|
transformers/generation/utils.py
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# coding=utf-8
|
|
2
1
|
# Copyright 2020 The Google AI Language Team Authors, Facebook AI Research authors and The HuggingFace Inc. team.
|
|
3
2
|
# Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.
|
|
4
3
|
#
|
|
@@ -21,7 +20,7 @@ import warnings
|
|
|
21
20
|
from collections.abc import Callable
|
|
22
21
|
from contextlib import contextmanager
|
|
23
22
|
from dataclasses import dataclass
|
|
24
|
-
from typing import TYPE_CHECKING, Any, Optional
|
|
23
|
+
from typing import TYPE_CHECKING, Any, Optional
|
|
25
24
|
|
|
26
25
|
import torch
|
|
27
26
|
import torch.distributed as dist
|
|
@@ -332,9 +331,9 @@ class GenerateBeamEncoderDecoderOutput(ModelOutput):
|
|
|
332
331
|
|
|
333
332
|
|
|
334
333
|
# Typing shortcuts
|
|
335
|
-
GenerateNonBeamOutput =
|
|
336
|
-
GenerateBeamOutput =
|
|
337
|
-
GenerateOutput =
|
|
334
|
+
GenerateNonBeamOutput = GenerateDecoderOnlyOutput | GenerateEncoderDecoderOutput
|
|
335
|
+
GenerateBeamOutput = GenerateBeamDecoderOnlyOutput | GenerateBeamEncoderDecoderOutput
|
|
336
|
+
GenerateOutput = GenerateNonBeamOutput | GenerateBeamOutput
|
|
338
337
|
|
|
339
338
|
|
|
340
339
|
class GenerationMixin(ContinuousMixin):
|
|
@@ -1792,26 +1791,15 @@ class GenerationMixin(ContinuousMixin):
|
|
|
1792
1791
|
generation_config = copy.deepcopy(generation_config)
|
|
1793
1792
|
|
|
1794
1793
|
# First set values from the loaded `self.generation_config`, then set default values (BC)
|
|
1795
|
-
#
|
|
1796
|
-
#
|
|
1794
|
+
#
|
|
1795
|
+
# Only update values that are `None`, i.e. these values were not explicitly set by users to `generate()`,
|
|
1796
|
+
# or values that are not present in the current config, i.e. custom entries that were set via `**kwargs`.
|
|
1797
|
+
# Thus we use the specific kwargs `defaults_only=True` (`None` values only) and `allow_custom_entries=True`
|
|
1798
|
+
# (custom entries are carried over).
|
|
1797
1799
|
global_defaults = self.generation_config._get_default_generation_params()
|
|
1798
|
-
generation_config.update(**self.generation_config.to_dict(), defaults_only=True)
|
|
1800
|
+
generation_config.update(**self.generation_config.to_dict(), defaults_only=True, allow_custom_entries=True)
|
|
1799
1801
|
generation_config.update(**global_defaults, defaults_only=True)
|
|
1800
1802
|
|
|
1801
|
-
# Due to some values being boolean and not `None`, we need additional logic to overwrite
|
|
1802
|
-
# them explicitly (`defaults_only=False`) on the condition that it's only a previous
|
|
1803
|
-
# default value
|
|
1804
|
-
default_generation_config = GenerationConfig()
|
|
1805
|
-
generation_config.update(
|
|
1806
|
-
**{
|
|
1807
|
-
k: v
|
|
1808
|
-
for k, v in self.generation_config.to_dict().items()
|
|
1809
|
-
if isinstance(v, bool)
|
|
1810
|
-
and hasattr(default_generation_config, k)
|
|
1811
|
-
and getattr(generation_config, k, None) == getattr(default_generation_config, k)
|
|
1812
|
-
}
|
|
1813
|
-
)
|
|
1814
|
-
|
|
1815
1803
|
# Finally, if there are any kwargs, update config with it -> highest priority at the end
|
|
1816
1804
|
model_kwargs = generation_config.update(**kwargs)
|
|
1817
1805
|
|
|
@@ -1914,6 +1902,7 @@ class GenerationMixin(ContinuousMixin):
|
|
|
1914
1902
|
# NOTE: remove xlnet/reformer when the models are deprecated, non-standard model architecture/cache name
|
|
1915
1903
|
return not cls._is_stateful and all(
|
|
1916
1904
|
special_model_name not in cls.__name__.lower()
|
|
1905
|
+
or "minimaxm2" in cls.__name__.lower() # name clash between minimax and minimax m2
|
|
1917
1906
|
for special_model_name in [
|
|
1918
1907
|
"reformer",
|
|
1919
1908
|
"minimax",
|
|
@@ -2429,7 +2418,7 @@ class GenerationMixin(ContinuousMixin):
|
|
|
2429
2418
|
raise NotImplementedError(
|
|
2430
2419
|
f"assistant_model is not supported for continuous batching. Got {assistant_model = }"
|
|
2431
2420
|
)
|
|
2432
|
-
if streamer is not None: # TODO:
|
|
2421
|
+
if streamer is not None: # TODO: actually this could be supported
|
|
2433
2422
|
raise NotImplementedError(f"streaming is not supported for continuous batching. Got {streamer = }")
|
|
2434
2423
|
if negative_prompt_ids is not None:
|
|
2435
2424
|
raise NotImplementedError(
|
|
@@ -2485,9 +2474,11 @@ class GenerationMixin(ContinuousMixin):
|
|
|
2485
2474
|
generation_config, model_kwargs = self._prepare_generation_config(generation_config, **kwargs)
|
|
2486
2475
|
|
|
2487
2476
|
generation_mode = generation_config.get_generation_mode(assistant_model)
|
|
2477
|
+
deprecated_mode_repo = self._get_deprecated_gen_repo(generation_mode, trust_remote_code, custom_generate)
|
|
2478
|
+
|
|
2488
2479
|
if isinstance(custom_generate, Callable):
|
|
2489
2480
|
decoding_method = custom_generate
|
|
2490
|
-
|
|
2481
|
+
elif deprecated_mode_repo is None:
|
|
2491
2482
|
# type() required to access the unbound class-level method
|
|
2492
2483
|
decoding_method = getattr(type(self), GENERATION_MODES_MAPPING[generation_mode])
|
|
2493
2484
|
|
|
@@ -2498,7 +2489,7 @@ class GenerationMixin(ContinuousMixin):
|
|
|
2498
2489
|
# NOTE: This must come after initializing generation_config, since we need it to determine if this is a deprecated mode.
|
|
2499
2490
|
# It must also be before any preparation steps, since Hub repos expect to be loaded before preparation steps.
|
|
2500
2491
|
# TODO joao, manuel: remove this in v4.62.0
|
|
2501
|
-
if deprecated_mode_repo
|
|
2492
|
+
if deprecated_mode_repo is not None:
|
|
2502
2493
|
return GenerationMixin.generate(
|
|
2503
2494
|
self,
|
|
2504
2495
|
inputs=inputs,
|
|
@@ -3875,7 +3866,6 @@ class GenerationMixin(ContinuousMixin):
|
|
|
3875
3866
|
model_kwargs["cache_position"] = torch.arange(
|
|
3876
3867
|
past_length, current_length, dtype=torch.long, device=input_chunk.device
|
|
3877
3868
|
)
|
|
3878
|
-
model_kwargs["position_ids"] = model_kwargs["cache_position"].unsqueeze(0)
|
|
3879
3869
|
model_inputs = self.prepare_inputs_for_generation(input_chunk, **model_kwargs)
|
|
3880
3870
|
|
|
3881
3871
|
outputs = model_forward(**model_inputs, return_dict=True)
|