$ the-wire · showcase
LeRobot 0.7.0 rebuilds install and sim stack; TRL trims async trainer protocols
By RepoJournal · Filed · About Hugging Face · Composed from the cited sources · methodology
LeRobot v0.7.0 lands with breaking changes to installation, training, inference and the hardware layer, while TRL and transformers continue collapsing standalone hooks into config-driven extension points.
Release v0.7.0 huggingface/lerobot
by github-actions[bot]
The release rebuilds installation, training, inference and the hardware layer, and on Linux torch and torchvision now come from PyPI as CUDA 13 builds requiring NVIDIA driver 580.65 or newer, with the cu128 index gone. Anything pinning the old index or running older drivers needs attention before upgrading from v0.6.1.
feat(sim): one simulator core for batched envs and sim robots, in-process or served huggingface/lerobot
Every simulator now runs through one vector env, LocalVectorEnv, used by lerobot-eval via --env.* and as a sim robot via --robot.type=sim, either in-process or served by lerobot-env-server. This replaces three divergent paths where benchmark images installed the simulator and LeRobot in one venv with conflicting pins, and where a sim could not be used as a Robot at all.
feat(sim): NVIDIA RoboLab benchmark on Isaac Lab huggingface/lerobot
NVIDIA RoboLab's 120 tabletop DROID tasks run from LeRobot with lerobot-eval --env.type=robolab, in-process or served. It is the first GPU-batched integration: it defines vector_env_fns so the envs of a batch share one Isaac Lab world, and the env server now gives every simulator image 600 s to start because Isaac Sim needs it.
Drop the weight_transfer protocol from AsyncGRPO and AsyncDistillation huggingface/trl
AsyncGRPOTrainer and AsyncDistillationTrainer no longer accept a weight_transfer argument or WeightTransferProtocol; the trainer always builds its sync from config, either NCCL through vLLM's weight-transfer API or adapter sync for LoRA. Callers that passed a custom object, as the tests did with a no-op stub, must patch WeightTransferClient in the trainer module instead.
Drop the rollout_worker argument from AsyncDistillation huggingface/trl
AsyncDistillationTrainer drops rollout_worker and RolloutWorkerProtocol and always builds AsyncRolloutWorker from config; AsyncGRPO keeps its argument for now because rollout_loop_cls is replacing it there. The checkpoint and resume paths no longer type-check the worker, since they run on the main process where it always exists.
Drop the weight_transfer protocol from AsyncGRPO and AsyncDistillation (#8065) huggingface/trl
Two more async entry points vanish in the same sweep: AsyncGRPO gains a public extension point instead, where you subclass AsyncRolloutLoop and set loop_cls on a trainer subclass, and the older rollout_worker= path still works until the harness is ported.
Action items
- → Pin NVIDIA driver 580.65 or newer and drop the cu128 index before upgrading lerobot to 0.7.0 huggingface/lerobot [plan]