模型显存使用量计算#
为了更好规划显存使用, Xinference 提供了计算模型显存使用量的工具:cal-model-mem
算法来自:RahulSChand/gpu_poor
输出:model_mem, kv_cache, recurrent_state_mem, prefix_cache_mem, overhead, active_mem
总量包含循环状态和保留前缀缓存。存在视觉工作区时,它已计入激活内存,不会再单独相加。滑窗注意力使用完整注意力缓存作为上界。布局不受支持或缺少检查点大小信息时,命令会给出说明性错误,不提供估算。
示例:计算 qwen1.5-chat 模型的显存用量,可以运行以下示例指令:
xinference cal-model-mem -s 7 -q Int4 -f gptq -c 16384 -n qwen1.5-chat
model_name: qwen1.5-chat
kv_cache_dtype: 16
model size: 7.0 B
quant: Int4
context: 16384
gpu mem usage:
model mem: 4139 MB
kv_cache: 8192 MB
recurrent state: 0 MB
retained prefix cache: 0 MB
overhead: 650 MB
active: 17024 MB
total: 30005 MB (30 GB)
语法#
--size-in-billions {model_size}
-s {model_size}
设置模型大小。以十亿个参数为单位指定模型大小。参数格式接受形式如 1_8 和 1.8. 例如,7 表示 7.0B 的模型大小。
--quantization {precision}
-q {precision} (可选)
指定模型的量化配置。例如:Int4 参数表示使用 INT4 量化。
--model-name {model_name}
-n {model_name} (可选)
指定模型名称。如果提供此参数,将从 huggingface/modelscope 中获取模型配置;如果没有指定,将使用默认的 layer 参数粗略估计。
--context-length {context_length}
-c {context_length}
指定模型的最大上下文长度。
--model-format {format}
-f {format}
指定模型的格式,例如:pytorch, ggmlv3, etc.
备注
利用环境变量 HF_ENDPOINT 可设置 HuggingFace 服务器的 Endpoint。例如,当网络不佳时可以选择 hf-mirror 作为 Endpoint. 更多请参考 此文档