Support Over Rollout #988
Annotations
3 errors
|
unittest
Process completed with exit code 1.
|
|
Failed Test: tests/trainer/trainer_test.py::TestOverRollout::test_trainer
tests/trainer/trainer_test.py::TestOverRollout::test_trainer: The test failed in the call phase due to an assertion error - self = <tests.trainer.trainer_test.TestOverRollout testMethod=test_trainer>
def test_trainer(self):
self.config.algorithm.repeat_times = 4
self.config.buffer.batch_size = 4
self.config.buffer.total_steps = 2
self.config.buffer.explorer_input.taskset = get_unittest_dataset_config("gsm8k")
self.config.name = f"explore-over-rollout-{datetime.now().strftime('%Y%m%d%H%M%S')}"
self.config.explorer.over_rollout.ratio = 0.5 # set over rollout rate to 50%, which means only wait for 2 (4 * 50%) tasks in each steps
self.config.explorer.over_rollout.wait_after_min = 0
self.config.algorithm.algorithm_type = "grpo"
self.config.algorithm.advantage_fn = "grpo"
self.config.algorithm.advantage_fn_args = {
"epsilon": 1e-6,
}
self.config.synchronizer.sync_style = SyncStyle.DYNAMIC_BY_EXPLORER
self.config.synchronizer.sync_interval = 1
self.config.check_and_update()
both(self.config)
parser = TensorBoardParser(os.path.join(self.config.monitor.cache_dir, "tensorboard"))
rollout_metrics = parser.metric_list("rollout")
self.assertTrue(len(rollout_metrics) > 0)
eval_metrics = parser.metric_list("eval")
self.assertTrue(len(eval_metrics) == 0)
self.assertEqual(parser.metric_max_step(rollout_metrics[0]), 2)
self.assertTrue(parser.metric_exist("experience_pipeline/experience_count"))
experience_counts = parser.metric_values("experience_pipeline/experience_count")
self.assertTrue(len(experience_counts) == 2)
for count in experience_counts:
self.assertTrue(
count >= 2 * 4
) # at least process 2 tasks in each step, repeat_times is 4
pg_loss = parser.metric_values("actor/pg_loss")
self.assertTrue(len(pg_loss) >= 1) # trainer only has at least 1 step
exp_save_path = self.config.buffer.trainer_input.experience_buffer.path
with open(exp_save_path, "r", encoding="utf-8") as f:
lines = f.readlines()
> self.assertTrue(
len(lines) > 2 * 4 * 2
) # total_steps * repeat_times * batch_size * min_waited_tasks
E AssertionError: False is not true
tests/trainer/trainer_test.py:1028: AssertionError
|
|
unittest
Process completed with exit code 1.
|
Artifacts
Produced during runtime
| Name | Size | Digest | |
|---|---|---|---|
|
pytest-results
|
2.18 KB |
sha256:9010bfa56a04be4f2add5b4e49a8a34e11aa0ee325a9ae07dcd6c9d2555d7f95
|
|