GrabTan Sien YiExplainer
DispatchGym: Grab’s reinforcement learning research framework
Summary
DispatchGym is a research framework for reinforcement learning (RL) studies in dispatch systems that match bookings with drivers. It combines an RL algorithm, a dispatch-process simulation, and a Gymnasium API interface, allowing data scientists with basic RL and Python skills to modify and test ideas independently. The simulated environment models booking creation, driver dispatch and movement, and booking completion, prioritizing directional accuracy over exact metric matching; its modular Python architecture uses Numba to reduce runtime overhead. A command-line upload launches the modified code on internal infrastructure as a Spark job, avoiding infrastructure management while preserving flexibility across simulation and optimization components. The framework supported experiments with contextual bandits, including linear, neural-linear, and Gaussian-process variants alongside several action-sampling strategies, to identify combinations of levers and reward functions for dispatch hyperparameter tuning and improved fulfilment efficiency and reliability.
Context
RL applications for dispatch systems can become ineffective when the controlled lever has little influence on the reward function. The reward should be sensitive to lever changes and correlated with the ultimate objective, even when it is not identical to that objective.
Approach / What changed
DispatchGym integrates an RL optimization component, a dispatch-process simulation, and a Gymnasium API. Its modular Python environment models the dispatch lifecycle with directional accuracy, uses Numba to reduce runtime overhead, and lets users modify code locally before launching it as a Spark job through a command-line upload.
Takeaways
The simulation prioritizes directional accuracy: metric trends should match real-world behavior even when simulated and real metric values differ.
Data scientists can alter both simulation and optimization components locally, then submit the updated code through one CLI command that starts a Spark job.
DispatchGym supported testing linear, neural-linear, and Gaussian-process contextual bandits with epsilon-greedy, Thompson sampling, SquareCB, and FastCB action sampling.
Source and freshness
- Source
- engineering.grab.com
- Published
- Added to Yomu
- Last updated
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.