Skip to content

Conversation

@pan-x-c
Copy link
Collaborator

@pan-x-c pan-x-c commented Jul 10, 2025

Description

Add explorer.max_repeat_times, which limits the number of times a single runner can repeat a task, thereby splitting tasks with larger repeat_times into multiple subtasks to be executed on different runners. When explorer.max_repeat_times is not set, no splitting will be performed.

This method can reduce the overall latency of tasks with large repeat_times and lower the cost of failed retries; however, it will also cause the rollout results of the same group to be scattered. Users must decide whether to enable this function based on their actual needs.

Checklist

Please check the following items before code is ready to be reviewed.

  • Code has passed all tests
  • Docstrings have been added/updated in Google Style
  • Documentation has been updated
  • Code is ready for review

@pan-x-c
Copy link
Collaborator Author

pan-x-c commented Jul 10, 2025

/run-unittest

@github-actions
Copy link

Summary

Tests 📝 Passed ✅ Failed ❌ Skipped ⏭️ Other ❓ Flaky 🍂 Duration ⏱️
45 44 1 0 0 0 1.2s

Failed Tests

Failed Tests ❌ Fail Message
❌ tests/buffer/queue_test.py::TestQueueBuffer::test_queue_buffer The test failed in the call phase

Tests

Test Name Status Flaky Duration
tests/algorithm/policy_loss_test.py::VerlPolicyLossTest::test_dpo_policy_loss 1ms
tests/algorithm/policy_loss_test.py::VerlPolicyLossTest::test_mix_policy_loss 1ms
tests/algorithm/policy_loss_test.py::VerlPolicyLossTest::test_opmd_policy_loss 1ms
tests/algorithm/policy_loss_test.py::VerlPolicyLossTest::test_ppo_policy_loss 1ms
tests/algorithm/policy_loss_test.py::VerlPolicyLossTest::test_sft_policy_loss 1ms
tests/buffer/file_test.py::TestFileBuffer::test_file_buffer 3ms
tests/buffer/file_test.py::TestFileBuffer::test_file_reader 1ms
tests/buffer/file_test.py::TestFileBuffer::test_file_writer 2ms
tests/buffer/queue_test.py::TestQueueBuffer::test_queue_buffer 5ms
tests/buffer/sql_test.py::TestSQLBuffer::test_create_sql_buffer 4ms
tests/common/config_test.py::TestConfig::test_all_examples_are_valid 1ms
tests/common/config_test.py::TestConfig::test_load_default_config 4ms
tests/common/experience_test.py::TestExperienceConversion::test_batch_conversion 1ms
tests/common/experience_test.py::TestExperienceConversion::test_experience_model_experience_conversion 1ms
tests/common/vllm_test.py::TestModelWrapperSyncV0::test_generate 42ms
tests/common/vllm_test.py::TestModelWrapperAsyncV0::test_generate 41ms
tests/common/vllm_test.py::TestModelWrapperAsyncTPV0::test_generate 51ms
tests/common/vllm_test.py::TestModelWrapperAsyncTPV1::test_generate 52ms
tests/common/vllm_test.py::TestModelWrapperAsyncV1::test_generate 39ms
tests/common/vllm_test.py::TestAPIServer::test_api 24ms
tests/common/vllm_test.py::TestTokenizer::test_assistant_token_mask 1ms
tests/explorer/explorer_test.py::BaseExplorerCase::test_explorer 1ms
tests/explorer/explorer_test.py::TestExplorerCountdownEval::test_explorer 84ms
tests/explorer/explorer_test.py::TestExplorerCountdownNoEval::test_explorer 99ms
tests/explorer/scheduler_test.py::SchedulerTest::test_concurrent_operations 4ms
tests/explorer/scheduler_test.py::SchedulerTest::test_get_results 20ms
tests/explorer/scheduler_test.py::SchedulerTest::test_scheduler_all_methods 14ms
tests/explorer/scheduler_test.py::SchedulerTest::test_scheduler_restart_after_stop 8ms
tests/explorer/scheduler_test.py::SchedulerTest::test_split_tasks 7ms
tests/explorer/scheduler_test.py::SchedulerTest::test_wait_all 7ms
tests/explorer/scheduler_test.py::SchedulerTest::test_wait_all_timeout_with_multi_batch 13ms
tests/explorer/workflow_test.py::WorkflowTest::test_gsm8k_workflow 1ms
tests/explorer/workflow_test.py::WorkflowTest::test_math_boxed_workflow 1ms
tests/explorer/workflow_test.py::WorkflowTest::test_math_complex_workflow 1ms
tests/explorer/workflow_test.py::WorkflowTest::test_math_fraction_workflow 1ms
tests/explorer/workflow_test.py::WorkflowTest::test_math_workflow 1ms
tests/explorer/workflow_test.py::WorkflowTest::test_workflow_resettable 1ms
tests/trainer/trainer_test.py::BaseTrainerCase::test_trainer 1ms
tests/trainer/trainer_test.py::TestTrainerCountdown::test_trainer 253ms
tests/trainer/trainer_test.py::TestStepAheadAsyncRL::test_trainer 83ms
tests/trainer/trainer_test.py::TestTrainerGSM8K::test_trainer 60ms
tests/trainer/trainer_test.py::TestTrainerSFTWarmupGSM8K::test_trainer 104ms
tests/trainer/trainer_test.py::TestTrainerDPO::test_trainer 42ms
tests/trainer/trainer_test.py::TestFullyAsyncMode::test_fully_async_mode 93ms
tests/utils/plugin_test.py::TestPluginLoader::test_load_plugins 4ms

Github Test Reporter by CTRF 💚

@pan-x-c
Copy link
Collaborator Author

pan-x-c commented Jul 10, 2025

/run-unittest

@github-actions
Copy link

Summary

Tests 📝 Passed ✅ Failed ❌ Skipped ⏭️ Other ❓ Flaky 🍂 Duration ⏱️
45 45 0 0 0 0 1.1s

Tests

Test Name Status Flaky Duration
tests/algorithm/policy_loss_test.py::VerlPolicyLossTest::test_dpo_policy_loss 1ms
tests/algorithm/policy_loss_test.py::VerlPolicyLossTest::test_mix_policy_loss 1ms
tests/algorithm/policy_loss_test.py::VerlPolicyLossTest::test_opmd_policy_loss 1ms
tests/algorithm/policy_loss_test.py::VerlPolicyLossTest::test_ppo_policy_loss 1ms
tests/algorithm/policy_loss_test.py::VerlPolicyLossTest::test_sft_policy_loss 1ms
tests/buffer/file_test.py::TestFileBuffer::test_file_buffer 3ms
tests/buffer/file_test.py::TestFileBuffer::test_file_reader 1ms
tests/buffer/file_test.py::TestFileBuffer::test_file_writer 1ms
tests/buffer/queue_test.py::TestQueueBuffer::test_queue_buffer 9ms
tests/buffer/sql_test.py::TestSQLBuffer::test_create_sql_buffer 4ms
tests/common/config_test.py::TestConfig::test_all_examples_are_valid 1ms
tests/common/config_test.py::TestConfig::test_load_default_config 4ms
tests/common/experience_test.py::TestExperienceConversion::test_batch_conversion 1ms
tests/common/experience_test.py::TestExperienceConversion::test_experience_model_experience_conversion 1ms
tests/common/vllm_test.py::TestModelWrapperSyncV0::test_generate 43ms
tests/common/vllm_test.py::TestModelWrapperAsyncV0::test_generate 40ms
tests/common/vllm_test.py::TestModelWrapperAsyncTPV0::test_generate 51ms
tests/common/vllm_test.py::TestModelWrapperAsyncTPV1::test_generate 51ms
tests/common/vllm_test.py::TestModelWrapperAsyncV1::test_generate 38ms
tests/common/vllm_test.py::TestAPIServer::test_api 24ms
tests/common/vllm_test.py::TestTokenizer::test_assistant_token_mask 1ms
tests/explorer/explorer_test.py::BaseExplorerCase::test_explorer 1ms
tests/explorer/explorer_test.py::TestExplorerCountdownEval::test_explorer 89ms
tests/explorer/explorer_test.py::TestExplorerCountdownNoEval::test_explorer 84ms
tests/explorer/scheduler_test.py::SchedulerTest::test_concurrent_operations 4ms
tests/explorer/scheduler_test.py::SchedulerTest::test_get_results 19ms
tests/explorer/scheduler_test.py::SchedulerTest::test_scheduler_all_methods 14ms
tests/explorer/scheduler_test.py::SchedulerTest::test_scheduler_restart_after_stop 8ms
tests/explorer/scheduler_test.py::SchedulerTest::test_split_tasks 7ms
tests/explorer/scheduler_test.py::SchedulerTest::test_wait_all 7ms
tests/explorer/scheduler_test.py::SchedulerTest::test_wait_all_timeout_with_multi_batch 13ms
tests/explorer/workflow_test.py::WorkflowTest::test_gsm8k_workflow 1ms
tests/explorer/workflow_test.py::WorkflowTest::test_math_boxed_workflow 1ms
tests/explorer/workflow_test.py::WorkflowTest::test_math_complex_workflow 1ms
tests/explorer/workflow_test.py::WorkflowTest::test_math_fraction_workflow 1ms
tests/explorer/workflow_test.py::WorkflowTest::test_math_workflow 1ms
tests/explorer/workflow_test.py::WorkflowTest::test_workflow_resettable 1ms
tests/trainer/trainer_test.py::BaseTrainerCase::test_trainer 1ms
tests/trainer/trainer_test.py::TestTrainerCountdown::test_trainer 242ms
tests/trainer/trainer_test.py::TestStepAheadAsyncRL::test_trainer 96ms
tests/trainer/trainer_test.py::TestTrainerGSM8K::test_trainer 56ms
tests/trainer/trainer_test.py::TestTrainerSFTWarmupGSM8K::test_trainer 81ms
tests/trainer/trainer_test.py::TestTrainerDPO::test_trainer 44ms
tests/trainer/trainer_test.py::TestFullyAsyncMode::test_fully_async_mode 88ms
tests/utils/plugin_test.py::TestPluginLoader::test_load_plugins 4ms

Github Test Reporter by CTRF 💚

@pan-x-c pan-x-c merged commit 73e8d8f into modelscope:main Jul 10, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants