
系列第 9 篇 · 本地部署你以为本地部署就是ollama run qwen2.5一行命令的事我在一台32 核、无独立显卡的机器上用纯 NumPy 推理引擎把 Qwen2.5-0.5B 和 1.5B 真跑了一遍0.5B 解码 12.1 tok/s、首 token 2.35s1.5B 直接掉到 4.74 tok/s。更扎心的是——int4 量化为了把权重压到 247MB质量却肉眼崩坏top-1 一致率只剩 27.8%。本篇不讲「4090 多香」只讲没有显卡时本地部署的真实水位以及量化这道坎到底卡在哪。实测环境先说清楚能不能复现Intel/AMD 32 核 CPU、无 GPU、纯 NumPy 2.5.1 / OpenBLAS、OMP_NUM_THREADS8模型 Qwen2.5-0.5B-Instruct / 1.5B-Instruct。本文 GPU/4090 相关数字来自公开 benchmark非本人实测已逐处标注。数据基于本人环境仅供参考。一、解码速度CPU 的真实水位我把两次解码取中位数结果如下decode 指逐 token 生成速度TTFT 指首 token 延迟即预填整个 prompt 的耗时模型量化解码 tok/s首 token (TTFT)权重体积 (bf16)Qwen2.5-0.5Bbf1612.12.35 s988 MBQwen2.5-1.5Bbf164.745.91 s3.09 GB反直觉点 11.5B 参数只有 0.5B 的 3 倍解码速度却掉了2.55 倍12.1→4.74。本地推理不是线性缩放注意力与词表投影15 万维是固定大头模型越大越吃亏。反直觉点 212 tok/s 听起来能聊但人类阅读舒适区在 30 tok/s 以上。CPU 上 0.5B 勉强能「慢慢唠」1.5B 已经接近「边想边等」的体验下限。二、预填远比解码快长 prompt 不亏用批量矩阵前向真实的 serving 做法测预填速度明显快于逐 token 解码上下文长度0.5B 预填 (tok/s)1.5B 预填 (tok/s)12825486.725627110151223798.4102421999.4结论预填速度是解码的 ~20 倍。所以「长 system prompt 长文档」主要吃首 token 延迟真正拖慢体感的是生成阶段不是输入长度。三、量化的真相省的是显存崩的是质量权重体积的硬账按参数量算bf162 字节量化权重体积与 bf16 的 KLtop-1 一致率实测观感bf16988 MB——正常int8494 MB0.01383.3%几乎无差int4247 MB1.1527.8%明显复读/跑题我跑了一段固定中文让模型续写int4 的 0.5B 直接开始复读「大模型的本地计算。大模型的本地计算……」。诚实标注我的纯 NumPy 引擎量化只是把权重按行缩放后仍在 fp32 计算所以这里测的是「质量损失」不是「提速」。真实提速要靠 llama.cpp 的整数矩阵内核——公开数据里 int4 在 CPU 上约2–4×加速。但质量损失是真实的小模型上 int4 几乎不可用。四、映射到显卡你能跑多大把本人实测和公开 benchmark 拼成一张选型表GPU 数字非本人实测硬件显存能跑量化后参考 tok/s公开本机 CPU—0.5B / 1.5B bf1612.1 / 4.74本人实测RTX 306012 GB7B int4 (~3.5GB)~30–40RTX 409024 GB7B fp16 / 14B int4 / 32B int470–100关键判断6G 卡如 3060 的某些阉割版连 7B fp16~14GB都塞不下必须 int424G 的 4090 才能舒服地跑 7B fp16 或 14B int4。五、三个血泪坑坑 1本机 torch / llama.cpp 直接 segfaultGPU 路径全废。教训开搞前先python -c import torch; print(torch.cuda.is_available())探环境别一上来就写 CUDA 代码。坑 2小模型 int4 不可用。0.5B 上 int4 的 top-1 一致率掉到 27.8%生成直接复读。底线小模型至少 int8大模型才上 int4。坑 3Windows CUDA 版本地狱公开常见坑非本人实测但要提醒CUDA / cuDNN / 驱动三角版本锁死装错一个直接报 ABI 错。能用 Ollama / LM Studio 的预编译包就别自己编。六、今天就能动手的 3 件事测你自己的水位装好 Ollama 后跑ollama run qwen2.5:0.5b看解码 tok/s 是多少对照本文 CPU 的 12.1算算你的显卡快了几倍。量化先定底线小模型从 int8 起步用一段固定文本续写算 KL / top-1 一致率验证质量没崩再上生产。先探环境再选型python -c import torch; print(torch.cuda.is_available())一行定生死——能 GPU 就 GPU不能就走 CPU 推理引擎如本文的纯 NumPy 兜底。交付物① 上面的「机型-模型匹配表」可直接当选型清单② 本地部署一键脚本骨架——ollama pull qwen2.5:1.5bGPU 机或本文的纯 NumPy 引擎无 GPU 兜底。下篇我们聊「上线前最后一道关」提示注入攻防——我用 15 条真实攻击把自家 AI 应用的防线捅了一遍。合规声明本文解码/预填/量化质量数据均为本人在上述 CPU 环境实跑得出GPU/4090 等数字为公开 benchmark非本人实测仅供参考。