@@ -81,7 +81,7 @@ def transform_messages(
8181 return all_image_inputs
8282
8383
84- def create_vlm_collate_fn (processor , script_args ):
84+ def create_vlm_collate_fn (processor , training_args , script_args ):
8585 """Optimized collate function for VLM training that masks system prompt tokens."""
8686
8787 def collate_fn (examples : list [dict [str , list | str | Image .Image ]]):
@@ -152,6 +152,8 @@ def collate_fn(examples: list[dict[str, list | str | Image.Image]]):
152152 batch = processor (
153153 text = texts ,
154154 images = all_image_inputs if all_image_inputs else None ,
155+ max_length = training_args .max_length ,
156+ truncation = True ,
155157 padding = True ,
156158 return_tensors = "pt" ,
157159 )
@@ -206,12 +208,17 @@ class ScriptArguments:
206208 )
207209 processor .image_processor .size = {"longest_edge" : 384 }
208210 collate_fn = create_vlm_collate_fn (processor , script_args = ScriptArguments )
209- max_length = 0
210- for dataset_name in ['omniact' , 'ricoig16k' , 'webui350k' , 'widget_captioning' , 'seeclick' , 'ui_refexp' , 'ricosca' , 'guienv' ]:
211+ max_length = []
212+ for dataset_name in ['ricosca' ]:
213+ dataset_max_length = 0
211214 data = load_dataset ("smolagents/aguvis-stage-1" , dataset_name , split = "train" )
212215 print ("processing" , dataset_name )
213216 for example in data :
214217 batch = collate_fn ([example ])
215- max_length = max (max_length , batch ["input_ids" ].shape [1 ])
216- print ("max_length" , max_length )
217- open ("max_length_384_phase_1.txt" , "w" ).write (str (max_length ))
218+ dataset_max_length = max (dataset_max_length , batch ["input_ids" ].shape [1 ])
219+ print ("dataset_max_length" , dataset_name , dataset_max_length )
220+ max_length .append (dataset_max_length )
221+
222+ print (max_length )
223+ print ("max_length" , max (max_length ))
224+ open ("max_length_384_phase_1.txt" , "a" ).write (str (max (max_length )))
0 commit comments