From 48d760539b013ffd1f6e64e5e561100aa5af7303 Mon Sep 17 00:00:00 2001 From: lzy <569782149@qq.com> Date: Fri, 29 Aug 2025 16:08:21 +0800 Subject: [PATCH] fix deepcopy(tp_group) in spec (#3648) --- fastdeploy/model_executor/models/ernie4_5_moe.py | 2 +- fastdeploy/model_executor/models/qwen3moe.py | 2 +- fastdeploy/spec_decode/base.py | 10 ++++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/fastdeploy/model_executor/models/ernie4_5_moe.py b/fastdeploy/model_executor/models/ernie4_5_moe.py index 354562b7e..8068359b0 100644 --- a/fastdeploy/model_executor/models/ernie4_5_moe.py +++ b/fastdeploy/model_executor/models/ernie4_5_moe.py @@ -112,7 +112,7 @@ class Ernie4_5_MoE(nn.Layer): self.tp_group = fd_config.parallel_config.tp_group self.use_ep = self.expert_parallel_size > 1 - self.us_tp = self.tensor_parallel_size > 1 + self.use_tp = self.tensor_parallel_size > 1 if moe_quant_type == "w4a8" or moe_quant_type == "w4afp8": weight_key_map = { diff --git a/fastdeploy/model_executor/models/qwen3moe.py b/fastdeploy/model_executor/models/qwen3moe.py index 6be61876d..4210f1444 100644 --- a/fastdeploy/model_executor/models/qwen3moe.py +++ b/fastdeploy/model_executor/models/qwen3moe.py @@ -58,7 +58,7 @@ class Qwen3MoeBlock(nn.Layer): self.tp_group = fd_config.parallel_config.tp_group self.use_ep = self.expert_parallel_size > 1 - self.us_tp = self.tensor_parallel_size > 1 + self.use_tp = self.tensor_parallel_size > 1 weight_key_map = { "up_gate_proj_expert_weight_key": f"{prefix}.experts.{{}}.up_gate_proj.weight", diff --git a/fastdeploy/spec_decode/base.py b/fastdeploy/spec_decode/base.py index 8d0bbef2b..1719b7f26 100644 --- a/fastdeploy/spec_decode/base.py +++ b/fastdeploy/spec_decode/base.py @@ -18,6 +18,9 @@ from abc import ABC, abstractmethod from copy import deepcopy from typing import Any +import paddle.distributed as dist + +from fastdeploy import envs from fastdeploy.config import FDConfig from fastdeploy.utils import spec_logger @@ -34,7 +37,14 @@ class Proposer(ABC): """ Init Speculative proposer """ + cfg.parallel_config.tp_group = None self.cfg = deepcopy(cfg) + cfg.parallel_config.tp_group = dist.get_group( + cfg.parallel_config.data_parallel_rank + envs.FD_TP_GROUP_GID_OFFSET + ) + self.cfg.parallel_config.tp_group = dist.get_group( + cfg.parallel_config.data_parallel_rank + envs.FD_TP_GROUP_GID_OFFSET + ) self.parallel_config = self.cfg.parallel_config self.model_config = self.cfg.model_config self.speculative_config = self.cfg.speculative_config