text-generation-inference 文档
推测执行
加入 Hugging Face 社区
并获得增强的文档体验
开始入门
推测执行
推测解码、辅助生成、Medusa 以及其他一些名称都指代相同的概念。这个概念是在大型模型实际运行之前生成 token,并且仅检查这些 token 是否有效。
因此,您在 LLM 上进行了更多的计算,但如果您是正确的,您将在单个 LLM 传递中生成 1、2、3 等 token。由于 LLM 通常受内存限制(而不是受计算限制),如果您的猜测足够准确,这将使推理速度提高 2-3 倍(对于面向代码的任务,速度可能会更快)。
您可以查看更详细的解释。
Text-generation-inference 支持 2 种主要的推测方法
- Medusa
- N-gram
Medusa
Medusa 是一种简单的方法,它使用微调的 LM 头以及现有模型,在单个传递中创建许多 token。
您可以查看一些针对流行模型的现有微调版本
- text-generation-inference/gemma-7b-it-medusa
- text-generation-inference/Mixtral-8x7B-Instruct-v0.1-medusa
- text-generation-inference/Mistral-7B-Instruct-v0.2-medusa
为了为您自己的微调创建您自己的 medusa 头,您应该查看原始 medusa 代码仓库。请阅读训练 Medusa以获取更多信息。
为了在 TGI 中使用 medusa 模型,只需指向启用 medusa 的模型,一切都将自动加载。
N-gram
如果您没有 medusa 模型,或者没有资源进行微调,您可以尝试使用 n-gram
。N-gram 的工作原理是尝试在先前的序列中查找匹配的 token,并将这些 token 用作推测来生成新的 token。例如,如果 token “np.mean” 在序列中多次出现,则模型可以推测 token “np.” 的下一个延续也可能是 “mean”。
这是一种极其简单的方法,最适用于代码或高度重复的文本。如果推测遗漏太多,则可能没有好处。
为了启用 n-gram 推测,只需使用
--speculate 2
在您的标志中。