跳到内容

欢迎使用 Outlines

Outlines 是一个 Python 库,让您能够以简单可靠的方式使用大型语言模型(通过结构化生成)。它由 .txt 构建,并已被许多公司用于生产环境。

支持哪些模型?

我们支持 OpenAI,但 Outlines 的真正强大之处在于通过 transformersllama.cppexllama2mlx-lmvllm 模型提供的开源模型。如果您希望构建并维护与其他库的集成,请联系我们

主要功能是什么?

  • 让大型语言模型生成有效的 JSON


    告别无效 JSON 输出,100% 保证有效

    生成 JSON

  • vLLM 的 JSON 模式


    使用 Outlines 的 JSON 结构化生成和 vLLM 部署大型语言模型服务

    部署 Outlines

  • 让大型语言模型遵循正则表达式


    100% 生成可正确解析的文本

    指导大型语言模型

  • 强大的提示模板


    使用提示模板更好地管理复杂提示

    了解更多

为什么要使用 Outlines?

Outlines 由 .txt 的工程师构建,他们在软件工程、机器学习(贝叶斯统计和自然语言处理)和编译器领域拥有数十年的经验。.txt 是一家由风险投资支持的公司,专注于结构化生成领域,并致力于让社区受益于其经验。

我们也是开源老兵,多年来撰写/维护了许多库:包括 AesaraPythological 生态系统,BlackjaxHy 等等。

Outlines 不使用可能妨碍您的不必要抽象。我们专注于使用大型语言模型进行可靠的文本生成,有明确的路线图来推动该领域的最新发展,并致力于编写清晰稳健的代码。

最后但同样重要的是,与替代方案不同,Outlines 的结构化生成在推理过程中不引入额外开销

谁在使用 Outlines?

数百个组织和主要的 LLM 服务框架(vLLMTGILoRAXxinferenceSGLang)正在使用 Outlines。一些正在使用 Outlines 的知名公司和组织包括:


收录这些组织是因为他们在公开仓库中将 Outlines 用作依赖项,或者是因为 Outlines 团队成员与这些组织的员工之间进行了直接沟通。

如果您还不相信,请阅读人们对我们的评价。并务必看看社区正在构建什么

理念

Outlines 是一个用于神经文本生成的库。您可以将其视为 transformers 库中 generate 方法的一个更灵活的替代品。

Outlines 帮助开发者结构化文本生成,以便构建与外部系统强大的接口。它提供的生成方法可以保证输出匹配正则表达式或遵循 JSON Schema。

Outlines 提供了强大的提示原语,将提示与执行逻辑分离,从而简化了少样本生成、ReAct、元提示、智能体等的实现。

Outlines 被设计为一个,旨在与更广泛的生态系统兼容,而不是取代它。我们使用尽可能少的抽象,生成过程可以与控制流、条件语句、自定义 Python 函数以及对其他库的调用交织进行。

Outlines 兼容所有自回归模型。它只通过下一个 token 的 logits 分布与模型交互。

Outlines 团队

如果没有一个敬业的开发者社区,Outlines 不会是今天的样子

致谢

Outlines 最初由 @NormalComputing@remilouf@BrandonTWillard 开发。现在由 .txt 维护。