Showing Posts From

Robot world models

The Paradigm Shift: When Models Learn to Act The last decade taught us that scaling language models yields ever‑more fluent text generators. Yet the most valuable commodity in modern software is not prose but action—the ability to mutate state, invoke APIs, and close the loop between intent and effect. Large Action Models (LAMs) embody this transition: they consume high‑level instructions, plan multi‑step procedures, and execute them on heterogeneous environments ranging from pixel‑level image editors to multi‑embodiment robot fleets. Two recent arXiv contributions illustrate the frontier. Rubric‑CEPR demonstrates a self‑evolving image editor that verifies its own output through a rubric‑augmented Contrastive Edit‑Preservation Reward, improving ImgEdit scores from 4.36 to 4.60 (+5.5 %) and delivering a 24.9 % gain on object isolation without any human‑annotated pairs. DreamTrue, on the other hand, builds a cross‑embodiment robot world model that learns from counterfactual post‑training, slashing human‑assessed interaction defects from 48.12 % to 6.25 % and securing first place in the AgiBot World Challenge 2026. Together they signal a new contract: models that self‑audit and imagine unseen futures, turning passive prediction into reliable agency. The implications ripple across developer tooling, autonomous manufacturing, and the very definition of a user interface.Rubric‑Driven Self‑Distillation in Visual Editing Rubric‑CEPR replaces the traditional supervised fine‑tuning loop with a critic‑in‑the‑loop that never leaves the model’s own latent space. A Planner samples structured edit instructions from raw images; the Editor produces a candidate set; a frozen Critic evaluates each candidate against three non‑compensatory rubrics—edit realization, removal of the prior state, and content preservation—using features already exposed by the editor backbone. Only candidates passing all gates survive to a lightweight adapter distillation step. This architecture yields two practical advantages for system builders. First, it eliminates the costly human‑in‑the‑loop annotation pipeline that has bottlenecked diffusion‑based editors. Second, the rubric gates act as hard constraints, preventing the subtle “plausible failure” modes where an edit looks realistic but leaves the target object untouched. Empirically, the method transfers to GEdit‑Bench and Complex‑Edit, and a parallel run on Step1X‑Edit adds a further +7.8 % on ImgEdit. For engineering teams, the takeaway is clear: a verifiable self‑critique loop can be dropped into any conditional diffusion backbone with only a few adapter layers, turning a static model into a continuously improving agent. Counterfactual World Models for Embodied Action DreamTrue tackles the orthogonal problem of action fidelity in video prediction for robotics. Training on logged trajectories suffers from two biases: calibration noise that misaligns action conditioning, and a surplus of successful episodes that teaches the model to hallucinate success. DreamTrue’s remedy is twofold. Offline geometric calibration projects recorded joint commands into image‑space conditions, aligning them with the visual stream. Counterfactual post‑training then rewrites action trajectories—injecting slips, collisions, and missed grasps—and rolls out the resulting futures with the world model. Because ground‑truth futures for these synthetic branches do not exist, the authors collect a modest human‑annotated defect dataset (robot, object, interaction flaws) and train an embodied video reward model. Reinforcement‑learning post‑training guided by this reward pushes the predictor toward physically plausible outcomes. The result: state‑of‑the‑art action following on AgiBot and a defect rate reduction from 48.12 % to 6.25 %. For practitioners deploying fleets of heterogeneous manipulators, DreamTrue offers a blueprint: calibrate once, augment aggressively, and close the loop with a learned visual critic.Architectural Patterns Emerging from LAM Research Both papers converge on a planner‑executor‑critic triad that mirrors classic control theory but lives entirely in latent neural space. The planner proposes discrete symbolic or semi‑symbolic goals; the executor (editor or world model) generates continuous candidates; the critic evaluates them against a decomposed rubric or reward. This pattern is now visible in several open‑source projects that have trended on GitHub: AutoGPT‑style agents that spin up a “self‑critique” loop before committing code changes, LangChain’s SelfCritiqueChain that validates tool outputs, and the OpenInterpreter sandbox that rolls back unsafe filesystem mutations. The common infrastructure pieces are:Frozen critic – a lightweight head (often a CLIP‑style encoder) that can score without gradient updates. Non‑compensatory gating – hard thresholds on each rubric dimension, preventing a high score in one dimension from masking failure in another. Adapter‑level distillation – only a few million parameters are updated per self‑improvement cycle, keeping compute budgets modest.These primitives enable a continuous deployment mindset: every inference request can optionally trigger a self‑verification pass, and the resulting high‑confidence samples are harvested for nightly adapter fine‑tunes. The operational cost is comparable to a single forward pass plus a cheap scoring head, making LAMs viable for latency‑sensitive products such as real‑time design assistants or tele‑operated warehouse robots. # Minimal self‑distillation loop inspired by Rubric‑CEPR import torch from torch import nn from transformers import AutoModelForCausalLM, AutoTokenizerclass RubricCritic(nn.Module): """Frozen critic scoring edit realization, removal, preservation.""" def __init__(self, encoder): super().__init__() self.encoder = encoder.eval() # frozen backbone self.head = nn.Linear(encoder.config.hidden_size, 3) # three rubrics @torch.no_grad() def score(self, latent): return torch.sigmoid(self.head(self.encoder(latent).last_hidden_state[:,0]))def self_distill(editor, critic, planner, data_loader, steps=5): adapter = nn.Linear(editor.config.hidden_size, editor.config.hidden_size).to(editor.device) opt = torch.optim.AdamW(adapter.parameters(), lr=1e-4) for _ in range(steps): for batch in data_loader: instr = planner(batch['image']) cand = editor.generate(instr, num_return_sequences=4) scores = critic.score(cand.latents) # (B,4,3) gate = (scores > 0.8).all(dim=-1) # non‑compensatory best = cand[gate].argmax(dim=1) # highest aggregate loss = nn.functional.mse_loss(adapter(best.latents), best.latents.detach()) loss.backward()### Related Insights- [All the Light We Cannot See Book Review and Summary](/blog/all-the-light-we-cannot-see) - [The Maze Runner Book Review and Summary](/blog/the-maze-runner) - [The Rosetta Stone: Breaking the Silence of Ancient Egypt](/blog/mark-dinn-rosetta-stone)