冷启动(Cold Start)指的是:请求已经来了,但处理它的服务实例还没准备好,系统必须先“从零搭台”,然后才能吐出第一个字。
生活化的比方:像一家“有人点单才开火”的餐厅。热启动是灶上有火、菜切好、厨师就位;冷启动是顾客下单后,厨房才去买菜、支锅、点火。你感到“第一口”特别慢,就是首个 token 延迟(TTFT, Time To First AI 词典:Token">Token)里多出来的那部分冷启动。
从请求进来到吐出第一个字,时间通常耗在几件事上:
- 调度与拉起:平台先找机器、拉容器(Container)镜像、启动进程。无服务器(Serverless)场景下尤其明显。
- 加载模型权重(Model Weights):把模型文件从磁盘或网络读进内存,再搬进显存(VRAM)。大模型这一步常是大头。
- 分配显存/内存:为键值缓存(KV Cache)、激活值、工作区预留空间。显存碎片和预留策略都会影响速度。
- 编译与选核:推理框架把计算图编译成设备代码,或首次遇到某种输入形状时触发自动调优。编译缓存(Compile Cache)在就快,不在就重来。
- 初始化运行时:CUDA 上下文、通信组、分词器、算子库等也要时间。
这些步骤可能串行,也可能部分并行。最后还要经过预填充(prefill)处理你的提示词,才开始逐字生成。
它跟相邻概念的区别可以这样看:
| 状态 | 权重是否在显存 | 编译缓存 | 典型延迟感受 |
|---|---|---|---|
| 冷启动 | 否,要加载 | 通常无 | 首字明显慢 |
| 热启动(Warm Start) | 是 | 有 | 首字主要花在预填充 |
| 预热(Warm-up)后 | 是 | 有 | 接近热启动 |
有时实例还活着,但第一次遇到新序列长度、新适配器或新模型分支,也会触发类似冷启动的开销。
对从业者来说,冷启动直接抬高 TTFT,影响聊天、搜索、Agent 等交互体验。常见手段是保持最小常驻副本、预热池、模型快照、编译缓存,以及在按需扩缩容时提前扩容。代价是资源成本,所以要在延迟和成本之间权衡。
对普通人来说,聊天机器人刚打开或高峰期第一句特别慢,不一定是网速问题,可能是后台正在“开火”。具体平台行为和支持特性,以官方页面为准。
