From b8a2dcd300e0026901b98e22013a12a603b1e098 Mon Sep 17 00:00:00 2001 From: yaya159456 <44463912+yaya159456@users.noreply.github.com> Date: Tue, 28 Apr 2026 14:40:49 +0800 Subject: [PATCH] fix: resolve tensor file overwrite between target and draft models (#21694) Co-authored-by: jiangguangya Co-authored-by: Khoa Pham --- python/sglang/srt/model_executor/model_runner.py | 6 +++++- python/sglang/srt/server_args.py | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/python/sglang/srt/model_executor/model_runner.py b/python/sglang/srt/model_executor/model_runner.py index 4cb5034b8..dfe82c24c 100644 --- a/python/sglang/srt/model_executor/model_runner.py +++ b/python/sglang/srt/model_executor/model_runner.py @@ -1379,9 +1379,13 @@ class ModelRunner(ModelRunnerKVCacheMixin): f"mem usage={self.weight_load_mem_usage:.2f} GB." ) if self.server_args.debug_tensor_dump_output_folder is not None: + dump_folder = self.server_args.debug_tensor_dump_output_folder + if self.spec_algorithm.is_eagle(): + role = "draft" if self.is_draft_worker else "target" + dump_folder = os.path.join(dump_folder, role) register_forward_hook_for_model( self.model, - self.server_args.debug_tensor_dump_output_folder, + dump_folder, self.server_args.debug_tensor_dump_layers, self.tp_size, self.tp_rank, diff --git a/python/sglang/srt/server_args.py b/python/sglang/srt/server_args.py index 29498c202..87fc32bd4 100644 --- a/python/sglang/srt/server_args.py +++ b/python/sglang/srt/server_args.py @@ -6254,7 +6254,11 @@ class ServerArgs: "--debug-tensor-dump-output-folder", type=str, default=ServerArgs.debug_tensor_dump_output_folder, - help="The output folder for dumping tensors.", + help=( + "The output folder for dumping tensors. " + "In Eagle mode, tensor outputs from draft and target models " + "are stored in separate subdirectories ('draft' and 'target')." + ), ) parser.add_argument( "--debug-tensor-dump-layers",