惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
News and Events Feed by Topic
GbyAI
GbyAI
博客园 - Franky
宝玉的分享
宝玉的分享
Blog — PlanetScale
Blog — PlanetScale
Google DeepMind News
Google DeepMind News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
人人都是产品经理
人人都是产品经理
Microsoft Azure Blog
Microsoft Azure Blog
The Register - Security
The Register - Security
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
I
InfoQ
The Cloudflare Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
有赞技术团队
有赞技术团队
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
F
Full Disclosure
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Vercel News
Vercel News
博客园 - 【当耐特】
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Project Zero
Project Zero
量子位
M
MIT News - Artificial intelligence
Stack Overflow Blog
Stack Overflow Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
美团技术团队
Attack and Defense Labs
Attack and Defense Labs
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Blog of Author Tim Ferriss
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Troy Hunt's Blog
Google Online Security Blog
Google Online Security Blog
罗磊的独立博客
P
Proofpoint News Feed
Schneier on Security
Schneier on Security
Spread Privacy
Spread Privacy
S
SegmentFault 最新的问题
L
LINUX DO - 最新话题
Simon Willison's Weblog
Simon Willison's Weblog
爱范儿
爱范儿
博客园 - 聂微东
A
About on SuperTechFans
PCI Perspectives
PCI Perspectives
D
Docker

无妄当自持

在 RTX 4060 Laptop(8GB 显存)笔记本上部署 Qwen3.5-4B 和 Qwopus3.5-9B-Coder 的完整实战 给 Hermes Agent 接入 Sciverse:5 分钟搞定学术搜索 MCP MinerU:让 AI Agent 读懂 PDF 的文档提取利器 用 Firecrawl + SearXNG 给 Hermes Agent 搭建本地搜索与网页抓取 让服务器的 AI 读写你的 Obsidian 笔记库:从自建同步到 MCP 集成 在 Fedora 44 上编译支持 CUDA 的 llama.cpp:完整指南 Hermes WebUI 安装与使用指南 Hermes Agent 使用实践:核心机制与命令技巧 小米 MiMo 模型本地部署实践:从选型到踩坑 介绍并初步使用 Hermes Agent Linux 下将浏览器缓存放到内存,并在登录登出时进行同步 Fedora 使用脚本配置国内镜像源 在 Fedora server 39 中纯手动部署 Nextcloud 使用 shell 脚本和 systemd 定时替换 Gnome 壁纸 Linux 下字体配置 设置 VirtualBox 虚拟机为静态 ip 以方便主机访问 在启用安全启动的 Fedora 中安装 Nvidia 驱动 曲登尼玛冰川 面向神经科学家的人工神经网络
在 RTX 4060 笔记本上运行 Qwen 3.5 9B:llama.cpp 本地部署实录
insidentally · 2026-05-24 · via 无妄当自持

之前写了在 Fedora 44 上编译支持 CUDA 的 llama.cpp 的过程,这次记录一下用编译好的二进制运行 Qwen 3.5 9B 模型的完整经历,包括踩坑和性能测试结果。

硬件与模型

项目 配置
CPU AMD Ryzen 7 7840HS
GPU NVIDIA RTX 4060 Max-Q 8GB
内存 32GB DDR5
系统 Fedora 44 (Linux 7.0.9)
模型 Qwopus3.5-9B-coder-Exp-IQ4_XS.gguf (5.2GB)
视觉投影器 mmproj.gguf (921MB)

模型是 Qwen 3.5 系列的 9B 参数编码变体,IQ4_XS 量化后体积约 5.2GB。Qwen 3.5 是混合架构,同时使用 Transformer 注意力机制和 Mamba 状态空间模型(SSM),其中只有部分层(第 3、7、11、15、19、23、27、31 层)使用完整注意力,其余为 Mamba 层。这种设计使得 KV cache 占用比纯 Transformer 模型小得多。

编译产物在 /home/insidentally/Documents/shell/llama-cpp/bin/,模型文件在 /home/insidentally/Documents/shell/llama-cpp/model/

启动服务

最基础的启动命令:

1
2
3
4
5
6
7
8
9
10
cd /home/insidentally/Documents/shell/llama-cpp/bin
export LD_LIBRARY_PATH="$(pwd):/usr/local/lib/ollama/cuda_v13:$LD_LIBRARY_PATH"

./llama-server \
-m /home/insidentally/Documents/shell/llama-cpp/model/Qwopus3.5-9B-coder-Exp-IQ4_XS.gguf \
-ngl 99 \
--host 0.0.0.0 \
--port 8080 \
-c 4096 \
--flash-attn on

踩坑 1:CUDA runtime 找不到

编译好的 llama-server 依赖 libcudart.so.13,但系统没有独立安装 CUDA Toolkit。本机的 CUDA 库来自 Ollama 自带的版本,位于 /usr/local/lib/ollama/cuda_v13/。需要在 LD_LIBRARY_PATH 中显式加入这个路径。

踩坑 2:--flash-attn 参数格式变了

早版本 llama.cpp 中 --flash-attn 是一个布尔开关,不带参数。当前版本(b9161)要求显式指定 onoffauto

1
2
3
4
5
# 旧写法,会报错
--flash-attn

# 新写法
--flash-attn on

上下文长度的权衡

模型原生支持的上下文长度为 262144(262K),但 8GB 显存是硬约束。我测试了几种配置:

配置 上下文 视觉模型 GPU 占用 能否运行
A 4096 加载 6534 MiB 正常
B 65536 (64K) 不加载 7336 MiB 正常
C 65536 (64K) 加载 - OOM 崩溃

64K 上下文加上 mmproj 视觉模型会超出显存。最终选择了方案 B:64K 上下文,不加载视觉模型。

对于混合架构的 Qwen 3.5 来说,Mamba 层的内存占用是 O(1) 的(固定大小状态),只有注意力层的 KV cache 随上下文长度线性增长。这使得 64K 上下文在 8GB 显存上成为可能。纯 Transformer 的 9B 模型在这个显存下大概只能跑到 8K-16K。

性能测试

用 OpenAI 兼容 API 进行测试:

1
2
3
4
5
6
7
8
curl -s http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.5-9b",
"messages": [{"role": "user", "content": "你好,请用中文简单介绍一下你自己,50字以内。"}],
"max_tokens": 500,
"temperature": 0.7
}'

结果:

指标 数值
Prompt 处理速度 433.6 tokens/s
Token 生成速度 46.3 tokens/s
单 token 延迟 21.6 ms
Prompt 处理延迟 2.3 ms/token

46 tokens/s 的生成速度在笔记本 GPU 上算是不错的表现,日常对话基本感觉不到延迟。

注意事项

Qwen 3.5 默认开启思考模式(thinking mode),模型会先在 reasoning_content 字段输出推理过程,再在 content 字段输出正式回复。如果 max_tokens 设得太小,可能所有 token 都花在思考上,导致实际回复为空。建议至少设 300-500。

服务管理

启动后可以通过以下方式使用:

  • 聊天页面:http://localhost:8080(默认自带 WebUI,如果你 llama.cpp 没有编译 WebUI 则无法访问)
  • OpenAI 兼容 API:http://localhost:8080/v1/chat/completions
  • 健康检查:http://localhost:8080/health

后台运行可以用 nohup 或 systemd user service。

总结

在 8GB 显存的笔记本上运行 9B 参数的混合架构模型,体验比预期好。IQ4_XS 量化在体积和质量之间取得了不错的平衡,混合架构的内存效率让 64K 上下文成为可能。主要限制是视觉模型和大上下文不能同时启用,以及量化级别不宜再低(否则质量下降明显)。

如果需要视觉能力,可以切换回 4K 上下文 + mmproj 的配置。两种方案各有取舍,根据实际需求选择即可。