mirror of
https://github.com/vllm-project/vllm.git
synced 2025-10-20 14:53:52 +08:00
[Core][MM] Cleanup MultiModalCache
(#25006)
Signed-off-by: Lukas Geiger <lukas.geiger94@gmail.com>
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
||||
import operator
|
||||
import sys
|
||||
from abc import ABC, abstractmethod
|
||||
from collections.abc import Mapping, Sequence
|
||||
@ -91,26 +92,15 @@ _V = TypeVar("_V", bound=MultiModalCacheValue)
|
||||
class MultiModalCache:
|
||||
|
||||
@classmethod
|
||||
def get_leaf_size(
|
||||
cls,
|
||||
leaf: object,
|
||||
*,
|
||||
debug: bool = False,
|
||||
) -> int:
|
||||
def get_leaf_size(cls, leaf: object) -> int:
|
||||
if isinstance(leaf, MultiModalProcessorCacheItem):
|
||||
return cls.get_leaf_size(leaf.item)
|
||||
if isinstance(leaf, MultiModalProcessorCacheItemMetadata):
|
||||
return leaf.item_size
|
||||
|
||||
# These are not subclasses of dict
|
||||
if isinstance(leaf, MultiModalKwargsItems):
|
||||
return cls.get_item_size(leaf.data) # type: ignore
|
||||
if isinstance(leaf, MultiModalKwargsItem):
|
||||
return cls.get_item_size(leaf.data) # type: ignore
|
||||
if isinstance(leaf, MultiModalKwargs):
|
||||
return cls.get_item_size(leaf.data) # type: ignore
|
||||
|
||||
if isinstance(leaf, MultiModalFieldElem):
|
||||
if isinstance(leaf, (MultiModalKwargs, MultiModalKwargsItems,
|
||||
MultiModalKwargsItem, MultiModalFieldElem)):
|
||||
return cls.get_item_size(leaf.data) # type: ignore
|
||||
|
||||
# sys.getsizeof doesn't work for tensors
|
||||
@ -126,11 +116,8 @@ class MultiModalCache:
|
||||
*,
|
||||
debug: bool = False,
|
||||
) -> int:
|
||||
size = json_reduce_leaves(
|
||||
lambda a, b: a + b,
|
||||
json_map_leaves(lambda x: cls.get_leaf_size(x, debug=debug),
|
||||
value),
|
||||
)
|
||||
size = json_reduce_leaves(operator.add,
|
||||
json_map_leaves(cls.get_leaf_size, value))
|
||||
|
||||
if debug:
|
||||
leaf_count = json_count_leaves(value)
|
||||
|
Reference in New Issue
Block a user