RTX 4090 本地大模型部署与安全场景对比测试

  本文档基于 RTX 4090 (24GB) 环境,记录 Ollama 的 GPU 加速部署流程。重点对比三款模型在实际安全扫描场景中的推理表现,通过实测数据确定主力模型规格,确保服务的稳定性与响应速度。

结论

  • 推荐:Qwen2.5-Coder 14B —— 漏洞检出率最高(10个),响应最快(15秒),分析准确,完全 GPU 加速
  • 备选:DeepSeek-R1 14B —— 检出率较低(1个),速度较慢(76秒),但适合复杂攻击链分析等深度推理场景
  • 不推荐:Qwen3:27B —— 显存不足导致 CPU 混合推理,性能抖动明显,响应延迟高

一、环境信息

项目 配置
GPU RTX 4090 24GB
驱动 560.x
CUDA 12.6
内存 32GB
系统 Ubuntu 22.04
Ollama 0.22+

 

二、安装 Ollama
1、下载并安装

wget https://ollama.com/download/ollama-linux-amd64.tar.zst
tar -xf ollama-linux-amd64.tar.zst -C /
ollama -v
2、配置 systemd 服务
vi /etc/systemd/system/ollama.service

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"
ExecStart=/usr/bin/ollama serve
Restart=always
RestartSec=3
User=ollama
Group=ollama

[Install]
WantedBy=multi-user.target
3、创建用户并授权 GPU
useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
usermod -a -G ollama $(whoami)
usermod -a -G video ollama
usermod -a -G render ollama
4、启动服务
systemctl daemon-reexec
systemctl daemon-reload
systemctl enable ollama
systemctl start ollama
systemctl status ollama
三、安装模型
1、Qwen2.5-Coder 14B(推荐)

ollama pull qwen2.5-coder:14b
模型大小:下载约 9GB,运行占用显存约 15~17GB
2、DeepSeek-R1 14B(备选)
ollama pull deepseek-r1:14b
模型大小:下载约 9GB,运行占用显存约 15~17GB
3、Qwen3:27B(测试验证,不推荐)
ollama pull qwen3:27b
模型大小:下载约 17GB,运行占用显存约 22~24GB(接近上限)
四、运行测试
启动模型
ollama run qwen2.5-coder:14b
ollama run deepseek-r1:14b
ollama run qwen3:27b
ollama ps   #确认 GPU 是否生效
五、GPU 状态监控
1、实时监控命令
watch -n 1 nvidia-smi
2、各模型 GPU 状态对比
模型 显存占用 GPU 利用率 推理模式
Qwen2.5-Coder 14B 15~17 GB 0%~80% 100% GPU
DeepSeek-R1 14B 15~17 GB 0%~80% 100% GPU
Qwen3:27B 22~24 GB 30%~60% 混合推理(约 90% GPU + 10% CPU)

 

3、关键判断
指标 含义
GPU-Util > 0 正在推理
显存占用 模型已加载
PROCESSOR = 100% GPU 纯 GPU 加速(正常)
PROCESSOR 含 CPU 混合推理(异常,性能下降)
1) qwen2.5-coder:14b 模型输出示例:


2)qwen3:27b 模型输出示例(混合推理):

3)deepseek-r1:14b 模型输出示例:

 

4、排查命令
nvidia-smi
journalctl -u ollama -f | grep -i cuda
id ollama
六、安全扫描场景对比测试

使用同一扫描器(Zack-AI-Scanner)、同一目标(http://192.168.25.207/control/login.php)、同一载荷集进行对比测试。

 

1、测试结果汇总
对比维度 Qwen2.5-Coder 14B DeepSeek-R1 14B Qwen3:27B
发现漏洞数 10 个 1 个 未测试(显存不足)
扫描耗时 约 15 秒 约 76 秒 不适用
综合风险 严重 严重 严重
推理模式 100% GPU 100% GPU 混合推理
分析质量 详细(逐条分析载荷) 粗略(仅分析1条) 不适用
响应稳定性 稳定 稳定 不稳定(CPU offload)

 

2、详细分析
1)Qwen2.5-Coder 14B(表现最佳)
  • 发现 10 个 SQL 注入漏洞
  • 对每个载荷都有具体分析,例如判断 ' OR '1'='1 导致 302 Found 并重定向到 we_bug_env.php,证明存在 SQL 注入
  • 能够识别不同注入位置(username、password、Cookie、submit 参数)
  • 响应速度快,用户体验流畅
2)DeepSeek-R1 14B(表现一般)
  • 仅发现 1 个 SQL 注入漏洞
  • 分析粒度较粗,描述泛化(仅提到“响应包含 MySQL 错误”)
  • 未能识别多个注入点
  • 速度明显慢于 Qwen(76秒 vs 15秒)
3)Qwen3:27B(不推荐)
  • 显存需求 25~30GB,超出 4090 单卡容量
  • 必然发生 CPU offload,导致混合推理
  • 性能抖动明显,响应延迟高
  • 即使优化参数(OLLAMA_CONTEXT_LENGTH=8192、OLLAMA_MAX_LOADED_MODELS=1)仍无法避免 CPU 参与
  • 结论:可以运行,但体验一般,不建议作为主力
七、常用管理命令
ollama list                    # 查看本地模型
ollama ps                      # 查看当前运行模型
ollama stop <模型名>            # 停止模型
pkill ollama                   # 强制释放显存
八、API 调用(本地服务)
curl http://127.0.0.1:11434/api/generate -d '{
  "model": "qwen2.5-coder:14b",
  "prompt": "分析以下代码的SQL注入风险:..."
}'
安全/IT 场景提示词示例
  • 漏洞分析:分析以下HTTP请求/响应,判断是否存在SQL注入漏洞
  • 日志分析:分析以下nginx错误日志,找出可能的安全问题
  • 脚本生成:写一个bash脚本,批量扫描某网段的22端口是否开放
  • 漏洞解读:解释CVE-2024-XXXX的漏洞原理和修复方案
九、性能优化建议
export OLLAMA_NUM_PARALLEL=1   # 限制并发
export OLLAMA_KEEP_ALIVE=0     # 自动释放显存
针对 27B 模型的额外尝试(仍无法解决 CPU 参与问题):
export OLLAMA_CONTEXT_LENGTH=8192
export OLLAMA_MAX_LOADED_MODELS=1
十、最终结论
模型 推荐度 适用场景 原因
Qwen2.5-Coder 14B ⭐⭐⭐⭐⭐ 主力 日常安全扫描、漏洞检测、代码分析 检出率最高、速度最快、分析最准、纯 GPU 运行
DeepSeek-R1 14B ⭐⭐⭐ 备选 复杂攻击链分析、多步渗透测试规划 检出率低、速度慢,但推理能力强,适合深度分析
Qwen3:27B ⭐ 不推荐 仅测试验证 显存不足导致混合推理,性能不稳定