登陆注册
6639

苏黎世联邦理工学院推出 LMQL:一种用于语言模型交互的编程语言

站长网2023-07-30 10:04:541

据国外媒体报道,近日来自瑞士的研究人员提出了语言模型编程(LMP)这一前沿概念。通过将语言模型提示的范围扩展到简单的文本提示之外,LMP 提供了两种方法的自然混合。

此外,LMP 允许您限制语言模型生成的结果。这允许语言模型的高度抽象,使其能够轻松适应各种活动。研究人员实施 LMQL(语言模型查询语言)以支持 LMP。LMQL 使用来自 LMP 提示的约束和控制流来生成有效的推理技术,从而减少对底层语言模型的昂贵调用的数量。它们展示了 LMQL 可以轻松捕获各种最先进的提示机制,尤其是那些促进交互式流程的流程,而这些流程很难用现有的高级 API 来实现。

检查表明,它们保持或提高了各种下游活动的准确性,同时大大减少了计算时间或财务支出(在付费使用 API 的情况下)。

由于其声明性性质,LMQL 仅指定任务所需的结果,并将逻辑控制流的细节留给另一种语言。它借鉴了 SQL 的思想,但构建在 Python 之上。用户可以向模型提供文本和可编程问题。

该报告确定了该语言语法的五个主要组成部分。解码器的工作是找出文本生成算法背后的秘密。它是一些将数据转化为有用的东西的代码,比如更高质量、更多样化的措辞。

与语言模型交互的基本工具是 Python 语法编写的 Query 块。查询块顶层的每个字符串代表一个单独的查询。查询的目标模型在 Model/from 子句中标识。这指定了生成文本的语言基础,另一方面,Where 子句允许人们设置控制结果的参数。它指定语言模型必须生成什么来维持必要的属性。

LMQL 用户可以对语言模型生成的结果设置复杂的逻辑约束。令牌级预测掩码是根据这些约束自动生成的,因此可以在文本生成一开始就严格执行它们。因此,可以仔细执行各种约束,并且模型将仅生成满足标准的内容。由于改进的输出格式保证,多部分提示和集成变得更加容易。

主要贡献

本研究的作者已经发现并解决了当前 LM 提示方法的几个问题,他们引入了语言模型编程的创新范式。脚本化提示和输出限制是 LMQL(一种 LM 高级查询语言)提供的两个功能。对最终和后续抽象的正式描述,用于急切的部分评估语义。这样,仅给出一些一般准则,就可以自动生成用于 LM 解码的模型特定标记掩码。对 LMQL 的全面分析展示了如何将各种基本和复杂的提示方法表达为简短、易于理解的 LMQL 程序,由于 LMQL 能够将推理成本和执行时间降低多达80%,因此运行速度更快、更准确。

研究人员所做的案例研究表明:

LMQL 的高水平表达能力意味着许多现代、最先进的技术可以用比基于 Python 的同类技术少得多的代码行来实现。使用 LMQL 大大提高了模型查询的数量,从而大大提高了效率和运行时间。得益于 LMQL 的令牌级验证功能,人们可以动态地强制执行约束,而无需采用逐块解码和回溯。LMQL 对模型的准确性没有影响。在某些情况下,施加的限制会导致精度稍微提高。

此外,研究人员还证明,由于观察到计费代币的减少,在付费、API 门控模型中使用 LMQL 可以节省大量资金。最后,他们指出这些案例研究与 LMQL 的综合用户研究是分开的,其中语言的影响和可用性是与现实世界的提示工程师一起评估的。重要的是要记住,缺乏这样的研究会威胁到实用性主张的可信度。

总之,专家们将语言模型编程视为与(巨大)语言模型交互的一种新方法。引入了 LMQL,一种语法简单的高级查询语言。LMQL 的评估语义得到了高效开发,可实现快速查询处理。他们通过案例研究证明了自己的观点,展示了如何将复杂的提示方法转化为简单、清晰、快速的 LMQL 代码,从而可以将计算费用削减多达80%。

0001
评论列表
共(0)条