大模型推理入门:从原理到实践

大模型推理入门:从原理到实践

写给谁看的? 听说过 ChatGPT、DeepSeek、通义千问,想搞明白"大模型到底是怎么回答问题的"、想了解本地部署和推理框架区别的同学。不要求你有 AI 背景,我尽量用人话讲清楚。


一、先搞懂:什么是"推理"?

你用 ChatGPT 提问,它"思考"几秒钟后给你一段回答------这个过程就叫推理(Inference)

"推理"这个词听起来很玄,其实本质就是:输入一段文本,输出一段文本。和你在键盘上打字差不多,只是大模型"打字"的速度是每秒钟几十到几百个字。

一次推理 = 两个阶段:预填充 + 解码

很多人以为模型"回答"是一步完成的,其实内部被切成了两个画风完全不同的阶段。理解这两个阶段,后面所有内容(优化技术、选框架、买服务器)都会豁然开朗。

阶段一:预填充(Prefill)------"读题"

你发过去的所有内容(提示词 + 对话历史 + 问题),模型要一次性全部读完,理解上下文,并"想好"第一个字该输出什么。

  • 特点:并行计算 ,几千上万个 Token 同时处理,吃的是算力(FLOPS)
  • 决定的指标:TTFT(首字延时)------你按下回车后,等待第一个字蹦出来的时间
  • 你输入越长(比如贴一篇 8 万 Token 的文档),预填充越久,首字等得越久

阶段二:解码(Decode)------"答题"

想好第一个字之后,模型开始一个 Token 接一个 Token 往外蹦,直到生成结束。

  • 特点:串行生成 ,每生成一个 Token 都要把模型权重从显存里读一遍,吃的是显存带宽(GB/s)
  • 决定的指标:TPS(输出吞吐)------你看到回答往外"打字"的快慢
  • 模型越大,每次要读的权重越多,单流速度越慢

💡 一句话心法(后面反复用到)

算力决定首字延时,带宽决定输出速度。

这就是为什么同一张显卡,跑同一个模型,"首字快但打字慢"或"首字慢但打字快"都可能出现------两个阶段卡的是不同的资源。

用考试类比:预填充是把 100 道题的题干一口气读完(考验阅读速度),解码是逐题写答案(考验写字速度)。题干越长,读题越久;答案越长,写得越久。两件事瓶颈完全不同。

理解了这两个阶段,你就能回答这些现实问题:

  • 为什么有的模型"等半天才出第一个字,出来之后刷刷刷"?------TTFT 慢但 TPS 快,卡在预填充算力。
  • 为什么有的模型"秒回第一个字,但后面半天蹦一个字"?------TPS 慢,卡在解码带宽。
  • 为什么本地跑 7B 模型只要 8GB 显存,跑 70B 要 80GB?------权重显存和参数量成正比。
  • 为什么 vLLM、Ollama 这些框架能让推理快好几倍?------它们优化的正是这两个阶段的资源利用。

下面我们就一层层拆开看。


二、大模型推理的完整流程

一次完整的推理,大致要经历 6 个阶段

📌 图注:从输入到输出的完整 6 步流程一览------先把你的问题变成 Token,模型逐个计算概率,采样选出下一个 Token,循环往复直到生成结束。下面逐个阶段拆开讲。

阶段 1:接收输入(Prompt)

你发给大模型的所有内容------系统提示词、对话历史、当前问题------都叫输入(Prompt)。比如:

复制代码
系统:你是一个友好的助手
用户:介绍一下大模型推理

阶段 2:分词(Tokenization)

大模型看不懂中文、英文,它只认数字 。所以第一步是把文字切成一个个Token(词元),再把 Token 映射成整数 ID。

举个例子:

复制代码
原文:   "介绍一下大模型推理"
分词后: [介绍, 一下, 大, 模型, 推理]
Token ID:[21435, 7812, 19205, 5128, 9245]

为什么要切? 因为大模型的"字典"是有限的(一般 10-20 万词),它只能处理字典里有的 Token。这样既能压缩文本,又方便后续用数学计算。

💡 小知识:1 个中文字 ≈ 1.5 个 Token,1 个英文单词 ≈ 1-2 个 Token。一句话 "Hello world" 大约是 2 个 Token。

阶段 3:模型前向计算

这一步是真正"烧显卡"的环节。Token ID 序列被喂给一个深度神经网络 (一般是 Transformer 架构),经过几十上百层的数学运算,输出一个向量------本质上是一串浮点数,代表"模型对下一个 Token 的预测"。

你可以把它理解为:模型看完前面所有 Token,给每个候选 Token 打一个分数

阶段 4:选择下一个 Token(采样)

模型算完分数后,不能直接选分数最高的字(那样太死板,回答会很无聊)。通常会用一个采样策略来决定下一个 Token:

  • 贪心解码(Greedy):永远选分数最高的。最快但最无聊。
  • Top-K 采样:从分数最高的 K 个 Token 里随机选。K=50 比较常见。
  • Top-P 采样(Nucleus Sampling):从累计概率达到 P 的 Token 里随机选。P=0.9 比较常用。
  • 温度(Temperature):参数越大越"放飞自我",越小越"稳重"。

比如设置 temperature=0.7 + top_p=0.9,模型既不会胡说八道,也不会每次回答都一模一样。

阶段 5:循环生成(自回归)

关键来了 :大模型是一个 Token 一个 Token 往外蹦的

它生成第 1 个 Token 后,会把这个 Token 拼到原文后面,再喂给模型算第 2 个 Token;然后再拼,再算第 3 个......直到生成特殊的"结束符"(<EOS>)才停下来。

这个"生成一个、拼回去、再生成"的过程叫自回归(Autoregressive)

对应回第一章的两阶段:阶段 1-3 处理你的输入,就是"预填充"(一次并行算完,产出第一个 Token);阶段 4-5 循环往外蹦字,就是"解码"(每次只算一个 Token)

💡 这就是为什么大模型回答有"打字机效果"------它确实是一个字一个字生成的,只不过算得快,所以看起来像一口气说完。

阶段 6:还原成文字(Detokenization)

生成的 Token ID 序列要重新映射回文字,拼成完整回答返回给你。比如:

复制代码
Token ID:[21435, 7812, 19205, 5128, 9245, 233, 8845]
还原为: "介绍一下大模型推理的过程"

整个推理流程就完成了。


三、推理的底层原理:4 个关键概念

光知道流程还不够,要真正理解推理为什么慢、为什么能优化,必须搞懂下面 4 个核心概念。

1. Token:大模型的"原子单位"

前面说过,Token 是大模型的最小处理单位。但你可能要问:为什么不直接按字/词切?

答案是:效率和泛化性的平衡

  • 按字切:字典小(中文就 6000+ 字),但每个字的信息量低,序列会很长。
  • 按词切:信息量大,但字典巨大(几十万个词),训练时很多词出现次数太少,学不好。
  • 按 Token 切(子词):取中间值。常见字/词切成 1 个 Token,生僻词切成多个 Token。平衡得最好。

主流的 Tokenizer 算法有:

算法 代表模型 特点
BPE GPT 系列 按频率合并字符
WordPiece BERT 类似 BPE,按似然合并
SentencePiece LLaMA、通义千问 直接从文本训练,不依赖预分词

2. 自回归(Autoregressive):为什么不能并行?

自回归有个明显缺点:每次只能算一个 Token。生成 1000 字就要跑 1000 次模型,这显然很慢。

那为什么不一次算完?因为下一个 Token 取决于前面所有 Token。模型要先知道你前面说了什么,才能决定下一个字最可能是什么。

这就像写作文------你得先写完第一句,才能想第二句写什么;不能 100 句话同时写出来。

💡 不过研究人员发明了**投机解码(Speculative Decoding)**等技巧,可以让推理"看起来"并行,速度能提 2-3 倍。后文会讲。

3. KV Cache:推理加速的核心

自回归有个隐藏的重复计算:每次算第 N 个 Token 时,模型都要重新"看一遍"前 N-1 个 Token。但前面 N-1 个 Token 的计算结果其实没变啊?

这就是 KV Cache(键值缓存) 解决的问题:

📌 图注:上面是「无 KV Cache」------每个 Token 的 Query 都要和前面所有 Token 的 Key/Value 重新算一遍,复杂度 O(n²d);下面是「有 KV Cache」------把算过的 Key/Value 缓存起来,只算新 Token 的 Query,K/V 直接从缓存复用,复杂度降为 O(nd)。KV Cache 通过复用已存储的 K/V 避免冗余计算,让推理更快、更省显存。

KV Cache 让推理速度快了几十倍,是现代推理框架的标配。

但 KV Cache 也不是没有代价------它非常吃显存。一个 7B 模型生成 2048 个 Token 的 KV Cache 大约要 2-3GB 显存。生成越长,KV Cache 越大。这就是为什么长上下文推理特别烧显存。

4. 采样策略:决定回答"性格"

前面提到温度、Top-K、Top-P。这些参数到底怎么影响输出?

参数 值小 值大
Temperature 输出保守、可预测 输出多样、有创意
Top-K 候选少、质量稳 候选多、可能跑偏
Top-P 候选少、聚焦 候选多、灵活

经验组合

  • 代码生成、数学题:temperature=0, top_p=0(要确定性答案)
  • 创意写作:temperature=0.8, top_p=0.95(要多样性)
  • 通用对话:temperature=0.7, top_p=0.9(平衡)

四、推理优化技术:让模型跑得更快

光搞懂原理还不够,工程师们还开发了一系列优化技术让模型跑得更快、更省资源。下面这 4 个是绕不开的。

1. 量化(Quantization):压缩模型体积

模型权重本来是 FP32(32 位浮点数) 存储的,一个参数占 4 字节。7B 模型就有 28GB,根本塞不进普通显卡。

量化就是把高精度数字用低精度表示,比如:

精度 每参数字节 7B 模型大小 推理速度 质量损失
FP32 4 28 GB 1x
FP16/BF16 2 14 GB 2x 几乎无
FP8 1 7 GB 3-4x 几乎无感
INT8 1 7 GB 3-4x 轻微
NVFP4/INT4 0.5 3.5 GB 5-8x 可控

主流的量化方法:

  • GPTQ:训练后量化,针对 GPU 优化
  • AWQ:激活感知量化,保持重要通道的精度
  • FP8 / NVFP4 :NVIDIA Hopper/Blackwell 架构原生支持的精度格式,不需要软件转译,是当前生产环境的主力选择
  • GGUF(llama.cpp):CPU/Apple Silicon 友好,社区主流格式

💡 经验之谈:个人玩用 INT4/GGUF 就够了;生产部署在 Blackwell/Hopper 卡上优先用 FP8(质量稳妥)和 NVFP4(吞吐更高),第七章有实测数据支撑。

2. PagedAttention:vLLM 的看家本领

要搞懂 PagedAttention,先得明白它解决的是什么问题。

问题从哪来? 回忆一下 KV Cache:每个请求的对话越长,KV Cache 越大。麻烦在于------你事先不知道用户会聊多长

传统做法:预订一整层房间

传统推理框架把每个请求的 KV Cache 放在一段连续的显存里,而且要按"最坏情况"预留。就像酒店接待一个旅行团:

  • 你不知道客人实际要住几晚,干脆按"最多可能住 7 晚"预留 7 间房
  • 而且这 7 间房必须是同一层连着的一排(连续显存)
  • 结果客人只住了 2 晚,剩下 5 间空着,别的客人也住不进来
  • 更糟的是:想找一排连着的 7 间空房越来越难(显存碎片化),明明酒店还有 40% 空房,新客人却被拒之门外

实测下来,传统方式只有 30-50% 的 KV Cache 显存真正被利用,剩下全是预留浪费 + 碎片浪费。

PagedAttention:按间分配,住几间开几间

vLLM 的做法借鉴了操作系统"虚拟内存分页"的思想,变成这样:

  • 房间不再要求连着------201 房、507 房、1203 房都可以分给同一个客人
  • 住 1 晚开 1 间,退房立刻还给酒店,分给下一个客人
  • 酒店前台有个小本子(页表),记录"每位客人住的是哪几间房",要用时随时查

效果立竿见影:

复制代码
传统方式:按最大长度连续预留 → 显存利用率 30-50%,长对话容易被拒
PagedAttention:按需分页 + 页表索引 → 显存碎片接近零,利用率 80%+

实际收益 :同样一张显卡,能同时服务的请求数翻了几倍,吞吐量提升 2-4 倍。这就是 vLLM 火遍全球的核心原因。

3. Continuous Batching:动态批处理

先说清楚"批处理(Batching)"是什么:GPU 一次只服务 1 个请求时大量算力在闲着,同时服务 8 个、16 个请求反而效率更高------就像公交车拉 1 个人和拉 30 个人,油耗差不多。所以推理服务会把多个请求凑成一批一起算。

但传统的凑批方式有个尴尬。

传统静态批处理:大巴包车

就像旅行社包一辆 30 座大巴:

  • 凑满 30 个游客才发车(等凑批)
  • 中途不停车------就算有游客到站了,也得坐在车上,等全车人跑完全程一起回
  • 大模型这边对应:请求 A 只需要生成 50 个 Token,早就生成完了,但必须等批里最长的请求(比如要生成 2000 个 Token 的)全部跑完,整批才能结束
  • 结果:GPU 大部分时间在给"已经下车的乘客"空跑座位,利用率极低

Continuous Batching:地铁

vLLM、TGI 这些框架改成了"地铁模式":

  • 列车到站,生成完的请求随时下车(立即返回结果)
  • 新请求随时上车(立刻插入当前批,补上空位)
  • 车厢始终保持满载运行,GPU 一刻不闲

📌 图注:静态批处理像大巴,要等凑满才发车,最长的请求拖累全车;Continuous Batching 像地铁,生成完的请求随时下车,新请求立刻补位,GPU 接近时刻满载。

实际收益 :多用户并发场景下吞吐量提升 2-10 倍 ,而且每个请求的等待时间大幅缩短(不用等凑批)。这也是为什么企业级服务几乎都选 vLLM / TGI / LMDeploy 这类支持 Continuous Batching 的框架,而不是直接用 transformers 的 generate()

4. Speculative Decoding:用小模型"猜"大模型

前面提到自回归"不能并行"的缺陷。投机解码的思路很巧妙:

  1. 用一个小模型快速预测接下来的 K 个 Token(比如 K=5)
  2. 把这 K 个 Token 一次性喂给大模型验证
  3. 大模型并行算出每个 Token 的分数,能接受的留下,不能接受的丢弃
  4. 至少能"白嫖" 1-3 个 Token
复制代码
┌─────────────────────────────────────────┐
│ 小模型先猜 5 个 Token:                  │
│ "今天 / 天气 / 真 / 好 / 适合"          │
├─────────────────────────────────────────┤
│ 大模型一次验证:                         │
│ ✅ "今天" ✅ "天气" ✅ "真" ❌ "好"      │
│ → 接受 3 个,从"好"开始重新猜           │
└─────────────────────────────────────────┘

速度提升 2-3 倍,质量与大模型完全一致(数学上严格等价)。这是当前最受关注的优化方向之一。


五、主流推理框架对比

搞懂了原理和优化技术,现在来聊聊"工具"。市面上的推理框架挺多,选哪个取决于你的场景。

整体生态

📌 图注:横轴代表易用性,纵轴代表性能------没有"最好"的框架,只有"最适合你的场景"的框架。

详细对比

1. vLLM ------ 性能王者

  • 官网https://github.com/vllm-project/vllm
  • 定位:生产级高并发推理服务
  • 核心特性
    • PagedAttention(显存利用率高)
    • Continuous Batching(吞吐量高)
    • 支持几乎所有主流开源模型
  • 适用场景:企业级 API 服务、高并发在线推理
  • 上手难度:⭐⭐(需要懂 Python 和 CUDA 环境)
bash 复制代码
# 一行命令启动服务
python -m vllm.entrypoints.openai.api_server \
    --model Qwen/Qwen2.5-7B-Instruct \
    --port 8000

💡 优点 :吞吐王者,社区活跃。

缺点:对新手不友好,依赖复杂(需要装 CUDA、PyTorch)。

2. Ollama ------ 小白首选

  • 官网https://ollama.com
  • 定位:本地一键运行大模型
  • 核心特性
    • 内置 llama.cpp,无需懂技术
    • 一行命令拉模型:ollama pull qwen2.5:7b
    • 自动提供 REST API
    • macOS/Linux/Windows 全平台
  • 适用场景:本地体验、个人学习、原型开发
  • 上手难度:⭐(超简单)
bash 复制代码
# 安装后三步搞定
ollama pull qwen2.5:7b        # 下载模型
ollama run qwen2.5:7b         # 命令行对话
# 或者直接访问 http://localhost:11434 的 API

💡 优点 :零配置、跨平台、社区模型多。

缺点:高并发性能不如 vLLM。

3. llama.cpp ------ 极客玩具

  • 官网https://github.com/ggerganov/llama.cpp
  • 定位:CPU/边缘设备推理的鼻祖
  • 核心特性
    • 纯 C++ 实现,几乎零依赖
    • GGUF 格式量化模型(GGML 的继任者)
    • 支持 CPU、Apple Silicon、GPU
  • 适用场景:无独立显卡的玩家、低配电脑、嵌入式设备
  • 上手难度:⭐⭐⭐(需要编译)

💡 优点 :极致轻量,能在树莓派、手机上跑。

缺点:要自己编译,没有 vLLM 那么"开箱即用"。

4. TGI(Text Generation Inference)------ HuggingFace 出品

  • 官网https://github.com/huggingface/text-generation-inference
  • 定位:HuggingFace 官方推理服务
  • 核心特性
    • Rust + Python 混合实现,性能接近 vLLM
    • 与 HuggingFace 生态无缝集成
    • 内置 Prometheus 监控
  • 适用场景:已经用 HuggingFace 模型、需要生产部署
  • 上手难度:⭐⭐

💡 优点 :HF 生态友好、监控完善。

缺点:模型支持面比 vLLM 稍窄。

5. TensorRT-LLM ------ NVIDIA 亲儿子

  • 官网https://github.com/NVIDIA/TensorRT-LLM
  • 定位:NVIDIA GPU 上的极致性能
  • 核心特性
    • 基于 NVIDIA TensorRT 深度优化
    • 支持 FP8 推理(H100/H200 专属)
    • 性能通常比 vLLM 还快 10-20%
  • 适用场景:有 NVIDIA 高端卡、追求极致性能
  • 上手难度:⭐⭐⭐⭐(需要编译引擎,门槛高)

💡 优点 :NVIDIA 卡上的性能天花板。

缺点:仅支持 NVIDIA 卡、配置复杂、迭代慢。

6. LMDeploy ------ 国产之光

  • 官网https://github.com/InternLM/lmdeploy
  • 定位:书生·浦语团队开发的高性能推理框架
  • 核心特性
    • Persistent Batch(比 Continuous Batching 更进一步)
    • 对国产模型(Qwen、InternLM、DeepSeek)支持好
    • 支持量化、TurboMind 引擎
  • 适用场景:国内企业部署国产模型
  • 上手难度:⭐⭐

框架选择速查表

你的情况 推荐框架 理由
我就想本地玩玩 Ollama 一键安装,零配置
我电脑没有 N 卡 llama.cpp / Ollama CPU 也能跑
我要给业务做 API vLLM 高并发首选
我只用 HuggingFace 模型 TGI 生态最顺
我有 H100 想榨干性能 TensorRT-LLM 极致性能
我部署国产开源模型 LMDeploy 国产适配好

六、上手指南:5 分钟跑起来一个模型

理论看再多不如实际跑一下。这里用最简单的方式演示:

方案 A:用 Ollama(推荐新手)

bash 复制代码
# 1. 下载安装(macOS / Linux)
curl -fsSL https://ollama.com/install.sh | sh

# 2. 拉一个模型
ollama pull qwen2.5:7b

# 3. 开始对话
ollama run qwen2.5:7b
# > 你好,请介绍一下自己
# 你好!我是通义千问...

方案 B:用 vLLM(进阶)

bash 复制代码
# 1. 安装
pip install vllm

# 2. 启动 OpenAI 兼容服务
python -m vllm.entrypoints.openai.api_server \
    --model Qwen/Qwen2.5-7B-Instruct

# 3. 用任何 OpenAI 客户端连接
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen/Qwen2.5-7B-Instruct",
    "messages": [{"role": "user", "content": "你好"}]
  }'

方案 C:用 HuggingFace Transformers(最基础)

python 复制代码
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen2.5-7B-Instruct",
    torch_dtype=torch.float16,
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-7B-Instruct")

prompt = "介绍一下大模型推理"
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=200)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

💡 选哪个?

  • 个人学习 → Ollama
  • 二次开发 → Transformers
  • 部署服务 → vLLM

七、部署最佳实践:从原理到选型落地

前面讲了那么多原理,最后回答一个最实际的问题:我要部署模型,到底该怎么选硬件、选精度、选模型?

这一节我们把前面的原理串起来用:预填充/解码两阶段决定了你要看的指标,KV Cache 决定了显存怎么算,量化决定了模型能塞进多大的卡。

第一步:算显存------部署前必做的一道算术题

部署任何模型之前,先算三笔账:

复制代码
所需显存 ≈ ① 模型权重 + ② KV Cache + ③ 运行开销(约为前两项的 10%-20%)

① 模型权重:取决于参数量和精度,这是大头。

模型规模 FP16/BF16(2字节) FP8(1字节) NVFP4/INT4(0.5字节)
7B 14 GB 7 GB 3.5 GB
14B 28 GB 14 GB 7 GB
27B~32B 54~64 GB 27~32 GB ~16 GB
70B 140 GB 70 GB 35 GB
MoE 总参 671B(如 DeepSeek 系列) 放不下 放不下 ~336 GB(多机)

💡 MoE 模型注意 :像 Qwen3.6-35B-A3B 这种名字里带 A3B 的,是"总参数 35B、每次激活 3B"的 MoE 模型------权重显存按总参数算 (35B 全都要装进显存),但解码速度按激活参数算(每次只读 3B 的权重,所以带宽压力小、速度快)。这就是 MoE 模型"又大又快"的秘密。

② KV Cache :取决于上下文长度和并发数。经验公式很复杂,给你一个直观感受------一个 27B 级模型开满 256K 上下文,单路 KV Cache 就可能吃掉 10-20GB;8 路并发就是 80-160GB。这就是为什么长上下文场景对显存的需求经常超过模型本身。

③ 运行开销:CUDA 上下文、激活值、框架本身,预留 10%-20% 比较稳妥。

实操建议:显存按"权重 × 1.5~2 倍"规划,留足 KV Cache 和长上下文的余量。例如单张 72GB 显存的卡,部署 27B 模型建议用 FP8(权重 27GB),剩余 40GB+ 全部留给 KV Cache 和并发,是舒服的配置。

第二步:选精度------生产环境的现实选择

精度选择的权衡就一句话:精度越低 → 权重越小 → 能装的模型更大、带宽读取更快 → 但能力有损

当前(2026 年)生产环境的主流选择:

精度 适用场景 说明
BF16/FP16 效果验证、基准测试 显存翻倍,生产很少用
FP8 主力生产精度 Blackwell/Hopper 卡原生支持,损失几乎无感
NVFP4/INT4 追求吞吐和并发 实测多数场景吞吐更高,个别复杂推理任务略有下降

📌 实测参考(来自 1Panel AI 一体机单卡 RTX Pro 5000 72GB 部署 Qwen3.8-27B 的对比测试):

  • NVFP4 精度在多数并发区间下 TTFT(首字延时)优于 FP8,长上下文场景优势更明显;
  • 整机吞吐 NVFP4 高于 FP8,尤其长上下文场景;
  • 智能体/编程等超长上下文(84K 输入)场景,两种精度吞吐接近(80-100 tokens/s),人均并发 4 路是体验甜点

结论:日常知识库问答、办公场景放心用 NVFP4 榨吞吐;对复杂推理质量要求极高的场景用 FP8 保底。

第三步:对照硬件------你手上的卡能跑什么

结合 1Panel AI 一体机(1panel.cn/ai-appliance.html)的官方配置和实测数据,给你一张"卡 ↔ 模型"对照表:

硬件配置 显存/内存 合适的模型与精度 定位
消费级 8-12GB(4070/4080 等) 8-12 GB 7B INT4、3-4B FP8 个人尝鲜
单张 RTX Pro 5000 72 GB 27B FP8/NVFP4、35B-A3B MoE 小团队主力
双张 RTX Pro 5000 144 GB 27B + 35B-A3B 双模型,或单模型高并发 部门级
四张 RTX Pro 5000 288 GB Flash 级 MoE 旗舰模型(DeepSeek-V4-Flash 等) 企业旗舰
单/双 GB10 128/256 GB 统一内存 MoE 模型(FP4 原生)、视频生成模型 桌面级入门

案例 A:GB10 能部署什么?------先读懂这颗"小钢炮"的脾气

NVIDIA GB10(Grace Blackwell 超级芯片,即 DGX Spark 同款)是 CPU+GPU 二合一的桌面级 SoC:128GB LPDDR5x 统一内存 、约 1 PFLOP 的 FP4 稀疏算力、但内存带宽只有约 273GB/s(对比数据中心卡的 HBM 动辄 3-8TB/s)。

用第一章的心法来分析它:

  • 预填充(吃算力):GB10 算力富余,预填充速度可达 1500-2000 tokens/s,TTFT 不虚;
  • 解码(吃带宽) :273GB/s 是硬天花板------稠密模型每生成一个 Token 要读全部权重 ,跑 27B 稠密模型解码会明显偏慢;而 MoE 模型每次只读激活的少量专家,带宽压力骤减。

所以 GB10 的最佳搭档是 MoE 稀疏模型。官方实测(双 GB10 节点 / 256GB 统一内存 / 200Gbps ConnectX 互联,部署 DeepSeek-V4-Flash 原生 FP8+FP4 混合精度,vLLM 引擎):

指标 实测数据
整机解码吞吐 100-120 tokens/s(短/中/长/超长上下文)
OpenClaw、WorkBuddy 真实办公负载(2 并发) > 60 tokens/s,两周稳定运行
整机功耗 < 80W(放办公室桌面就能跑,年电费几百块)

选型结论 :GB10 版适合数据敏感、预算受限的中小团队 做"数据不出域"的合规闭环,以及夜间批处理副机(批量总结、建索引);不适合秒级响应的实时高并发客服场景------带宽瓶颈决定了它是"专精特工",不是"全能主力"。

案例 B:2 张 RTX Pro 5000(144GB 显存)怎么部署?

这是 1Panel AI 一体机的方案三(旗舰工作站配置,CPU 为 Core Ultra 9 285K)。基于 144GB 显存,有两种典型打法:

打法一:双模型分卡部署(官方预置方案)

  • 卡 1:Qwen3.8-27B(FP8,权重约 27GB,剩余显存跑并发)
  • 卡 2:Qwen3.6-35B-A3B(MoE,激活 3B,解码快)
  • 通过 1Panel AI 网关做统一接入和智能路由:常规任务走 27B,长上下文/轻任务走 MoE

好处:一机两模型互为备份,覆盖不同场景,单模型故障不宕机。

打法二:单模型双卡并行,堆并发

  • 两张卡通过张量并行跑同一个 27B 模型(FP8),显存合并 144GB 全部给 KV Cache
  • 适合并发量大的部门级场景(几十人同时用),单模型吞吐上限显著高于分卡部署

怎么选? 团队小于 30 人、场景多样 → 打法一;团队大于 50 人、集中在知识库问答 → 打法二。

单卡 Pro 5000 的能力边界(实测):短对话峰值吞吐 700-857 tokens/s;超长上下文(84K 输入,Prefix Cache 命中 90%)时整机 80-100 tokens/s,人均 4 并发是甜点。超长上下文与高并发不可兼得,重负载要么限并发,要么扩卡。

进阶:企业级的"分级算力池"架构

内部 300+ 人团队的真实实践(供参考):

📌 图注:通过 1Panel AI 网关统一接入后,流量按任务特征智能路由到三类算力池:本地主力池负责高频常规任务,本地精锐池负责复杂推理,云端兜底池承担突发峰值。

实测数据:周请求 20 万次、周 Token 消耗超 100 亿、本地模型承担 70% 流量、Prefix Cache 命中率 85%、高峰并发 23。整体推理成本相比纯云端方案大幅降低。

部署心法总结

把这一节浓缩成四句话:

  1. 先算账:显存 = 权重 × 精度 + KV Cache(按上下文和并发)+ 20% 余量
  2. 精度务实:生产 FP8 起步,吞吐敏感用 NVFP4,别用 FP16 烧显存
  3. 匹配瓶颈:算力决定首字延时(看 TTFT),带宽决定输出速度(看 TPS)------选硬件先想清楚你的业务卡在哪一头
  4. 架构兜底:本地主力 + 云端弹性,用 AI 网关统一路由,别把所有鸡蛋放一张卡里

八、常见问题(FAQ)

Q1:为什么大模型回答有快有慢?

主要看 三个因素

  1. 生成的 Token 数:回答越长越慢
  2. 模型大小:70B 比 7B 慢约 10 倍
  3. 硬件:H100 比 4090 快 3-5 倍

Q2:本地跑 7B 模型需要什么配置?

  • 最低:8GB 显存(INT4 量化)或 16GB 内存(CPU)
  • 推荐:16GB 显存(RTX 4090/5090),可以跑 FP16
  • 舒适:24GB 显存(RTX 4090D),还能跑 13B

如果是团队级使用(几十人共享、知识库问答),建议直接看第七章的部署最佳实践------单张 72GB 的 RTX Pro 5000 跑 27B 模型(FP8)是当前性价比很高的起步配置。

Q3:为什么我的 GPU 利用率只有 30%?

大概率是 静态批处理 在浪费资源。换用支持 Continuous Batching 的框架(vLLM、TGI、LMDeploy)就能解决。

Q4:上下文越长,为什么越慢?

因为 KV Cache 与上下文长度成正比。4096 Token 的 KV Cache 是 1024 Token 的 4 倍大,既占显存又拖慢速度。

Q5:模型量化后效果会变差吗?

  • INT8:几乎无感
  • INT4:轻微可感知(个别细节可能丢失)
  • INT3 及以下:明显下降,不推荐

九、总结与进阶路径

一句话总结

大模型推理 = 预填充(一次读完全部输入,算力定首字延时)+ 解码(一个 Token 一个 Token 蹦,带宽定输出速度)+ KV Cache 缓存加速 + 采样策略定"性格"。

理解了这个过程,再看 vLLM、Ollama 这些框架就不会觉得神秘------它们做的事情就是让预填充和解码这两个阶段跑得更快、显存用得更省 ;选硬件也就有了依据------先看业务卡在算力(首字慢)还是带宽(打字慢),再按"权重 × 精度 + KV Cache"算显存


写在最后:推理是连接"训练好的模型"和"用户"的桥梁------它决定了 AI 应用的体验上限。希望这篇文章能帮你建立从原理到部署的完整认知框架。如果觉得有帮助,欢迎点赞、收藏、转发支持~


相关推荐
Web3&Basketball1 小时前
LLM 峰谷定价怎么吃满:一个能对账的错峰调度器
python·性能优化·大模型·任务调度·成本优化·deepseek·推理优化
腾视科技-AIoT1 小时前
超低功耗 性能卓越|腾视科技重磅推出TS-SG-SM9系列AI算力模组,引领边缘智能计算新篇章
人工智能·科技·ai·算力模组·ai算力模组·ai模组·腾视科技
张忠琳1 小时前
【deepseek-harness】DeepSeek Harness Agent Loop 模块深度架构分析之一
ai·agent·deepseek·harness·dsh
一技安身2 小时前
【大模型】Win11 部署 DeepSeek+ RAGFlow0.27.2 (Ollama方案,断网可用)
docker·ai·语言模型
武子康2 小时前
把 SGLang 接进 Agent,查一次订单要走几步
人工智能·llm·agent
demo007x2 小时前
让大模型活在你的鼠标旁:我用 Tauri 2 + Rust 打造了一款“反直觉”的 AI 全局划词效率神器
macos·程序员·llm
孙启超3 小时前
【AI开发之Rust】第 3 课:字符串与复合类型 —— 数据怎么放
开发语言·人工智能·后端·rust·llm·transformer
不好听6133 小时前
从朴素到智能:RAG 为什么需要 Agent 化——Agentic RAG 系列之一
llm
韩曙亮3 小时前
【AI 大模型】国内各平台 AI 大模型 价格、性能 对比分析 ② ( 智谱 BigModel | 腾讯云 TokenHub | 千问 AI 平台 )
人工智能·ai·大模型·腾讯云·ai大模型·千问·智谱