Distributed Speculative Inference
of Large Language Models
Abstract
Accelerating the inference of large language models (LLMs) is an important challenge in artificial intelligence. This paper introduces distributed speculative inference (DSI), a novel distributed inference algorithm that is provably faster than speculative inference (SI) (Leviathan et al., 2023; Chen et al., 2023; Miao et al., 2023) and traditional autoregressive inference (non-SI). Like other SI algorithms, DSI works on frozen LLMs, requiring no training or architectural modifications, and it preserves the target distribution.
Prior studies on SI have demonstrated empirical speedups (compared to non-SI) but require a fast and accurate drafter LLM. In practice, off-the-shelf LLMs often do not have matching drafters that are sufficiently fast and accurate. We show a gap: SI gets slower than non-SI when using slower or less accurate drafters. We close this gap by proving that DSI is faster than both SI and non-SI—given any drafters. By orchestrating multiple instances of the target and drafters, DSI is not only faster than SI but also supports LLMs that cannot be accelerated with SI.
Our simulations show speedups of off-the-shelf LLMs in realistic settings: DSI is 1.29-1.92x faster than SI. 111Code will be available upon publication.
1 Introduction
Generative LLMs, such as GPT-4 (OpenAI, 2023), have demonstrated unprecedented results in various applications (Andreas, 2022; Li et al., 2023; Bubeck et al., 2023; Wei et al., 2022). Despite their potential, the inference latency of LLMs presents a significant challenge and a bottleneck for adoption in real-time applications. For example, in algorithmic trading, the model needs to make rapid predictions to execute trades in milliseconds, and in autonomous driving, the model must act quickly to ensure the vehicle’s reliability. This challenge is compounded by existing inference algorithms that do not fully utilize the computational resources that modern hardware offers.
Given their usefulness, speeding up the inference of LLMs is an important area of research. Existing efforts to reduce the inference latency can be classified into two main categories: algorithmic innovations and system optimizations. Algorithmic innovations include compressing LLMs through pruning (e.g., (Frantar and Alistarh, 2023; Sun et al., 2024a; Ma et al., 2023)), knowledge distillation (e.g., Hinton et al. (2015); Gu et al. (2024)), quantization (e.g., (Hubara et al., 2018; Frantar et al., 2022; Lin et al., 2024)), and low-rank factorization (e.g., (Hsu et al., 2022; Xu et al., 2023)). On the system side, enhancements such as kernel optimizations (Dao et al., 2022), tensor parallelism (Shoeybi et al., 2019), and low-bit quantization (Yao et al., 2024; Dettmers et al., 2022) are utilized to increase computation speed and reduce operational overhead, directly lowering latency.
Despite reducing the inference time, these methods have a significant drawback: they typically degrade the output quality. Consequently, other approaches acknowledge that some inputs require a very large model, while others can be effectively approximated by more efficient models. The goal of these adaptive methods (e.g., (Elbayad et al., 2020; Bapna et al., 2020; Han et al., 2022; Schuster et al., 2021)) is to channel fewer computational resources for easier inference steps. While many of these solutions are useful in practice, they often require modifications to the model architecture, changes to the training procedure and re-training of the models, without guaranteeing identical outputs.
A recent line of work (Stern et al., 2018) for accelerating the inference of LLMs is based on speculative inference. The idea is to use speculative execution (Burton, 1985; Hennessy and Patterson, 2012) to predict possible continuations of the input prompt using faster drafter LLMs that approximate the target LLM, then verify the correctness of the predicted continuations simultaneously by utilizing the concurrency of CUDA-based processors (i.e., batching). They provided empirical evidence that their proposed draft-then-verify approach speeds up the inference. Since the introduction of speculative inference (Stern et al., 2018), various papers Leviathan et al. (2023); Chen et al. (2023) have improved this method by introducing novel lossless methods to verify the correctness of token sequences that were generated by the drafter LLMs. Empirically, these approaches lead to speedups in decoding LLMs in practical use cases, such as 2-3x speedups in decoding LLMs of 11B and 70B parameters in some settings. Following this line of work, Miao et al. (2023) extended the verification algorithm of Leviathan et al. (2023); Chen et al. (2023) and showed that their method increases the probability of accepting draft tokens, and proved its losslessness. Following the success of this approach, research in this area has expanded in various directions (Mamou et al., 2024; Li et al., 2024; Cai et al., 2024; Sun et al., 2024b; Zhou et al., 2024; Liu et al., 2023; Joao Gante, 2023).
While traditional methods for SI show how to accelerate the inference time of LMs, they do not take advantage of the possibility of having multiple processing units (e.g., GPUs). In addition, empirical evidence indicates that acceleration happens only when the drafter is very accurate and is significantly faster than the target model. Two key questions then are: (i) can we reduce the inference time of LLMs by taking advantage of multiple processors simultaneously? (ii) can we accelerate the inference time using drafters that are not necessarily very fast or accurate?
Contributions. In this paper we make the following contributions: 1. We design the first distributed algorithm (across multiple GPUs) for speculative inference of large language models. This algorithm is provably faster than both non-SI and SI methods. 2. We empirically validate, across a wide range of experiments, that our method can speed up the inference time compared to SI, even when fixing the number of processors. 3. We demonstrate that SI requires a drafter model that is both faster and more accurate than the target model. Conversely, our method accelerates inference time even with drafter models that are slower and less accurate ( latency compared to the target model).
2 Preliminaries
We begin by describing autoregressive language models, next-token prediction, speculative inference and how to measure latency.
Autoregressive language models (LMs) are deterministic, real-valued multivariate functions. An input to an LM is a sequence of vectors. We call these vectors tokens, and the sequence a prompt. Tokens have a pre-defined dimension, denoted by . LMs output a vector of real numbers of dimension , also known as the logits. Since prompts to the same LM may vary in length, we simplify the notation of the forward pass as follows: .
Self-Attention LMs are LMs with pre-defined context length (Vaswani et al., 2017). Hence, we represent the forward pass of such LMs in the following manner: . For example, GPT-2 and GPT-3 are Transformers with , and context lengths and , respectively (Radford et al., 2019; Brown et al., 2020). In this paper, all LMs are Self-Attention ones with pre-set (frozen) parameters.
We extend the prompt notation such that prompts can have length . Self-Attention LMs handle prompts of length by starting the input sequence with a prefix of tokens, followed by the given tokens. LMs ignore the prefix, either by zeroing (masking) the Attention parts corresponding to the prefix or by left-padding with dedicated tokens. In this paper, prompts of length are the non-masked, non-padded suffix of the input sequence of length .
Generating the next token is the primary application of autoregressive LMs. This process consists of two steps: computing the forward pass of the LM and then selecting the next token based on the output. The selection can be deterministic or non-deterministic.
Non-deterministic selection procedures apply the softmax function after the forward pass of LMs and sample from the resulting probability vector:
(1) |
For convenience, we denote the output probability vector by :
(2) |
where is the concatenation of the vectors and and .
For deterministic selection procedures, composing monotonic functions, such as softmax, is usually unnecessary. For example, the most likely next token is the of both the logits and the output of the softmax. Still, for convenience, we assume that LMs always output probability vectors. The sampling process in (2) is either deterministic (i.e., is the token with maximal probability) or random (achieved by randomly selecting from the distribution ).
Speculative Inference (SI) is an approach for accelerating the inference of a target LM (e.g., a member of the GPT series) . Such methods use faster LMs that approximate the target model in order to reduce the total inference time. For example, Leviathan et al. (2023) reduces the amount of time to infer a target model on a given prompt by using batching. SI algorithms start by drafting tokens () using a faster drafter model before seeding the prompts altogether as one input batch to the target model . The idea is to take advantage of the fact that modern GPUs can process the batch faster than feeding the individual sequences independently.
Straightforward algorithms of speculative inference are typically lossless in expectation, i.e., they generate tokens from the same distributions as the target would generate without speculation. Naive algorithms of speculation guarantee returning the same tokens as the target (Joao Gante, 2023; Spector and Re, 2023). More sophisticated algorithms of speculation might generate different tokens, but their generated tokens follow the distribution of the target (Leviathan et al., 2023; Chen et al., 2023).
To implement distributed algorithms for speculative inference, we use multiple processors, which are hardware components capable of executing threads. Processors can compute forward passes and sample tokens from the output probability vectors and we assume that threads can run in parallel. When using DSI we will run sequences of drafter models , where the first model takes and returns some token , the second takes as a prompt and returns , and so on. As such, in order to denote that a given thread is computing the output of on a sequence , we denote , where . When a thread computes an LM, we denote the output probability vector by . If samples a new token from , we denote this token by . For example, thread implementing (2) above will have
Once a thread finishes sampling a new token, the thread outputs the concatenation of and . Following the example in (2), we have
A new thread that was initiated by is denoted by , where is the concatenation of and . The set of all the threads that originate from is . We assume that terminating a concurrent thread terminates all the threads that originate from it.
Time in this paper is the wall time. We measure the time that passes from the initiation of a task until its termination. A task is a nonempty set of threads, denoted by . Its time is
When a task consists of a single thread, we omit the curly brackets, namely,
Note that two threads, denoted by and , may run concurrently and overlap in time. Hence, it is possible that . However, if and do not overlap in time, then .
3 Distributed Speculative Inference
While previous methods for SI (Leviathan et al., 2023; Chen et al., 2023; Miao et al., 2023) are useful for speeding up the inference, they overlook the idea of utilizing multiple processing units to compute LM outputs in parallel. In this section, we outline a theoretically sound approach to infer LMs using a sufficiently large number of processors. The naive version of our method operates under the assumption that we have access to a sufficient amount of processors so that threads never have to wait. Later, we discuss how our method can be implemented in practice with a fixed number of processors.
3.1 Method Overview
Consider the task of computing output tokens autoregressively from a target model given a prompt . We have a set of faster drafter models, , that are all faster than (as defined in Assumption 2). Our goal is to compute for all . To achieve this, we initiate threads, (line 2). Each thread, denoted as , is responsible for computing . Once a thread, , finishes computation, we instantiate new threads, , to calculate for all . In general, once we compute , we initiate new threads, , to compute for all . This is captured in lines 4 and 6.
Once completes its computation and provides the correct value of the first output token , we can verify which other threads, , have accurately computed . Any thread where is immediately terminated along with its descendant processes. For each that correctly computed , we continue with computing for all . However, since all threads are computing the same set of tokens, we terminate all but the one corresponding to the smallest value of that satisfies . In essence, serves as a verifier, identifying drafters that miscalculated the initial part of the autoregressive computation. Once we retain one valid , we relabel as the new verifier thread. We know that since returned the correct token and , the output of must be correct. When that thread finishes, among the remaining threads, , we terminate those that miscalculated and keep only the one with , whose index is minimal. We continue this process until the output is obtained from the last verifier thread . The process of relabeling verifier threads and terminating irrelevant threads is outlined in lines 8, 10, and 11. Line 13 considers the case where the newly labeled thread may have already finished. If so, in line 14, we return to line 7 with the new verifier thread.
Preemption in DSI. A crucial enhancement in DSI is the introduction of preemption. Algorithm 1 invokes a new process for each token. With preemption, DSI waits and processes a batch of tokens after a lookahead number of tokens have been drafted. This change reduces the number of invocations required, allowing the use of a fixed number of processing units. The lookahead parameter allows tuning DSI to use an arbitrary maximal number of available processing units. The maximum number of required processing units is within the range . For example, for a drafter of latency and , having processing units is enough. Preempting threads that are not actively labeled as a verifier maintains the integrity of the speculative inference algorithm, ensuring that the theoretical foundations hold while optimizing performance.
Rejection sampling algorithm. As can be seen in lines 8 and 10, Algorithm 1 rejects/terminates any thread (and its descendants) that returns a token that is not exactly the same as the token returned by the current verifier. However, this criterion is fairly strict and leads to many rejections in practical settings. Even if the drafter is another instance of the target, they may disagree due to the randomness of the sampling. In order to increase the number of acceptances while maintaining the distribution of the outputs of the target model, Leviathan et al. (2023); Miao et al. (2023) suggested different relaxed methods for rejecting draft outputs. In order to incorporate these rejection sampling methods, we can replace lines 8-9 with an application of their rejection sampling procedures.
3.2 Analysis
As a next step, we would like to prove that DSI (Algorithm 1) always returns the correct sequence of tokens (it is lossless) and that it runs at least as fast as non-SI and SI. Before we state our main theoretical results, we state several assumptions that will be used in the analysis. The proofs are provided in Appendix A.
Assumption 1.
We assume the existence of a (universal) constant such that, for any input prompt and model index , we have:
Assumption 2.
We assume that for all , is faster than (denoted ) in the following sense .
Assumption 3.
We assume that .
The first assumption asserts that computing the output of any model takes a non-zero, bounded amount of time, and sampling a token from the output probabilities takes a negligible amount of time. The second assumption asserts that each drafter model runs faster than the target model, for any given input prompt. The third assumption asserts that computing takes the time of first computing , then , and so forth, up to , with no delays.
The following theorem suggests that our method returns tokens from the same distributions as those the target would generate without speculation, and is at least as fast as iteratively applying the target model itself.
Theorem 1.
The advantage of Algorithm 1 lies in its concurrency. The following example shows how DSI can accelerate the inference of a given target model using a drafter model that is faster than the target model and returns the correct output with high probability.
Proposition 1.
Suppose we have a drafter model , a target model and a prompt . Assume that requires time units to compute each of its outputs, and requires time units, where . Assume that given the prompt , the probability that returns the (correct) token is . Then, the expected time it takes Algorithm 1 to calculate the correct output is at most time units, compared to the time units required if we were to compute without speculative inference.
Proposition 2.
Suppose we have a drafter model , a target model , and a prompt . Assume that requires time units to compute each of its outputs, and requires time units, where . Assume that given the prompt , the probability that returns the (correct) token is . Then, Algorithm 1 is expected to complete before SI (Leviathan et al., 2023; Chen et al., 2023), where both algorithms use the same lookahead .
4 Experiments and Results
Target | Drafter | Dataset | Target Latency (ms) | Drafter Latency (ms) | Drafter Latency (%) | Acceptance Rate (%) | Speedup DSI vs. SI |
---|---|---|---|---|---|---|---|
Vicuna-13B | Vicuna-68M | CNN-DM | 37.7 | 2.5 | 6.5 | 63 | 1.47x |
Vicuna-13B | Vicuna-68M | Alpaca | 33.3 | 2.5 | 7.4 | 58 | 1.41x |
Vicuna-7B | Vicuna-68M | CNN-DM | 29.4 | 2.5 | 8.4 | 67 | 1.29x |
Vicuna-7B | Vicuna-68M | Alpaca | 26.0 | 2.5 | 9.5 | 59 | 1.70x |
Starcoder-15B | Starcoder-168M | HumanEval | 20.6 | 6.8 | 32.3 | 93 | 1.92x |
Starcoder-15B | Starcoder-168M | MBPP | 21.0 | 6.8 | 32.9 | 90 | 1.66x |
Phi3-14B | Phi3-4B | HumanEval | 52.1 | 34.0 | 65.3 | 95 | 1.41x |
Phi3-14B | Phi3-4B | MBPP | 52.2 | 34.3 | 65.8 | 94 | 1.37x |
Phi3-14B | Phi3-4B | CNN-DM | 52.4 | 34.6 | 66.0 | 93 | 1.39x |
Phi3-14B | Phi3-4B | Alpaca | 49.6 | 33.4 | 67.4 | 87 | 1.60x |
We conducted two sets of experiments to validate our theoretical results—that DSI outperforms SI (Leviathan et al., 2023) and non-SI (Theorems 1 and 2)—in practical settings.
Experiments with LLMs. The first experiment (see Table 1) studies the latency values and acceptance rates of pairs of off-the-shelf target and drafter LLMs on various well-established datasets. All the LLMs were downloaded from the Hugging Face Hub and used as-is. We evaluate our method on four datasets including three tasks: text summarization using CNN Daily Mail (Hermann et al., 2015); instruction-following using Alpaca (Taori et al., 2023a); and code generation using MBPP (Austin et al., 2021) and HumanEval (Chen et al., 2021). For a complete description of the models, datasets and examples of relevant prompts, please refer to Appendix C and Appendix B.
For each combination of dataset and corresponding target/drafter model , we estimate the average latency of in the following manner. First, we select 50 prompts from uniformly at random, and for each prompt, generate 20 tokens using , measuring the latency for each token in milliseconds. Following prior work, we distinguish between Time to First Token (TTFT) generation and Time Per Output Token (TPOT) generation (of all subsequent 19 tokens). Since TTFT is usually significantly longer than TPOT (which dominates the overall sequence generation time), all latency figures in Table 1 refer to TPOT, for brevity. Finally, we calculate the average TTFTs and TPOTs over all prompts per model/dataset pair, to estimate the expected latency of a single forward pass. Thus, the TPOT latency of the target LLM and the drafter LLM are shown in “Target Latency (ms)” and “Drafter Latency (ms)”, respectively. We also report the ratio between the target and drafter latencies and present it in percentages (“Drafter Latency (%)”).
In order to estimate the alignment level between each target and drafter pairs, we use the “Acceptance Rate” (AR). To calculate the AR, we generate 256 tokens using the drafter given the same prompt used by the target. For each prompt, we consider the lengths of the longest sequences of exact token matches between the target and the drafter. Below is a simplified example where tokens are counted as English words. If the target generates “We can only see a short distance ahead, but we can see plenty there that needs to be done. […]” and the drafter generates “We can only see a short distance ahead, we done. […]”, then the longest sequence of exact matches is 8 tokens long. The expected number of accepted drafts is where is the number of accepted draft tokens for the th prompt. The AR is then calculated as . We estimate latency and AR on a single A100 80GB GPU.
This experiment suggests that off-the-shelf LLM “families” such as StarCoder (Li et al., 2023) or Vicuna (Zheng et al., 2024) can form good pairs of target and drafter. Such families consists of LLM versions of different sizes that were trained in similar ways and on similar datasets. We notice that even relatively small drafters demonstrate good alignment with larger LLMs of the same family. For example, Starcoder-168M (drafter) and Starcoder-15B (target) yield an AR of 93%.
Experiments with thread pools. To measure the speedup of DSI relatively to SI (Speedup DSI vs. SI), we perform a simulation of generating 50 tokens using each target-drafter pairs on each dataset, using the latency and acceptance rate values computed above. The simulation of each combination above is run on multiple lookahead token values (namely 1, 5, and 10). For the DSI run, we perform a grid search over the lookahead tokens, but also different parallel target counts (namely 1 and 7). The DSI simulation involves opening a separate thread in parallel for each target, using python’s thread-pool implementation. Overall, DSI outperforms SI consistently across all models and tasks.
![]() |
![]() |
![]() |
![]() |
(a) non-SI/SI | (b) SI/DSI | (c) non-SI/DSI | (d) |
Simulated SI without thread pools. Figure 1 presents the results of an experiment that simulates SI across a wide range of configurations. The aim of this experiment is to estimate pairwise speedups: DSI compared to SI, DSI compared to non-SI, and SI compared to non-SI. Since SI is slower than non-SI in some configurations, we have included an additional comparison that shows DSI speedups relative to the faster of the two algorithms—SI or non-SI—for any given configuration. This experiment helps identify configurations where DSI achieves the highest speedup. It demonstrates that, unlike SI, our method introduces no slowdown compared to non-SI and consistently accelerates inference, provided there are enough processing units. Furthermore, we demonstrate that our method remains useful in practical settings with a relatively small number of processing units.
In the experiment, the latency of DSI is computed using the formula from Lemma 1. This means that the lookahead parameter is set to one and that we need a maximum of target servers (i.e., processors that are capable of computing the target). Having two target servers, for example, means that we may start computing the target on an input batch, even if the other instance of the target is not yet available. In practice, if we can compute the target LLM on a single GPU, then two target servers are two GPUs. If serving the target LLM takes two GPUs, then two target servers means we need four GPUs. For every configuration, we consider the latency of SI with lookahead that minimizes its latency for that configuration. The configurations considered are the cartesian product of drafter latency (), acceptance rate (), and lookahead (). For each combination of (drafter latency, acceptance rate, and lookahead ), we run 5 repeats of SI and average the results to estimate the expected latency of SI (the implementation of SI is described in Appendix D). Then, for each combination of (drafter latency, acceptance rate), we consider the minimal latency (letting SI select its optimal lookahead ). Since the lookahead is a tunable parameter, our experiment assumes that it will be optimized by the user so that SI is optimized. It is known (and trivial) that SI is highly sensitive to the choice of the lookahead . To calculate the speedup of algorithm A over algorithm B per (drafter_latency, acceptance_rate), we divide the latency of B by the latency of A. The speedups are not smooth for drafter latencies due to the discretization of the lookahead parameter. If we fix the lookahead and decrease the drafter latency to 0, the number of servers required by DSI grows to infinity. However, it is possible to tune the lookahead hyperparameter to an arbitrary number (as we did). For example, for , the speedups are smooth for both algorithms (Figure 6).
As shown in Figure 1(a), to achieve a speedup with SI compared to non-SI, the acceptance rate of the drafter must at least match the latency of the drafter model (the region above the pink region in the figure). This means that the SI algorithm cannot speed up the inference if the acceptance rate of the drafter is not sufficiently high for a given latency. Conversely, in Figure 1(b), we observe that DSI consistently speeds up the inference time, regardless of the latency and acceptance rates of the drafter. This provides our method with much greater flexibility and robustness. In Figure 1(c), we observe that DSI is faster than non-SI for all the configurations for which non-SI is faster than SI. Finally, to obtain a comprehensive view of the inference speedup achieved by DSI, in Figure 1(d), we compare the performance of DSI with the minimal runtime of both SI and non-SI.
5 Discussion
In this work we studied how to reduce the run time of speculative inference algorithms by taking advantage of multiple processing units (e.g., GPUs). We have shown that in contrast to their empirical success, traditional SI algorithms can end up slowing the inference of LMs in various practical settings. For instance, when the drafters are insufficiently accurate or the drafter is too slow. We showed that by taking advantage of multiple GPUs, we can design a speculatively inference algorithm that provably reduces the inference time of both non-SI and SI algorithms. Our simulations validate our theory, indicating speedups for all possible configurations. For each configuration, the comparison is between DSI and the faster alternative algorithm (SI or non-SI). In essence this work paves the way to additional SI algorithms that can orchestrate multiple processing units at the same time.
Limitations. We introduce DSI and show that it is faster than SI and non-SI for all possible configurations by theoretical analysis and experiments. Our first experiment measures the time that it takes to compute LLMs. Then, the second experiment simulates DSI and SI. In the simulations, we replace the calls to LLMs with a wait. These wait times in the simulations are the expected wait times that we estimated in the first experiment. However, the simulations ignore latencies that exist in practice, such as the communication between processors (CPU and GPUs). Hence, the key limitation is that the algorithm is not yet implemented and tested over a physical computing node. Another limitation of DSI is the maximal number of servers that DSI requires. For example, if the target LLM fit a single GPU and the drafter latency is , then DSI orchestrates a total of eight GPUs (seven instances of the target and one for the drafter). For faster drafters, DSI requires additional target servers. The exact number of servers is discussed in section 4. In our simulations with off-the-shelf LLMs (Table 1), we only consider configurations that do not require more than seven target servers.
Broader Impacts. DSI introduces a new tradeoff: reducing the inference latency by utilizing more computing resources. Hence, adopting DSI as an alternative to SI or non-SI algorithms will increase the overall computing resources consumption of LLM-based applications.
Acknowledgements
We thank Intel Labs for funding this research.
References
- Andreas [2022] Jacob Andreas. Language models as agent models. arXiv preprint arXiv:2212.01681, 2022.
- Austin et al. [2021] Jacob Austin, Augustus Odena, Maxwell Nye, Maarten Bosma, Henryk Michalewski, David Dohan, Ellen Jiang, Carrie Cai, Michael Terry, Quoc Le, et al. Program synthesis with large language models. arXiv preprint arXiv:2108.07732, 2021.
- Bapna et al. [2020] Ankur Bapna, Naveen Arivazhagan, and Orhan Firat. Controlling computation versus quality for neural sequence models, 2020.
- Ben Allal et al. [2022] Loubna Ben Allal, Niklas Muennighoff, Logesh Kumar Umapathi, Ben Lipkin, and Leandro von Werra. A framework for the evaluation of code generation models. https://github.com/bigcode-project/bigcode-evaluation-harness, 2022.
- Brown et al. [2020] Tom Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared D Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, et al. Language models are few-shot learners. Advances in neural information processing systems, 33:1877–1901, 2020.
- Bubeck et al. [2023] Sébastien Bubeck, Varun Chandrasekaran, Ronen Eldan, Johannes Gehrke, Eric Horvitz, Ece Kamar, Peter Lee, Yin Tat Lee, Yuanzhi Li, Scott Lundberg, et al. Sparks of artificial general intelligence: Early experiments with gpt-4. arXiv preprint arXiv:2303.12712, 2023.
- Burton [1985] F. Warren Burton. Speculative computation, parallelism, and functional programming. IEEE Transactions on Computers, C-34(12):1190–1193, 1985. doi: 10.1109/TC.1985.6312218.
- Cai et al. [2024] Tianle Cai, Yuhong Li, Zhengyang Geng, Hongwu Peng, Jason D Lee, Deming Chen, and Tri Dao. Medusa: Simple llm inference acceleration framework with multiple decoding heads. arXiv preprint arXiv:2401.10774, 2024.
- Chen et al. [2023] Charlie Chen, Sebastian Borgeaud, Geoffrey Irving, Jean-Baptiste Lespiau, Laurent Sifre, and John Jumper. Accelerating large language model decoding with speculative sampling. arXiv preprint arXiv:2302.01318, 2023.
- Chen et al. [2021] Mark Chen, Jerry Tworek, Heewoo Jun, Qiming Yuan, Henrique Ponde de Oliveira Pinto, Jared Kaplan, Harri Edwards, Yuri Burda, Nicholas Joseph, Greg Brockman, et al. Evaluating large language models trained on code. arXiv preprint arXiv:2107.03374, 2021.
- Dao et al. [2022] Tri Dao, Dan Fu, Stefano Ermon, Atri Rudra, and Christopher Ré. Flashattention: Fast and memory-efficient exact attention with io-awareness. Advances in Neural Information Processing Systems, 35:16344–16359, 2022.
- Dettmers et al. [2022] Tim Dettmers, Mike Lewis, Younes Belkada, and Luke Zettlemoyer. Gpt3. int8 (): 8-bit matrix multiplication for transformers at scale. Advances in Neural Information Processing Systems, 35:30318–30332, 2022.
- Elbayad et al. [2020] Maha Elbayad, Jiatao Gu, Edouard Grave, and Michael Auli. Depth-adaptive transformer. In International Conference on Learning Representations, 2020. URL https://openreview.net/forum?id=SJg7KhVKPH.
- Frantar and Alistarh [2023] Elias Frantar and Dan Alistarh. Sparsegpt: Massive language models can be accurately pruned in one-shot. In International Conference on Machine Learning, pages 10323–10337. PMLR, 2023.
- Frantar et al. [2022] Elias Frantar, Saleh Ashkboos, Torsten Hoefler, and Dan Alistarh. GPTQ: Accurate post-training quantization for generative pre-trained transformers. arXiv preprint arXiv:2210.17323, 2022.
- Fried et al. [2023] Daniel Fried, Armen Aghajanyan, Jessy Lin, Sida Wang, Eric Wallace, Freda Shi, Ruiqi Zhong, Wen tau Yih, Luke Zettlemoyer, and Mike Lewis. Incoder: A generative model for code infilling and synthesis. In Proc. of ICLR, 2023. URL https://arxiv.longhoe.net/abs/2204.05999.
- Gu et al. [2024] Yuxian Gu, Li Dong, Furu Wei, and Minlie Huang. MiniLLM: Knowledge distillation of large language models. In The Twelfth International Conference on Learning Representations, 2024. URL https://openreview.net/forum?id=5h0qf7IBZZ.
- Han et al. [2022] Y. Han, G. Huang, S. Song, L. Yang, H. Wang, and Y. Wang. Dynamic neural networks: A survey. IEEE Transactions on Pattern Analysis; Machine Intelligence, 44(11):7436–7456, nov 2022. ISSN 1939-3539. doi: 10.1109/TPAMI.2021.3117837.
- Hennessy and Patterson [2012] John L. Hennessy and David A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, Amsterdam, 5 edition, 2012. ISBN 978-0-12-383872-8.
- Hermann et al. [2015] Karl Moritz Hermann, Tomas Kocisky, Edward Grefenstette, Lasse Espeholt, Will Kay, Mustafa Suleyman, and Phil Blunsom. Teaching machines to read and comprehend. Advances in neural information processing systems, 28, 2015.
- Hinton et al. [2015] Geoffrey Hinton, Oriol Vinyals, and Jeff Dean. Distilling the knowledge in a neural network, 2015.
- Hsu et al. [2022] Yen-Chang Hsu, Ting Hua, Sungen Chang, Qian Lou, Yilin Shen, and Hongxia **. Language model compression with weighted low-rank factorization. In International Conference on Learning Representations, 2022. URL https://openreview.net/forum?id=uPv9Y3gmAI5.
- Hubara et al. [2018] Itay Hubara, Matthieu Courbariaux, Daniel Soudry, Ran El-Yaniv, and Yoshua Bengio. Quantized neural networks: Training neural networks with low precision weights and activations. Journal of Machine Learning Research, 18(187):1–30, 2018.
- Joao Gante [2023] Joao Gante. Assisted generation: a new direction toward low-latency text generation, 2023. URL https://huggingface.co/blog/assisted-generation.
- Leviathan et al. [2023] Yaniv Leviathan, Matan Kalman, and Yossi Matias. Fast inference from transformers via speculative decoding. In International Conference on Machine Learning, pages 19274–19286. PMLR, 2023.
- Li et al. [2023] Raymond Li, Loubna Ben Allal, Yangtian Zi, Niklas Muennighoff, Denis Kocetkov, Chenghao Mou, Marc Marone, Christopher Akiki, Jia Li, Jenny Chim, et al. Starcoder: may the source be with you! arXiv preprint arXiv:2305.06161, 2023.
- Li et al. [2024] Yuhui Li, Fangyun Wei, Chao Zhang, and Hongyang Zhang. Eagle: Speculative sampling requires rethinking feature uncertainty. arXiv preprint arXiv:2401.15077, 2024.
- Lin et al. [2024] Ji Lin, Jiaming Tang, Haotian Tang, Shang Yang, Wei-Ming Chen, Wei-Chen Wang, Guangxuan Xiao, Xingyu Dang, Chuang Gan, and Song Han. Awq: Activation-aware weight quantization for llm compression and acceleration. In MLSys, 2024.
- Liu et al. [2023] Xiaoxuan Liu, Lanxiang Hu, Peter Bailis, Ion Stoica, Zhijie Deng, Alvin Cheung, and Hao Zhang. Online speculative decoding. arXiv preprint arXiv:2310.07177, 2023.
- Ma et al. [2023] Xinyin Ma, Gongfan Fang, and Xinchao Wang. LLM-pruner: On the structural pruning of large language models. In Thirty-seventh Conference on Neural Information Processing Systems, 2023. URL https://openreview.net/forum?id=J8Ajf9WfXP.
- Mamou et al. [2024] Jonathan Mamou, Oren Pereg, Daniel Korat, Moshe Berchansky, Nadav Timor, Moshe Wasserblat, and Roy Schwartz. Accelerating speculative decoding using dynamic speculation length, 2024.
- Miao et al. [2023] Xupeng Miao, Gabriele Oliaro, Zhihao Zhang, Xinhao Cheng, Zeyu Wang, Rae Ying Yee Wong, Zhuoming Chen, Daiyaan Arfeen, Reyna Abhyankar, and Zhihao Jia. Specinfer: Accelerating generative llm serving with speculative inference and token tree verification. arXiv preprint arXiv:2305.09781v2, 2023.
- OpenAI [2023] R OpenAI. Gpt-4 technical report. arXiv, pages 2303–08774, 2023.
- Radford et al. [2019] Alec Radford, Jeffrey Wu, Rewon Child, David Luan, Dario Amodei, Ilya Sutskever, et al. Language models are unsupervised multitask learners. OpenAI blog, 1(8):9, 2019.
- Schuster et al. [2021] Tal Schuster, Adam Fisch, Tommi Jaakkola, and Regina Barzilay. Consistent accelerated inference via confident adaptive transformers. In Marie-Francine Moens, Xuan**g Huang, Lucia Specia, and Scott Wen-tau Yih, editors, Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing, pages 4962–4979, Online and Punta Cana, Dominican Republic, November 2021. Association for Computational Linguistics. doi: 10.18653/v1/2021.emnlp-main.406. URL https://aclanthology.org/2021.emnlp-main.406.
- Shoeybi et al. [2019] Mohammad Shoeybi, Mostofa Patwary, Raul Puri, Patrick LeGresley, Jared Casper, and Bryan Catanzaro. Megatron-lm: Training multi-billion parameter language models using model parallelism. arXiv preprint arXiv:1909.08053, 2019.
- Spector and Re [2023] Benjamin Spector and Chris Re. Accelerating llm inference with staged speculative decoding. arXiv preprint arXiv:2308.04623, 2023.
- Stern et al. [2018] Mitchell Stern, Noam Shazeer, and Jakob Uszkoreit. Blockwise parallel decoding for deep autoregressive models. Advances in Neural Information Processing Systems, 31, 2018.
- Sun et al. [2024a] Mingjie Sun, Zhuang Liu, Anna Bair, and J Zico Kolter. A simple and effective pruning approach for large language models. In The Twelfth International Conference on Learning Representations, 2024a. URL https://openreview.net/forum?id=PxoFut3dWW.
- Sun et al. [2024b] Ziteng Sun, Ananda Theertha Suresh, Jae Hun Ro, Ahmad Beirami, Himanshu Jain, and Felix Yu. Spectr: Fast speculative decoding via optimal transport. Advances in Neural Information Processing Systems, 36, 2024b.
- Taori et al. [2023a] Rohan Taori, Ishaan Gulrajani, Tianyi Zhang, Yann Dubois, Xuechen Li, Carlos Guestrin, Percy Liang, and Tatsunori B. Hashimoto. Stanford alpaca: An instruction-following llama model. https://github.com/tatsu-lab/stanford_alpaca, 2023a.
- Taori et al. [2023b] Rohan Taori, Ishaan Gulrajani, Tianyi Zhang, Yann Dubois, Xuechen Li, Carlos Guestrin, Percy Liang, and Tatsunori B Hashimoto. Alpaca: A strong, replicable instruction-following model. Stanford Center for Research on Foundation Models, 2023b. https://crfm.stanford.edu/2023/03/13/alpaca.html.
- Vaswani et al. [2017] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, and Illia Polosukhin. Attention is all you need. Advances in neural information processing systems, 30, 2017.
- Wei et al. [2022] Jason Wei, Xuezhi Wang, Dale Schuurmans, Maarten Bosma, Fei Xia, Ed Chi, Quoc V Le, Denny Zhou, et al. Chain-of-thought prompting elicits reasoning in large language models. Advances in neural information processing systems, 35:24824–24837, 2022.
- Xu et al. [2023] Mingxue Xu, Yao Lei Xu, and Danilo P. Mandic. Tensorgpt: Efficient compression of the embedding layer in llms based on the tensor-train decomposition, 2023.
- Yao et al. [2024] Zhewei Yao, Xiaoxia Wu, Cheng Li, Stephen Youn, and Yuxiong He. Exploring post-training quantization in llms from comprehensive study to low rank compensation. In Proceedings of the AAAI Conference on Artificial Intelligence, volume 38, pages 19377–19385, 2024.
- Zheng et al. [2024] Lianmin Zheng, Wei-Lin Chiang, Ying Sheng, Siyuan Zhuang, Zhanghao Wu, Yonghao Zhuang, Zi Lin, Zhuohan Li, Dacheng Li, Eric Xing, et al. Judging llm-as-a-judge with mt-bench and chatbot arena. Advances in Neural Information Processing Systems, 36, 2024.
- Zhou et al. [2024] Yongchao Zhou, Kaifeng Lyu, Ankit Singh Rawat, Aditya Krishna Menon, Afshin Rostamizadeh, Sanjiv Kumar, Jean-François Kagy, and Rishabh Agarwal. Distillspec: Improving speculative decoding via knowledge distillation. In The Twelfth International Conference on Learning Representations, 2024. URL https://openreview.net/forum?id=rsY6J3ZaTF.
Appendix A Proofs
See 1
Proof.
We begin by demonstrating the losslessness of the algorithm. We would like to prove that when , there is a thread , that is the only thread that is labeled as a verifier, and it correctly computes the next token and that for some sequence of length , where for all . We will prove this by induction on the value of . In addition, we note that if this pattern is appreciated by the algorithm, then it is clearly a lossless algorithm.
Base case (): Initially, when , there is only one verifier, , which runs the target model . Thus, when it finishes, it will return the correct token, . Since the verifier is relabeled only when the value of changes (see lines 11-12), as long as , the only thread labeled as a verifier is .
Induction hypothesis: Assume that as long as , there is only one thread labeled as a verifier, which returns the correct token , and that for some of length , where for all .
Induction step: When is updated from to , this change only occurs when the condition in line 7 is met. This condition indicates that the single verifier thread , which is of length , has finished computing its output token. By the induction hypothesis, this thread returns as its output. Since is slower than all drafter models , all threads have already finished computing their outputs. Thus, when executing lines 8, 10, and 11, the only threads that remain active are the descendants of , and the only thread serving as a verifier is . Since for all and , then simply computes the output of the target model on the correct sequence . Hence, it correctly returns the th token , as desired.
See 1
Proof.
To understand how it works, let be the smallest index such that and for all , we recursively define to be the smallest index such that . We also fix . In addition, let and be the th index in such that . We notice that it takes time units to compute the value of . This is because we first compute , then , continuing up to , and finally . Each of the first tokens takes time units, while the final token takes time units. After time units, we will have computed , , , and so on, up to . Since consistently generates accurate tokens up to index , once we observe that matches , we know that and can then verify that is also correct. Once we verify that , we can verify and continue this pattern to verify , and so forth. We note that calculating all of these tokens up to the calculation of take at most time units. Thus, we can verify that with at most time units. By the same argument as above, it takes time units to compute the value of (and to verify its correctness). We notice that is the number of indices such that . Since , we have . ∎
See 2
Proof.
Suppose we have a drafter model , a target model , and a prompt . Assume that requires time units to compute each of its outputs, and requires time units, where . Assume that given the prompt , the probability that returns the (correct) token is . Consider generating tokens from using the SI (or DSI) algorithm with . At time , SI starts generating draft tokens, by the definition of SI. At time , SI completes generating the first draft tokens . At time , SI completes verifying the first tokens . Let be indicator variables sampled as follows. with probability and otherwise, for all . Let . Note that is distributed as the number of accepted drafts among the first drafts of SI (or DSI). SI completes generating the first tokens at time for any , by the definition of SI. The first iteration of SI cannot output tokens at positions , by the definition of SI. The earliest time at which SI can complete generating is by the end of its second iteration. Hence, SI completes generating at time . Consider DSI with the same , , and lookahead over at least servers. We show that DSI completes generating at time , and, in expectation, at time . By the definition of DSI, DSI never preempt the current verifier. At time , DSI invokes concurrently (i) the verifying of the batch containing the first tokens that are not yet verified, and (ii) the drafting of , by the definition of DSI. If , then both SI and DSI complete generating the th first token at time . At that time, DSI either invokes a new current verifier thread or labels an existing thread as the current verifier (depending on and the lookahead ). Hence, DSI completes generating at time , exactly when the current verifier thread completes its verification. DSI is faster than SI for all since . Otherwise, both algorithms accept the first tokens at time . At that time, the proof repeats for . ∎
See 2
Proof.
Consider SI and DSI with the same lookahead . We use a coupling argument to align the two algorithms such that the th iteration of SI is aligned with corresponding generations of DSI, as follows. Let be indicator variables defined in the following manner. We define with probability and otherwise, for all . Let . Note that is distributed as the number of accepted drafts in any batch of both SI and DSI. Both algorithms generate new tokens at every iteration. Here, we assume that SI and DSI generate tokens at their th iteration, and may only differ in the time that it takes. Denote the number of iterations of the algorithms by . Since all iteration of SI takes constant time, we have that SI completes at time . For every iteration we sample from new indicators as defined above. At time , DSI invokes a new current verifier that completes generating at times respectively, unless a faster thread is labeled as the current verifier in line 11. Similarly, at the beginning of the th iteration, DSI invokes a new current verifier that completes generating the next tokens within time units. Hence, DSI completes generating the new tokens of the th iteration before SI does if , and at the same time of SI otherwise. Assume that for all , namely, that all of the drafts are accepted. DSI completes at time . It means that DSI completes time units before SI does. Let be an indicator such that if and otherwise, for all . Note that with probability . Define as follows. denotes the length of the first consecutive successes: where . If , then we define . For example, if and , then . DSI completes times units before SI does—or earlier. ∎
Appendix B Datasets and Prompts Details
We use standard datasets from Hugging Face and standard prompts from the state-of-the-art.
B.1 MBPP
MBPP dataset consists of crowd-sourced Python programming problems and is distributed under the cc-by-4.0 License.
Concerning the prompt, we followed [Ben Allal et al., 2022, Fried et al., 2023] and included the description of the programming task and a single test to verify solution, in order to help the model catch the signature of the function (see Figure 2).
"""{text} {test_list[0]} """
B.2 HumanEval
HumanEval dataset includes programming problems and is distributed under the MIT License.
Prompt contains only prompt field from the dataset.
B.3 CNN-DM
CNN-DM contains news articles and is distributed under the Apache License 2.0.
We included the article field in the prompt as in Figure 3.
"""Summarize: {article} Summary: """
B.4 Alpaca
Alpaca dataset contains instructions and demonstrations. It is distributed under the cc-by-nc-4.0 License.
We follow Taori et al. [2023b] to define the prompts. For samples with a non-empty input field, we use the prompt as in Figure 4 while for samples with empty input field, we use the prompt as in Figure 5.
"""Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request. ### Instruction: {instruction} ### Input: {input} ### Response: """
"""Below is an instruction that describes a task. Write a response that appropriately completes the request. ### Instruction: {instruction} ### Response: """
Appendix C Models
For all models, we retrieve model weights from Hugging Face.
For clarity and reproducibility, we provide the URLs for each model used:
-
•
Vicuna-13B: https://huggingface.co/lmsys/vicuna-13b-v1.3, distributed under Non-Commercial License.
-
•
Vicuna-7B: https://huggingface.co/lmsys/vicuna-7b-v1.3, distributed under Non-Commercial License.
-
•
Vicuna-68M: https://huggingface.co/double7/vicuna-68m, distributed under the Apache License 2.0.
-
•
Starcoder-15B: https://huggingface.co/bigcode/starcoder, distributed under the Responsible AI License.
-
•
Starcoder-168M: https://huggingface.co/bigcode/tiny_starcoder_py, also distributed under the Responsible AI License.
-
•
Phi3-14B: https://huggingface.co/microsoft/Phi-3-medium-128k-instruct distributed under the MIT license.
-
•
Phi3-4B: https://huggingface.co/microsoft/Phi-3-mini-128k-instruct distributed under the MIT license.
Appendix D Experiments Results
D.1 SI Implementation
D.2 Speedups for lookahead = 5
![]() |
![]() |
![]() |
(a) SI/non-SI | (b) SI/DSI | (c) non-SI/DSI |