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

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 码甲哥不卷

GLM模型这么火,咱们用vllm也咧一个呗! - 码甲哥不卷 higress 这个中登才是AI时代的心头好 MetalLB才是给Ingress这个老登做负重前行的那个男人 超性感的轻量级openclaw平替,我给nanobot打call 我不允许谁还不清楚function call在AI-Agent领域中打手的地位 还有比ollama更傻瓜式的大模型本地部署方式吗 ? 🔎我不允许谁还分不清这三种watch机制的区别 云原生AI算力平台的架构解读 🚀糟糕,我实现的k8s informer好像是依托答辩 🎉在k8s调度的花园里面挖呀挖 - 码甲哥不卷 🎉卷不过AI算法, AI工程化或许是一个出路 - 码甲哥不卷 我是新来的,我需要知道这些吗?网关上的限流器 新来的外包,在大群分享了它的限流算法的实现 新来的外包,限流算法用的这么6 面试总被追问k8s调度器工作原理, 收藏 == 学废 kong网关反向代理grpc请求 幂等的双倍快乐,你值得拥有 JWT 这点小秘密,你们肯定知道! Go动态感知资源变更的技术实践,你指定用过!
同样都是九年义务教育,他知道的AI算力科普好像比我多耶
码甲哥不卷 · 2026-04-01 · via 博客园 - 码甲哥不卷

1. 算力单位

P= Peta

完整单词: Petaflops

  • Peta: 10^15 千万亿
  • flops: floating-point operations per second
    每秒浮点运算次数

算力单位从小到大:

  • K= Kilo 千
  • M = Mega(百万)
  • G = Giga(十亿)
  • T = Tera (万亿)
  • P = Peta(千万亿)
  • E = Exa (百亿亿)

换算

1P = 1 Pflops = 1000Tflops = 1 千万亿次浮点运算/秒

2. 什么叫浮点数? 为什么算力要看浮点,不看整数?

浮点数就是计算机里面用来表示小数的一种数据类型。

FP = Float-Point 浮点数。

  • 整数: 1,2,100,-5 没有小数点
  • 浮点数: 3.14,0.5,-2.13 带小数点的数

之所以叫浮点,是因为小数点位置可以浮动。

  • 123.45
  • 1.2345 * 10^2
  • 0.12345 * 10^3
    数组一样,只是小数点在飘来飘去。

现代算力强的场景,全是小数运算。

  • AI 神经网络,权重全是0.001 ,0.872,-0.345 这种小数
  • 游戏引擎,光照,坐标都是小数
  • 科学计算:流体、气象、核模拟、仿真都是小数, 整数用不上。

3. 为什么小数在计算机世界会更强调“精度”?

在九年义务教育的认知里:

场景① π,根号2等形成的无理数, 是无限不循环小数

场景② 1/3, 1/6,1/7等形成的小数是无限循环小数

场景③ 其余的 0.1,0.2,0.3,0.314等是有限小数, 口语一般不涉及精度,保持原数

在我们10个手指头的世界中,只要小数能拆成若干个1/10,1/100,1/1000,1/10000等相加,那么就是有限小数, 参考上面的场景③。 对于上面的场景①②从进制存储的角度实质无限,我们在实践中会有精度要求。

在计算机二进制世界,存储方式类似, 有限小数的定义发生了变化:
只要小数能拆成若干个1/2,1/4,1/8,1/16等相加,那么就是有限小数

二进制中,除1/2=0.5,1/4=0.25,1/8=0.125,1/2+1/8=0.625等在计算机中能精确存储, 其他数字(eg:0.1,0.2,0.3)都不能精确存储.

计算机存储浮点数的方式:科学计数法
数值 = 符号 * 尾数 * 2^ 指数

不能精确存储,在实践中就会引入精度的概念,

精度 = 用多少进制空间去存这个小数

  • 位数越多,数字越准,越慢,越占显存;
  • 位数越少,数字越糙,越快,越省显存。

3.1 双精度/单精度/半精度

1> 双精度: FP64

  • 64位存一个小数
  • 超级准
  • 科学计算、航天、金融、物理仿真
  • 缺点: 慢、吃显存、AI基本不用

2> 单精度: FP32

  • 用32为存储
  • 精度中上,足够准
  • 传统渲染、科学计算、早期AI训练

3> 半精度: FP16

  • 只用16位存储小数
  • 精度变低, 速度翻倍,显存减半
  • 大规模训练、 AI画图、推理

4. 针对LLM做 显存估算

我现在部署的这款模型:Qwen/Qwen3.5-122B-A10B-GPTQ-Int4是中等旗舰模型的量化版本。

4.1 参数总量

122B,MOE专家架构,其中激活参数为 10B。

这里面B= billon(10亿),数量单位,意味着有10亿个权重值。

在神经网络中, 参数就是模型在不断学习过程中不断调整的权重(决定神经元之间的连接强度)和偏置(每个神经元偏移量)。

MoE专家架构,总参数是122B, 激活参数10B(每次推理用到的参数),但是总参数要都加载进显存。

4.2 KV Cache 是可变成本

当生成文本时,模型每生成一个token,都需要知道之前所有的token的Key和Value(注意力机制中的KV矩阵)。 如果不做缓存,每次生成都要重新计算之前所有token的K和V,计算量会随序列长度呈平方型增长 (1+(n-1) * (n-1))/2, 输出第n个token是O(n^2)的时间复杂度。

KV Cache用空间换时间,把之前计算好的所有token的K/V存下来,计算第n个token时时间复杂度是O(n)。

单个Token的KV Cache空间大小, 对于Qwen3.5-122B-A10B模型,大约是256KB。

层数 (num_layers) 64 Transformer 层总数 隐藏层维度 (hidden_size) 8192 每层的特征维度 注意力头数 (num_attention_heads) 64 Query 头数 KV 头数 (num_key_value_heads) 8 Key/Value 头数(GQA 架构) 头维度 (head_dim) 128 每个头的维度
参数 说明
# 单个 token 的 KV Cache 大小(字节)
per_token_kv_cache = 2 * num_layers * num_key_value_heads * head_dim * bytes_per_element

# 代入 Qwen3.5-122B-A10B 参数:
per_token_kv_cache = 2 * 64 * 8 * 128 * 2  # FP16 = 2字节
                   = 2 * 64 * 8 * 128 * 2
                   = 262,144 字节
                   ≈ 0.256 MB / token

① 上下文长度

决定了大模型单次任务能处理的最大开销, 与KV Cache的占用大小是线性关系。

上下文限制的作用范围是单轮对话(每次请求的输入输出token总长度),Qwen3.5-122B-A10B原生支持 262,144 tokens(256k tokens)

不同上下文的显存占用:

2K tokens 512 MB 短对话场景 8K tokens 2.05 GB 中等对话 32K tokens 8.19 GB 长文档处理 64K tokens 16.38 GB 超长上下文 128K tokens 32.77 GB 极长上下文 256K tokens 65.54 GB 最大支持上下文
上下文长度 KV Cache 显存 说明

② 并发度

决定同时有几个任务在跑,并发请求的KV cache 是独立且隔离的。

上面说了AI模型一般是半精度FP16, 也就是两字节,那么122B满血版 122B * 2byte=230GiB,

Q4量化模型,权重值大约占据122B* 0.5=60GB显存,加上可变的KV Cache(受到上下文长度、并发度影响)。

image

在寸土寸金的GPU机器上,vllm部署据此也有一些调参要求

VLLM_USE_MODELSCOPE=true vllm serve Qwen/Qwen3.5-122B-A10B-GPTQ-Int4 --port 8000 --tensor-parallel-size 4 --max-model-len 262144 --reasoning-parser qwen3 --enable-auto-tool-choice --tool-call-parser qwen3_coder --quantization moe_wna16  --gpu_memory_utilization 0.85   --max_num_seqs 64

下面参数是调优的核心,直接影响能跑多大的模型/并发能力。

  • gpu_memory_utilization (默认0.9) 控制vLLM最多使用多大比例的GPU显存来存放KV Cache。
  • max-model-len (默认继承自模型配置)设置模型支持的最大上下文长度(输入+输出token总数), 很多模型生成支持256K甚至更大的上下文, 但实际上越长的上下文占用的KV Cache越多, 在显存有限的情况下会严重压缩并发数。
  • max_num_seqs 同时处理的最大请求数(并发序列数), 参数直接决定了服务能抗多大的并发压力, 数值太大可能导致显存OOM, 太小则浪费GPU资源, 一般负载128-256。

vllm 在启动的时候,max-model-len、gpu_memory_utilization参数就会起作用 : 若评估显存不够直接报错:

image

提示: 增加gpu_memory_utilization(可用的KVCache大小)或者减小 max-model-len (启动时就计算出了需要的kVCache)。