UD2 · Selección y dimensionamiento de recursos | MP04 · Infraestructura para la ejecución de LLMs
Script de estimación de VRAM
def estimar_vram(
parametros_B: float,
precision: str,
num_capas: int,
num_cabezas_kv: int,
dim_cabeza: int,
longitud_contexto: int,
usuarios_concurrentes: int,
overhead: float = 1.2
) -> dict:
bytes_por_param = {"fp32": 4, "fp16": 2, "bf16": 2, "int8": 1, "int4": 0.5}
bpp = bytes_por_param[precision.lower()]
vram_modelo = parametros_B * 1e9 * bpp * overhead / 1e9
vram_kv = (2 * num_capas * num_cabezas_kv * dim_cabeza
* longitud_contexto * usuarios_concurrentes * 2 / 1e9)
vram_total = vram_modelo + vram_kv
return {
"vram_modelo_GB": round(vram_modelo, 1),
"vram_kv_GB": round(vram_kv, 1),
"vram_total_GB": round(vram_total, 1)
}
resultado = estimar_vram(8, "int4", 32, 8, 128, 8192, 10)
print(resultado)