Miscellaneous Gems from ML-Agents Resources
I browsed through ML-Agents GitHub issues and forums looking for an explanation why there hasn't been a release in half a year, I came up empty handed on an answer. But the time is not all wasted since I found a few other scattered tidbits that might be useful for the future.
The simulation time scale used in most examples is 20, and is the default used by the mlagents-learn
script. If the script is not used, the simulation runs in real time and will feel very slow. The tradeoff here is accuracy of physics simulation, as per the comment "If you go too fast, the physics gets kind of wonky, and sometimes objects/agents will go through each other."
The official "Hummingbird" tutorial on Unity Learn targets the LTS build of Unity with ML-Agents version 1. Looks like the goal is to update it to work with a new release of ML-Agents, and instructions to get a preview has been posted.
Issue #4129 is pretty old but there is a lot of detail here about why Unity ML-Agents doesn't necessarily benefit from GPU accelerated neural network training. Since then, ML-Agents has switched from TensorFlow to PyTorch but many of the points might still apply.
But never mind the GPU, ML-Agents can't even make full use of multicore CPUs like this person's 16-core Threadripper. The Unity person who responded explained this is on the list of things to improve but there's nothing to show yet. In the meantime, there are workarounds.
Also on the subject of utilizing parallel hardware, here's a request for Unity to use Google's Brax physics engine. Based on my experience I was certain the answer was "No" (the physics engine isn't something that can "just" be switched around) but this question was valuable for two reasons. One, it led me to look up and learn about Google Brax, a physics engine for reinforcement learning that runs on Google TPUs and CUDA GPUs. And second, Unity actually is investing in the work towards a faster physics engine "for the DOTS platform." Um... what's DOTS? Time for some reading.