轻量化大语言模型:高效生成结构化数据

轻量化大语言模型:高效生成结构化数据

当今生成模型的一个重要特性是,能够将非结构化、部分结构化或结构不良的输入转换为符合特定模式的结构化对象,例如关系数据库固定模式、文档存储灵活模式、函数签名、API规范等。

大型语言模型如果被提示了所有模式规范和处理输入的指令,可以执行此任务。此外,当今大多数LLM都包含专用的JSON模式或结构化输出模式,为用户抽象掉部分此类提示工程。

然而,这种方法有一些局限性。首先是在需要扩展到拥有数百万或数十亿记录或请求的数据库时,使用LLM的成本较高;其次是提示工程的潜在复杂性;第三是内置JSON和结构化输出模式所能支持的模式复杂性有限。

在两篇近期发表于自然语言处理实证方法会议(EMNLP)和arXiv的论文中,我们以专门的轻量化结构化对象语言模型(SoLM)的形式提出了针对此问题的原生方法。与通用LLM不同,SoLM被训练为仅生成特定模式下的对象。SoLM的贡献包括一种名为自监督去噪的特殊训练方法,以及一种在推理时使用的特殊解码方法,称为置信感知子结构束搜索(CABS),以降低幻觉风险。

在实验中,我们发现SoLM的输出精度匹配或超过了最先进的LLM,而其成本效益要高出一个数量级。我们还发现,在产品属性生成问题上,当精度固定在90%时,CABS解码方法相对于传统的束搜索解码将召回率提高了16.7%。

应用

在我们的论文中,我们将多个看似无关的AI/ML问题统一在结构化输出的框架下。例如,当结构化对象具有多个方面,或存在相互依赖的冗余信息时,就会出现一个挑战。对象的一个方面可能是自然语言的较长描述性文本;其他方面可能是受类型约束的简短结构化事实。

这类多方面的对象常见于列表场景(产品、房屋、工作等),其中对象包含描述性部分和列出关键属性的部分。SoLM使我们能够生成具有这些不同类型方面的对象,同时确保对象内部的相对一致性和相对于世界知识的绝对一致性。

结构化输出模型的典型用法是向其输入一段非结构化数据,并让它生成相应的结构化对象。在我们的论文中,我们还提出将SoLM用作所谓的“自我再生机器”。在这种情况下,我们仅向模型输入一个已经根据模式结构化的对象,并让模型端到端地重新生成它。

此时,任务不再是结构化输入,而是清理、规范化、纠正和/或完善它,并使其内部一致。当然,输入可以包含任何组合:已经结构化的记录加上额外的非结构化内容,或者一个根据不同模式结构化的记录。SoLM对输入是不可知的,它将始终根据目标模式生成干净的记录。

自我再生机器可以同时解决多个问题:补全缺失的事实、纠正不正确的事实、规范化未规范化的事实、补全缺失的描述、纠正描述中的不准确信息。所有这些任务都是相互依赖的,当独立处理时会产生依赖循环(例如,应该从描述中提取事实,还是根据事实编写描述?)。自我再生以最自然的方式解决了这些依赖关系。

创新

为了训练SoLM模型,我们使用了自监督去噪。其思想是使用现有数据库中的任何对象样本,向这些对象中引入人工噪声,并训练模型恢复其原始形式。因此,模型学会提高我们输入的任何对象的质量。通过使噪声更具攻击性,例如完全去除对象的结构或随机打乱标记,我们不仅教会模型提高现有对象的质量,还教会其处理完全非结构化的输入。

虽然LLM的训练只是为了生成标记序列中最可能的下一个标记,但在推理时,它们通常使用不同的解码策略来选择输出。最流行的方法之一是束搜索解码,模型在其中并行考虑多个候选序列,最终选择累积概率最高的序列。(在每个步骤中简单地选择最高概率的标记——贪婪解码——并不能保证在固定步数内获得最高概率的标记序列。)模型同时考虑的序列数量称为束宽。

SoLM的输出由一系列键值对组成,其中键是模式中的某种数据类型(例如产品列表模式中的“品牌”),值是该类型的值(例如特定产品的品牌)。我们还使用特殊的标记(“”和“”)来分隔键和值。

在置信感知子结构束搜索中,键值对(而非单个标记)是束搜索的原子组件。键值对的概率可以从LLM对其输出的置信度推断出来。但我们也尝试了一个单独训练的置信度评分模型,该模型以LLM某个内层产生的中间表示为输入。实际上,这种方法比直接依赖模型的置信度得分效果更好。

在我们的论文中,我们展示了拥有70亿参数的SoLM模型,在事实的完整性、事实的正确性以及描述性内容的质量和真实性等指标上,匹配或超越了针对更大型基础模型的各种提示工程技术。通过CABS解码,我们通过移除解码过程中产生的幻觉事实,进一步提高了事实的正确性。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

posted @ 2025-12-16 17:19  CodeShare  阅读(2)  评论(0)    收藏  举报