Skip to content

SGLang OpenAI API Server returns prompt_token_ids and token_ids#536

Open
pan-x-c wants to merge 16 commits into
agentscope-ai:mainfrom
pan-x-c:feature/sglang_openai_token_id
Open

SGLang OpenAI API Server returns prompt_token_ids and token_ids#536
pan-x-c wants to merge 16 commits into
agentscope-ai:mainfrom
pan-x-c:feature/sglang_openai_token_id

Conversation

@pan-x-c
Copy link
Copy Markdown
Collaborator

@pan-x-c pan-x-c commented May 11, 2026

Description

As the title says

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
Copy Markdown
Collaborator Author

pan-x-c commented May 12, 2026

/unittest-module-trainer

@pan-x-c
Copy link
Copy Markdown
Collaborator Author

pan-x-c commented May 12, 2026

/unittest-module-trainer

@pan-x-c
Copy link
Copy Markdown
Collaborator Author

pan-x-c commented May 12, 2026

/unittest-module-common

@github-actions
Copy link
Copy Markdown

Summary

Tests 📝 Passed ✅ Failed ❌ Skipped ⏭️ Other ❓ Flaky 🍂 Duration ⏱️
26 23 0 3 0 0 54m 56s

Skipped

Tests Status
tests/trainer/trainer_test.py::TestTrainerSFTWarmupGSM8K::test_trainer skipped ⏭️
tests/trainer/trainer_test.py::TestTinkerTrainer::test_trainer skipped ⏭️
tests/trainer/trainer_test.py::TestTinkerTrainer::test_trainer_class skipped ⏭️

Tests

Test Name Status Flaky Duration
tests/trainer/trainer_test.py::TestTrainerCountdown_0_fsdp2::test_trainer 5m 24s
tests/trainer/trainer_test.py::TestTrainerCountdown_1_megatron::test_trainer 6m 5s
tests/trainer/trainer_test.py::TestStepAheadAsyncRL::test_trainer 1m 56s
tests/trainer/trainer_test.py::TestTrainerGSM8K_0_fsdp::test_trainer 1m 20s
tests/trainer/trainer_test.py::TestTrainerGSM8K_1_fsdp2::test_trainer 1m 20s
tests/trainer/trainer_test.py::TestTrainerGSM8K_2_fsdp2::test_trainer 1m 34s
tests/trainer/trainer_test.py::TestTrainerSFTWarmupGSM8K::test_trainer ⏭️ 2ms
tests/trainer/trainer_test.py::TestTrainerDPO::test_trainer 38.3s
tests/trainer/trainer_test.py::TestTrainerSFT::test_trainer 35.4s
tests/trainer/trainer_test.py::TestTrainerToolsSFT::test_trainer_tools 38.6s
tests/trainer/trainer_test.py::TestFullyAsyncMode_0_fsdp::test_fully_async_mode 1m 56s
tests/trainer/trainer_test.py::TestFullyAsyncMode_1_fsdp2::test_fully_async_mode 1m 52s
tests/trainer/trainer_test.py::TestFullyAsyncMode_2_megatron::test_fully_async_mode 2m 38s
tests/trainer/trainer_test.py::TestTrainerCheckpointSave_0_fsdp::test_trainer 3m 3s
tests/trainer/trainer_test.py::TestTrainerCheckpointSave_1_megatron::test_trainer 5m 53s
tests/trainer/trainer_test.py::TestTrainerMIX::test_trainer 2m 10s
tests/trainer/trainer_test.py::TestServeWithTrainer::test_serve_with_trainer 2m 4s
tests/trainer/trainer_test.py::TestMultiModalGRPO::test_trainer 3m 52s
tests/trainer/trainer_test.py::TestMultiModalSFT::test_trainer 1m 41s
tests/trainer/trainer_test.py::TestTrainerLoRA::test_trainer 4m 3s
tests/trainer/trainer_test.py::TestOverRollout::test_trainer 1m 11s
tests/trainer/trainer_test.py::TestTrainerPromptTruncation::test_trainer 1m 8s
tests/trainer/trainer_test.py::TestTinkerTrainer::test_trainer ⏭️ 1ms
tests/trainer/trainer_test.py::TestTinkerTrainer::test_trainer_class ⏭️ 1ms
tests/trainer/trainer_test.py::AgentScopeTunerTest::test_agentscope_tuner 1m 46s
tests/trainer/trainer_test.py::ColocateModeTest::test_trainer 1m 54s

Github Test Reporter by CTRF 💚

@github-actions
Copy link
Copy Markdown

Summary

Tests 📝 Passed ✅ Failed ❌ Skipped ⏭️ Other ❓ Flaky 🍂 Duration ⏱️
70 68 0 2 0 0 20m 55s

Skipped

Tests Status
tests/common/vllm_test.py::TestAPIServer::test_reasoning_content skipped ⏭️
tests/common/vllm_test.py::TestTinkerAsyncAPIServer::test_api_async skipped ⏭️

Tests

Test Name Status Flaky Duration
tests/common/config_test.py::TestConfig::test_all_examples_are_valid 16.7s
tests/common/config_test.py::TestConfig::test_chat_template_path 96ms
tests/common/config_test.py::TestConfig::test_config_flatten 36ms
tests/common/config_test.py::TestConfig::test_continue_from_checkpoint_is_valid 207ms
tests/common/config_test.py::TestConfig::test_default_workflow 94ms
tests/common/config_test.py::TestConfig::test_inference_model_base_port_falls_back_when_unavailable 3ms
tests/common/config_test.py::TestConfig::test_inference_model_base_port_uses_engine_id 1ms
tests/common/config_test.py::TestConfig::test_inference_model_without_base_port_uses_ephemeral_port 1ms
tests/common/config_test.py::TestConfig::test_load_default_config 1.5s
tests/common/config_test.py::TestConfig::test_max_token_len_per_gpu_set_correctly 95ms
tests/common/config_test.py::TestConfig::test_optimizer_config_propagation 95ms
tests/common/config_test.py::TestConfig::test_update_config_from_ray_cluster 1.7s
tests/common/experience_test.py::TestEID::test_eid_properties 1ms
tests/common/experience_test.py::TestExperience::test_action_mask_and_logprobs_type 1ms
tests/common/experience_test.py::TestExperience::test_assertions 1ms
tests/common/experience_test.py::TestExperience::test_build_experience_token_view_aligns_prompt_action_mask_and_logprobs 1ms
tests/common/experience_test.py::TestExperience::test_deserialize_legacy_pickle_payload 3ms
tests/common/experience_test.py::TestExperience::test_deserialize_single_rejects_batch_payload 1ms
tests/common/experience_test.py::TestExperience::test_dpo_experience 1ms
tests/common/experience_test.py::TestExperience::test_format_colored_tokens_uses_action_mask 1ms
tests/common/experience_test.py::TestExperience::test_format_colored_tokens_uses_decoded_token_text 1ms
tests/common/experience_test.py::TestExperience::test_hf_datasets_conversion 14ms
tests/common/experience_test.py::TestExperience::test_multi_turn_experience 1ms
tests/common/experience_test.py::TestExperience::test_print_colored_tokens_writes_to_file 1ms
tests/common/experience_test.py::TestExperience::test_serialize_deserialize 1ms
tests/common/experience_test.py::TestExperience::test_serialize_many_deserialize_many 1ms
tests/common/experience_test.py::TestExperience::test_serialize_many_with_shared_multimodal_tensor 1ms
tests/common/experience_test.py::TestExperience::test_single_turn_experience 1ms
tests/common/experience_test.py::TestExperience::test_to_dict 1ms
tests/common/experience_test.py::TestExperienceConversion::test_experience_model_experience_conversion 1ms
tests/common/external_model_test.py::TestExternalModel::test_external_model 54.6s
tests/common/external_model_test.py::TestExternalModelLoad::test_external_model_load 2.3s
tests/common/models/utils_test.py::TestTokenizeAndMaskMessagesDefault::test_first_message_is_assistant 583ms
tests/common/models/utils_test.py::TestTokenizeAndMaskMessagesDefault::test_messages_empty 260ms
tests/common/models/utils_test.py::TestTokenizeAndMaskMessagesDefault::test_no_assistant_messages 577ms
tests/common/models/utils_test.py::TestTokenizeAndMaskMessagesDefault::test_normal_conversation_data 258ms
tests/common/sglang_test.py::TestSGLangOpenAIAPI_0::test_chat_completions 2m 9s
tests/common/sglang_test.py::TestSGLangOpenAIAPI_1::test_chat_completions 24.9s
tests/common/sglang_test.py::TestSGLangOpenAIAPI_2::test_chat_completions 2m 9s
tests/common/sudoku_test.py::test_9x9_generator_produces_valid_solution 1ms
tests/common/sudoku_test.py::test_9x9_generator_creates_holes 1ms
tests/common/sudoku_test.py::test_9x9_solution_is_fully_filled 1ms
tests/common/sudoku_test.py::test_judge_allows_incomplete_board 1ms
tests/common/sudoku_test.py::test_judge_detects_row_violation 1ms
tests/common/sudoku_test.py::test_judge_detects_column_violation 1ms
tests/common/sudoku_test.py::test_judge_detects_block_violation 1ms
tests/common/sudoku_test.py::test_4x4_generator_produces_valid_solution 1ms
tests/common/sudoku_test.py::test_4x4_solution_is_fully_filled 1ms
tests/common/sudoku_test.py::test_4x4_judge_detects_row_violation 1ms
tests/common/sudoku_test.py::test_4x4_judge_detects_block_violation 1ms
tests/common/vllm_test.py::ModelWrapperTest_0::test_generate 1m 7s
tests/common/vllm_test.py::ModelWrapperTest_1::test_generate 37.1s
tests/common/vllm_test.py::ModelWrapperTest_2::test_generate 44.4s
tests/common/vllm_test.py::TestModelLen_0::test_model_len 41.6s
tests/common/vllm_test.py::TestModelLen_1::test_model_len 23.4s
tests/common/vllm_test.py::TestModelLen_2::test_model_len 41.5s
tests/common/vllm_test.py::TestModelLenWithoutPromptTruncation::test_model_len 42.0s
tests/common/vllm_test.py::TestMessageProcess::test_no_prompt_truncation 40.7s
tests/common/vllm_test.py::TestMessageProcess::test_truncation_status 40.8s
tests/common/vllm_test.py::TestAPIServer::test_api 42.9s
tests/common/vllm_test.py::TestAPIServer::test_reasoning_content ⏭️ 518ms
tests/common/vllm_test.py::TestLogprobs::test_logprobs_api 23.2s
tests/common/vllm_test.py::TestAsyncAPIServer::test_api_async 25.1s
tests/common/vllm_test.py::TestTinkerAsyncAPIServer::test_api_async ⏭️ 1ms
tests/common/vllm_test.py::TestTokenizer::test_action_mask 310ms
tests/common/vllm_test.py::TestTokenizer::test_action_mask_with_tools 643ms
tests/common/vllm_test.py::TestAPIServerToolCall_0_deepseek_r1::test_api_tool_calls 2m 8s
tests/common/vllm_test.py::TestAPIServerToolCall_1::test_api_tool_calls 1m 38s
tests/common/vllm_test.py::TestSuperLongGeneration::test_generate 2m 5s
tests/common/vllm_test.py::TestTinkerAPI::test_tinker_api 1m 2s

Github Test Reporter by CTRF 💚

@pan-x-c
Copy link
Copy Markdown
Collaborator Author

pan-x-c commented May 13, 2026

/unittest-diff

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a Trinity-side patch layer for SGLang’s embedded OpenAI-compatible server so chat completion responses can include prompt_token_ids and per-choice token_ids, enabling accurate experience/token recording during rollouts.

Changes:

  • Introduces an SGLang OpenAI API monkey patch (request/response models + serving logic) to optionally return token ID fields in non-streaming responses.
  • Normalizes state_dict_meta dtype strings (e.g., float16 instead of torch.float16) and updates consumers accordingly.
  • Adjusts SGLang engine startup/integration (server factory signature, Hugging Face checkpoint path option) and adds/updates tests and Docker build steps for SGLang.

Reviewed changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
trinity/trainer/verl/megatron_workers.py Normalizes dtype strings recorded in state_dict_meta.
trinity/trainer/verl/fsdp_workers.py Normalizes dtype strings recorded in state_dict_meta (FSDP/FSDP2).
trinity/manager/synchronizer.py Normalizes dtype strings in meta; adds use_huggingface option to latest model path lookup.
trinity/common/models/vllm_worker.py Aligns dtype parsing with normalized dtype strings.
trinity/common/models/sglang_patch/server_patch.py Adds SGLang OpenAI API monkey patching + refactors embedded server creation.
trinity/common/models/sglang_patch/openai_api_patch.py Implements patched OpenAI protocol/serving to emit prompt_token_ids/token_ids.
trinity/common/models/sglang_patch/init.py Exposes get_api_server from server_patch.
trinity/common/models/sglang_model.py Uses new get_api_server signature; updates weight-sync behavior and checkpoint path usage.
trinity/common/models/init.py Refactors SGLang explorer placement group creation for multiple engines.
trinity/common/config.py Adds multi-node related fields (nnodes, node_rank) to inference config.
tests/trainer/trainer_test.py Updates parameterization to cover different engine types across strategies.
tests/common/sglang_test.py Adds OpenAI-API-level SGLang tests validating experience/token behavior.
scripts/docker/Dockerfile.uv Installs SGLang (and Rust toolchain) in the uv-based Docker image.
perf/scripts/explorer/perf_workflow.py Forces reward=1.0 for perf workflow experiences.
.github/workflows/docker/docker-compose.yaml Bumps unittest image tag used in CI docker-compose workflow.
Comments suppressed due to low confidence (1)

trinity/common/models/sglang_patch/server_patch.py:14

  • server_patch.py rebuilds FastAPI routes using private internals (fastapi.dependencies.utils._should_embed_body_fields, get_flat_dependant, etc.). These APIs are not stable across FastAPI versions and can break the embedded server at runtime. Consider avoiding private FastAPI internals (e.g., re-registering a new APIRoute with the new request model), or at least pin/validate the FastAPI version and fail with a clear error if the expected internals are unavailable.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread trinity/common/models/sglang_patch/openai_api_patch.py Outdated
Comment thread trinity/common/models/sglang_patch/openai_api_patch.py Outdated
Comment thread trinity/manager/synchronizer.py Outdated
Comment thread trinity/common/models/sglang_model.py Outdated
Comment thread scripts/docker/Dockerfile.uv Outdated
Comment thread scripts/docker/Dockerfile.uv Outdated
@github-actions
Copy link
Copy Markdown

Summary

Tests 📝 Passed ✅ Failed ❌ Skipped ⏭️ Other ❓ Flaky 🍂 Duration ⏱️
115 110 0 5 0 0 1h 34m

Skipped

Tests Status
tests/common/vllm_test.py::TestAPIServer::test_reasoning_content skipped ⏭️
tests/common/vllm_test.py::TestTinkerAsyncAPIServer::test_api_async skipped ⏭️
tests/trainer/trainer_test.py::TestTrainerSFTWarmupGSM8K::test_trainer skipped ⏭️
tests/trainer/trainer_test.py::TestTinkerTrainer::test_trainer skipped ⏭️
tests/trainer/trainer_test.py::TestTinkerTrainer::test_trainer_class skipped ⏭️

Tests

Test Name Status Flaky Duration
tests/common/config_test.py::TestConfig::test_all_examples_are_valid 15.5s
tests/common/config_test.py::TestConfig::test_chat_template_path 96ms
tests/common/config_test.py::TestConfig::test_config_flatten 35ms
tests/common/config_test.py::TestConfig::test_continue_from_checkpoint_is_valid 205ms
tests/common/config_test.py::TestConfig::test_default_workflow 95ms
tests/common/config_test.py::TestConfig::test_inference_model_base_port_falls_back_when_unavailable 2ms
tests/common/config_test.py::TestConfig::test_inference_model_base_port_uses_engine_id 1ms
tests/common/config_test.py::TestConfig::test_inference_model_without_base_port_uses_ephemeral_port 1ms
tests/common/config_test.py::TestConfig::test_load_default_config 413ms
tests/common/config_test.py::TestConfig::test_max_token_len_per_gpu_set_correctly 400ms
tests/common/config_test.py::TestConfig::test_optimizer_config_propagation 98ms
tests/common/config_test.py::TestConfig::test_update_config_from_ray_cluster 1.7s
tests/common/experience_test.py::TestEID::test_eid_properties 1ms
tests/common/experience_test.py::TestExperience::test_action_mask_and_logprobs_type 1ms
tests/common/experience_test.py::TestExperience::test_assertions 1ms
tests/common/experience_test.py::TestExperience::test_build_experience_token_view_aligns_prompt_action_mask_and_logprobs 1ms
tests/common/experience_test.py::TestExperience::test_deserialize_legacy_pickle_payload 2ms
tests/common/experience_test.py::TestExperience::test_deserialize_single_rejects_batch_payload 1ms
tests/common/experience_test.py::TestExperience::test_dpo_experience 1ms
tests/common/experience_test.py::TestExperience::test_format_colored_tokens_uses_action_mask 1ms
tests/common/experience_test.py::TestExperience::test_format_colored_tokens_uses_decoded_token_text 1ms
tests/common/experience_test.py::TestExperience::test_hf_datasets_conversion 14ms
tests/common/experience_test.py::TestExperience::test_multi_turn_experience 1ms
tests/common/experience_test.py::TestExperience::test_print_colored_tokens_writes_to_file 1ms
tests/common/experience_test.py::TestExperience::test_serialize_deserialize 1ms
tests/common/experience_test.py::TestExperience::test_serialize_many_deserialize_many 1ms
tests/common/experience_test.py::TestExperience::test_serialize_many_with_shared_multimodal_tensor 1ms
tests/common/experience_test.py::TestExperience::test_single_turn_experience 1ms
tests/common/experience_test.py::TestExperience::test_to_dict 1ms
tests/common/experience_test.py::TestExperienceConversion::test_experience_model_experience_conversion 1ms
tests/common/external_model_test.py::TestExternalModel::test_external_model 54.6s
tests/common/external_model_test.py::TestExternalModelLoad::test_external_model_load 2.0s
tests/common/models/utils_test.py::TestTokenizeAndMaskMessagesDefault::test_first_message_is_assistant 576ms
tests/common/models/utils_test.py::TestTokenizeAndMaskMessagesDefault::test_messages_empty 258ms
tests/common/models/utils_test.py::TestTokenizeAndMaskMessagesDefault::test_no_assistant_messages 548ms
tests/common/models/utils_test.py::TestTokenizeAndMaskMessagesDefault::test_normal_conversation_data 258ms
tests/common/sglang_test.py::TestSGLangOpenAIAPI_0::test_chat_completions 2m 7s
tests/common/sglang_test.py::TestSGLangOpenAIAPI_1::test_chat_completions 26.3s
tests/common/sglang_test.py::TestSGLangOpenAIAPI_2::test_chat_completions 31.9s
tests/common/sudoku_test.py::test_9x9_generator_produces_valid_solution 1ms
tests/common/sudoku_test.py::test_9x9_generator_creates_holes 1ms
tests/common/sudoku_test.py::test_9x9_solution_is_fully_filled 1ms
tests/common/sudoku_test.py::test_judge_allows_incomplete_board 1ms
tests/common/sudoku_test.py::test_judge_detects_row_violation 1ms
tests/common/sudoku_test.py::test_judge_detects_column_violation 1ms
tests/common/sudoku_test.py::test_judge_detects_block_violation 1ms
tests/common/sudoku_test.py::test_4x4_generator_produces_valid_solution 1ms
tests/common/sudoku_test.py::test_4x4_solution_is_fully_filled 1ms
tests/common/sudoku_test.py::test_4x4_judge_detects_row_violation 1ms
tests/common/sudoku_test.py::test_4x4_judge_detects_block_violation 1ms
tests/common/vllm_test.py::ModelWrapperTest_0::test_generate 1m 12s
tests/common/vllm_test.py::ModelWrapperTest_1::test_generate 38.2s
tests/common/vllm_test.py::ModelWrapperTest_2::test_generate 1m
tests/common/vllm_test.py::TestModelLen_0::test_model_len 41.9s
tests/common/vllm_test.py::TestModelLen_1::test_model_len 23.5s
tests/common/vllm_test.py::TestModelLen_2::test_model_len 41.8s
tests/common/vllm_test.py::TestModelLenWithoutPromptTruncation::test_model_len 41.8s
tests/common/vllm_test.py::TestMessageProcess::test_no_prompt_truncation 41.7s
tests/common/vllm_test.py::TestMessageProcess::test_truncation_status 40.9s
tests/common/vllm_test.py::TestAPIServer::test_api 44.5s
tests/common/vllm_test.py::TestAPIServer::test_reasoning_content ⏭️ 517ms
tests/common/vllm_test.py::TestLogprobs::test_logprobs_api 29.4s
tests/common/vllm_test.py::TestAsyncAPIServer::test_api_async 26.1s
tests/common/vllm_test.py::TestTinkerAsyncAPIServer::test_api_async ⏭️ 1ms
tests/common/vllm_test.py::TestTokenizer::test_action_mask 291ms
tests/common/vllm_test.py::TestTokenizer::test_action_mask_with_tools 598ms
tests/common/vllm_test.py::TestAPIServerToolCall_0_deepseek_r1::test_api_tool_calls 2m 11s
tests/common/vllm_test.py::TestAPIServerToolCall_1::test_api_tool_calls 1m 37s
tests/common/vllm_test.py::TestSuperLongGeneration::test_generate 3m 5s
tests/common/vllm_test.py::TestTinkerAPI::test_tinker_api 1m 3s
tests/manager/log_manager_test.py::TestLogManager::test_file_rotation 2ms
tests/manager/log_manager_test.py::TestLogManager::test_init_and_tracking 2ms
tests/manager/log_manager_test.py::TestLogManager::test_keyword_filter_and_search_pattern 1ms
tests/manager/synchronizer_test.py::TestSynchronizerExit_0::test_synchronizer 2m 24s
tests/manager/synchronizer_test.py::TestSynchronizerExit_1::test_synchronizer 2m 42s
tests/manager/synchronizer_test.py::TestStateDictBasedSynchronizer_0::test_synchronizer 2m 13s
tests/manager/synchronizer_test.py::TestStateDictBasedSynchronizer_1::test_synchronizer 1m 54s
tests/manager/synchronizer_test.py::TestStateDictBasedSynchronizer_2::test_synchronizer 2m 12s
tests/manager/synchronizer_test.py::TestStateDictBasedSynchronizer_3::test_synchronizer 2m 45s
tests/manager/synchronizer_test.py::TestStateDictBasedSynchronizer_4::test_synchronizer 2m 29s
tests/manager/synchronizer_test.py::TestStateDictBasedSynchronizer_5::test_synchronizer 2m 45s
tests/manager/synchronizer_test.py::TestNCCLBasedSynchronizer_0::test_synchronizer 1m 15s
tests/manager/synchronizer_test.py::TestNCCLBasedSynchronizer_1::test_synchronizer 1m 9s
tests/manager/synchronizer_test.py::TestNCCLBasedSynchronizer_2::test_synchronizer 1m 10s
tests/manager/synchronizer_test.py::TestPullLatestWeights::test_no_new_version_logs_warning 4ms
tests/manager/synchronizer_test.py::TestPullLatestWeights::test_pull_latest_weights_0 3ms
tests/manager/synchronizer_test.py::TestPullLatestWeights::test_pull_latest_weights_1 4ms
tests/manager/synchronizer_test.py::TestPullLatestWeights::test_pull_latest_weights_2 3ms
tests/manager/synchronizer_test.py::TestPullLatestWeights::test_pull_latest_weights_3 4ms
tests/trainer/trainer_test.py::TestTrainerCountdown_0_fsdp2::test_trainer 3m 31s
tests/trainer/trainer_test.py::TestTrainerCountdown_1_megatron::test_trainer 5m 28s
tests/trainer/trainer_test.py::TestStepAheadAsyncRL::test_trainer 1m 39s
tests/trainer/trainer_test.py::TestTrainerGSM8K_0_fsdp::test_trainer 1m 10s
tests/trainer/trainer_test.py::TestTrainerGSM8K_1_fsdp2::test_trainer 1m 11s
tests/trainer/trainer_test.py::TestTrainerGSM8K_2_fsdp2::test_trainer 1m 36s
tests/trainer/trainer_test.py::TestTrainerSFTWarmupGSM8K::test_trainer ⏭️ 1ms
tests/trainer/trainer_test.py::TestTrainerDPO::test_trainer 41.6s
tests/trainer/trainer_test.py::TestTrainerSFT::test_trainer 36.9s
tests/trainer/trainer_test.py::TestTrainerToolsSFT::test_trainer_tools 38.1s
tests/trainer/trainer_test.py::TestFullyAsyncMode_0_fsdp::test_fully_async_mode 1m 52s
tests/trainer/trainer_test.py::TestFullyAsyncMode_1_fsdp2::test_fully_async_mode 1m 53s
tests/trainer/trainer_test.py::TestFullyAsyncMode_2_megatron::test_fully_async_mode 2m 43s
tests/trainer/trainer_test.py::TestTrainerCheckpointSave_0_fsdp::test_trainer 2m 53s
tests/trainer/trainer_test.py::TestTrainerCheckpointSave_1_megatron::test_trainer 5m 52s
tests/trainer/trainer_test.py::TestTrainerMIX::test_trainer 2m 9s
tests/trainer/trainer_test.py::TestServeWithTrainer::test_serve_with_trainer 2m 3s
tests/trainer/trainer_test.py::TestMultiModalGRPO::test_trainer 2m 36s
tests/trainer/trainer_test.py::TestMultiModalSFT::test_trainer 1m 42s
tests/trainer/trainer_test.py::TestTrainerLoRA::test_trainer 3m 42s
tests/trainer/trainer_test.py::TestOverRollout::test_trainer 1m 14s
tests/trainer/trainer_test.py::TestTrainerPromptTruncation::test_trainer 1m 8s
tests/trainer/trainer_test.py::TestTinkerTrainer::test_trainer ⏭️ 1ms
tests/trainer/trainer_test.py::TestTinkerTrainer::test_trainer_class ⏭️ 1ms
tests/trainer/trainer_test.py::AgentScopeTunerTest::test_agentscope_tuner 1m 52s
tests/trainer/trainer_test.py::ColocateModeTest::test_trainer 2m 6s

Github Test Reporter by CTRF 💚

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.

2 participants