合并:使大型语言模型推理速度提高 5 倍

主要观点:可以将基于字符的有限状态机(FSM)确定性地转换为使用令牌的 FSM,给出了在Outlines中的示例代码,通过一系列步骤生成第一个令牌,还展示了转换后的索引及其中的状态和令牌对应关系,虽增加了复杂度但操作类似,且需注意 FSM 中的每个转换都代表对语言模型(LLM)的昂贵调用,使用 FSM 表示正则表达式可在控制输出时几乎无需额外成本,若能找到跳过 LLM 调用的方法则有望实现更快的生成。

关键信息:

  • 代码from outlines.fsm.regex import make_deterministic_fsm, create_fsm_index_tokenizer用于转换 FSM。
  • 生成第一个令牌的步骤:传递提示给模型获取下一个令牌概率分布,从状态 0 开始,根据index[0].keys()列出有效转换的令牌,用概率分布采样一个令牌,跟随对应转换移动到新状态。
  • index是一个字典,映射有限状态机的状态到可能的转换,转换用允许的令牌到下一个状态的字典表示。
  • 展示了转换后的索引及其中的状态和令牌对应关系。
  • 强调每个转换代表对 LLM 的昂贵调用,使用 FSM 表示正则表达式可控制输出且几乎无需额外成本,有望实现更快生成。

重要细节:

  • 给出了具体的代码示例和详细的操作步骤。
  • 展示了复杂的 FSM 可视化图像。
  • 说明了在使用 FSM 时的成本和潜在优势。
阅读 7
0 条评论