Unverified Commit b9821967 authored by Lukas Geiger's avatar Lukas Geiger Committed by GitHub
Browse files

[Core][MM] Cleanup `MultiModalCache` (#25006)


Signed-off-by: default avatarLukas Geiger <lukas.geiger94@gmail.com>
parent 32baf1d0
# 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)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment