【免费下载链接】hf-mem
A CLI to estimate inference memory requirements for Hugging Face models, written in Python.
hf-mem是一个轻量的 Python 命令行(CLI)工具,用于估算 Hugging Face 上任意模型的推理内存需求——你不需要下载几十上百 GB 的模型权重,它只通过 HTTP Range 请求拉取模型文件的元数据,几秒内就能告诉你"跑这个模型大概要多少显存/内存"。🧠
为什么你需要 hf-mem?
在部署大模型(LLM)或扩散模型之前,大家最常问的一个问题就是:这个模型到底需要多少显存?传统做法是先把权重全部下载到本地再试跑,动辄几百 GB 的下载量既慢又占磁盘。
hf-mem 的巧妙之处在于:
- ⚡不下载模型:Safetensors 和 GGUF 文件的头尾本身就包含张量名称、形状、数据类型等元数据,hf-mem 利用 HTTP Range 请求 只取这些"小碎片"即可完成估算
- 🪶极其轻量:整个项目只依赖一个第三方库
httpx,核心逻辑见 src/hf_mem/run.py - 🎯覆盖面广:支持 Transformers、Diffusers、Sentence Transformers 模型,以及任意包含 Safetensors 或 GGUF 权重的模型仓库
- 📊不止权重:开启实验特性后,还能估算KV Cache占用,并给出 MoE(混合专家)模型中"基础模型 vs 专家"的权重拆分
快速开始:一条命令估算显存
推荐配合uv使用,无需手动安装依赖,直接运行:
uvx hf-mem --model-id MiniMaxAI/MiniMax-M2💡
uvx是uv提供的"免安装运行器",它会在隔离环境中自动安装并执行hf-mem。也可以用pip install hf-mem后直接运行hf-mem命令。
以官方示例为例,MiniMax-M2 的估算结果如下(Result对象各字段含义见 src/hf_mem/run.py):
| 字段 | 数值 | 约合 |
|---|---|---|
memory(模型权重) | 230,121,630,720 字节 | ~213.9 GiB |
kv_cache(KV 缓存,实验特性) | 24,964,497,408 字节 | ~23.2 GiB |
total_memory(合计) | 255,086,128,128 字节 | ~237.4 GiB |
看到total_memory,你基本就能判断:单机 8 卡 80G 显存(640 GiB)是否装得下了。
常用参数速查表
完整参数定义在 src/hf_mem/cli.py,最常用的几个如下:
| 参数 | 作用 | 默认值 |
|---|---|---|
--model-id | Hugging Face Hub 上的模型 ID(必填) | - |
--revision | 模型版本/分支 | main |
--experimental | 开启 KV Cache 估算与 MoE 权重拆分 | 关闭 |
--max-model-len | 上下文长度(输入+输出),用于 KV Cache 估算 | 从config.json自动读取 |
--batch-size | 估算并发时的批量大小 | 1 |
--kv-cache-dtype | KV Cache 精度,如auto、bfloat16、fp8 | auto |
--gguf-file | 指定估算某一个 GGUF 量化文件 | 全部列出 |
--hf-token | HF Hub 令牌(私有/受限模型需要) | 自动读取环境变量或本地缓存 |
--json-output | 以 JSON 格式输出结果,方便脚本处理 | 关闭 |
进阶:用 --experimental 估算 KV Cache
只算权重是不够的——LLM 推理时 KV Cache 会随上下文长度线性增长。加上--experimental后,hf-mem 会读取模型的config.json,结合hidden_size、num_key_value_heads、num_hidden_layers等字段计算缓存占用,计算逻辑见 src/hf_mem/safetensors/kv_cache.py:
uvx hf-mem --model-id MiniMaxAI/MiniMax-M2 --experimental三个可调细节:
- 上下文长度:不传
--max-model-len时,自动取config.json中的max_position_embeddings等字段 - 批量大小:
--batch-size 4可以估算 4 路并发时的显存需求 - 缓存精度:
--kv-cache-dtype auto会跟随模型配置;如果你用 vLLM 等引擎跑 FP8 量化缓存,可以指定--kv-cache-dtype fp8
⚠️ 注意:该特性仅对
...ForCausalLM(LLM)和...ForConditionalGeneration(多模态/VLM)架构生效;hf-mem 目前处于实验阶段(当前版本 0.5.5),v1.0.0 之前可能存在破坏性变更,详见 pyproject.toml 与 README.md。
对于 MoE 模型,--experimental还会额外给出"基础模型 + 所有专家"的权重拆分,帮你理解激活参数与总参数的差距。
GGUF 量化模型估算
使用 Ollama、llama.cpp 生态的朋友通常用 GGUF 格式的量化模型。如果仓库中没有 Safetensors 权重,hf-mem 会自动列出所有 GGUF 文件并逐个估算;指定--gguf-file则只估算目标文件:
# 列出并估算仓库内全部 GGUF 量化版本 uvx hf-mem --model-id TheBloke/deepseek-llm-7B-chat-GGUF --experimental # 只估算某一个量化文件 uvx hf-mem --model-id TheBloke/deepseek-llm-7B-chat-GGUF \ --gguf-file deepseek-llm-7b-chat.Q2_K.gguf --experimental分片 GGUF(如xxx-00001-of-00046.gguf)会自动合并计算,相关解析逻辑在 src/hf_mem/gguf/ 目录中。这样你在下载前就能对比 Q2_K、Q4_K_M、Q8_0 各档量化分别要占多少内存。📉
Python 代码中调用
除了命令行,hf-mem 也可以作为库使用,便于嵌入自己的部署检查流水线(入口定义在 src/hf_mem/run.py):
from hf_mem import run result = run(model_id="MiniMaxAI/MiniMax-M2", experimental=True) print(result.total_memory) # 权重 + KV Cache 的总字节数如果代码本身运行在异步(async)环境中,改用arun:
from hf_mem import arun result = await arun(model_id="MiniMaxAI/MiniMax-M2", experimental=True)生态集成:hf CLI 扩展与 Agent Skill
- 作为 Hugging Face CLI 扩展:先安装官方
hfCLI,然后执行hf extensions add alvarobartt/hf-mem,之后就能直接用hf mem ...调用,与hf其他扩展并列展示 - 作为 AI Agent 技能:仓库自带 skills/hf-mem/SKILL.md,把它复制到如
.claude/skills/hf-mem/SKILL.md路径下,编码智能体(coding agent)即可自动发现并调用 hf-mem 来回答"这个模型跑得动吗"
如果本地没有网络条件或想从源码贡献,可以克隆仓库后本地运行:
git clone https://gitcode.com/gh_mirrors/hf/hf-mem常见问题 FAQ
Q:估算结果需要下载模型吗?会不会很慢?不需要。只请求元数据(Safetensors 文件尾部的 JSON 头 / GGUF 文件头),并发请求(MAX_WORKERS控制,默认按 CPU 核数自适应),大模型分片场景也只需几秒到几十秒。
Q:需要 HF 登录令牌吗?公开模型不需要。受限/私有模型需通过--hf-token、HF_TOKEN环境变量或.cache/huggingface/token提供令牌,提供令牌还能获得更宽松的 Hub 请求速率限制。
Q:估算值和实际显存占用一致吗?hf-mem 给出的是理论下限估算(权重 + KV Cache)。实际运行时还有激活值、框架开销、CUDA 上下文等额外占用,通常建议在此基础上预留 10%~30% 余量。
Q:需要 GPU 或 PyTorch 吗?不需要。hf-mem 纯 Python 实现(要求 Python ≥ 3.10),不导入任何深度学习框架,CPU 机器上也能正常估算。
源码导读
想了解实现细节,可以从这几个入口读起:
| 模块 | 说明 |
|---|---|
| src/hf_mem/cli.py | 命令行参数解析与输出分发 |
| src/hf_mem/run.py | 核心异步流程arun与Result数据结构 |
| src/hf_mem/_fetch.py | 基于 HTTP Range 请求的元数据抓取 |
| src/hf_mem/safetensors/ | Safetensors 元数据解析、KV Cache 计算与报表 |
| src/hf_mem/gguf/ | GGUF 文件头解析、分片合并与报表 |
| skills/hf-mem/SKILL.md | Agent Skill 定义文件 |
小结
hf-mem 把"部署前评估显存"这件麻烦事变成了一条命令:不下载权重、秒级出结果、支持 Safetensors 与 GGUF 双格式,还能估算 KV Cache。在下一次下载几百 GB 模型之前,先跑一遍uvx hf-mem --model-id 你的模型,让硬件预算先于磁盘配额做出决策吧。🚀
【免费下载链接】hf-mem
A CLI to estimate inference memory requirements for Hugging Face models, written in Python.
相关推荐
27B多模态大模型到底要多少显存?Qwen3.8-27B-Quark-AWQ-INT4-W4A16硬件选型与显存估算完全指南
27B多模态大模型到底要多少显存?Qwen3.8 27B Quark AWQ INT4 W4A16硬件选型与显存估算完全指南 27B 参数的多模态模型,一张显卡
Hy4-preview-4bit到底需要多大内存?4bit量化硬件门槛与推理成本完整估算指南
Hy4 preview 4bit到底需要多大内存?4bit量化硬件门槛与推理成本完整估算指南 Hy4 preview 4bit 是腾讯 Hunyuan(Hy4
119B 模型到底要多少内存?Mistral-Small-4-119B-2603-GGUF 各量化显存/内存需求详解(含 256k KV Cache 估算)
119B 模型到底要多少内存?Mistral Small 4 119B 2603 GGUF 各量化显存/内存需求详解(含 256k KV Cache 估算) 本
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考