@@ -74,24 +74,6 @@ def is_llama4_available():
7474 return False
7575
7676
77- def is_qwen2_vl_available ():
78- try :
79- import transformers .models .qwen2_vl # noqa: F401
80-
81- return True
82- except ImportError :
83- return False
84-
85-
86- def is_qwen2_5_vl_available ():
87- try :
88- import transformers .models .qwen2_5_vl # noqa: F401
89-
90- return True
91- except ImportError :
92- return False
93-
94-
9577def is_qwen3_available ():
9678 try :
9779 import transformers .models .qwen3 # noqa: F401
@@ -365,6 +347,7 @@ def test_apply_liger_kernel_to_instance_for_mllama_for_conditional_generation():
365347 # Ensure any monkey patching is cleaned up for subsequent tests
366348 with patch ("transformers.models.mllama.modeling_mllama" ):
367349 from transformers .models .mllama .modeling_mllama import MllamaForConditionalGeneration
350+ from transformers .models .mllama .modeling_mllama import MllamaTextModel
368351
369352 # Instantiate a dummy model
370353 config = transformers .models .mllama .configuration_mllama .MllamaConfig (
@@ -398,10 +381,14 @@ def test_apply_liger_kernel_to_instance_for_mllama_for_conditional_generation():
398381
399382 # Check that model instance variables are not yet patched with Liger modules
400383 assert inspect .getsource (dummy_model_instance .forward ) != inspect .getsource (mllama_lce_forward )
401- assert inspect .getsource (dummy_model_instance .language_model .norm .forward ) != inspect .getsource (
402- LigerRMSNorm .forward
403- )
404- for layer in dummy_model_instance .language_model .layers :
384+
385+ if isinstance (dummy_model_instance .language_model , MllamaTextModel ):
386+ language_model = dummy_model_instance .language_model
387+ else :
388+ language_model = dummy_model_instance .language_model .model
389+
390+ assert inspect .getsource (language_model .norm .forward ) != inspect .getsource (LigerRMSNorm .forward )
391+ for layer in language_model .layers :
405392 assert inspect .getsource (layer .mlp .forward ) != inspect .getsource (LigerSwiGLUMLP .forward )
406393 assert inspect .getsource (layer .input_layernorm .forward ) != inspect .getsource (LigerRMSNorm .forward )
407394 assert inspect .getsource (layer .post_attention_layernorm .forward ) != inspect .getsource (LigerRMSNorm .forward )
@@ -428,10 +415,8 @@ def test_apply_liger_kernel_to_instance_for_mllama_for_conditional_generation():
428415
429416 # Check that the model's instance variables were correctly patched with Liger modules
430417 assert inspect .getsource (dummy_model_instance .forward ) == inspect .getsource (mllama_lce_forward )
431- assert inspect .getsource (dummy_model_instance .language_model .norm .forward ) == inspect .getsource (
432- LigerRMSNorm .forward
433- )
434- for layer in dummy_model_instance .language_model .layers :
418+ assert inspect .getsource (language_model .norm .forward ) == inspect .getsource (LigerRMSNorm .forward )
419+ for layer in language_model .layers :
435420 assert inspect .getsource (layer .mlp .forward ) == inspect .getsource (LigerSwiGLUMLP .forward )
436421 assert inspect .getsource (layer .input_layernorm .forward ) == inspect .getsource (LigerRMSNorm .forward )
437422 assert inspect .getsource (layer .post_attention_layernorm .forward ) == inspect .getsource (LigerRMSNorm .forward )
@@ -452,7 +437,6 @@ def test_apply_liger_kernel_to_instance_for_mllama_for_conditional_generation():
452437 assert inspect .getsource (layer .post_attention_layernorm .forward ) == inspect .getsource (
453438 LigerLayerNorm .forward
454439 )
455-
456440 try :
457441 print (dummy_model_instance )
458442 except Exception as e :
@@ -1130,7 +1114,10 @@ def test_apply_liger_kernel_to_instance_for_qwen3_moe():
11301114 pytest .fail (f"An exception occured in extra_expr: { type (e ).__name__ } - { e } " )
11311115
11321116
1133- @pytest .mark .skipif (not is_qwen2_vl_available (), reason = "qwen2_vl module not available" )
1117+ @pytest .mark .skipif (
1118+ transformer_version < version .parse ("4.52.4" ),
1119+ reason = "Qwen2-VL support is only compatible with transformers >= 4.52.4" ,
1120+ )
11341121def test_apply_liger_kernel_to_instance_for_qwen2_vl_for_conditional_generation ():
11351122 # Ensure any monkey patching is cleaned up for subsequent tests
11361123 with patch ("transformers.models.qwen2_vl.modeling_qwen2_vl" ):
@@ -1196,7 +1183,10 @@ def test_apply_liger_kernel_to_instance_for_qwen2_vl_for_conditional_generation(
11961183 pytest .fail (f"An exception occured in extra_expr: { type (e ).__name__ } - { e } " )
11971184
11981185
1199- @pytest .mark .skipif (not is_qwen2_vl_available (), reason = "qwen2_vl module not available" )
1186+ @pytest .mark .skipif (
1187+ transformer_version < version .parse ("4.52.4" ),
1188+ reason = "Qwen2-VL support is only compatible with transformers >= 4.52.4" ,
1189+ )
12001190def test_apply_liger_kernel_to_instance_for_qwen2_vl ():
12011191 # Ensure any monkey patching is cleaned up for subsequent tests
12021192 with patch ("transformers.models.qwen2_vl.modeling_qwen2_vl" ):
@@ -1262,7 +1252,10 @@ def test_apply_liger_kernel_to_instance_for_qwen2_vl():
12621252 pytest .fail (f"An exception occured in extra_expr: { type (e ).__name__ } - { e } " )
12631253
12641254
1265- @pytest .mark .skipif (not is_qwen2_vl_available (), reason = "qwen2_vl module not available" )
1255+ @pytest .mark .skipif (
1256+ transformer_version < version .parse ("4.52.4" ),
1257+ reason = "Qwen2-VL support is only compatible with transformers >= 4.52.4" ,
1258+ )
12661259def test_apply_liger_kernel_to_instance_for_qwen2_vl_text ():
12671260 # Ensure any monkey patching is cleaned up for subsequent tests
12681261 with patch ("transformers.models.qwen2_vl.modeling_qwen2_vl" ):
@@ -1310,7 +1303,10 @@ def test_apply_liger_kernel_to_instance_for_qwen2_vl_text():
13101303 pytest .fail (f"An exception occured in extra_expr: { type (e ).__name__ } - { e } " )
13111304
13121305
1313- @pytest .mark .skipif (not is_qwen2_5_vl_available (), reason = "qwen2_5_vl module not available" )
1306+ @pytest .mark .skipif (
1307+ transformer_version < version .parse ("4.52.4" ),
1308+ reason = "Qwen2.5-VL support is only compatible with transformers >= 4.52.4" ,
1309+ )
13141310def test_apply_liger_kernel_to_instance_for_qwen2_5_vl ():
13151311 # Ensure any monkey patching is cleaned up for subsequent tests
13161312 with patch ("transformers.models.qwen2_5_vl.modeling_qwen2_5_vl" ):
@@ -1376,7 +1372,10 @@ def test_apply_liger_kernel_to_instance_for_qwen2_5_vl():
13761372 pytest .fail (f"An exception occured in extra_expr: { type (e ).__name__ } - { e } " )
13771373
13781374
1379- @pytest .mark .skipif (not is_qwen2_5_vl_available (), reason = "qwen2_5_vl module not available" )
1375+ @pytest .mark .skipif (
1376+ transformer_version < version .parse ("4.52.4" ),
1377+ reason = "Qwen2.5-VL support is only compatible with transformers >= 4.52.4" ,
1378+ )
13801379def test_apply_liger_kernel_to_instance_for_qwen2_5_vl_for_conditional_generation ():
13811380 # Ensure any monkey patching is cleaned up for subsequent tests
13821381 with patch ("transformers.models.qwen2_5_vl.modeling_qwen2_5_vl" ):
@@ -1442,7 +1441,10 @@ def test_apply_liger_kernel_to_instance_for_qwen2_5_vl_for_conditional_generatio
14421441 pytest .fail (f"An exception occured in extra_expr: { type (e ).__name__ } - { e } " )
14431442
14441443
1445- @pytest .mark .skipif (not is_qwen2_5_vl_available (), reason = "qwen2_5_vl module not available" )
1444+ @pytest .mark .skipif (
1445+ transformer_version < version .parse ("4.52.4" ),
1446+ reason = "Qwen2.5-VL support is only compatible with transformers >= 4.52.4" ,
1447+ )
14461448def test_apply_liger_kernel_to_instance_for_qwen2_5_vl_text ():
14471449 # Ensure any monkey patching is cleaned up for subsequent tests
14481450 with patch ("transformers.models.qwen2_5_vl.modeling_qwen2_5_vl" ):
0 commit comments