合规项目大模型如何部署?硬件选型 + vLLM/LMDeploy 实战

如果你正接手一个合规项目 ------数据不能出域访问要能审计服务要能自己运维,大模型在内网落地------下面这些事,是不是也让你头疼过:

  • 公网 API 用不了,内网部署又不知道从哪一步开始
  • 硬件买多大、模型选哪个,没有依据,只能先估一估
  • vLLM、LMDeploy、Ollama 都听过,上线前到底该用哪套

如果是,这篇文章就是为你写的。我们从合规落地视角,一起走通一条可执行的路径:

  1. llmfit / whichllm 做硬件摸底与采购论证
  2. 选定适合合规内网的生产模型
  3. vLLM / LMDeploy 在内网跑通私有化部署

一、为何必须私有化部署

合规团队关心的「能不能过审、能不能管」。

维度 公网 API 内网私有化
数据流向 请求出域,依赖供应商承诺 数据留在机房/专有云,边界清晰
审计留痕 日志在第三方,难以统一归档 可对接现有 SIEM、操作审计体系
监管应对 合同与 DPA 为主 等保、行业规范、国产化清单可逐项举证
成本 按 Token 计费,规模上来不可控 硬件一次性投入 + 运维,长期可预测
可用性 受供应商 SLA 约束 内网延迟与容量自主可控

私有化是合规行业的必选项


二、硬件如何选型与配置

现有或计划采购的硬件,能稳定跑什么规模的模型? 推荐两款 CLI 工具互补使用。

你的目标 首选工具
模拟 24GB 采购配置、TUI 浏览可跑模型 llmfit--memory=24Ginfoplan
在能跑的模型里按 benchmark 选更优 whichllm (默认排名 / --gpu "RTX 4090"
已定 Qwen3-8B,反查最低硬件 两者均可:llmfit plan ... --context / whichllm plan
定稿模型并衔接第六~七节部署 whichllm snippet

2.1 llmfit

GitHubgithub.com/AlexsJones/...

2.1.1 产品介绍

llmfit 是一款开源终端工具,自动检测本机 RAM / CPU / GPU(含昇腾 NPU),从数百个模型中筛选「真能跑、跑得好」的型号。

核心能力:

  • 交互式 TUI,顶部展示整机硬件信息
  • 质量 / 速度 / 显存 fit / 上下文 四维评分排序
  • 支持多 GPU、MoE、动态量化选择
  • H切换 27+ GPU 预设,采购论证时模拟目标机器
  • plan 模式:给定模型名,反查所需硬件配置

合规场景价值: 采购评审时,用 --memory=24G 模拟目标机器,再用 info 查指定模型plan 反查最低硬件

2.1.2 安装
bash 复制代码
# 无需安装即可运行:
uvx llmfit

# uv / pip
uv tool install -U llmfit

# Windows
scoop install llmfit

# macOS / Linux(预编译)
brew install AlexsJones/llmfit/llmfit

# 或一键脚本
curl -fsSL https://llmfit.axjns.dev/install.sh | sh

如果尚未安装 Scoop,请按照 Scoop 安装指南进行操作(scoop.sh/)。%25E3%2580%2582 "https://scoop.sh/)%E3%80%82")

2.1.3 实操

步骤 1:摸底本机

bash 复制代码
llmfit

llmfit TUI:硬件信息与模型列表

关注 TUI 顶部的 CPU、GPU、VRAM 信息,以及模型表中的 score、预估 tok/s、推荐量化、run mode

步骤 2:模拟 24GB 单卡,查 Qwen3-8B-AWQ 能否可跑

bash 复制代码
uvx llmfit --memory=24G --ram=64G info "Qwen/Qwen3-8B"

llmfit 模拟 24GB 下的 fit 结果

fit 等级 和预估 tok/s 即可。

步骤 3:反查最低硬件(须带 --context

bash 复制代码
uvx llmfit plan "Qwen/Qwen3-8B-AWQ" --context 8192

llmfit plan 硬件规划输出

8K 上下文下推荐显存约 7.6GB;部门生产档写 24GB 单卡,是为长上下文和并发留余量。


2.2 whichllm

GitHubgithub.com/Andyyyy64/w...

2.2.1 产品介绍

whichllm 解决的是在能跑的模型里,哪个更值得跑------排名融合 LiveBench、Arena ELO 等 benchmark,而非单纯比参数量。

核心能力:

  • 自动检测 NVIDIA / AMD / Apple Silicon 硬件
  • 实时拉取 HuggingFace 模型库
  • plan:反向查询跑某模型需要什么 GPU
  • snippet:输出可复制运行的 Python 代码片段
  • --json:便于接入采购或运维脚本

与 llmfit 分工: llmfit 偏交互浏览与采购模拟;whichllm 偏 benchmark 排名 + 衔接部署流水线

2.2.2 安装
bash 复制代码
# 零安装试用(推荐先这样跑)
uvx whichllm@latest

# 常用后可固定安装
uv tool install whichllm

# 备选
brew install andyyyy64/whichllm/whichllm
pip install whichllm

依赖 Python 3.11+;NVIDIA 环境自带 nvidia-ml-py

2.2.3 实操

步骤 1:查看本机 Top 模型

bash 复制代码
uvx whichllm@latest

whichllm 默认排名输出

模拟采购时可加 GPU 参数:

bash 复制代码
uvx whichllm@latest --gpu "RTX 4090"

关注 score、量化档位、预估 tok/s------分数高的不一定最大,而是综合 benchmark 与硬件 fit 更优。

步骤 2:生产模型需要多少硬件(Qwen3-8B)

bash 复制代码
uvx whichllm@latest plan "Qwen3-8B" --quant Q4_K_M

whichllm plan Qwen3-8B 硬件需求

输出可与下文「部门生产」配置档位对照,写入采购论证材料。

步骤 3:衔接后文部署(演示模型 Qwen3-4B)

bash 复制代码
uvx whichllm@latest snippet "Qwen3-4B"

whichllm snippet 输出

snippet 便于快速验证;正式生产部署仍建议走第六~七节的 vLLM / LMDeploy 方案。


2.3 合规常见硬件配置档位

以上工具给出的供你参考,业务还要留 KV Cache 与并发余量。人工决策可参考下表:

档位 典型硬件 适合模型 合规场景
入门验证 16GB 显存 / 32GB 内存 3B~4B 量化 POC、单部门试用
部门生产 24GB 单卡 + 64GB 内存 4B~8B INT4/AWQ(如 Qwen3-8B) 内网助手、文档问答(含 32K 长文档与并发余量)
多并发服务 多卡 24GB+ 或 A100/L40 8B~14B 量化或多实例 全行/全司统一网关

显存估算公式:

text 复制代码
VRAM ≈ 权重大小 + KV Cache + 框架开销

长文档审阅、合规检查等场景上下文较长,KV Cache 会显著占显存------这一项需要按业务单独加余量,工具只能作起点参考。


三、合规场景模型怎么选

选型逻辑:硬件 → 模型规格 → 量化方式,按档位匹配,不硬性卡参数量上限。

3.1 企业生产推荐 vs 本文实操演示

层级 模型 说明
合规生产推荐 Qwen3-8B 多数企业部门生产首选:中文好、生态成熟、24GB 单卡可跑量化版
本文部署实操 Qwen3-4B 演示环境为单卡 24GB,用 4B 降低首次跑通失败率

本文第六~七节实操统一以 Qwen3-4B 跑通流程。部署步骤与 8B 量化版完全一致 ,上线时替换模型路径与 model 字段即可。

3.2 选型原则

  • 国产开源 + 可离线交付:Qwen 系在 ModelScope / HuggingFace 均有完整权重,便于内网镜像与审计
  • 量化优先:INT4/AWQ 显著降低显存,合规内网助手性价比最高
  • 框架支持:优先选 vLLM、LMDeploy 官方文档明确支持的型号
  • 按档位升级:试点 3B~4B → 生产 8B 量化 → 多卡/多实例扩容,避免一步到位买过大模型

3.3 从 4B 切换到 8B(上线时改这几处)

  • ModelScope / HuggingFace 模型 ID:Qwen3-4BQwen3-8B(或 AWQ 变体)
  • vllm serve / lmdeploy serve api_server 的模型路径
  • API 调用中的 model 字段

四、部署框架对比:vLLM vs LMDeploy vs Ollama

合规生产环境要在 性能、国产化、运维成本 之间取舍。三款框架定位如下:

4.1 对比总览

框架 梯队 最佳场景 性能特点 资源要求 部署复杂度 合规场景
vLLM 生产级 高并发在线服务 PagedAttention,吞吐高 多 GPU 更佳 中等 内网 API 网关、审计可追溯
LMDeploy 生产级 量化/国产硬件 W4A16 量化,显存省 昇腾 NPU / 低配 GPU 较简单 国产化清单、资源受限
Ollama 试点级 本地快速验证 极简启动 CPU / 低配 GPU 极简 仅 POC,不建议高并发生产

4.2 详细分析

vLLM:

  • ✅ 推理吞吐高,动态批处理成熟
  • ✅ 多卡张量并行、OpenAI API 兼容
  • ✅ 模型生态最广,文档与社区活跃
  • ❌ 量化支持相对 LMDeploy 弱一些

LMDeploy:

  • ✅ 量化方案完善(W4A16、KV8 等),显存效率高
  • 支持昇腾 NPU,国产化部署友好
  • ✅ 部署相对轻量
  • ❌ 极限吞吐略低于 vLLM

Ollama:

  • ✅ 一条命令拉模型,适合业务方快速体验
  • ✅ 多模型切换方便
  • ❌ 不适合高并发、可观测要求严的生产网关

4.3 合规场景选型建议

场景 推荐
高并发内网 API、多部门共用 vLLM
显存紧张、需量化、昇腾环境 LMDeploy
合规 POC、业务演示 Ollama(本文不设独立部署章节)
国产化硬件 + 量化生产 LMDeploy + 昇腾 NPU

五、环境准备与硬件要求

5.1 硬件要求

本文演示环境(Qwen3-4B):

  • GPU:单卡 16GB+ 即可;生产 Qwen3-8B 量化 建议 24GB+
  • 内存:32GB+(生产建议 64GB+)
  • 存储:NVMe SSD,预留模型与量化版本空间

GPU 算力:

  • vLLM:CUDA 算力 7.0+(V100、T4、RTX 20xx/30xx/40xx、A100、L4、H100 等)
  • LMDeploy:NVIDIA GPU 或昇腾 NPU(通过量化降低门槛)

5.2 软件环境

  • 操作系统:Linux(Ubuntu 20.04+ / CentOS 7+)
  • Python:3.9~3.12(vLLM 推荐 3.12,LMDeploy 推荐 3.11)
  • CUDA:11.8+(vLLM 新版本建议 CUDA 12.4+)
  • Conda:用于环境隔离

5.3 我的配置

5.4 模型下载

  • HuggingFace
  • ModelScope
  • 生产可选用 AWQ / GPTQ 量化变体,进一步降低显存

六、方案一:vLLM 部署实战

以下命令均以 Qwen3-4B 为例;生产替换为 Qwen3-8B 量化版即可。

6.1 环境安装

bash 复制代码
# 创建虚拟环境
conda create -n vllm python=3.12 -y
conda activate vllm

# 安装 vLLM
pip install vllm

安装conda环境

安装vllm

若模型较新或遇到兼容问题,可参考 vLLM 官方文档 安装对应版本:

bash 复制代码
uv pip install vllm --torch-backend=auto --extra-index-url https://wheels.vllm.ai/nightly

6.2 模型下载

python 复制代码
#模型下载(从modelscope上复制SDK下载代码)
from modelscope import snapshot_download

model_dir = snapshot_download(
    'Qwen/Qwen3-4B',
    cache_dir="/root/autodl-tmp/models"
)
print(f"模型下载到: {model_dir}")

模型下载

当然,你也可以从HuggingFace上下载。

6.3 启动服务

单卡部署:

bash 复制代码
vllm serve /root/autodl-tmp/models/Qwen/Qwen3___4B --port 8000

多卡并行:

bash 复制代码
vllm serve /root/autodl-tmp/models/Qwen/Qwen3-4B \
    --port 8000 \
    --tensor-parallel-size 4

6.4 API 调用示例

python 复制代码
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/v1/",
    api_key="EMPTY"
)

response = client.chat.completions.create(
    model="Qwen3-4B",
    messages=[
        {"role": "user", "content": "你好,请介绍一下你自己"}
    ],
    temperature=0.7,
    top_p=0.95,
    max_tokens=2048
)

print(response.choices[0].message.content)

七、方案二:LMDeploy 部署实战

7.1 环境安装

bash 复制代码
conda create -n lmdeploy python=3.11 -y
conda activate lmdeploy

pip install lmdeploy[all]

# 昇腾环境需额外安装
pip install dlinfer-ascend

安装conda环境

安装lmdeploy

7.2 启动服务

bash 复制代码
lmdeploy serve api_server /root/autodl-tmp/models/Qwen/Qwen3___4B --server-port 23333

7.3 API 调用示例

python 复制代码
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:23333/v1/",
    api_key="EMPTY"
)

response = client.chat.completions.create(
    model="Qwen3-4B",
    messages=[
        {"role": "user", "content": "你好,请介绍一下你自己"}
    ],
    temperature=0.7,
    top_p=0.95,
    max_tokens=2048
)

print(response.choices[0].message.content)

7.4 量化优化(显存受限或上 8B 时)

bash 复制代码
lmdeploy convert qwen3-4b \
    Qwen/Qwen3-4B \
    --dst-path /data/models/qwen3-4b-turbomind-int4 \
    --quant-policy 4 \
    --tp 1

生产环境将模型名换为 Qwen3-8B 及对应量化策略即可,流程相同。


八、推理参数与运维建议

8.1 推荐推理参数

python 复制代码
{
    "temperature": 0.7,
    "top_p": 0.95,
    "max_tokens": 2048
}

合规文档问答、制度检索等场景建议 temperature 0.5~0.7,降低胡编风险;创意类场景可适当调高。

8.2 合规侧运维要点(简表)

建议
网络隔离 推理节点置于内网区,禁止直连公网
访问控制 API 网关鉴权,按部门/角色限流
日志审计 记录请求时间、调用方、模型版本(不记录敏感正文或脱敏存储)
模型溯源 权重文件校验和、版本号写入配置管理
密钥管理 API Key 走企业密钥库,禁止硬编码

九、总结与合规落地清单

9.1 核心要点回顾

  • 合规行业私有化是默认路径,不是可选项
  • llmfit + whichllm 解决「买什么硬件、跑什么模型」
  • 生产推荐 Qwen3-8B INT4/AWQ ,实操可用 Qwen3-4B 跑通同一套流程
  • vLLM 适合高并发网关,LMDeploy 适合量化与国产化硬件

9.2 场景选型速查

场景 推荐方案
高并发生产环境 vLLM
资源受限 / 量化 / 昇腾 LMDeploy
快速 POC Ollama(框架对比中选用,生产另建 vLLM/LMDeploy)
国产硬件环境 LMDeploy + 昇腾 NPU

9.3 合规落地五步检查表

  1. 网络:推理服务仅内网可达,出站策略已审批
  2. 硬件:llmfit/whichllm 输出已归档,采购配置与模型档位一致
  3. 模型:权重来源可追溯,版本与量化方式已登记
  4. 框架:vLLM 或 LMDeploy 已跑通,API 接入鉴权与日志
  5. 运维:监控、备份、应急预案已纳入现有 IT 流程

9.4 相关资源

相关推荐
摇滚侠1 小时前
SpringMVC 入门到实战 DispatcherServlet 源码解读 92-95
java·后端·spring·maven·intellij-idea
JouYY2 小时前
如何实现基于 WebSocket Agent 的断线重连与状态恢复
websocket·llm·agent
树獭非懒3 小时前
从N-gram到Transformer:大语言模型架构演进之路
程序员·llm·agent
码不停蹄的玄黓3 小时前
Spring Bean 生命周期
java·后端·spring
西安邮电大学3 小时前
分治算法详细讲解
java·后端·其他·算法·面试
老马聊技术3 小时前
AI对话功能之SpringBoot整合Vue3
vue.js·人工智能·spring boot·后端
武子康4 小时前
调查研究-174 什么是“红丸主义“:它为什么吸引人,又为什么容易把人带偏?
后端
神奇小汤圆4 小时前
白嫖DeepSeek V4 Pro!免费无限用,还能接入Claude-Code
后端
码不停蹄的玄黓4 小时前
SpringBoot 全局异常处理器实现
java·spring boot·后端