В LLM inference KV cache хранит key и value в каждом transformer-слое для уже обработанных токенов.
Напишите функцию, которая возвращает размер KV cache в байтах.
Для каждого токена, каждого слоя и каждой KV-head нужно хранить два вектора: key и value.
def kv_cache_bytes(
batch_size: int,
context_length: int,
num_layers: int,
num_kv_heads: int,
head_dim: int,
bytes_per_element: int = 2,
) -> int:batch_size = 1context_length = 1num_layers = 1num_kv_heads = 1head_dim = 1bytes_per_element = 24batch_size = 1context_length = 2048num_layers = 32num_kv_heads = 32head_dim = 128bytes_per_element = 21073741824batch_size = 4context_length = 1024num_layers = 24num_kv_heads = 8head_dim = 128bytes_per_element = 2402653184