| name | gtr-turbo-vlm |
| title | GTR-Turbo: Merged Checkpoint as Free Teacher for Agentic VLM Training |
| version | 0.0.2 |
| engine | skillxiv-v0.0.2-claude-opus-4.6 |
| license | MIT |
| url | https://arxiv.org/abs/2512.13043 |
| keywords | ["vision-language","reinforcement-learning","teacher-free","distillation","checkpoint-merging"] |
| description | Eliminate expensive external teacher dependencies in VLM RL training via merged-checkpoint teachers. Uses TIES merging of historical RL checkpoints to create free, stable teacher models for step-level guidance—matching external teacher performance while reducing training time 50% and computational costs 60%. |
Overview
GTR-Turbo shows that effective VLM RL training doesn't require external teachers—historical checkpoint merging provides guidance automatically.
Core Technique
Checkpoint Merging via TIES:
class CheckpointMergingTeacher:
def __init__(self, checkpoint_history):
self.checkpoints = checkpoint_history
self.merged_model = None
def merge_checkpoints(self):
"""
TIES merging: Trim, Elect Sign, Merge for stable teacher.
"""
weight_diffs = []
for ckpt in self.checkpoints:
diff = ckpt.weights - reference_model.weights
weight_diffs.append(diff)
merged = reference_model.weights.clone()
for param_name in merged.state_dict():
param_diffs = [wd[param_name] for wd in weight_diffs]
signs = torch.sign(torch.stack(param_diffs))
elected_sign = torch.mode(signs, dim=0).values
magnitudes = torch.abs(torch.stack(param_diffs))
avg_magnitude = torch.mean(magnitudes, dim=0)
merged[param_name] = elected_sign * avg_magnitude
self.merged_model = create_model_from_weights(merged)
return self.merged_model