卡码笔记-最强八股文
首页
计算机基础
C++
Java
Go
大模型
  • Java面经
  • C++面经
  • 大模型面经
简历专栏
笔记广场 (opens new window)
代码随想录 (opens new window)
首页
计算机基础
C++
Java
Go
大模型
  • Java面经
  • C++面经
  • 大模型面经
简历专栏
笔记广场 (opens new window)
代码随想录 (opens new window)
  • 本栏必读

    • 卡码大模型专栏介绍
  • 入门认知

  • Prompt与调用基础

  • RAG检索增强

  • Agent智能体

  • 微调认知

  • 部署与工程化

    • 部署、推理、压测核心指标
  • 多模态入门

  • Transformer原理

  • 手撕Transformer

  • 模型家族与Llama架构

  • 大模型动态

# 大模型部署、推理、压测核心指标:TPS、首字延迟、吞吐、并发

前段时间有个录友来找我复盘,他面了阿里的Agent开发岗,项目里做了一套企业级 AI 对话服务。

他的系统在业务层做得相当不错 —— 交互流畅、功能完整、Prompt 清晰、结构化输出也稳得很。但面试官问了几句业务逻辑后,直接杀向部署、推理、压测方向去了:

面试官:“你的功能没问题,那一到高峰期就卡顿、响应忽快忽慢,问题出在哪?”

他:“可能是网络波动…… 或者服务器配置太低?”

面试官:“硬件资源是充足的,再想想。”

他沉默了几秒:“是不是模型太大了,跑得慢?”

面试官摇摇头:“我给你换最强的GPU,延迟照样不稳定。你的推理服务怎么做的?压测指标关注哪些?”

他:“我就直接调用模型 API,压测看了下平均耗时……”

面试官:“那你知道 TTFT、TPOT、P99 延迟代表什么吗?KV Cache、vLLM、PagedAttention 你在项目里怎么用的?”

他:“阿巴阿巴阿巴。。。”

部署、推理、压测才是大模型应用能不能稳定上线的底气,今天我们把从头到尾拆清楚。

# 一、为什么应用开发者也需要懂部署?

初级应用开发者在做demo时往往得心应手,可一旦业务量上来,你会发现自己根本绕不开部署层的问题:

为什么高峰期响应特别慢,用户反馈体验差?

为什么同样的请求,有时候 2 秒返回,有时候要 20 秒?

老板问"这个系统能支撑多少并发用户",你说不出来

压测报告上一堆指标,不知道该看哪个、该优化什么

是不是挺真实?这些问题的答案,都藏在部署和推理服务这一层。你可能不需要自己去写框架,但你需要读得懂这一层在说什么,才能和基础设施团队对话,才能在面试里说清楚你的系统设计。


# 二、模型部署,在关注什么?

"部署"这个词在不同场景下含义不同。在大模型场景里,模型部署主要解决的是:如何让一个训练好的模型,变成可以被稳定调用的服务?

有几个核心问题我们至少要在概念上有所了解:

1、用什么框架跑?

模型不能直接用 PyTorch 训练代码上线,需要专门的推理框架。常见的有 vLLM、TGI(Text Generation Inference)、TensorRT-LLM 等。这些框架会针对推理场景做大量优化,比如批处理请求、显存管理、KV Cache 复用等。

2、模型放在哪?

大模型的权重动辄几十 GB 甚至几百 GB,放在单卡上跑不下的时候需要多卡并行(张量并行、流水线并行)。

3、如何管理显存?

推理时的显存消耗有两部分:一是模型权重本身(静态,加载一次),二是 KV Cache(动态,每个请求都会产生,随序列长度增长)。推理的优化就是要在有限显存里,服务尽可能多的并发请求。

4、模型量化与格式转换

如果原始模型用 FP32 存储,量化成 INT8 之后,模型体积能缩小几倍,推理速度也会提升,但可能带来轻微的精度损失。选择合适的量化策略,是部署阶段的常见决策点。

PS:

量化:将大型语言模型中的高精度参数转换为低精度格式,从而降低内存占用、加快推理速度并提升部署效率的技术


# 三、推理服务,在关注什么?

模型部署好了,推理服务层才真正开始工作。推理服务是一个围绕模型的服务化封装,它负责:

接收外部请求,管理请求队列,调度 GPU 资源,把请求送进模型,收集输出,再返回给调用方。

典型的推理服务内部结构

# 四、vLLM 是为了解决什么问题?

这是面试里最高频的一个问题,值得单独说清楚。

大模型推理时,有一个叫做 KV Cache 的机制:模型在处理每个 token 时,会计算出 Key 和 Value 矩阵,这些中间结果可以被后续 token 复用,从而避免重复计算。KV Cache 会占用显存,而且随着序列长度增长,占用量线性增加。

传统推理框架管理 KV Cache 的方式很粗暴:为每个请求预先分配一块连续的显存,按最大序列长度分配。这带来了两个严重问题:

第一,内存碎片化。不同请求的实际生成长度差异很大,预分配的显存大量浪费,导致明明还有显存,却因为找不到连续空闲块而无法服务新请求。

第二,并发上限低。显存利用率只有 20%~40%,GPU 资源严重浪费,能同时服务的请求数很少。

vLLM 提出了 PagedAttention 技术,借鉴操作系统虚拟内存的分页思想(梦回考研408):把 KV Cache 切分成固定大小的"页"(block),不需要预分配连续空间,按需动态分配和回收,像管理内存页表一样管理 KV Cache。

效果是:显存利用率显著提升,相同显存下吞吐量大幅提升。

简单说,vLLM 解决的核心问题是:让 GPU 显存不再因为碎片化而被大量浪费,从而用同等硬件服务更多请求。


# 五、压测需要关注的指标

上线前必须做压测,压测报告里会出现一堆指标。下面这张图把最核心的几个指标放在一起,帮你建立直觉:

上图里的几个指标,在实际压测中各有侧重:

TTFT(Time to First Token,首 token 延迟)

从请求发出到第一个 token 返回的时间。这是用户主观感受最强烈的指标——超过 1 秒,用户会开始觉得"系统在卡"。对话类产品对 TTFT 极度敏感,目标通常控制在 200-500ms 以内。

TTFT 主要受 Prefill 阶段影响:模型要先把整个输入 Prompt 的所有 token 都处理完(计算 KV Cache),才能开始生成第一个输出 token。Prompt 越长,TTFT 越高。

TPOT(Time Per Output Token,每 token 生成耗时)

生成阶段每个 token 的平均耗时。它决定了流式输出的"打字速度",太慢会让用户感觉文字一顿一顿的。一般目标是 30-80ms/token,对应人眼感知流畅的输出速度。

吞吐量(Throughput)

单位时间内系统能处理的 token 数量或请求数量,通常用 tokens/s 或 req/s 表示。这是衡量系统效率和 GPU 利用率的核心指标,直接影响单位算力的服务成本。

并发数(Concurrency)

系统同时在处理的请求数量。并发数受显存约束——每个请求都需要分配 KV Cache,显存满了就没法接受新请求。压测时需要找到系统在不降低 SLA(服务等级协议)前提下能支撑的最大并发数。


# 六、为什么大模型系统要特别关注首字延迟?

这是面试里另一个高频问题,值得展开说。

普通 Web 服务的延迟通常是端到端的,用户等的是"整个结果"。大模型的情况不同:它是自回归生成的,输出内容本来就是逐步产生的。

这意味着大模型系统有一个独特的机会:即使整体生成需要 10 秒,只要前几百毫秒就能输出第一个 token,用户就不会感觉到等待——他们会看到内容在逐渐出现。

这就是为什么在大模型产品里,TTFT 的优先级往往高于 E2E 总延迟。优化 TTFT,等于在用户等待感知上做了最大收益的投入。

从工程角度,降低 TTFT 的常见手段有:减少 Prompt 长度、使用推测解码(speculative decoding)、做 Prompt caching(对常见前缀的 KV Cache 做复用)等。


# 七、常见的一些问题

误区 1:"用云 API 就不用管部署了"

调用 OpenAI、Claude 等第三方 API,确实可以不管部署,但你仍然需要理解推理层的指标——限流策略、并发控制、超时处理,这些都是应用层必须面对的工程问题,而理解这些需要知道背后的推理逻辑。

误区 2:"吞吐量越高越好"

不一定。吞吐量和延迟通常是此消彼长的关系。如果你的产品是实时对话,牺牲延迟来换吞吐量是错误取舍,需要根据实际业务来决定优化方向。

误区 3:"压测结果等于线上表现"

压测通常用均匀分布的请求,而线上流量有峰谷差异、长短 Prompt 混合、突发脉冲等。压测数据是参考基线,真正的生产稳定性需要配合限流、降级策略一起保障。


# 八、结语

部署和推理是大模型应用"能不能上线"和"上线后好不好用"的底层基础。作为应用开发者我们应该能读懂推理层的指标,能和基础设施团队对话,能在系统设计里做出合理的选型决策。

Last Updated: 4/16/2026, 6:06:25 PM

← 为什么有了大模型还需要RAG 为什么都绕不开Transformer →

评论

验证登录状态...

侧边栏
夜间
卡码简历
代码随想录
卡码投递表🔥
2026群
添加客服微信 PS:通过微信后,请发送姓名-学校-年级-2026实习/校招
支持卡码笔记
鼓励/支持/赞赏Carl
1. 如果感觉本站对你很有帮助,也可以请Carl喝杯奶茶,金额大小不重要,心意已经收下
2. 希望大家都能梦想成真,有好的前程,加油💪