google-deepmind / google-deepmind/reverb

Reverb adder performance decreases over time

Open
#99 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
793
Forks
113
PR merge metrics
No merged PRs in 30d

Description

Hi!
I'm using acme library for training the R2D2 agent on Atari games. I'm training on Vertex AI with 128 actor nodes, 1 reverb node, and 1 learner node. After some time of training (~20 hours), the utilisation of CPU cores on actors decreases and the speed of experience collection decreases as well. After some investigation, I've found out that its the function that adds experience to the reverb taking more and more time as the training progresses.

Below you can see the CPU utilisation for all the nodes participating in the training. The green curve corresponds to evaluator (which is almost the same as actor, except for the fact it skips the step of adding experience to reverb).
image

I'm using:
dm-acme==0.4.0
dm-reverb==0.7.0

I use SequenceAdder for adding the experience, and SampleToInsertRatio for limiting the number of insertions compared to the number of samples on learning. Min size of reverb table is 6250 and max size is 100k.

Contributor guide

Open the contributing guide

Research direction

Start with the SequenceAdder and SampleToInsertRatio configuration described in the report, using the listed dm-reverb 0.7.0 and dm-acme 0.4.0 versions and the long-running 128-actor setup. Done means identifying why insertion slows over time and demonstrating stable experience-collection performance in a comparable training run.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, google-cloud, python
Domain
distributed-systems, machine-learning, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.