If˜𝑥𝑛¸1is rejected, we resample 𝑥𝑛¸1from the following distribution:
𝑥𝑛¸1¹𝑞¹𝑥j𝑥1𝑥𝑛º𝑝¹𝑥j𝑥1𝑥𝑛ºº¸
Where¹º¸denotes:
¹𝑓¹𝑥ºº¸=max¹0 𝑓¹𝑥ººÍ
𝑥max¹0 𝑓¹𝑥ºº
By applying this sequentially, we recover the distribution of the target model for the accepted tokens
(see proof in Theorem 1) within hardware numerics. Note that:
4
Accelerating Large Language Model Decoding with Speculative Sampling
•At least one token will always be generated from a draft-accept loop – if the ﬁrst token is
rejected, a valid token is resampled.
•Since the ﬁnal token of the draft gives us the logits for the next token, if every drafted token is
We present speculative sampling, an algorithm for accelerating transformer
decoding by enabling the generation of multiple tokens from each transformer
call. Our algorithm relies on the observation that the latency of parallel
scoring of short continuations, generated by a faster but less powerful draft
model, is comparable to that of sampling a single token from the larger target
model. This is combined with a novel modified rejection sampling scheme which
preserves the distribution of the target model within hardware numerics. We
benchmark speculative sampling with Chinchilla, a 70 billion parameter language
model, achieving a 2-2.5x decoding speedup in a distributed setup, without
compromising the sample quality or making modifications to the model itself.
Charlie Chen Sebastian Borgeaud Geoffrey Irving Jean-Baptiste Lespiau Laurent Sifre John Jumper