欢迎使用 Outlines
Outlines 是一个 Python 库,让您能够以简单可靠的方式使用大型语言模型(通过结构化生成)。它由 .txt 构建,并已被许多公司用于生产环境。
支持哪些模型?
我们支持 OpenAI,但 Outlines 的真正强大之处在于通过 transformers、llama.cpp、exllama2、mlx-lm 和 vllm 模型提供的开源模型。如果您希望构建并维护与其他库的集成,请联系我们。
主要功能是什么?
-
让大型语言模型生成有效的 JSON
告别无效 JSON 输出,100% 保证有效
-
vLLM 的 JSON 模式
使用 Outlines 的 JSON 结构化生成和 vLLM 部署大型语言模型服务
-
让大型语言模型遵循正则表达式
100% 生成可正确解析的文本
-
强大的提示模板
使用提示模板更好地管理复杂提示
为什么要使用 Outlines?
Outlines 由 .txt 的工程师构建,他们在软件工程、机器学习(贝叶斯统计和自然语言处理)和编译器领域拥有数十年的经验。.txt 是一家由风险投资支持的公司,专注于结构化生成领域,并致力于让社区受益于其经验。
我们也是开源老兵,多年来撰写/维护了许多库:包括 Aesara 和 Pythological 生态系统,Blackjax 和 Hy 等等。
Outlines 不使用可能妨碍您的不必要抽象。我们专注于使用大型语言模型进行可靠的文本生成,有明确的路线图来推动该领域的最新发展,并致力于编写清晰稳健的代码。
最后但同样重要的是,与替代方案不同,Outlines 的结构化生成在推理过程中不引入额外开销。
谁在使用 Outlines?
数百个组织和主要的 LLM 服务框架(vLLM、TGI、LoRAX、xinference、SGLang)正在使用 Outlines。一些正在使用 Outlines 的知名公司和组织包括:

























收录这些组织是因为他们在公开仓库中将 Outlines 用作依赖项,或者是因为 Outlines 团队成员与这些组织的员工之间进行了直接沟通。
如果您还不相信,请阅读人们对我们的评价。并务必看看社区正在构建什么!
理念
Outlines 是一个用于神经文本生成的库。您可以将其视为 transformers 库中 generate
方法的一个更灵活的替代品。
Outlines 帮助开发者结构化文本生成,以便构建与外部系统强大的接口。它提供的生成方法可以保证输出匹配正则表达式或遵循 JSON Schema。
Outlines 提供了强大的提示原语,将提示与执行逻辑分离,从而简化了少样本生成、ReAct、元提示、智能体等的实现。
Outlines 被设计为一个库,旨在与更广泛的生态系统兼容,而不是取代它。我们使用尽可能少的抽象,生成过程可以与控制流、条件语句、自定义 Python 函数以及对其他库的调用交织进行。
Outlines 兼容所有自回归模型。它只通过下一个 token 的 logits 分布与模型交互。
Outlines 团队
如果没有一个敬业的开发者社区,Outlines 不会是今天的样子
致谢
Outlines 最初由 @NormalComputing 的 @remilouf 和 @BrandonTWillard 开发。现在由 .txt 维护。