跳到内容

2024 年路线图

Outlines 甚至还没满一岁,就已经取得了长足的进步!在我们刚刚达到 4000 颗星之际,在制定下一年的路线图之前,我们想稍作停顿,感谢所有支持我们、使用并为该库做出贡献的你们!

4000 stars

思考

在深入探讨详细路线图之前,让我分享一些想法,并解释一下该库的总体方向。这些想法来自于我在 Twitter 或我们的 Discord 服务器上与用户的多次互动。

Outlines 目前通过其高效的 JSON 和正则表达式约束生成与其他库区分开来。最近还添加了一个面向用户的语法结构化生成接口(以前隐藏在仓库中)。但我们在这方面还可以做得更多。在 2024 年,我们将继续朝着更准确、更快速的约束生成方向努力。

Outlines 还支持许多模型提供商:transformersmamballama.cppexllama2。这些集成需要大量的维护工作,我们需要对其进行简化。例如,transformers 现在支持量化模型,我们很快将弃用对 autoawqautogptq 的支持。由于对该库进行了重构,现在除了 mamba 之外,可以使用 logits processor 与所有其他库一起使用我们的约束生成方法。我们将寻找提供状态空间模型并允许在推理期间传递 logits processor 的库。我们将使用 logits processor 与 llama.cppexllama2 对接。

我们希望将工作扩展到整个采样层,并添加新的采样方法,以使结构化生成更准确。这意味着我们将保持当前的 transformers 集成,并围绕该库扩展我们的文本生成逻辑。

目前,工作流程的重用和分享比较困难。这就是为什么我们非常看好 Outlines 函数。我们将继续改进其接口并添加示例。

最后,我们想添加一个 CLI 工具,名为 outlines serve。这将允许您服务于执行通用约束生成的 API,或者服务于 Outlines 函数。

详细路线图

以下是未来 12 个月的更详细路线图。Outlines 是一个社区驱动的项目,我们邀请您选择任何一个主题并为该库贡献代码。我将在仓库中逐步添加相关的议题

更多示例和教程

老实说,Outlines 缺乏清晰和全面的示例。我们想改变这一点!

  • Outlines 是如何工作的?你可以用它做什么?
  • 使用 Outlines 可以实现哪些其他库难以或不可能实现的功能?
  • 如何执行标准的 LLM 工作流程,例如思维链(Chain of Thoughts)、思维树(Tree of Thoughts)等?
  • Outlines 如何与更大的生态系统集成,例如 LangChain 和 LlamaIndex 等其他库?

简化集成

我们希望保留当前的集成,但降低维护成本,以便我们能够专注于我们带来的价值。

  • 弃用所有过时的集成:例如,transformers 最近集成了 autoawqautogptq。(PR
  • 查看是否可以与一个通过 logit 处理函数提供状态空间模型的库集成;
  • 通过 logits processor 与 llama.cpp 集成;
  • 通过 logits processor 与 exllamav2 集成;

进一步推进结构化生成

我们才刚刚开始!

  • 改进现有结构化生成算法的性能;
  • 改进结构化生成算法的正确性;
  • grammars 仓库或 Outlines 的子模块中添加现成的语法。

持续开发 Outlines 函数

函数太棒了,快来使用它们吧!

  • 实现一个 CLI 工具 outlines serve,允许在本地服务 Outlines 函数;
  • functions 仓库添加更多函数。

服务化结构化生成

我们希望让服务结构化生成和 Outlines 函数变得更容易。

  • 实现 outlines serve CLI 工具 outlines serve
  • 服务执行结构化生成的本地 API;
  • 服务 Outlines 函数。

改进生成层

  • 使用 transformers 的私有 API 在 Transformers 类内部准备生成输入;
  • 支持 Beam Search 和 SMC 等方法的模型生成和文本填充的连续操作;
  • 通过添加新的缓存方法来区分:例如 Attention Sink、Trie 树缓存等;
  • 通过实现 SMC 来区分;
  • 实现 Beam Search;
  • 添加 Token 修复。

与 OpenAI 更无缝的集成

  • 为 OpenAI 和开源模型提供相同的用户接口,使其易于互换;
  • 集成函数调用 API。

最后的话

本路线图受到社区表达的兴趣影响。如果它未能反映您的需求,请随时前来与我们分享您的经验