一、模块概述

patch目录包含对上游vLLM的补丁,用于适配NPU特性和优化性能。

图1:补丁应用流程
graph TD
    A[引擎启动] --> B[adapt_patch]
    B --> C[加载平台补丁]
    C --> D[加载Worker补丁]
    D --> E[完成适配]
                

二、文件结构

patch/
├── __init__.py
├── patch_utils.py       # 补丁工具
├── platform/            # 平台级补丁
│   ├── __init__.py
│   └── patch_*.py      # 各种平台补丁
└── worker/              # 工作节点补丁
    ├── __init__.py
    └── patch_*.py      # 各种Worker补丁

三、补丁分类

平台级补丁

修改vLLM平台层行为

  • 调度器适配
  • 编译器适配
  • 内存管理适配

Worker补丁

修改Worker执行逻辑

  • 模型加载优化
  • 推理执行优化
  • 通信优化

模型补丁

特定模型优化

  • DeepSeek优化
  • Qwen优化
  • Kimi优化

兼容性补丁

版本兼容性适配

  • API兼容
  • 配置兼容
  • 行为兼容

四、补丁代码示例

图2:补丁机制原理
graph TD
    A[原始类] --> B[补丁函数]
    B --> C[修改类方法]
    C --> D[新类行为]
                
vllm_ascend/patch/worker/patch_deepseek.py
from vllm.model_executor.models.deepseek_v2 import DeepseekV2Model

def forward(self, input_ids, positions, ...):
    # NPU优化的forward实现
    ...

# 应用补丁
DeepseekV2Model.forward = forward

说明

补丁通过直接替换类方法来修改上游vLLM的行为,实现NPU特定的优化。

首页