Skip to content

Commit 76c5672

Browse files
committed
CHG collator
1 parent b5a2716 commit 76c5672

2 files changed

Lines changed: 14 additions & 7 deletions

File tree

scripts/agents/smolvlm2_collator.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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)))

src/open_r1/sft.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ def main(script_args, training_args, model_args):
124124
model = get_model(
125125
model_args, training_args
126126
) # This should return AutoModelForVision2Seq
127-
data_collator = create_vlm_collate_fn(processor, script_args)
127+
data_collator = create_vlm_collate_fn(processor, training_args, script_args)
128128
processing_class = processor.tokenizer
129129
model_tags = ["open-r1", "vision-language", "vlm"]
130130

0 commit comments

Comments
 (0)