Skip to main content

Andrej Karpathy:大模型有内存限制,这个妙招挺好用“现在最聪明的想法是使用一个小而便宜的草稿模型(draft model),先生成 K 个 token 候选序列,即一个「草稿」

  1. Andrej Karpathy:大模型有内存限制,这个妙招挺好用

    “现在最聪明的想法是使用一个小而便宜的草稿模型(draft model),先生成 K 个 token 候选序列,即一个「草稿」。然后用大模型批量的将输入组合在一起。速度几乎与仅输入一个 token 一样快。接着从左到右遍历模型和样本 token 预测的 logits。任何与「草稿」一致的样本都允许立即跳到下一个 token。如果存在分歧,那么就丢弃「草稿」并承担一些一次性工作的成本(对「草稿」进行采样并为所有后续 token 进行前向传递)。

    这种方法起作用的原因在于,很多「草稿」token 都会被接受,因为它们很容易,所以即使是更小的草稿模型也能得到它们。当这些简单的 token 被接受时,我们会跳过这些部分。大模型不同意的 hard token 会回落到原始速度,但由于一些额外的工作,实际上速度会慢一些。

    Karpathy 表示,这个奇怪的技巧之所以有效,是因为 LLM 在推理时受到内存限制,在对单个序列进行采样的 batch size=1 设置中,很大一部分本地 LLM 用例都属于这种情况。因为大多数 token 都很「简单」。”