text-generation-inference 文档

推测执行

Hugging Face's logo
加入 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。

您可以查看一些针对流行模型的现有微调版本

为了为您自己的微调创建您自己的 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 在您的标志中。

有关标志的详细信息

< > 在 GitHub 上更新