paint-brush
语法无错误且可推广的法学硕士 (LLM) 工具使用:ToolDec经过@textmodels

语法无错误且可推广的法学硕士 (LLM) 工具使用:ToolDec

太長; 讀書

研究人员提出了 TOOLDEC,一种用于 LLM 的有限状态机引导解码,可减少错误并改善工具使用。
featured image - 语法无错误且可推广的法学硕士 (LLM) 工具使用:ToolDec
Writings, Papers and Blogs on Text Models HackerNoon profile picture
0-item

作者:

(1)加州大学圣巴巴拉分校的张克迅及其同等贡献;

(2)Northwood High School的Hongqiao Chen,以及同等贡献;

(3) 李蕾,卡内基梅隆大学;

(4)威廉杨·王(William Yang Wang),加州大学圣巴巴拉分校。

链接表

3. TOOLDEC:通过有限状态解码使用 LLM 工具

语法正确的工具调用需要引用现有的工具名称并传递符合类型的参数。由于使用有限状态机 (FSM) 可以轻松验证工具调用的语法,因此我们提出了 TOOLDEC,这是一种由 FSM 引导的受限解码算法。在每个解码步骤中,模型都会从词汇表中仅包含语法正确的标记的子集中进行采样。可以根据工具文档构建指定标记子集的 FSM。例如,在图 2 中,为函数 add、exp、square 和 sqrt 构建了一个 FSM。表 2 显示了 TOOLDEC 如何使用 FSM 回答“正方形的边长为 5,它的面积是多少?”这个问题。在 FSM 的指导下,TOOLDEC 实现了以下目标:


• 切换模式。当模型可以自由生成任何文本时,在“文本模式”和当模型只能生成有效的工具调用时在“工具模式”之间切换。


• 生成工具名称。在工具调用开始时,仅从预定义的工具列表中生成正确的现有工具名称。


• 传递参数。仅向工具传递类型一致的参数。

3.1 有限状态解码

TOOLDEC 由有限状态机 (FSM) 引导。FSM 是一个 5 元组 (S, V, g, s0, R),由有限状态集 S、字母表 V、转换函数 g : S ×V → S、初始状态 s0 和一组接受状态 R 组成。在我们的例子中,S 和 g 是根据工具签名构建的。V 是语言模型的标记词汇表。R 对应于可以确定 LM 已完成任务的预定义标记,例如 ''。


图 2:为数学函数 add、exp、square、sqrt 构建的 TOOLDEC 有限状态机,这些函数以整数为参数。工具的名称以 trie 结构表示。“IntFSM”是一个解析整数的子模块。


在每个解码步骤 t 中,TOOLDEC 保持当前状态 s。它只能生成 FSM 允许的标记,即定义 g(s, ·) 的标记。这些


表 2:TOOLDEC 如何使用图 2 中的 FSM 回答“正方形的边长为 5,其面积是多少?”这个问题。在每个时间步骤中,机器中的状态对应于一组有效的下一个标记。我们将所有其他标记归零并重新规范化下一个标记分布,从而强制 LLM 仅对有效标记进行采样。


3.2 构建保证工具调用语法正确的 FSMS



要构建一个 trie,我们需要将所有字符串逐个插入其中。将字符串插入 trie 意味着从根开始沿着字符串所构成的路径向下走,并在路径中的下一步不存在时创建新节点。例如,我们在图 3 中展示了如何将另外两个工具名称 exp10 和 expand 添加到 trie 中。


请注意,字典树的构造取决于一个假设:没有两个工具具有相同的名称。虽然这是一个合理的假设,但在实际应用中可能会有例外。在这种情况下,我们可以重写工具名称以包含更多细节以消除歧义。重写抽象且难以理解的工具名称也可以使语言模型更容易按名称选择它们。


生成语法有效的工具参数。工具参数具有指定的类型。与程序中的参数一样,它们需要遵循某些语法规则。这些规则可以由有限状态机指定。例如,图 2 中的“IntFSM”描述了一个仅接受整数文字的有限状态机。对于工具的所有参数,我们将它们对应的 FSM 链接在一起,并使用与工具名称相对应的最后一个状态作为此 FSM 链的初始状态。请注意,在实践中,没有必要明确构建此 FSM。任何可以告知有效下一个标记集的语法检查器都可以。