### What this PR does / why we need it?
Currently, we are using `AscendRejctionSampler` that extends from
`RejctionSampler` in spec decoding. `AscendRejctionSampler` override
`forward` of `RejctionSampler`, only aming to replace `rejection_sample`
func. This
causes a lot of code of `RejctionSampler` cannot be reused, for example:
- https://github.com/vllm-project/vllm/pull/19482
- https://github.com/vllm-project/vllm/pull/26060
- https://github.com/vllm-project/vllm/pull/29223
#### Proposed Change:
- Delete `AscendRejctionSampler` and use `RejctionSampler` directly in
model runner.
- Patch `RejctionSampler.expand_batch_to_tokens` and
`RejctionSampler.rejection_sample`, maybe a better way is to make them
as custom ops.
- Modify `NPUModelRunner` following
https://github.com/vllm-project/vllm/pull/26060
### Does this PR introduce _any_ user-facing change?
No
### How was this patch tested?
- [x] test logits processor for spec decoding
- [x] test logprobs for spec decoding
- [x] test logprobs for spec decoding + async shcheduling (test with
https://github.com/vllm-project/vllm-ascend/pull/4893/)
- vLLM version: v0.12.0
- vLLM main:
ad32e3e19c
---------
Signed-off-by: realliujiaxu <realliujiaxu@163.com>
37 lines
1.5 KiB
Python
37 lines
1.5 KiB
Python
#
|
|
# Copyright (c) 2025 Huawei Technologies Co., Ltd. All Rights Reserved.
|
|
# This file is a part of the vllm-ascend project.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
from vllm.triton_utils import HAS_TRITON
|
|
|
|
if HAS_TRITON:
|
|
import vllm_ascend.patch.worker.patch_triton
|
|
|
|
# isort: off
|
|
import vllm_ascend.patch.platform.patch_sched_yield # noqa
|
|
import vllm_ascend.patch.worker.patch_bert # noqa
|
|
import vllm_ascend.patch.worker.patch_distributed # noqa
|
|
import vllm_ascend.patch.worker.patch_deepseek # noqa
|
|
import vllm_ascend.patch.worker.patch_weight_loader # noqa
|
|
import vllm_ascend.patch.worker.patch_multimodal_merge # noqa
|
|
import vllm_ascend.patch.worker.patch_minicpm # noqa
|
|
import vllm_ascend.patch.worker.patch_qwen2_5_vl # noqa
|
|
import vllm_ascend.patch.worker.patch_qwen2_5_omni # noqa
|
|
import vllm_ascend.patch.worker.patch_qwen3_vl # noqa
|
|
import vllm_ascend.patch.worker.patch_rope # noqa
|
|
import vllm_ascend.patch.worker.patch_qwen3_next_mtp # noqa
|
|
import vllm_ascend.patch.worker.patch_rejection_sampler # noqa
|