transformers 5.0.0rc1__py3-none-any.whl → 5.0.0rc2__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 +20 -1
- transformers/activations.py +1 -1
- transformers/audio_utils.py +0 -1
- transformers/cache_utils.py +17 -15
- transformers/configuration_utils.py +114 -70
- transformers/conversion_mapping.py +68 -5
- transformers/core_model_loading.py +201 -35
- transformers/dependency_versions_table.py +1 -1
- transformers/feature_extraction_utils.py +54 -22
- transformers/generation/candidate_generator.py +79 -31
- transformers/generation/configuration_utils.py +162 -122
- transformers/generation/continuous_batching/cache.py +47 -18
- transformers/generation/continuous_batching/cache_manager.py +131 -34
- transformers/generation/continuous_batching/continuous_api.py +101 -64
- transformers/generation/continuous_batching/requests.py +28 -1
- transformers/generation/continuous_batching/scheduler.py +11 -4
- transformers/generation/stopping_criteria.py +1 -1
- transformers/generation/utils.py +108 -110
- transformers/generation/watermarking.py +8 -5
- transformers/image_processing_base.py +2 -12
- transformers/image_processing_utils_fast.py +15 -4
- transformers/initialization.py +37 -0
- transformers/integrations/__init__.py +12 -0
- transformers/integrations/accelerate.py +44 -111
- transformers/integrations/aqlm.py +3 -5
- transformers/integrations/awq.py +2 -5
- transformers/integrations/bitnet.py +5 -8
- transformers/integrations/bitsandbytes.py +16 -15
- transformers/integrations/deepspeed.py +18 -3
- transformers/integrations/eetq.py +3 -5
- transformers/integrations/fbgemm_fp8.py +1 -1
- transformers/integrations/finegrained_fp8.py +6 -16
- transformers/integrations/flash_attention.py +2 -2
- transformers/integrations/higgs.py +2 -5
- transformers/integrations/hub_kernels.py +23 -5
- transformers/integrations/integration_utils.py +35 -0
- transformers/integrations/mistral.py +12 -0
- transformers/integrations/moe.py +240 -0
- transformers/integrations/mxfp4.py +4 -10
- transformers/integrations/peft.py +5 -0
- transformers/integrations/quanto.py +5 -2
- transformers/integrations/spqr.py +3 -5
- transformers/integrations/tensor_parallel.py +167 -221
- transformers/integrations/vptq.py +3 -5
- transformers/modeling_gguf_pytorch_utils.py +66 -19
- transformers/modeling_rope_utils.py +78 -81
- transformers/modeling_utils.py +583 -503
- transformers/models/__init__.py +19 -0
- transformers/models/afmoe/modeling_afmoe.py +7 -16
- transformers/models/afmoe/modular_afmoe.py +5 -13
- transformers/models/aimv2/modeling_aimv2.py +4 -0
- transformers/models/aimv2/modular_aimv2.py +4 -0
- transformers/models/albert/modeling_albert.py +3 -0
- transformers/models/align/modeling_align.py +12 -6
- transformers/models/altclip/modeling_altclip.py +7 -3
- transformers/models/apertus/modeling_apertus.py +4 -2
- transformers/models/apertus/modular_apertus.py +4 -1
- transformers/models/arcee/modeling_arcee.py +1 -1
- transformers/models/aria/modeling_aria.py +8 -4
- transformers/models/aria/modular_aria.py +7 -3
- transformers/models/audioflamingo3/processing_audioflamingo3.py +27 -22
- transformers/models/auto/auto_factory.py +1 -1
- transformers/models/auto/configuration_auto.py +27 -0
- transformers/models/auto/feature_extraction_auto.py +7 -3
- transformers/models/auto/image_processing_auto.py +4 -2
- transformers/models/auto/modeling_auto.py +31 -0
- transformers/models/auto/processing_auto.py +4 -0
- transformers/models/auto/tokenization_auto.py +132 -153
- transformers/models/auto/video_processing_auto.py +5 -2
- transformers/models/aya_vision/modeling_aya_vision.py +7 -3
- transformers/models/bamba/modeling_bamba.py +18 -19
- transformers/models/bamba/modular_bamba.py +17 -16
- transformers/models/bark/modeling_bark.py +9 -0
- transformers/models/bart/configuration_bart.py +0 -1
- transformers/models/bart/modeling_bart.py +7 -0
- transformers/models/beit/image_processing_beit_fast.py +0 -1
- transformers/models/bert/modeling_bert.py +3 -0
- transformers/models/bert_generation/modeling_bert_generation.py +2 -0
- transformers/models/big_bird/modeling_big_bird.py +3 -0
- transformers/models/bigbird_pegasus/modeling_bigbird_pegasus.py +7 -0
- transformers/models/bit/modeling_bit.py +5 -1
- transformers/models/bitnet/modeling_bitnet.py +1 -1
- transformers/models/blenderbot/modeling_blenderbot.py +7 -0
- transformers/models/blenderbot/tokenization_blenderbot.py +6 -7
- transformers/models/blenderbot_small/modeling_blenderbot_small.py +7 -0
- transformers/models/blip/modeling_blip.py +2 -0
- transformers/models/blip/modeling_blip_text.py +8 -0
- transformers/models/blip_2/modeling_blip_2.py +2 -0
- transformers/models/bloom/modeling_bloom.py +13 -44
- transformers/models/blt/modeling_blt.py +162 -2
- transformers/models/blt/modular_blt.py +168 -3
- transformers/models/bridgetower/image_processing_bridgetower_fast.py +0 -2
- transformers/models/bridgetower/modeling_bridgetower.py +6 -0
- transformers/models/bros/modeling_bros.py +8 -0
- transformers/models/camembert/modeling_camembert.py +109 -106
- transformers/models/canine/modeling_canine.py +6 -0
- transformers/models/canine/tokenization_canine.py +2 -0
- transformers/models/chameleon/modeling_chameleon.py +9 -4
- transformers/models/chinese_clip/modeling_chinese_clip.py +6 -3
- transformers/models/clap/feature_extraction_clap.py +2 -2
- transformers/models/clap/modeling_clap.py +25 -15
- transformers/models/clip/modeling_clip.py +2 -0
- transformers/models/clipseg/modeling_clipseg.py +4 -0
- transformers/models/clvp/modeling_clvp.py +14 -3
- transformers/models/code_llama/tokenization_code_llama.py +1 -1
- transformers/models/codegen/modeling_codegen.py +13 -4
- transformers/models/cohere/modeling_cohere.py +1 -1
- transformers/models/cohere2/modeling_cohere2.py +1 -1
- transformers/models/cohere2_vision/image_processing_cohere2_vision_fast.py +0 -1
- transformers/models/cohere2_vision/modeling_cohere2_vision.py +7 -3
- transformers/models/conditional_detr/configuration_conditional_detr.py +1 -1
- transformers/models/conditional_detr/modeling_conditional_detr.py +4 -1
- transformers/models/convbert/modeling_convbert.py +3 -0
- transformers/models/convnext/image_processing_convnext.py +2 -2
- transformers/models/convnext/image_processing_convnext_fast.py +9 -13
- transformers/models/csm/generation_csm.py +19 -22
- transformers/models/csm/modeling_csm.py +3 -1
- transformers/models/csm/modular_csm.py +2 -0
- transformers/models/ctrl/modeling_ctrl.py +14 -2
- transformers/models/cvt/modeling_cvt.py +5 -1
- transformers/models/cwm/modeling_cwm.py +1 -1
- transformers/models/d_fine/configuration_d_fine.py +3 -4
- transformers/models/d_fine/modeling_d_fine.py +46 -39
- transformers/models/d_fine/modular_d_fine.py +15 -4
- transformers/models/dab_detr/configuration_dab_detr.py +2 -2
- transformers/models/dab_detr/modeling_dab_detr.py +1 -1
- transformers/models/dac/modeling_dac.py +4 -4
- transformers/models/data2vec/modeling_data2vec_text.py +7 -0
- transformers/models/data2vec/modular_data2vec_text.py +7 -0
- transformers/models/dbrx/configuration_dbrx.py +9 -1
- transformers/models/dbrx/modeling_dbrx.py +1 -1
- transformers/models/deberta/modeling_deberta.py +2 -0
- transformers/models/deberta_v2/modeling_deberta_v2.py +2 -0
- transformers/models/decision_transformer/modeling_decision_transformer.py +8 -5
- transformers/models/deepseek_v2/modeling_deepseek_v2.py +7 -4
- transformers/models/deepseek_v2/modular_deepseek_v2.py +4 -2
- transformers/models/deepseek_v3/modeling_deepseek_v3.py +9 -5
- transformers/models/deepseek_v3/modular_deepseek_v3.py +6 -2
- transformers/models/deepseek_vl/image_processing_deepseek_vl_fast.py +0 -1
- transformers/models/deepseek_vl/modeling_deepseek_vl.py +9 -5
- transformers/models/deepseek_vl/modular_deepseek_vl.py +3 -0
- transformers/models/deepseek_vl_hybrid/image_processing_deepseek_vl_hybrid_fast.py +0 -4
- transformers/models/deepseek_vl_hybrid/modeling_deepseek_vl_hybrid.py +9 -5
- transformers/models/deepseek_vl_hybrid/modular_deepseek_vl_hybrid.py +9 -9
- transformers/models/deformable_detr/configuration_deformable_detr.py +2 -2
- transformers/models/deformable_detr/modeling_deformable_detr.py +1 -1
- transformers/models/depth_anything/configuration_depth_anything.py +2 -3
- transformers/models/depth_pro/image_processing_depth_pro_fast.py +0 -1
- transformers/models/detr/configuration_detr.py +1 -1
- transformers/models/detr/modeling_detr.py +8 -1
- transformers/models/dia/generation_dia.py +3 -10
- transformers/models/dia/modeling_dia.py +12 -1
- transformers/models/dia/modular_dia.py +11 -0
- transformers/models/dia/processing_dia.py +1 -1
- transformers/models/diffllama/modeling_diffllama.py +3 -3
- transformers/models/diffllama/modular_diffllama.py +2 -2
- transformers/models/dinov3_vit/image_processing_dinov3_vit_fast.py +0 -1
- transformers/models/dinov3_vit/modeling_dinov3_vit.py +3 -0
- transformers/models/dinov3_vit/modular_dinov3_vit.py +3 -0
- transformers/models/distilbert/modeling_distilbert.py +11 -9
- transformers/models/doge/modeling_doge.py +1 -1
- transformers/models/donut/image_processing_donut_fast.py +0 -1
- transformers/models/donut/modeling_donut_swin.py +16 -12
- transformers/models/dots1/modeling_dots1.py +14 -5
- transformers/models/dpt/configuration_dpt.py +1 -1
- transformers/models/dpt/image_processing_dpt_fast.py +1 -2
- transformers/models/dpt/modular_dpt.py +1 -2
- transformers/models/edgetam/configuration_edgetam.py +1 -1
- transformers/models/edgetam/modeling_edgetam.py +5 -2
- transformers/models/edgetam/modular_edgetam.py +15 -14
- transformers/models/edgetam_video/modeling_edgetam_video.py +55 -43
- transformers/models/edgetam_video/modular_edgetam_video.py +13 -19
- transformers/models/efficientloftr/image_processing_efficientloftr_fast.py +1 -2
- transformers/models/efficientloftr/modeling_efficientloftr.py +14 -1
- transformers/models/efficientnet/image_processing_efficientnet.py +5 -6
- transformers/models/efficientnet/image_processing_efficientnet_fast.py +1 -2
- transformers/models/efficientnet/modeling_efficientnet.py +5 -1
- transformers/models/electra/modeling_electra.py +7 -0
- transformers/models/emu3/modeling_emu3.py +8 -2
- transformers/models/emu3/modular_emu3.py +7 -1
- transformers/models/encodec/modeling_encodec.py +14 -0
- transformers/models/eomt/image_processing_eomt_fast.py +46 -14
- transformers/models/eomt/modeling_eomt.py +7 -0
- transformers/models/eomt/modular_eomt.py +7 -0
- transformers/models/ernie/modeling_ernie.py +6 -0
- transformers/models/ernie/modular_ernie.py +6 -0
- transformers/models/ernie4_5/modeling_ernie4_5.py +1 -1
- transformers/models/ernie4_5_moe/modeling_ernie4_5_moe.py +16 -13
- transformers/models/ernie4_5_moe/modular_ernie4_5_moe.py +9 -35
- transformers/models/ernie4_5_vl_moe/__init__.py +31 -0
- transformers/models/ernie4_5_vl_moe/configuration_ernie4_5_vl_moe.py +330 -0
- transformers/models/ernie4_5_vl_moe/image_processing_ernie4_5_vl_moe.py +456 -0
- transformers/models/ernie4_5_vl_moe/image_processing_ernie4_5_vl_moe_fast.py +232 -0
- transformers/models/ernie4_5_vl_moe/modeling_ernie4_5_vl_moe.py +1898 -0
- transformers/models/ernie4_5_vl_moe/modular_ernie4_5_vl_moe.py +1904 -0
- transformers/models/ernie4_5_vl_moe/processing_ernie4_5_vl_moe.py +251 -0
- transformers/models/ernie4_5_vl_moe/video_processing_ernie4_5_vl_moe.py +594 -0
- transformers/models/esm/modeling_esm.py +6 -0
- transformers/models/esm/modeling_esmfold.py +6 -1
- transformers/models/evolla/modeling_evolla.py +9 -1
- transformers/models/evolla/modular_evolla.py +8 -0
- transformers/models/exaone4/modeling_exaone4.py +1 -1
- transformers/models/falcon/modeling_falcon.py +3 -3
- transformers/models/falcon_h1/modeling_falcon_h1.py +28 -23
- transformers/models/falcon_h1/modular_falcon_h1.py +7 -2
- transformers/models/falcon_mamba/modeling_falcon_mamba.py +6 -2
- transformers/models/falcon_mamba/modular_falcon_mamba.py +7 -2
- transformers/models/fast_vlm/modeling_fast_vlm.py +7 -3
- transformers/models/fastspeech2_conformer/modeling_fastspeech2_conformer.py +23 -10
- transformers/models/fastspeech2_conformer/tokenization_fastspeech2_conformer.py +1 -0
- transformers/models/flaubert/modeling_flaubert.py +14 -15
- transformers/models/flava/image_processing_flava_fast.py +0 -2
- transformers/models/flava/modeling_flava.py +4 -1
- transformers/models/flex_olmo/modeling_flex_olmo.py +7 -4
- transformers/models/florence2/modeling_florence2.py +20 -3
- transformers/models/florence2/modular_florence2.py +13 -0
- transformers/models/fnet/modeling_fnet.py +7 -0
- transformers/models/fuyu/image_processing_fuyu.py +1 -1
- transformers/models/fuyu/modeling_fuyu.py +3 -1
- transformers/models/fuyu/processing_fuyu.py +16 -0
- transformers/models/gemma/modeling_gemma.py +10 -12
- transformers/models/gemma/modular_gemma.py +9 -11
- transformers/models/gemma2/modeling_gemma2.py +1 -1
- transformers/models/gemma2/modular_gemma2.py +1 -1
- transformers/models/gemma3/image_processing_gemma3_fast.py +0 -1
- transformers/models/gemma3/modeling_gemma3.py +28 -7
- transformers/models/gemma3/modular_gemma3.py +26 -6
- transformers/models/gemma3n/configuration_gemma3n.py +3 -0
- transformers/models/gemma3n/modeling_gemma3n.py +47 -9
- transformers/models/gemma3n/modular_gemma3n.py +51 -9
- transformers/models/git/modeling_git.py +181 -126
- transformers/models/glm/modeling_glm.py +1 -1
- transformers/models/glm4/modeling_glm4.py +1 -1
- transformers/models/glm46v/image_processing_glm46v.py +0 -4
- transformers/models/glm46v/modeling_glm46v.py +3 -1
- transformers/models/glm46v/modular_glm46v.py +3 -0
- transformers/models/glm4_moe/modeling_glm4_moe.py +9 -5
- transformers/models/glm4_moe/modular_glm4_moe.py +1 -1
- transformers/models/glm4v/image_processing_glm4v.py +0 -4
- transformers/models/glm4v/modeling_glm4v.py +15 -5
- transformers/models/glm4v/modular_glm4v.py +11 -3
- transformers/models/glm4v_moe/modeling_glm4v_moe.py +39 -23
- transformers/models/glm4v_moe/modular_glm4v_moe.py +12 -0
- transformers/models/glmasr/__init__.py +30 -0
- transformers/models/glmasr/configuration_glmasr.py +197 -0
- transformers/models/glmasr/modeling_glmasr.py +512 -0
- transformers/models/glmasr/modular_glmasr.py +433 -0
- transformers/models/glmasr/processing_glmasr.py +332 -0
- transformers/models/glpn/image_processing_glpn_fast.py +0 -1
- transformers/models/got_ocr2/image_processing_got_ocr2_fast.py +0 -1
- transformers/models/got_ocr2/modeling_got_ocr2.py +8 -3
- transformers/models/gpt2/modeling_gpt2.py +8 -5
- transformers/models/gpt_bigcode/modeling_gpt_bigcode.py +3 -8
- transformers/models/gpt_neo/modeling_gpt_neo.py +15 -3
- transformers/models/gpt_neox/modeling_gpt_neox.py +1 -1
- transformers/models/gpt_neox_japanese/modeling_gpt_neox_japanese.py +1 -1
- transformers/models/gpt_oss/configuration_gpt_oss.py +17 -0
- transformers/models/gpt_oss/modeling_gpt_oss.py +6 -9
- transformers/models/gpt_oss/modular_gpt_oss.py +5 -7
- transformers/models/gptj/modeling_gptj.py +15 -6
- transformers/models/granite/modeling_granite.py +1 -1
- transformers/models/granite_speech/modeling_granite_speech.py +15 -1
- transformers/models/granitemoe/modeling_granitemoe.py +2 -3
- transformers/models/granitemoe/modular_granitemoe.py +1 -2
- transformers/models/granitemoehybrid/configuration_granitemoehybrid.py +4 -0
- transformers/models/granitemoehybrid/modeling_granitemoehybrid.py +33 -23
- transformers/models/granitemoehybrid/modular_granitemoehybrid.py +12 -2
- transformers/models/granitemoeshared/modeling_granitemoeshared.py +2 -3
- transformers/models/grounding_dino/configuration_grounding_dino.py +2 -3
- transformers/models/grounding_dino/modeling_grounding_dino.py +4 -4
- transformers/models/groupvit/modeling_groupvit.py +6 -1
- transformers/models/helium/modeling_helium.py +1 -1
- transformers/models/hgnet_v2/modeling_hgnet_v2.py +10 -0
- transformers/models/hgnet_v2/modular_hgnet_v2.py +10 -0
- transformers/models/hubert/modeling_hubert.py +4 -0
- transformers/models/hubert/modular_hubert.py +4 -0
- transformers/models/hunyuan_v1_dense/modeling_hunyuan_v1_dense.py +1 -1
- transformers/models/hunyuan_v1_dense/modular_hunyuan_v1_dense.py +1 -1
- transformers/models/hunyuan_v1_moe/__init__.py +1 -1
- transformers/models/hunyuan_v1_moe/modeling_hunyuan_v1_moe.py +12 -4
- transformers/models/hunyuan_v1_moe/modular_hunyuan_v1_moe.py +4 -2
- transformers/models/ibert/modeling_ibert.py +16 -0
- transformers/models/idefics/modeling_idefics.py +10 -0
- transformers/models/idefics2/modeling_idefics2.py +7 -1
- transformers/models/idefics3/modeling_idefics3.py +5 -1
- transformers/models/imagegpt/image_processing_imagegpt_fast.py +1 -5
- transformers/models/imagegpt/modeling_imagegpt.py +9 -2
- transformers/models/instructblip/modeling_instructblip.py +2 -0
- transformers/models/instructblipvideo/modeling_instructblipvideo.py +52 -50
- transformers/models/instructblipvideo/video_processing_instructblipvideo.py +0 -1
- transformers/models/internvl/modeling_internvl.py +11 -8
- transformers/models/internvl/modular_internvl.py +5 -9
- transformers/models/internvl/video_processing_internvl.py +0 -1
- transformers/models/jais2/__init__.py +27 -0
- transformers/models/jais2/configuration_jais2.py +152 -0
- transformers/models/jais2/modeling_jais2.py +486 -0
- transformers/models/jais2/modular_jais2.py +196 -0
- transformers/models/jamba/modeling_jamba.py +24 -19
- transformers/models/jamba/modular_jamba.py +17 -17
- transformers/models/janus/image_processing_janus_fast.py +0 -1
- transformers/models/janus/modeling_janus.py +15 -7
- transformers/models/janus/modular_janus.py +16 -7
- transformers/models/jetmoe/modeling_jetmoe.py +2 -2
- transformers/models/jetmoe/modular_jetmoe.py +1 -0
- transformers/models/kosmos2/modeling_kosmos2.py +14 -2
- transformers/models/kosmos2_5/image_processing_kosmos2_5_fast.py +2 -2
- transformers/models/kosmos2_5/modeling_kosmos2_5.py +10 -1
- transformers/models/kyutai_speech_to_text/modeling_kyutai_speech_to_text.py +9 -3
- transformers/models/kyutai_speech_to_text/modular_kyutai_speech_to_text.py +9 -1
- transformers/models/lasr/configuration_lasr.py +4 -0
- transformers/models/lasr/modeling_lasr.py +3 -2
- transformers/models/lasr/modular_lasr.py +8 -1
- transformers/models/lasr/processing_lasr.py +0 -2
- transformers/models/layoutlm/modeling_layoutlm.py +5 -3
- transformers/models/layoutlmv2/image_processing_layoutlmv2_fast.py +0 -1
- transformers/models/layoutlmv2/modeling_layoutlmv2.py +12 -0
- transformers/models/layoutlmv2/tokenization_layoutlmv2.py +1 -0
- transformers/models/layoutlmv3/image_processing_layoutlmv3_fast.py +0 -1
- transformers/models/layoutlmv3/modeling_layoutlmv3.py +29 -5
- transformers/models/led/modeling_led.py +6 -0
- transformers/models/levit/modeling_levit.py +18 -0
- transformers/models/lfm2/modeling_lfm2.py +1 -1
- transformers/models/lfm2_moe/modeling_lfm2_moe.py +14 -4
- transformers/models/lfm2_moe/modular_lfm2_moe.py +5 -28
- transformers/models/lfm2_vl/configuration_lfm2_vl.py +4 -0
- transformers/models/lfm2_vl/modeling_lfm2_vl.py +11 -5
- transformers/models/lfm2_vl/modular_lfm2_vl.py +4 -2
- transformers/models/lfm2_vl/processing_lfm2_vl.py +82 -42
- transformers/models/lightglue/image_processing_lightglue_fast.py +1 -2
- transformers/models/lilt/modeling_lilt.py +19 -15
- transformers/models/llama/modeling_llama.py +1 -1
- transformers/models/llama4/image_processing_llama4_fast.py +1 -2
- transformers/models/llama4/modeling_llama4.py +8 -4
- transformers/models/llava/image_processing_llava_fast.py +0 -1
- transformers/models/llava/modeling_llava.py +12 -7
- transformers/models/llava_next/image_processing_llava_next_fast.py +0 -1
- transformers/models/llava_next/modeling_llava_next.py +7 -3
- transformers/models/llava_next_video/modeling_llava_next_video.py +7 -3
- transformers/models/llava_next_video/modular_llava_next_video.py +7 -3
- transformers/models/llava_onevision/image_processing_llava_onevision_fast.py +0 -1
- transformers/models/llava_onevision/modeling_llava_onevision.py +7 -3
- transformers/models/llava_onevision/modular_llava_onevision.py +7 -4
- transformers/models/longcat_flash/modeling_longcat_flash.py +2 -1
- transformers/models/longcat_flash/modular_longcat_flash.py +1 -0
- transformers/models/longt5/modeling_longt5.py +0 -4
- transformers/models/m2m_100/modeling_m2m_100.py +10 -0
- transformers/models/mamba/modeling_mamba.py +2 -1
- transformers/models/mamba2/modeling_mamba2.py +24 -23
- transformers/models/marian/configuration_marian.py +1 -1
- transformers/models/marian/modeling_marian.py +3 -0
- transformers/models/markuplm/modeling_markuplm.py +5 -8
- transformers/models/mask2former/configuration_mask2former.py +3 -3
- transformers/models/mask2former/image_processing_mask2former_fast.py +1 -4
- transformers/models/mask2former/modeling_mask2former.py +9 -0
- transformers/models/maskformer/configuration_maskformer.py +3 -3
- transformers/models/maskformer/image_processing_maskformer_fast.py +1 -4
- transformers/models/maskformer/modeling_maskformer.py +9 -1
- transformers/models/maskformer/modeling_maskformer_swin.py +19 -15
- transformers/models/mbart/configuration_mbart.py +1 -0
- transformers/models/mbart/modeling_mbart.py +7 -0
- transformers/models/megatron_bert/modeling_megatron_bert.py +2 -0
- transformers/models/metaclip_2/modeling_metaclip_2.py +2 -0
- transformers/models/metaclip_2/modular_metaclip_2.py +2 -0
- transformers/models/mimi/modeling_mimi.py +25 -4
- transformers/models/minimax/modeling_minimax.py +16 -3
- transformers/models/minimax/modular_minimax.py +12 -1
- transformers/models/ministral/modeling_ministral.py +1 -1
- transformers/models/ministral3/modeling_ministral3.py +1 -1
- transformers/models/mistral/modeling_mistral.py +1 -1
- transformers/models/mistral3/modeling_mistral3.py +10 -4
- transformers/models/mistral3/modular_mistral3.py +3 -1
- transformers/models/mixtral/modeling_mixtral.py +12 -4
- transformers/models/mixtral/modular_mixtral.py +6 -2
- transformers/models/mlcd/modeling_mlcd.py +6 -0
- transformers/models/mlcd/modular_mlcd.py +4 -0
- transformers/models/mllama/modeling_mllama.py +13 -2
- transformers/models/mm_grounding_dino/configuration_mm_grounding_dino.py +1 -2
- transformers/models/mm_grounding_dino/modeling_mm_grounding_dino.py +4 -4
- transformers/models/mm_grounding_dino/modular_mm_grounding_dino.py +1 -2
- transformers/models/mobilebert/modeling_mobilebert.py +2 -0
- transformers/models/mobilenet_v2/image_processing_mobilenet_v2_fast.py +0 -1
- transformers/models/mobilevit/image_processing_mobilevit.py +5 -5
- transformers/models/mobilevit/image_processing_mobilevit_fast.py +1 -2
- transformers/models/mobilevit/modeling_mobilevit.py +4 -0
- transformers/models/mobilevitv2/modeling_mobilevitv2.py +4 -0
- transformers/models/modernbert/modeling_modernbert.py +12 -1
- transformers/models/modernbert/modular_modernbert.py +12 -1
- transformers/models/modernbert_decoder/modeling_modernbert_decoder.py +9 -1
- transformers/models/modernbert_decoder/modular_modernbert_decoder.py +9 -1
- transformers/models/moonshine/modeling_moonshine.py +1 -1
- transformers/models/moshi/modeling_moshi.py +21 -51
- transformers/models/mpnet/modeling_mpnet.py +2 -0
- transformers/models/mra/modeling_mra.py +4 -1
- transformers/models/mt5/configuration_mt5.py +2 -3
- transformers/models/mt5/modeling_mt5.py +0 -10
- transformers/models/musicgen/modeling_musicgen.py +5 -9
- transformers/models/musicgen_melody/modeling_musicgen_melody.py +4 -0
- transformers/models/mvp/modeling_mvp.py +7 -0
- transformers/models/nanochat/modeling_nanochat.py +1 -1
- transformers/models/nemotron/modeling_nemotron.py +3 -3
- transformers/models/nllb_moe/configuration_nllb_moe.py +1 -0
- transformers/models/nllb_moe/modeling_nllb_moe.py +10 -0
- transformers/models/nougat/image_processing_nougat_fast.py +0 -1
- transformers/models/nougat/tokenization_nougat.py +11 -16
- transformers/models/nystromformer/modeling_nystromformer.py +7 -0
- transformers/models/olmo/modeling_olmo.py +1 -1
- transformers/models/olmo2/modeling_olmo2.py +1 -1
- transformers/models/olmo3/modeling_olmo3.py +1 -1
- transformers/models/olmoe/modeling_olmoe.py +12 -4
- transformers/models/olmoe/modular_olmoe.py +4 -2
- transformers/models/omdet_turbo/configuration_omdet_turbo.py +2 -2
- transformers/models/omdet_turbo/modeling_omdet_turbo.py +4 -0
- transformers/models/oneformer/configuration_oneformer.py +3 -3
- transformers/models/oneformer/modeling_oneformer.py +7 -38
- transformers/models/openai/modeling_openai.py +12 -0
- transformers/models/ovis2/image_processing_ovis2_fast.py +0 -1
- transformers/models/ovis2/modeling_ovis2.py +15 -3
- transformers/models/ovis2/modular_ovis2.py +8 -0
- transformers/models/owlv2/image_processing_owlv2_fast.py +0 -2
- transformers/models/owlv2/modeling_owlv2.py +7 -3
- transformers/models/owlv2/modular_owlv2.py +0 -2
- transformers/models/owlvit/modeling_owlvit.py +7 -3
- transformers/models/paddleocr_vl/image_processing_paddleocr_vl.py +3 -2
- transformers/models/paddleocr_vl/modeling_paddleocr_vl.py +28 -14
- transformers/models/paddleocr_vl/modular_paddleocr_vl.py +22 -12
- transformers/models/paligemma/modeling_paligemma.py +25 -17
- transformers/models/parakeet/modeling_parakeet.py +5 -0
- transformers/models/parakeet/modular_parakeet.py +5 -0
- transformers/models/parakeet/{tokenization_parakeet_fast.py → tokenization_parakeet.py} +3 -3
- transformers/models/patchtsmixer/modeling_patchtsmixer.py +4 -0
- transformers/models/patchtst/modeling_patchtst.py +5 -4
- transformers/models/pe_audio/__init__.py +30 -0
- transformers/models/pe_audio/configuration_pe_audio.py +206 -0
- transformers/models/pe_audio/feature_extraction_pe_audio.py +162 -0
- transformers/models/pe_audio/modeling_pe_audio.py +820 -0
- transformers/models/pe_audio/modular_pe_audio.py +299 -0
- transformers/models/pe_audio/processing_pe_audio.py +24 -0
- transformers/models/pe_audio_video/__init__.py +29 -0
- transformers/models/pe_audio_video/configuration_pe_audio_video.py +225 -0
- transformers/models/pe_audio_video/modeling_pe_audio_video.py +972 -0
- transformers/models/pe_audio_video/modular_pe_audio_video.py +764 -0
- transformers/models/pe_audio_video/processing_pe_audio_video.py +25 -0
- transformers/models/pe_video/__init__.py +30 -0
- transformers/models/pe_video/configuration_pe_video.py +211 -0
- transformers/models/pe_video/modeling_pe_video.py +636 -0
- transformers/models/pe_video/modular_pe_video.py +219 -0
- transformers/models/pe_video/processing_pe_video.py +10 -0
- transformers/models/pe_video/video_processing_pe_video.py +66 -0
- transformers/models/pegasus/configuration_pegasus.py +1 -0
- transformers/models/pegasus/modeling_pegasus.py +3 -0
- transformers/models/pegasus_x/modeling_pegasus_x.py +1 -0
- transformers/models/perceiver/image_processing_perceiver_fast.py +0 -1
- transformers/models/perceiver/modeling_perceiver.py +5 -1
- transformers/models/perception_lm/image_processing_perception_lm_fast.py +0 -1
- transformers/models/perception_lm/modeling_perception_lm.py +7 -3
- transformers/models/perception_lm/modular_perception_lm.py +7 -3
- transformers/models/persimmon/modeling_persimmon.py +1 -1
- transformers/models/phi/modeling_phi.py +1 -1
- transformers/models/phi3/modeling_phi3.py +1 -1
- transformers/models/phi4_multimodal/modeling_phi4_multimodal.py +4 -1
- transformers/models/phi4_multimodal/modular_phi4_multimodal.py +3 -0
- transformers/models/phi4_multimodal/processing_phi4_multimodal.py +0 -2
- transformers/models/phimoe/modeling_phimoe.py +12 -4
- transformers/models/phimoe/modular_phimoe.py +1 -1
- transformers/models/pix2struct/processing_pix2struct.py +0 -4
- transformers/models/pixio/__init__.py +30 -0
- transformers/models/pixio/configuration_pixio.py +151 -0
- transformers/models/pixio/modeling_pixio.py +507 -0
- transformers/models/pixio/modular_pixio.py +404 -0
- transformers/models/pixtral/modeling_pixtral.py +1 -1
- transformers/models/pixtral/processing_pixtral.py +3 -1
- transformers/models/plbart/configuration_plbart.py +1 -0
- transformers/models/plbart/modeling_plbart.py +7 -0
- transformers/models/plbart/modular_plbart.py +6 -0
- transformers/models/poolformer/image_processing_poolformer_fast.py +0 -1
- transformers/models/poolformer/modeling_poolformer.py +11 -1
- transformers/models/pop2piano/configuration_pop2piano.py +0 -1
- transformers/models/prompt_depth_anything/configuration_prompt_depth_anything.py +2 -3
- transformers/models/prophetnet/modeling_prophetnet.py +2 -1
- transformers/models/qwen2/modeling_qwen2.py +1 -1
- transformers/models/qwen2_5_omni/modeling_qwen2_5_omni.py +104 -64
- transformers/models/qwen2_5_omni/modular_qwen2_5_omni.py +58 -18
- transformers/models/qwen2_5_vl/modeling_qwen2_5_vl.py +18 -5
- transformers/models/qwen2_5_vl/modular_qwen2_5_vl.py +26 -22
- transformers/models/qwen2_audio/modeling_qwen2_audio.py +2 -2
- transformers/models/qwen2_moe/modeling_qwen2_moe.py +12 -4
- transformers/models/qwen2_vl/image_processing_qwen2_vl.py +3 -2
- transformers/models/qwen2_vl/modeling_qwen2_vl.py +17 -4
- transformers/models/qwen3/modeling_qwen3.py +1 -1
- transformers/models/qwen3_moe/modeling_qwen3_moe.py +12 -4
- transformers/models/qwen3_next/modeling_qwen3_next.py +4 -6
- transformers/models/qwen3_omni_moe/configuration_qwen3_omni_moe.py +4 -0
- transformers/models/qwen3_omni_moe/modeling_qwen3_omni_moe.py +92 -46
- transformers/models/qwen3_omni_moe/modular_qwen3_omni_moe.py +48 -4
- transformers/models/qwen3_vl/configuration_qwen3_vl.py +5 -5
- transformers/models/qwen3_vl/modeling_qwen3_vl.py +17 -4
- transformers/models/qwen3_vl/modular_qwen3_vl.py +21 -10
- transformers/models/qwen3_vl/processing_qwen3_vl.py +3 -3
- transformers/models/qwen3_vl_moe/modeling_qwen3_vl_moe.py +94 -112
- transformers/models/qwen3_vl_moe/modular_qwen3_vl_moe.py +32 -81
- transformers/models/rag/configuration_rag.py +0 -8
- transformers/models/rag/modeling_rag.py +7 -9
- transformers/models/recurrent_gemma/modeling_recurrent_gemma.py +3 -2
- transformers/models/reformer/modeling_reformer.py +9 -1
- transformers/models/regnet/modeling_regnet.py +4 -0
- transformers/models/rembert/modeling_rembert.py +7 -1
- transformers/models/resnet/modeling_resnet.py +8 -3
- transformers/models/roberta/modeling_roberta.py +3 -0
- transformers/models/roberta/modular_roberta.py +3 -0
- transformers/models/roberta_prelayernorm/modeling_roberta_prelayernorm.py +3 -0
- transformers/models/roc_bert/modeling_roc_bert.py +3 -0
- transformers/models/rt_detr/configuration_rt_detr.py +1 -1
- transformers/models/rt_detr/modeling_rt_detr.py +4 -0
- transformers/models/rt_detr/modeling_rt_detr_resnet.py +8 -3
- transformers/models/rt_detr_v2/configuration_rt_detr_v2.py +2 -3
- transformers/models/rt_detr_v2/modeling_rt_detr_v2.py +7 -0
- transformers/models/rt_detr_v2/modular_rt_detr_v2.py +8 -3
- transformers/models/rwkv/modeling_rwkv.py +1 -1
- transformers/models/sam/configuration_sam.py +1 -0
- transformers/models/sam/image_processing_sam_fast.py +0 -1
- transformers/models/sam/modeling_sam.py +4 -1
- transformers/models/sam2/configuration_sam2.py +1 -1
- transformers/models/sam2/modeling_sam2.py +5 -1
- transformers/models/sam2/modular_sam2.py +5 -1
- transformers/models/sam2_video/modeling_sam2_video.py +51 -43
- transformers/models/sam2_video/modular_sam2_video.py +31 -18
- transformers/models/sam3/configuration_sam3.py +21 -1
- transformers/models/sam3/modeling_sam3.py +23 -0
- transformers/models/sam3_tracker/modeling_sam3_tracker.py +2 -0
- transformers/models/sam3_tracker/modular_sam3_tracker.py +2 -0
- transformers/models/sam3_tracker_video/configuration_sam3_tracker_video.py +25 -0
- transformers/models/sam3_tracker_video/modeling_sam3_tracker_video.py +26 -15
- transformers/models/sam3_tracker_video/modular_sam3_tracker_video.py +25 -2
- transformers/models/sam3_video/configuration_sam3_video.py +14 -0
- transformers/models/sam3_video/modeling_sam3_video.py +3 -3
- transformers/models/sam3_video/processing_sam3_video.py +1 -1
- transformers/models/sam_hq/configuration_sam_hq.py +1 -0
- transformers/models/sam_hq/modeling_sam_hq.py +26 -23
- transformers/models/seamless_m4t/modeling_seamless_m4t.py +27 -11
- transformers/models/seamless_m4t_v2/modeling_seamless_m4t_v2.py +6 -0
- transformers/models/seed_oss/modeling_seed_oss.py +1 -1
- transformers/models/segformer/image_processing_segformer_fast.py +0 -1
- transformers/models/segformer/modeling_segformer.py +2 -2
- transformers/models/segformer/modular_segformer.py +0 -1
- transformers/models/shieldgemma2/modeling_shieldgemma2.py +1 -0
- transformers/models/siglip/modeling_siglip.py +24 -2
- transformers/models/siglip2/modeling_siglip2.py +63 -41
- transformers/models/smollm3/modeling_smollm3.py +1 -1
- transformers/models/smolvlm/modeling_smolvlm.py +5 -1
- transformers/models/smolvlm/video_processing_smolvlm.py +0 -1
- transformers/models/speech_to_text/modeling_speech_to_text.py +10 -0
- transformers/models/speecht5/modeling_speecht5.py +28 -0
- transformers/models/splinter/modeling_splinter.py +9 -3
- transformers/models/squeezebert/modeling_squeezebert.py +2 -0
- transformers/models/stablelm/modeling_stablelm.py +1 -1
- transformers/models/starcoder2/modeling_starcoder2.py +1 -1
- transformers/models/superglue/image_processing_superglue_fast.py +1 -2
- transformers/models/superpoint/image_processing_superpoint_fast.py +1 -2
- transformers/models/swiftformer/modeling_swiftformer.py +4 -0
- transformers/models/swin/modeling_swin.py +16 -12
- transformers/models/swin2sr/image_processing_swin2sr_fast.py +0 -1
- transformers/models/swin2sr/modeling_swin2sr.py +49 -33
- transformers/models/swinv2/modeling_swinv2.py +41 -33
- transformers/models/switch_transformers/modeling_switch_transformers.py +2 -8
- transformers/models/switch_transformers/modular_switch_transformers.py +2 -8
- transformers/models/t5/configuration_t5.py +7 -1
- transformers/models/t5/modeling_t5.py +1 -7
- transformers/models/t5gemma/modeling_t5gemma.py +1 -1
- transformers/models/t5gemma2/configuration_t5gemma2.py +6 -42
- transformers/models/t5gemma2/modeling_t5gemma2.py +13 -4
- transformers/models/t5gemma2/modular_t5gemma2.py +289 -4
- transformers/models/table_transformer/configuration_table_transformer.py +1 -1
- transformers/models/table_transformer/modeling_table_transformer.py +1 -1
- transformers/models/textnet/image_processing_textnet_fast.py +0 -1
- transformers/models/timesfm/modeling_timesfm.py +12 -0
- transformers/models/timesfm/modular_timesfm.py +12 -0
- transformers/models/timm_backbone/modeling_timm_backbone.py +13 -9
- transformers/models/timm_wrapper/configuration_timm_wrapper.py +3 -0
- transformers/models/timm_wrapper/modeling_timm_wrapper.py +19 -13
- transformers/models/trocr/modeling_trocr.py +1 -2
- transformers/models/tvp/configuration_tvp.py +5 -1
- transformers/models/tvp/modeling_tvp.py +4 -4
- transformers/models/udop/configuration_udop.py +1 -0
- transformers/models/udop/modeling_udop.py +3 -7
- transformers/models/umt5/configuration_umt5.py +2 -2
- transformers/models/umt5/modeling_umt5.py +0 -6
- transformers/models/vaultgemma/modeling_vaultgemma.py +1 -1
- transformers/models/video_llama_3/image_processing_video_llama_3.py +3 -2
- transformers/models/video_llama_3/modeling_video_llama_3.py +12 -1
- transformers/models/video_llama_3/modular_video_llama_3.py +10 -1
- transformers/models/video_llava/modeling_video_llava.py +7 -3
- transformers/models/vilt/configuration_vilt.py +2 -2
- transformers/models/vilt/modeling_vilt.py +7 -0
- transformers/models/vipllava/modeling_vipllava.py +7 -3
- transformers/models/visual_bert/modeling_visual_bert.py +2 -0
- transformers/models/vitmatte/configuration_vitmatte.py +1 -1
- transformers/models/vitmatte/image_processing_vitmatte_fast.py +0 -1
- transformers/models/vitmatte/modeling_vitmatte.py +4 -0
- transformers/models/vitpose/configuration_vitpose.py +1 -1
- transformers/models/vitpose/image_processing_vitpose_fast.py +0 -1
- transformers/models/voxtral/modeling_voxtral.py +2 -2
- transformers/models/voxtral/modular_voxtral.py +2 -2
- transformers/models/wav2vec2_bert/modeling_wav2vec2_bert.py +16 -10
- transformers/models/wav2vec2_bert/modular_wav2vec2_bert.py +7 -0
- transformers/models/wav2vec2_conformer/modeling_wav2vec2_conformer.py +21 -11
- transformers/models/wav2vec2_conformer/modular_wav2vec2_conformer.py +21 -11
- transformers/models/whisper/generation_whisper.py +1 -0
- transformers/models/whisper/modeling_whisper.py +5 -3
- transformers/models/x_clip/modeling_x_clip.py +2 -0
- transformers/models/xcodec/modeling_xcodec.py +5 -0
- transformers/models/xglm/modeling_xglm.py +10 -0
- transformers/models/xlm/modeling_xlm.py +13 -14
- transformers/models/xlm_roberta/modeling_xlm_roberta.py +109 -106
- transformers/models/xlm_roberta_xl/modeling_xlm_roberta_xl.py +3 -0
- transformers/models/xlnet/modeling_xlnet.py +3 -1
- transformers/models/xmod/modeling_xmod.py +3 -0
- transformers/models/yoso/modeling_yoso.py +4 -1
- transformers/models/zamba/modeling_zamba.py +2 -1
- transformers/models/zamba2/modeling_zamba2.py +3 -2
- transformers/models/zoedepth/configuration_zoedepth.py +1 -1
- transformers/models/zoedepth/image_processing_zoedepth_fast.py +1 -3
- transformers/models/zoedepth/modeling_zoedepth.py +7 -0
- transformers/pipelines/__init__.py +9 -6
- transformers/pipelines/automatic_speech_recognition.py +20 -12
- transformers/pipelines/base.py +1 -1
- transformers/pipelines/document_question_answering.py +1 -1
- transformers/pipelines/question_answering.py +1 -1
- transformers/pipelines/text_to_audio.py +2 -2
- transformers/processing_utils.py +127 -56
- transformers/quantizers/auto.py +2 -4
- transformers/quantizers/base.py +9 -64
- transformers/quantizers/quantizer_aqlm.py +1 -18
- transformers/quantizers/quantizer_auto_round.py +1 -10
- transformers/quantizers/quantizer_awq.py +3 -8
- transformers/quantizers/quantizer_bitnet.py +1 -6
- transformers/quantizers/quantizer_bnb_4bit.py +9 -49
- transformers/quantizers/quantizer_bnb_8bit.py +9 -19
- transformers/quantizers/quantizer_compressed_tensors.py +1 -4
- transformers/quantizers/quantizer_eetq.py +2 -12
- transformers/quantizers/quantizer_fbgemm_fp8.py +5 -14
- transformers/quantizers/quantizer_finegrained_fp8.py +15 -10
- transformers/quantizers/quantizer_fp_quant.py +4 -4
- transformers/quantizers/quantizer_gptq.py +1 -4
- transformers/quantizers/quantizer_higgs.py +2 -6
- transformers/quantizers/quantizer_mxfp4.py +2 -28
- transformers/quantizers/quantizer_quanto.py +14 -14
- transformers/quantizers/quantizer_spqr.py +3 -8
- transformers/quantizers/quantizer_torchao.py +28 -124
- transformers/quantizers/quantizer_vptq.py +1 -10
- transformers/testing_utils.py +28 -12
- transformers/tokenization_mistral_common.py +3 -2
- transformers/tokenization_utils_base.py +3 -2
- transformers/tokenization_utils_tokenizers.py +25 -2
- transformers/trainer.py +24 -2
- transformers/trainer_callback.py +8 -0
- transformers/trainer_seq2seq.py +4 -0
- transformers/training_args.py +8 -10
- transformers/utils/__init__.py +4 -0
- transformers/utils/attention_visualizer.py +4 -4
- transformers/utils/auto_docstring.py +34 -25
- transformers/utils/generic.py +20 -0
- transformers/utils/import_utils.py +51 -9
- transformers/utils/kernel_config.py +71 -18
- transformers/utils/quantization_config.py +8 -8
- transformers/video_processing_utils.py +16 -12
- {transformers-5.0.0rc1.dist-info → transformers-5.0.0rc2.dist-info}/METADATA +5 -6
- {transformers-5.0.0rc1.dist-info → transformers-5.0.0rc2.dist-info}/RECORD +671 -632
- {transformers-5.0.0rc1.dist-info → transformers-5.0.0rc2.dist-info}/WHEEL +0 -0
- {transformers-5.0.0rc1.dist-info → transformers-5.0.0rc2.dist-info}/entry_points.txt +0 -0
- {transformers-5.0.0rc1.dist-info → transformers-5.0.0rc2.dist-info}/licenses/LICENSE +0 -0
- {transformers-5.0.0rc1.dist-info → transformers-5.0.0rc2.dist-info}/top_level.txt +0 -0
|
@@ -17,7 +17,8 @@ import inspect
|
|
|
17
17
|
import os
|
|
18
18
|
import textwrap
|
|
19
19
|
from pathlib import Path
|
|
20
|
-
from
|
|
20
|
+
from types import UnionType
|
|
21
|
+
from typing import Union, get_args, get_origin
|
|
21
22
|
|
|
22
23
|
import regex as re
|
|
23
24
|
|
|
@@ -1280,38 +1281,46 @@ def _get_model_info(func, parent_class):
|
|
|
1280
1281
|
return model_name_lowercase, class_name, config_class
|
|
1281
1282
|
|
|
1282
1283
|
|
|
1283
|
-
def _process_parameter_type(param
|
|
1284
|
+
def _process_parameter_type(param):
|
|
1284
1285
|
"""
|
|
1285
1286
|
Process and format a parameter's type annotation.
|
|
1286
1287
|
|
|
1287
1288
|
Args:
|
|
1288
1289
|
param (`inspect.Parameter`): The parameter from the function signature
|
|
1289
|
-
param_name (`str`): The name of the parameter
|
|
1290
|
-
func (`function`): The function the parameter belongs to
|
|
1291
1290
|
"""
|
|
1292
1291
|
optional = False
|
|
1293
|
-
if param.annotation
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
)
|
|
1306
|
-
if "ForwardRef" in param_type:
|
|
1307
|
-
param_type = re.sub(r"ForwardRef\('([\w.]+)'\)", r"\1", param_type)
|
|
1308
|
-
if "Optional" in param_type:
|
|
1309
|
-
param_type = re.sub(r"Optional\[(.*?)\]", r"\1", param_type)
|
|
1292
|
+
if param.annotation == inspect.Parameter.empty:
|
|
1293
|
+
return "", False
|
|
1294
|
+
elif param.annotation is None:
|
|
1295
|
+
return "None", True
|
|
1296
|
+
# This is, astonishingly, the right way to do it: https://docs.python.org/3/library/typing.html#typing.Union
|
|
1297
|
+
elif get_origin(param.annotation) is Union or get_origin(param.annotation) is UnionType:
|
|
1298
|
+
subtypes = get_args(param.annotation)
|
|
1299
|
+
else:
|
|
1300
|
+
subtypes = [param.annotation] # Just pretend it's a single-element union so we don't need two code paths
|
|
1301
|
+
out_str = []
|
|
1302
|
+
for subtype in subtypes:
|
|
1303
|
+
if subtype is type(None):
|
|
1310
1304
|
optional = True
|
|
1305
|
+
continue
|
|
1306
|
+
if hasattr(subtype, "__module__") and hasattr(subtype, "__name__"):
|
|
1307
|
+
subtype = f"{subtype.__module__.replace('transformers.', '~').replace('builtins', '').replace('typing.', '')}.{subtype.__name__}".removeprefix(
|
|
1308
|
+
"."
|
|
1309
|
+
)
|
|
1310
|
+
else:
|
|
1311
|
+
subtype = str(subtype) # Just give up
|
|
1312
|
+
if "ForwardRef" in subtype:
|
|
1313
|
+
subtype = re.sub(r"ForwardRef\('([\w.]+)'\)", r"\1", subtype)
|
|
1314
|
+
out_str.append(subtype)
|
|
1315
|
+
|
|
1316
|
+
if param.default is not inspect.Parameter.empty:
|
|
1317
|
+
optional = True
|
|
1318
|
+
if not out_str:
|
|
1319
|
+
return "", optional
|
|
1320
|
+
elif len(out_str) == 1:
|
|
1321
|
+
return out_str[0], optional
|
|
1311
1322
|
else:
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
return param_type, optional
|
|
1323
|
+
return f"Union[{', '.join(out_str)}]", optional
|
|
1315
1324
|
|
|
1316
1325
|
|
|
1317
1326
|
def _get_parameter_info(param_name, documented_params, source_args_dict, param_type, optional):
|
|
@@ -1392,7 +1401,7 @@ def _process_regular_parameters(
|
|
|
1392
1401
|
continue
|
|
1393
1402
|
|
|
1394
1403
|
# Process parameter type and optional status
|
|
1395
|
-
param_type, optional = _process_parameter_type(param
|
|
1404
|
+
param_type, optional = _process_parameter_type(param)
|
|
1396
1405
|
|
|
1397
1406
|
# Check for default value
|
|
1398
1407
|
param_default = ""
|
transformers/utils/generic.py
CHANGED
|
@@ -155,6 +155,26 @@ def is_torch_dtype(x):
|
|
|
155
155
|
return isinstance(x, torch.dtype)
|
|
156
156
|
|
|
157
157
|
|
|
158
|
+
def _is_tensor_or_array_like(value):
|
|
159
|
+
"""
|
|
160
|
+
Check if a value is array-like (includes ragged arrays)
|
|
161
|
+
"""
|
|
162
|
+
if is_numpy_array(value):
|
|
163
|
+
return True
|
|
164
|
+
if is_torch_tensor(value):
|
|
165
|
+
return True
|
|
166
|
+
if isinstance(value, (int, float, bool, np.number)):
|
|
167
|
+
return True
|
|
168
|
+
|
|
169
|
+
if isinstance(value, (list, tuple)):
|
|
170
|
+
if len(value) == 0:
|
|
171
|
+
# consider empty list or nested list as array-like
|
|
172
|
+
return True
|
|
173
|
+
return _is_tensor_or_array_like(value[0])
|
|
174
|
+
|
|
175
|
+
return False
|
|
176
|
+
|
|
177
|
+
|
|
158
178
|
def maybe_autocast(
|
|
159
179
|
device_type: str,
|
|
160
180
|
dtype: Optional["_dtype"] = None,
|
|
@@ -552,6 +552,11 @@ def is_torch_flex_attn_available() -> bool:
|
|
|
552
552
|
return is_torch_available() and version.parse(get_torch_version()) >= version.parse("2.5.0")
|
|
553
553
|
|
|
554
554
|
|
|
555
|
+
@lru_cache
|
|
556
|
+
def is_grouped_mm_available() -> bool:
|
|
557
|
+
return is_torch_available() and version.parse(get_torch_version()) >= version.parse("2.9.0")
|
|
558
|
+
|
|
559
|
+
|
|
555
560
|
@lru_cache
|
|
556
561
|
def is_kenlm_available() -> bool:
|
|
557
562
|
return _is_package_available("kenlm")
|
|
@@ -885,14 +890,17 @@ def is_flash_attn_2_available() -> bool:
|
|
|
885
890
|
|
|
886
891
|
import torch
|
|
887
892
|
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
893
|
+
try:
|
|
894
|
+
if torch.version.cuda:
|
|
895
|
+
return version.parse(flash_attn_version) >= version.parse("2.1.0")
|
|
896
|
+
elif torch.version.hip:
|
|
897
|
+
# TODO: Bump the requirement to 2.1.0 once released in https://github.com/ROCmSoftwarePlatform/flash-attention
|
|
898
|
+
return version.parse(flash_attn_version) >= version.parse("2.0.4")
|
|
899
|
+
elif is_torch_mlu_available():
|
|
900
|
+
return version.parse(flash_attn_version) >= version.parse("2.3.3")
|
|
901
|
+
else:
|
|
902
|
+
return False
|
|
903
|
+
except packaging.version.InvalidVersion:
|
|
896
904
|
return False
|
|
897
905
|
|
|
898
906
|
|
|
@@ -910,7 +918,12 @@ def is_flash_attn_greater_or_equal_2_10() -> bool:
|
|
|
910
918
|
@lru_cache
|
|
911
919
|
def is_flash_attn_greater_or_equal(library_version: str) -> bool:
|
|
912
920
|
is_available, flash_attn_version = _is_package_available("flash_attn", return_version=True)
|
|
913
|
-
|
|
921
|
+
if not is_available:
|
|
922
|
+
return False
|
|
923
|
+
try:
|
|
924
|
+
return version.parse(flash_attn_version) >= version.parse(library_version)
|
|
925
|
+
except packaging.version.InvalidVersion:
|
|
926
|
+
return False
|
|
914
927
|
|
|
915
928
|
|
|
916
929
|
@lru_cache
|
|
@@ -1071,6 +1084,11 @@ def is_pytest_available() -> bool:
|
|
|
1071
1084
|
return _is_package_available("pytest")
|
|
1072
1085
|
|
|
1073
1086
|
|
|
1087
|
+
@lru_cache
|
|
1088
|
+
def is_pytest_order_available() -> bool:
|
|
1089
|
+
return is_pytest_available() and _is_package_available("pytest_order")
|
|
1090
|
+
|
|
1091
|
+
|
|
1074
1092
|
@lru_cache
|
|
1075
1093
|
def is_spacy_available() -> bool:
|
|
1076
1094
|
return _is_package_available("spacy")
|
|
@@ -1106,6 +1124,16 @@ def is_nltk_available() -> bool:
|
|
|
1106
1124
|
return _is_package_available("nltk")
|
|
1107
1125
|
|
|
1108
1126
|
|
|
1127
|
+
@lru_cache
|
|
1128
|
+
def is_numba_available() -> bool:
|
|
1129
|
+
is_available = _is_package_available("numba")
|
|
1130
|
+
if not is_available:
|
|
1131
|
+
return False
|
|
1132
|
+
|
|
1133
|
+
numpy_available, numpy_version = _is_package_available("numpy", return_version=True)
|
|
1134
|
+
return not numpy_available or version.parse(numpy_version) < version.parse("2.2.0")
|
|
1135
|
+
|
|
1136
|
+
|
|
1109
1137
|
@lru_cache
|
|
1110
1138
|
def is_torchaudio_available() -> bool:
|
|
1111
1139
|
return _is_package_available("torchaudio")
|
|
@@ -1825,6 +1853,20 @@ BACKENDS_MAPPING = OrderedDict(
|
|
|
1825
1853
|
|
|
1826
1854
|
|
|
1827
1855
|
def requires_backends(obj, backends):
|
|
1856
|
+
"""
|
|
1857
|
+
Method that automatically raises in case the specified backends are not available. It is often used during class
|
|
1858
|
+
initialization to ensure the required dependencies are installed:
|
|
1859
|
+
|
|
1860
|
+
```py
|
|
1861
|
+
requires_backends(self, ["torch"])
|
|
1862
|
+
```
|
|
1863
|
+
|
|
1864
|
+
The backends should be defined in the `BACKEND_MAPPING` defined in `transformers.utils.import_utils`.
|
|
1865
|
+
|
|
1866
|
+
Args:
|
|
1867
|
+
obj: object to be checked
|
|
1868
|
+
backends: list or tuple of backends to check.
|
|
1869
|
+
"""
|
|
1828
1870
|
if not isinstance(backends, (list, tuple)):
|
|
1829
1871
|
backends = [backends]
|
|
1830
1872
|
|
|
@@ -71,14 +71,36 @@ def add_to_mapping(layer_name, device, repo_name, mode, compatible_mapping):
|
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
|
|
74
|
+
def add_to_mapping_local(layer_name, device, repo_name, mode, compatible_mapping):
|
|
75
|
+
from pathlib import Path
|
|
76
|
+
|
|
77
|
+
from kernels import LocalLayerRepository
|
|
78
|
+
|
|
79
|
+
if device not in ["cuda", "rocm", "xpu", "npu"]:
|
|
80
|
+
raise ValueError(f"Only cuda, rocm, xpu and npu devices supported, got: {device}")
|
|
81
|
+
repo_layer_name = repo_name.split(":")[1]
|
|
82
|
+
repo_path = repo_name.split(":")[0]
|
|
83
|
+
repo_package_name = repo_path.split("/")[-1]
|
|
84
|
+
compatible_mapping[layer_name] = {
|
|
85
|
+
device: {
|
|
86
|
+
mode: LocalLayerRepository(
|
|
87
|
+
repo_path=Path(repo_path),
|
|
88
|
+
package_name=repo_package_name,
|
|
89
|
+
layer_name=repo_layer_name,
|
|
90
|
+
)
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
|
|
74
95
|
class KernelConfig(PushToHubMixin):
|
|
75
96
|
"""
|
|
76
97
|
Kernel configuration class. This class is used to configure the kernel mapping for a model.
|
|
77
98
|
"""
|
|
78
99
|
|
|
79
|
-
def __init__(self, kernel_mapping={}):
|
|
100
|
+
def __init__(self, kernel_mapping={}, use_local_kernel=False):
|
|
80
101
|
self.kernel_mapping = kernel_mapping
|
|
81
102
|
self.registered_layer_names = {}
|
|
103
|
+
self.use_local_kernel = use_local_kernel
|
|
82
104
|
|
|
83
105
|
def update_kernel(self, repo_id, registered_name, layer_name, device, mode, revision=None):
|
|
84
106
|
from kernels import LayerRepository
|
|
@@ -105,6 +127,7 @@ class KernelConfig(PushToHubMixin):
|
|
|
105
127
|
2. Each kernel value is either a string of the form 'org/repo:layer_name' or a dict mapping device types ("cuda", "rocm", "xpu", "npu") to such strings.
|
|
106
128
|
3. Each device key in a dict is one of "cuda", "rocm", "xpu", or "npu".
|
|
107
129
|
4. Each repo_name is a valid repository and layer name in the format 'org/repo:layer_name' (i.e., a string containing both a slash and a colon).
|
|
130
|
+
5. If a local path is detected, it should be in the format '/abs/path:layer_name'. The absolute path must include the `package_name`, like "/home/user/layer_norm".
|
|
108
131
|
|
|
109
132
|
Args:
|
|
110
133
|
model: The model instance whose modules are checked for registered kernel_layer_name attributes.
|
|
@@ -114,14 +137,13 @@ class KernelConfig(PushToHubMixin):
|
|
|
114
137
|
or if a repo_name is not a valid 'org/repo:layer_name' string.
|
|
115
138
|
"""
|
|
116
139
|
MAPPING_FORMAT = """
|
|
140
|
+
For single device form remote
|
|
117
141
|
{
|
|
118
142
|
"RMSNorm":
|
|
119
143
|
"kernels-community/layer_norm:LlamaRMSNorm",
|
|
120
144
|
...
|
|
121
145
|
},
|
|
122
|
-
|
|
123
|
-
or
|
|
124
|
-
|
|
146
|
+
For multiple devices form remote
|
|
125
147
|
{
|
|
126
148
|
"RMSNorm": {
|
|
127
149
|
"cuda":
|
|
@@ -132,6 +154,23 @@ class KernelConfig(PushToHubMixin):
|
|
|
132
154
|
},
|
|
133
155
|
...
|
|
134
156
|
}
|
|
157
|
+
For single device form local
|
|
158
|
+
{
|
|
159
|
+
"RMSNorm":
|
|
160
|
+
"/abs/path:LlamaRMSNorm",
|
|
161
|
+
...
|
|
162
|
+
},
|
|
163
|
+
For multiple devices form local
|
|
164
|
+
{
|
|
165
|
+
"RMSNorm": {
|
|
166
|
+
"cuda":
|
|
167
|
+
"/abs/path:LlamaRMSNorm",
|
|
168
|
+
"rocm":
|
|
169
|
+
"/abs/path:LlamaRMSNorm",
|
|
170
|
+
...
|
|
171
|
+
},
|
|
172
|
+
...
|
|
173
|
+
}
|
|
135
174
|
"""
|
|
136
175
|
self.store_registered_layer_names(model)
|
|
137
176
|
# Validate that the kernel mapping is a dict
|
|
@@ -149,7 +188,7 @@ class KernelConfig(PushToHubMixin):
|
|
|
149
188
|
if isinstance(kernel, str):
|
|
150
189
|
if "/" not in kernel or ":" not in kernel:
|
|
151
190
|
raise ValueError(
|
|
152
|
-
f"Kernel mapping for '{layer_name}' must be a valid repo name with a layer name (e.g., 'org/repo:layer_name'), got: {kernel}"
|
|
191
|
+
f"Kernel mapping for '{layer_name}' must be a valid repo name with a layer name (e.g., 'org/repo:layer_name' or '/abs/path:layer_name'), got: {kernel}"
|
|
153
192
|
)
|
|
154
193
|
|
|
155
194
|
elif isinstance(kernel, dict):
|
|
@@ -159,9 +198,8 @@ class KernelConfig(PushToHubMixin):
|
|
|
159
198
|
|
|
160
199
|
if not isinstance(repo_name, str) or "/" not in repo_name or ":" not in repo_name:
|
|
161
200
|
raise ValueError(
|
|
162
|
-
f"Kernel mapping for '{layer_name}' must be a valid repo name with a layer name (e.g., 'org/repo:layer_name'), got: {repo_name}"
|
|
201
|
+
f"Kernel mapping for '{layer_name}' must be a valid repo name with a layer name (e.g., 'org/repo:layer_name' or '/abs/path:layer_name'), got: {repo_name}"
|
|
163
202
|
)
|
|
164
|
-
|
|
165
203
|
else:
|
|
166
204
|
raise ValueError(f"Kernel mapping must follow the format: {MAPPING_FORMAT}, got: {kernel}")
|
|
167
205
|
|
|
@@ -174,18 +212,13 @@ class KernelConfig(PushToHubMixin):
|
|
|
174
212
|
...
|
|
175
213
|
},
|
|
176
214
|
|
|
177
|
-
or
|
|
215
|
+
or for local path:
|
|
178
216
|
|
|
179
217
|
{
|
|
180
|
-
"RMSNorm":
|
|
181
|
-
"
|
|
182
|
-
"kernels-community/layer_norm:LlamaRMSNorm",
|
|
183
|
-
"rocm":
|
|
184
|
-
"kernels-community/layer_norm:LlamaRMSNorm",
|
|
185
|
-
...
|
|
186
|
-
},
|
|
218
|
+
"RMSNorm":
|
|
219
|
+
"/home/user/liger_kernels:LigerRMSNorm",
|
|
187
220
|
...
|
|
188
|
-
}
|
|
221
|
+
},
|
|
189
222
|
|
|
190
223
|
into a nested mapping:
|
|
191
224
|
|
|
@@ -200,6 +233,20 @@ class KernelConfig(PushToHubMixin):
|
|
|
200
233
|
}
|
|
201
234
|
}
|
|
202
235
|
|
|
236
|
+
or for local path:
|
|
237
|
+
|
|
238
|
+
{
|
|
239
|
+
"RMSNorm": {
|
|
240
|
+
"cuda": {
|
|
241
|
+
Mode.INFERENCE: LocalLayerRepository(
|
|
242
|
+
repo_path=Path("/home/user/liger_kernels"),
|
|
243
|
+
package_name="liger_kernels",
|
|
244
|
+
layer_name="LigerRMSNorm",
|
|
245
|
+
)
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
203
250
|
that's compatible with the kernels library.
|
|
204
251
|
|
|
205
252
|
The device is inferred from the model's parameters if not provided.
|
|
@@ -217,11 +264,17 @@ class KernelConfig(PushToHubMixin):
|
|
|
217
264
|
|
|
218
265
|
if isinstance(kernel, str):
|
|
219
266
|
repo_name = kernel
|
|
220
|
-
|
|
267
|
+
if not self.use_local_kernel:
|
|
268
|
+
add_to_mapping(layer_name, current_device, repo_name, mode, compatible_mapping)
|
|
269
|
+
else:
|
|
270
|
+
add_to_mapping_local(layer_name, current_device, repo_name, mode, compatible_mapping)
|
|
221
271
|
elif isinstance(kernel, dict):
|
|
222
272
|
for device, repo_name in kernel.items():
|
|
223
273
|
if device != current_device:
|
|
224
274
|
continue
|
|
225
|
-
|
|
275
|
+
if not self.use_local_kernel:
|
|
276
|
+
add_to_mapping(layer_name, device, repo_name, mode, compatible_mapping)
|
|
277
|
+
else:
|
|
278
|
+
add_to_mapping_local(layer_name, device, repo_name, mode, compatible_mapping)
|
|
226
279
|
|
|
227
280
|
self.kernel_mapping = compatible_mapping
|
|
@@ -69,6 +69,7 @@ class AwqFormat(str, Enum):
|
|
|
69
69
|
GEMM = "gemm"
|
|
70
70
|
GEMV = "gemv"
|
|
71
71
|
GEMV_FAST = "gemv_fast"
|
|
72
|
+
LLM_AWQ = "llm-awq"
|
|
72
73
|
|
|
73
74
|
|
|
74
75
|
class AwqBackend(str, Enum):
|
|
@@ -838,14 +839,13 @@ class AwqConfig(GPTQConfig):
|
|
|
838
839
|
r"""
|
|
839
840
|
Safety checker that arguments are correct
|
|
840
841
|
"""
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
AwqFormat.
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
)
|
|
842
|
+
|
|
843
|
+
if self.backend == "llm-awq":
|
|
844
|
+
self.format = AwqFormat.LLM_AWQ
|
|
845
|
+
self.backend = AwqBackend.AUTO
|
|
846
|
+
|
|
847
|
+
if self.format not in AwqFormat.__members__.values():
|
|
848
|
+
raise ValueError(f"Invalid format '{self.format}'. Must be one of: {[b.value for b in AwqFormat]}")
|
|
849
849
|
|
|
850
850
|
if self.backend not in AwqBackend.__members__.values():
|
|
851
851
|
raise ValueError(f"Invalid backend '{self.backend}'. Must be one of: {[b.value for b in AwqBackend]}")
|
|
@@ -175,7 +175,7 @@ class BaseVideoProcessor(BaseImageProcessorFast):
|
|
|
175
175
|
def __init__(self, **kwargs: Unpack[VideosKwargs]) -> None:
|
|
176
176
|
super().__init__()
|
|
177
177
|
|
|
178
|
-
|
|
178
|
+
kwargs.pop("processor_class", None)
|
|
179
179
|
|
|
180
180
|
# Additional attributes without default values
|
|
181
181
|
for key, value in kwargs.items():
|
|
@@ -442,7 +442,6 @@ class BaseVideoProcessor(BaseImageProcessorFast):
|
|
|
442
442
|
processed_videos_grouped[shape] = stacked_videos
|
|
443
443
|
|
|
444
444
|
processed_videos = reorder_videos(processed_videos_grouped, grouped_videos_index)
|
|
445
|
-
processed_videos = torch.stack(processed_videos, dim=0) if return_tensors else processed_videos
|
|
446
445
|
|
|
447
446
|
return BatchFeature(data={"pixel_values_videos": processed_videos}, tensor_type=return_tensors)
|
|
448
447
|
|
|
@@ -716,6 +715,7 @@ class BaseVideoProcessor(BaseImageProcessorFast):
|
|
|
716
715
|
logger.info(
|
|
717
716
|
f"loading configuration file {video_processor_file} from cache at {resolved_video_processor_file}"
|
|
718
717
|
)
|
|
718
|
+
|
|
719
719
|
return video_processor_dict, kwargs
|
|
720
720
|
|
|
721
721
|
@classmethod
|
|
@@ -771,11 +771,21 @@ class BaseVideoProcessor(BaseImageProcessorFast):
|
|
|
771
771
|
`dict[str, Any]`: Dictionary of all the attributes that make up this video processor instance.
|
|
772
772
|
"""
|
|
773
773
|
output = deepcopy(self.__dict__)
|
|
774
|
-
|
|
775
|
-
output.
|
|
776
|
-
|
|
774
|
+
filtered_dict = {}
|
|
775
|
+
for key, value in output.items():
|
|
776
|
+
if value is None:
|
|
777
|
+
class_default = getattr(type(self), key, "NOT_FOUND")
|
|
778
|
+
# Keep None if user explicitly set it (class default is non-None)
|
|
779
|
+
if class_default != "NOT_FOUND" and class_default is not None:
|
|
780
|
+
filtered_dict[key] = value
|
|
781
|
+
else:
|
|
782
|
+
filtered_dict[key] = value
|
|
777
783
|
|
|
778
|
-
|
|
784
|
+
filtered_dict.pop("model_valid_processing_keys", None)
|
|
785
|
+
filtered_dict.pop("_valid_kwargs_names", None)
|
|
786
|
+
filtered_dict["video_processor_type"] = self.__class__.__name__
|
|
787
|
+
|
|
788
|
+
return filtered_dict
|
|
779
789
|
|
|
780
790
|
def to_json_string(self) -> str:
|
|
781
791
|
"""
|
|
@@ -790,12 +800,6 @@ class BaseVideoProcessor(BaseImageProcessorFast):
|
|
|
790
800
|
if isinstance(value, np.ndarray):
|
|
791
801
|
dictionary[key] = value.tolist()
|
|
792
802
|
|
|
793
|
-
# make sure private name "_processor_class" is correctly
|
|
794
|
-
# saved as "processor_class"
|
|
795
|
-
_processor_class = dictionary.pop("_processor_class", None)
|
|
796
|
-
if _processor_class is not None:
|
|
797
|
-
dictionary["processor_class"] = _processor_class
|
|
798
|
-
|
|
799
803
|
return json.dumps(dictionary, indent=2, sort_keys=True) + "\n"
|
|
800
804
|
|
|
801
805
|
def to_json_file(self, json_file_path: Union[str, os.PathLike]):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: transformers
|
|
3
|
-
Version: 5.0.
|
|
3
|
+
Version: 5.0.0rc2
|
|
4
4
|
Summary: Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.
|
|
5
5
|
Home-page: https://github.com/huggingface/transformers
|
|
6
6
|
Author: The Hugging Face team (past and future) with the help of all our contributors (https://github.com/huggingface/transformers/graphs/contributors)
|
|
@@ -11,7 +11,6 @@ Classifier: Development Status :: 5 - Production/Stable
|
|
|
11
11
|
Classifier: Intended Audience :: Developers
|
|
12
12
|
Classifier: Intended Audience :: Education
|
|
13
13
|
Classifier: Intended Audience :: Science/Research
|
|
14
|
-
Classifier: License :: OSI Approved :: Apache Software License
|
|
15
14
|
Classifier: Operating System :: OS Independent
|
|
16
15
|
Classifier: Programming Language :: Python :: 3
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.10
|
|
@@ -103,7 +102,7 @@ Requires-Dist: kenlm; extra == "torch-speech"
|
|
|
103
102
|
Provides-Extra: vision
|
|
104
103
|
Requires-Dist: Pillow<=15.0,>=10.0.1; extra == "vision"
|
|
105
104
|
Provides-Extra: timm
|
|
106
|
-
Requires-Dist: timm
|
|
105
|
+
Requires-Dist: timm>=1.0.23; extra == "timm"
|
|
107
106
|
Provides-Extra: torch-vision
|
|
108
107
|
Requires-Dist: torchvision; extra == "torch-vision"
|
|
109
108
|
Requires-Dist: Pillow<=15.0,>=10.0.1; extra == "torch-vision"
|
|
@@ -232,7 +231,7 @@ Requires-Dist: Pillow<=15.0,>=10.0.1; extra == "all"
|
|
|
232
231
|
Requires-Dist: kernels<0.11,>=0.10.2; extra == "all"
|
|
233
232
|
Requires-Dist: optuna; extra == "all"
|
|
234
233
|
Requires-Dist: ray[tune]>=2.7.0; extra == "all"
|
|
235
|
-
Requires-Dist: timm
|
|
234
|
+
Requires-Dist: timm>=1.0.23; extra == "all"
|
|
236
235
|
Requires-Dist: torchvision; extra == "all"
|
|
237
236
|
Requires-Dist: Pillow<=15.0,>=10.0.1; extra == "all"
|
|
238
237
|
Requires-Dist: codecarbon>=2.8.1; extra == "all"
|
|
@@ -294,7 +293,7 @@ Requires-Dist: Pillow<=15.0,>=10.0.1; extra == "dev-torch"
|
|
|
294
293
|
Requires-Dist: kernels<0.11,>=0.10.2; extra == "dev-torch"
|
|
295
294
|
Requires-Dist: optuna; extra == "dev-torch"
|
|
296
295
|
Requires-Dist: ray[tune]>=2.7.0; extra == "dev-torch"
|
|
297
|
-
Requires-Dist: timm
|
|
296
|
+
Requires-Dist: timm>=1.0.23; extra == "dev-torch"
|
|
298
297
|
Requires-Dist: torchvision; extra == "dev-torch"
|
|
299
298
|
Requires-Dist: Pillow<=15.0,>=10.0.1; extra == "dev-torch"
|
|
300
299
|
Requires-Dist: codecarbon>=2.8.1; extra == "dev-torch"
|
|
@@ -330,7 +329,7 @@ Requires-Dist: Pillow<=15.0,>=10.0.1; extra == "dev"
|
|
|
330
329
|
Requires-Dist: kernels<0.11,>=0.10.2; extra == "dev"
|
|
331
330
|
Requires-Dist: optuna; extra == "dev"
|
|
332
331
|
Requires-Dist: ray[tune]>=2.7.0; extra == "dev"
|
|
333
|
-
Requires-Dist: timm
|
|
332
|
+
Requires-Dist: timm>=1.0.23; extra == "dev"
|
|
334
333
|
Requires-Dist: torchvision; extra == "dev"
|
|
335
334
|
Requires-Dist: Pillow<=15.0,>=10.0.1; extra == "dev"
|
|
336
335
|
Requires-Dist: codecarbon>=2.8.1; extra == "dev"
|