端侧模型(端侧 = 手机、车载、智能硬件、PC 等本地设备)近一年密集开源:9 月 1 日科大讯飞开源星火 X2.5-4B 与 X2.5-1.7B,原生支持最长 1M token 上下文;Qwen 系列也提供了从 0.5B 到 8B 的多档规格。本文从选型开始,走一遍「选模型—量化—调上下文—封装服务」的完整流程。

第一步:先回答三个问题再选模型

端侧部署的第一原则是「够用就好」,不必追求最大模型。选型前先回答三个问题:设备内存多大、需要多长上下文、能否联网。

  • 设备内存:4GB 以下优先 1.7B-4B 的量化版;8GB 以上可以尝试 7B-8B 档
  • 上下文需求:长对话、长文档场景选支持 1M 上下文的模型,但要注意 KV cache 显存占用
  • 离线要求:必须离线用 llama.cpp / Ollama 本地推理;可联网可考虑云端 API 兜底

第二步:量化压缩

端侧部署几乎都离不开量化。星火与 Qwen 系列在社区一般都有 int4 / int8 / fp16 版本,int4 通常能把权重占用降到 fp16 的四分之一左右。建议先用 fp16 跑通验证效果,再换量化版对比输出质量,不要一开始就追求最小体积。

# 方式一:Ollama 一键拉取(自动选择合适量化)
ollama pull qwen3:4b
ollama run qwen3:4b

# 方式二:llama.cpp 手动加载 GGUF
# 从 huggingface 或 ModelScope 下载 int4 GGUF 文件后:
./build/bin/llama-cli -m qwen3-4b-q4_k_m.gguf -p "你好"

Windows 用户推荐 Ollama,装完直接跑命令;想深入调参再用 llama.cpp 手动编译。注意先确认设备是否有足够内存,int4 的 4B 模型通常需要 3-4GB 内存,8B 模型需要 5-6GB。

第三步:上下文与内存管理

1M 上下文不是白送的:上下文越长,KV cache 占用越大。日常使用建议按实际需要限制上下文长度(例如 32K),并在推理框架中开启 KV cache 量化,能明显降低长对话的内存占用。车载、智能硬件场景还可以结合「本地小模型 + 云端大模型」的混合方案,本地处理短轮次,长文档再走云端。

第四步:封装成本地服务

跑通单条对话后,用 Ollama 或 llama.cpp 自带的 OpenAI 兼容接口把模型暴露成 localhost 服务,应用侧代码把 API 地址从云端换成本地地址即可。先在开发机完整验证,再搬上车载或智能硬件,注意核对电源、散热与长时间运行的稳定性。

端侧部署不是把云端模型变小,而是围绕「内存、延迟、离线」三个约束重新设计系统。