Andrej Karpathy:大模型有内存限制,这个妙招挺好用
:大模型有内存限制,这个妙招挺好用“现在最聪明的想法是使用一个小而便宜的草稿模型(draftmodel),先生成K个token候选序列,即一个「草稿」。然后用大模型批量的将输入组合在一起。速度几乎与仅输入一个token一样快。接着从左到右遍历模型和样本token预测的logits。任何与「草稿」一致的样本都允许立即跳到下一个token。如果存在分歧,那么就丢弃「草稿」并承担一些一次性工作的成本(对「草稿」进行采样并为所有后续token进行前向传递)。这种方法起作用的原因在于,很多「草稿」token都会被接受,因为它们很容易,所以即使是更小的草稿模型也能得到它们。当这些简单的token被接受时,我们会跳过这些部分。大模型不同意的hardtoken会回落到原始速度,但由于一些额外的工作,实际上速度会慢一些。Karpathy表示,这个奇怪的技巧之所以有效,是因为LLM在推理时受到内存限制,在对单个序列进行采样的batchsize=1设置中,很大一部分本地LLM用例都属于这种情况。因为大多数token都很「简单」。”