Self-play RL makes driving policies robust but not human-like. SHIFT (Self-play with Human Imitation Fine-Tuning) pretrains with large-scale self-play, then fine-tunes on human driving logs in closed-loop log replay, using the same PPO loop with one added human-similarity reward and a KL anchor to the frozen self-play policy.
Most hybrid methods learn from human data first and then use it to anchor self-play. SHIFT flips the order: it pretrains a robust foundation policy with large-scale self-play, then fine-tunes it on human driving. Fine-tuning takes hours rather than days, so adding a city or targeting a new capability doesn't mean re-running self-play.
Both stages use the same network and the same PPO algorithm. Fine-tuning adds three things:
Example drives on public roads in Pittsburgh, PA, with self-play on the left and SHIFT on the right.
Self-play slows down near other vehicles before moving forward, whereas SHIFT naturally moves past them.
Self-play is very conservative and takes the right turn at a low speed, whereas SHIFT takes the turn naturally.
Self-play stops abruptly when other vehicles are close by, whereas SHIFT drives through naturally.
This is a research project in Motional and is not representative of Motional's production AV's
We fine-tune on ∼92K scenes of human urban driving from 1,712 logs and evaluate on the held-out closed-loop nuPlan Val14 benchmark (1,115 scenarios, non-reactive agents). SHIFT outperforms the self-play baseline on 9 of 10 metrics, with the largest gains in human-likeness (ADE −15%, FDE −13%) and comfort (brake taps −31%, oscillations −53%). It is also safer: collisions −39%, drivable-area violations −32%, red-light violations −39%.
| Metric | Self-play | SHIFT | Extra self-play | BC only | BC+RL | TFISH | HR-PPO |
|---|---|---|---|---|---|---|---|
| Human-likeness | |||||||
| ADE (m) ↓ | 9.406 | 8.041 | 8.936 | 26.229 | 25.305 | 11.915 | 9.645 |
| FDE (m) ↓ | 21.347 | 18.542 | 20.050 | 72.606 | 57.800 | 30.522 | 21.914 |
| Safety | |||||||
| Collisions ↓ | 0.064 | 0.039 | 0.057 | 0.552 | 0.230 | 0.193 | 0.151 |
| Drivable area violations ↓ | 0.025 | 0.017 | 0.022 | 0.414 | 0.336 | 0.039 | 0.017 |
| Red light violations ↓ | 0.016 | 0.010 | 0.014 | 0.169 | 0.007 | 0.013 | 0.015 |
| Speed limit violations ↓ | 0.074 | 0.076 | 0.082 | 0.451 | 0.065 | 0.080 | 0.094 |
| Progress | |||||||
| Progress along expert route ↑ | 0.762 | 0.797 | 0.801 | 0.666 | 0.276 | 0.662 | 0.810 |
| Speed vs. expert (m/s) ↑ | −0.894 | −0.620 | −0.581 | 2.588 | −3.992 | −1.719 | −0.663 |
| Comfort | |||||||
| Brake taps ↓ | 0.288 | 0.197 | 0.285 | 0.124 | 0.639 | 0.100 | 0.427 |
| Oscillations ↓ | 0.090 | 0.042 | 0.091 | 0.012 | 0.030 | 0.132 | 0.224 |
Baselines. Extra self-play gives only modest gains. BC only is comfortable but unsafe, with 14× more collisions, 24× more drivable-area violations and 17× more red-light violations than SHIFT. Naively combining BC+RL from scratch does worse still, which points to the role of self-play pretraining in this limited-data regime. BC-regularized self-play (TFISH and HR-PPO), the conventional IL→RL ordering, does not match SHIFT.
Because fine-tuning is cheap, the same foundation policy can be specialized quickly. Fine-tuning on a dataset of nominal driving already improves substantially over self-play. A curated close-proximity dataset helps most in dense traffic, where the policy keeps up with expert speed and brakes less. Fine-tuning on both datasets in sequence gives the best of both: it is best on six of ten metrics overall, with collisions −44% and brake taps −42% relative to self-play.
Most of the human-likeness gain arrives in the first few hundred PPO cycles, while safety stays flat or improves across all 1,500. Raising the similarity weight from pure RL toward pure BC improves human-likeness and comfort, but safety worsens past 10−2. With too little KL, fine-tuning overwrites the self-play policy and behaves like BC only; with too much, the policy stops learning.
We deployed the self-play baseline and SHIFT, fine-tuned on either the nominal dataset or both datasets, on autonomous vehicles on public roads in Las Vegas, with a safety driver, on loops around the Motional Las Vegas office. Both SHIFT variants needed fewer safety takeovers and improved on every discretionary metric (stuck, slow driving, discomfort, bad driving). To our knowledge, these are the first on-vehicle results for a policy pretrained with self-play and fine-tuned with imitation learning.
| Metric (miles per event ↑) | Self-play | SHIFT (nominal) | SHIFT (both) |
|---|---|---|---|
| Total auto-miles | 14.8 | 18.5 | 13.1 |
| Discretionary metrics | |||
| Takeovers | 0.568 | 1.322 | 1.456 |
| Stuck | 0.739 | 1.851 | 1.871 |
| Slow driving | 0.314 | 0.544 | 0.655 |
| Discomfort | 0.924 | 1.157 | 13.100 |
| Bad driving | 0.141 | 0.220 | 0.279 |
| Objective metrics | |||
| Brake taps | 1.478 | 2.644 | 0.819 |
| Jerk violations | 0.139 | 0.180 | 0.109 |
| Acceleration violations | 0.119 | 0.123 | 0.098 |
| Oscillations | 2.956 | 1.322 | 4.367 |
| Steering rate violations | 0.591 | 0.561 | 0.570 |
Non-reactive log replay limits episodes to 6.6 seconds; beyond that, replayed agents collide with the ego once its trajectory diverges from the log. Rolling out and supervising all agents during fine-tuning could remove this limit. Some edge cases involving yellow lights and stop signs degrade after fine-tuning, which suggests residual conflict between imitation and strict rule-following even with KL regularization. Our public-road tests also cover limited mileage, so further on-road evaluation is needed.
* Coming soon, check back on Nov 15.
The released code is a public reimplementation of the method described in the paper. Results may differ from those reported.
If you find this work useful in your research, please consider citing: