LLM大模型预测耗时的粗略估计

目录

1. 首个 Token 的生成耗时(b)

1.1 编码阶段

1.2 KV Cache 初始化

1.3 长度相关性

2. 后续 Token 的生成耗时(k)

2.1 KV Cache 利用

2.2 自回归生成

详细过程

近似估算公式的应用


在自然语言处理模型,特别是生成式模型(如GPT系列)中,预测时间的近似估算可以表示为:

y=kx+b

其中:

  • y 是总预测时间。
  • x 是生成的 token 总数量。
  • k 是生成每个 token 的平均耗时。
  • b 是生成首个 token 的耗时。

这个公式中的 b 和 k 主要受到以下几个因素的影响:

1. 首个 Token 的生成耗时(b)

首个 token 的生成耗时较长,主要原因如下:

1.1 编码阶段

在生成第一个 token 时,模型需要对输入的 prompt 进行编码。这涉及到将输入序列通过多层 Transformer 编码器进行处理,以生成上下文向量。

1.2 KV Cache 初始化

在生成第一个 token 时,模型需要初始化 Key-Value (KV) 缓存。KV 缓存用于存储每一层 Transformer 的键和值,以便在生成后续 token 时,可以快速访问这些缓存,减少重复计算。初始化 KV 缓存的过程较为耗时,因为需要对整个输入序列进行计算。

1.3 长度相关性

首个 token 的生成耗时与输入 prompt 的长度呈正相关,因为较长的输入序列需要更多的计算资源和时间来进行编码和初始化缓存。

2. 后续 Token 的生成耗时(k)

生成后续 token 的耗时较短,主要原因如下:

2.1 KV Cache 利用

在生成后续 token 时,模型可以利用之前生成的 KV 缓存,从而避免对整个输入序列进行重复计算。这样,生成每个新 token 只需要在现有缓存的基础上进行增量计算,大大减少了计算量和时间。

2.2 自回归生成

生成每个新 token 时,模型会将前一个 token 的输出作为输入,结合 KV 缓存,快速生成下一个 token。这种自回归生成方式在时间复杂度上相对较低。

详细过程

  1. 输入编码:模型首先对输入 prompt 进行编码,生成上下文向量。这一步包括嵌入层和多层 Transformer 编码器的计算。
  2. KV 缓存初始化:在生成第一个 token 时,模型会初始化 KV 缓存,用于存储每一层 Transformer 的键和值。
  3. 首个 token 生成:利用上下文向量和初始化的 KV 缓存,生成第一个 token。
  4. 后续 token 生成:在生成每个新 token 时,模型利用之前的 KV 缓存和前一个 token 的输出,进行增量计算,快速生成下一个 token。

近似估算公式的应用

通过公式 y=kx+b,我们可以近似估算模型的预测时间:

  • 首个 token 的耗时 b:与 prompt 的长度和 KV 缓存的初始化有关,通常是生成每个 token 耗时 k 的十几倍或更多。
  • 每个 token 的平均耗时 k:由于利用了 KV 缓存,生成每个新 token 的耗时较短且相对稳定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

samoyan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值