24 lines
715 B
Python
24 lines
715 B
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|
"""Base class for attention-like layers."""
|
|
from abc import ABC, abstractmethod
|
|
from typing import TYPE_CHECKING
|
|
|
|
if TYPE_CHECKING:
|
|
from vllm.attention.backends.abstract import AttentionBackend
|
|
|
|
|
|
class AttentionLayerBase(ABC):
|
|
"""
|
|
Base class for attention-like layers (Attention, Mamba, etc.)
|
|
that support the v1 engine.
|
|
|
|
This provides a common interface for getting attention backends
|
|
from different layer types.
|
|
"""
|
|
|
|
@abstractmethod
|
|
def get_attn_backend(self) -> type["AttentionBackend"]:
|
|
"""Get the attention backend class for this layer."""
|
|
pass
|