原贴链接

Formatron 允许用户以最小的开销控制语言模型的输出格式。它轻量、用户友好,并且能够无缝集成到现有的代码库和框架中。

特性

  • 🔗 流行的库集成: 支持 transformers、exllamav2、vllm 和 RWKV。
  • 🔌 插件,而非包装器: 与将第三方库包装在大型、笨重的类中不同,Formatron 为不同的库提供了方便、干净的插件。
  • 💡 库,而非框架: 不是将所有内容统一到一个笨重的框架中,Formatron 是一个灵活的库,可以嵌入到任何地方。
  • ✍️ 流畅的格式化: 描述你的格式就像写自然语言一样简单。
  • 📜 正则表达式和CFG支持: 轻松地在格式中交错使用正则表达式和上下文无关文法(CFG)。
  • ⚙️ 高效的JSON生成: 基于Pydantic模型或json模式的完整功能的JSON生成。
  • 📤 批量推理: 自由地为批次中的每个序列指定不同的格式!
  • 🚀 最小的运行时开销: 通过Leo优化、专门的压缩算法和跨代CFG缓存,用Rust实现的Earley算法在渐进性和实际应用中都是最快的算法。
  • 🔧 可定制: 所有内容都是可配置的,包括模式生成、文法生成和生成后处理(如函数调用)。

与其他库的比较

能力FormatronLM格式强制器GuidanceOutlines
正则表达式
高效的正则表达式约束生成🟡( 性能问题仍然存在)🟡( 可扩展性目前受限)
上下文无关文法(CFG)🟡( 存在一些错误)
高效的CFG约束生成
自定义格式提取器🟡(存在一些限制 )
JSON模式✅(间接 )
从可调用对象调用函数
在生成中交错Python控制流
批量生成
束搜索
集成到现有管道中
可选的JSON字段
LLM控制JSON字段空白
LLM控制JSON字段顺序
具有递归类的JSON模式

讨论总结

Reddit用户对Formatron这一高性能约束解码库进行了积极的讨论,主要关注其功能、性能及与其他库的比较。用户们对Formatron的轻量级、用户友好以及与现有代码库和框架的无缝集成表示赞赏。讨论中涉及了性能问题、库选择、技术问题等多个方面,用户们对Formatron的未来发展表示期待。

主要观点

  1. 👍 Formatron是一个高性能的约束解码库
    • 支持理由:用户赞赏其轻量级和用户友好的特点,以及与现有代码库和框架的无缝集成。
    • 反对声音:暂无明显反对声音。
  2. 🔥 用户对当前使用的库的性能不满意
    • 正方观点:用户认为当前使用的库性能损失至少两倍,期待Formatron这样的新库。
    • 反方观点:暂无明显反方观点。
  3. 💡 Formatron支持可选JSON字段生成,但不支持字段顺序控制
    • 用户期待未来Formatron能实现LLM控制JSON字段顺序的功能。
  4. 👍 用户对Formatron库支持exllama表示赞赏
    • 支持理由:用户认为Formatron库支持exllama是一个积极的特性。
    • 反对声音:暂无明显反对声音。
  5. 🔥 开发者计划通过编写专门的JSON状态机来实现字段顺序控制
    • 正方观点:用户期待这一功能的实现。
    • 反方观点:暂无明显反方观点。

金句与有趣评论

  1. “😂 kryptkpr:I’m using aphrodite-engine with Outlines currently for my EXL2 pydantic json schema extractors but performance is a bit lacking it seems I give up at least 2x
    • 亮点:评论者对当前库的性能不满意,期待Formatron这样的新库。
  2. “🤔 notsosleepy:what would be needed to enforce something like this with web LLM?
    • 亮点:用户询问如何使用Web LLM实现类似Formatron的功能,引发技术讨论。
  3. “👀 a_slay_nub:Outlines has been very buggy for me and this looks like a promising alternative.
    • 亮点:评论者认为Outlines存在问题,Formatron是一个有潜力的替代方案。
  4. “😂 Such_Advantage_6949:it is so awesome to see something new in this space
    • 亮点:用户对Formatron在语言模型输出格式控制领域的新进展表示赞赏。
  5. “🤔 Such_Advantage_6949:do you plan to include this ability in the future? LLM Controls JSON field orderings.
    • 亮点:用户询问未来Formatron是否能实现LLM控制JSON字段顺序的功能。

情感分析

讨论的总体情感倾向是积极的,用户们对Formatron的功能和性能表示赞赏,并期待其未来发展。主要分歧点在于对现有库的性能不满意,以及对Formatron未来功能的期待。可能的原因是用户对高性能、用户友好的库有强烈需求,而Formatron恰好满足了这些需求。

趋势与预测

  • 新兴话题:Formatron的未来功能,如LLM控制JSON字段顺序。
  • 潜在影响:Formatron可能会成为语言模型输出格式控制领域的主流库,对相关领域或社会产生积极影响。

详细内容:

标题:Formatron:高性能约束解码库引发热议

近日,Reddit 上一篇关于 Formatron 的帖子引发了众多关注。该帖子介绍了Formatron这一约束解码库,称其允许用户以最小的开销控制语言模型的输出格式,具有轻量、用户友好以及能无缝集成到现有代码库和框架等特点。帖子获得了大量的点赞和众多评论。

主要讨论方向集中在 Formatron 与其他类似库的性能比较、功能特点以及应用场景等方面。

讨论焦点与观点分析: 有人提到正在使用 aphrodite-engine 与 Outlines 结合,但其性能似乎有所欠缺。有人询问如何在网络 LLM 中实施类似的约束,有人认为技术上通过可修改的每令牌对数偏差的流 API 就足够了,但考虑到 API 调用的工作方式,怀疑唯一可行的方法是使用约束解码库。有用户希望提供 CFG 的示例,并询问能否集成到 vllm 的 API 中,还指出 Outlines 存在很多漏洞,Formatron 看起来是一个很有前途的替代方案。有人称赞这是该领域的新事物,还有人询问未来是否会包含某些特定能力,比如 LLM 控制 JSON 字段排序。

总的来说,大家对 Formatron 的出现表现出了浓厚的兴趣,同时也对其性能和功能进行了深入的探讨。