guidance-ai/llguidance

Super-fast Structured Outputs

解决的问题

llguidance 通过实现约束解码,解决了 LLM 输出中的「幻觉」或格式错误问题。它确保模型输出严格遵循特定结构——如 JSON 模式、正则表达式或上下文无关文法——而无需对模型进行针对该格式的微调。

工作原理

该库在解码过程中实时计算「令牌掩码」。给定文法和已生成的令牌,它能精确识别出模型词汇表中哪些令牌是维持文法规则的合法下一步。

技术上,它使用 Earley 算法进行上下文无关文法解析,并基于正则表达式导数构建词法分析器。通过遍历所有可能令牌的前缀树(Trie),它实现了极高的优化,使掩码计算速度极快(平均每个令牌 50µs),且几乎无启动开销。

适用人群

专为需要保证结构化输出的生产级 AI 应用开发者设计,也适用于 vLLM、SGLang、llama.cpp 等 LLM 推理引擎的开发者,希望集成高性能语法强制功能的用户。

特色亮点

  • 极致性能:对于大型分词器,每个令牌的掩码计算平均仅需约 50µs 的 CPU 时间。
  • 广泛格式支持:支持 JSON 模式、正则表达式和 Lark 风格的上下文无关文法。
  • 零启动开销:与部分竞争对手不同,无需进行长时间的自动机状态预计算。
  • 广泛集成:已用于 OpenAI 模型的结构化输出,并集成至 vLLM、SGLang、llama.cpp 和 Chromium。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • Dispatch