教授大型语言模型表达自信心:SaySelf

摘要 大型语言模型(LLMs)经常会生成不准确或虚构的信息,并且通常在面对陌生问题时无法表达其不确定性,这限制了它们的广泛应用。以往的工作通过直接或自一致提示,或构建特定数据集进行监督微调来引导LLMs表达自信心。基于提示的方法表现较差,而基于训练的方法仅限于二进制或不准确的群体级别的置信度估计。在这项工作中,我们提出了先进的SaySelf训练框架,教会LLMs表达更准确细粒度的置信度估计。此外,除了置信度分数,SaySelf还引导LLMs生成自我反思的论证,清晰地识别其参数知识中的差距并解释其不确定性。这是通过使用LLMs自动总结特定知识中的不确定性的自然语言实现的。总结是基于对多个抽样推理链中的不一致性的分析,并利用得到的数据进行监督微调。此外,我们使用精心设计的奖励函数进行强化学习,来校准置信度估计,激励LLMs提供准确、高置信度的预测,并惩罚错误输出中的过度自信。在内部分布和外部分布的数据集上的实验结果证明了SaySelf在减少置信度校准误差和保持任务性能方面的有效性。我们展示了生成的自我反思论证是合理的,并且可以进一步提高校准性能。 引言 大型语言模型(LLMs)在推理和生成有效回答方面展现出了显著的能力,然而它们经常生成不受其训练数据或输入支持的信息(即幻觉),并且通常在面对陌生问题时不愿意表达其不确定性。因此,准确获取LLMs的可靠置信度估计至关重要。以往的工作主要包括基于提示和基于训练的方法来引导LLMs表达置信度。基于提示的方法使用特定提示来生成置信度分数,或者多次提示LLMs生成答案,并使用一致性水平作为置信度指标,但这些方法在置信度校准性能上表现较差或会导致额外的推理延迟。基于训练的方法构建了用于微调的专门数据集,鼓励LLMs表达不确定性。然而,这些方法经常提供次优或二进制的置信度估计,无法准确反映模型的置信度水平。在这项工作中,我们提出SaySelf,一种训练框架,用于教导LLMs生成更准确和细粒度的置信度估计。重要的是,SaySelf不仅限于以往的置信度引导,还使LLMs能够生成自我反思的论证,指出其知识差距并解释其置信度估计。我们通过使用LLMs自动总结多个抽样推理链中的不一致性来实现这一目标,并以第一人称的自然语言表达特定知识的不确定性。为了实现准确的置信度估计,我们使用精心设计的奖励函数进行强化学习,激励LLMs生成准确、高置信度的预测,并惩罚错误输出### SaySelf框架 SaySelf框架由两个关键阶段组成:监督微调和来自任务监督的强化学习。 监督微调阶段 在监督微调阶段,我们的目标是构建一个包含问题、推理链、自我反思论证和置信度估计的监督数据集D。我们通过从LLMs中抽样多个推理链来构建此数据集。然后,我们对抽样的推理链进行聚类,选择每个簇中的一个实例作为代表。为了得到置信度估计c,我们首先使用HotpotQA中的标注答案检查每个簇中的选定实例的正确性。然后,根据每个簇中的推理链的大小Sc计算置信度估计:c = round(Sc / N × 10),其中Sc是推理链的大小,N是抽样次数。 为了得到自我反思论证r,我们指示LLMs仔细分析和比较所有选定的推理链,重点关注提供的知识事实的不一致性。然后,我们要求LLMs从第一人称的角度用自然语言总结“为什么LLMs不确定”。总结即是自我反思论证r。我们在附录A中提供了用于生成自我反思论证的提示。 通过监督微调,我们使用D对LLMs进行微调。目标函数如下: 其中Θ表示LLMs的参数,c’是置信度估计c的自然语言表达。 来自任务监督的强化学习阶段 由于监督微调的性质,模型往往会产生相同的置信度水平,例如正确答案的置信度较低,错误答案的置信度较高。为了解决这个问题,我们使用强化学习进一步校准LLMs的置信度估计,并鼓励模型生成更准确、区分度更高的值。在采样阶段,LLMs被要求生成答案、自我反思论证和置信度水平。为了优化模型,我们根据与标准答案的对比评估生成的答案,并设计了一个奖励函数。奖励函数考虑了答案的准确性和置信度。为了鼓励模型产生更多区分度的值,奖励函数具有二次输出。 我们使用Proximal Policy Optimization(PPO)算法对LLMs进行训练,根据定义的奖励函数进行优化。 实验结果 我们在多个数据集上进行了实验,包括HotpotQA、TruthfulQA、StrategyQA、FEVER、HaluEval和ParaRel。我们衡量了置信度校准性能、任务性能以及自我反思论证的准确性。 实验结果表明,SaySelf在减少置信度校准误差、提高置信度区分度和保持任务性能方面显著优于基线方法。与其他基线方法相比,SaySelf在各方面的表现都有显著提升。 结论 本文提出了SaySelf框架,用于从LLMs中获取更准确和细粒度的置信度估计和自我反思论证。SaySelf通过监督微调和基于任务的强化学习两个阶段实现。我们的实验结果验证了SaySelf在减少置信度校准误

探索SaySelf:让大型语言模型表达信心的自我反思方法

在当今人工智能领域,大型语言模型(LLMs)已经展现出令人惊叹的推理和生成有效响应的能力。然而,它们在生成不准确或虚构信息(即“幻觉”)方面也存在显著问题,且通常无法明确表达它们的信心水平。这大大限制了它们的应用范围。那么,有没有一种方法可以让这些模型更准确地表达信心,并提供自我反思的理由呢?本文将带您探索一种全新的训练框架——SaySelf,它旨在解决这一问题。 1. 了解SaySelf的背景 大型语言模型在面对陌生问题时,常常会生成虚构信息,而无法准确传达其信心水平。之前的研究尝试通过直接提示或自一致性提示等方法来引导模型表达信心,但这些方法的效果并不理想。此外,构建专门的数据集进行监督微调的方法也存在局限性,通常只能生成二元或不准确的组级信心估计。 先前方法的局限性 2. SaySelf的创新之处 SaySelf不仅仅是一个训练框架,它还教会模型生成更精细的信心估计,并通过自我反思的理由解释其不确定性。 自我反思的理由 SaySelf通过自动总结模型在特定知识上的不确定性,生成自我反思的理由。这一过程基于对多个推理链条不一致性的分析,生成的数据用于监督微调。具体步骤如下: 强化学习的作用 为了校准信心估计,SaySelf采用了一种精心设计的奖励函数,通过强化学习激励模型生成准确的高信心预测,并对错误输出中的过度自信进行惩罚。 3. 实验结果与应用 在多个数据集上的表现 实验结果表明,SaySelf在多个数据集(包括分布内和分布外的数据集)上显著降低了信心校准误差,并保持了任务性能。此外,生成的自我反思理由合理,可以进一步改进校准性能。 应用前景 SaySelf的研究成果不仅对相关学术研究具有影响,还在实际应用中具有广泛的潜力,包括但不限于以下几个方面: 4. 结语 SaySelf为大型语言模型的信心表达和不确定性解释提供了一种创新的方法。通过监督微调和强化学习的结合,SaySelf不仅提高了模型的信心校准精度,还生成了有助于理解模型内部不确定性的自我反思理由。未来,SaySelf有望在提高AI的可信度和互动性能方面发挥重要作用。 参考文献 Xu, T., Wu, S., Diao, S., Liu, X., Wang, X., Chen, Y., & Gao, J. (2024). SaySelf: Teaching LLMs to Express Confidence with Self-Reflective Rationales. arXiv preprint arXiv:2405.20974. 链接 通过这篇文章,希望您能对SaySelf这一创新的训练框架有更深入的了解,并期待它在未来的广泛应用中发挥更大的作用。

教会大语言模型表达自信:自我反思性解释的应用

摘要: 大型语言模型(LLM)在回答问题时,经常会生成不准确或捏造的信息,并且通常无法表明其置信度,这限制了它们的广泛应用。本文将介绍一种名为 SaySelf 的全新训练框架,它能够教会 LLM 表达更准确、更细粒度的置信度估计,并生成自我反思性解释,以明确识别其参数知识中的差距并解释其不确定性。 一、LLM 的困境:幻觉与不确定性 大型语言模型(LLM)虽然在推理和生成方面表现出色,但它们也经常会生成不准确或捏造的信息,我们称之为“幻觉”。更糟糕的是,当面对不熟悉的问题时,LLM 通常无法表达其不确定性。 “LLMs’ hallucination refers to instances where these models generate information that is not supported by their training data or the input provided.” 现有的 LLM 置信度获取方法主要分为基于提示和基于训练两种。基于提示的方法使用特定提示引导 LLM 生成置信度分数,或使用答案一致性作为置信度指标,但这些方法的校准性能较差,或会显著增加推理延迟。基于训练的方法则开发专门的数据集进行微调,鼓励 LLM 表达置信度,但这些方法通常只能提供次优或二元置信度估计,无法准确反映模型的置信度水平。 二、SaySelf:教会 LLM 表达自信 SaySelf 是一种训练框架,旨在教会 LLM 生成更准确、更细粒度的置信度估计,并生成自我反思性解释,以明确识别其参数知识中的差距并解释其不确定性。 2.1 监督微调:构建包含自我反思性解释的数据集 SaySelf 的第一步是构建一个包含自我反思性解释和置信度估计的模型特定数据集。 2.2 强化学习:校准置信度估计 为了进一步校准 LLM 的置信度估计,SaySelf … Read more

Analysis of “SaySelf: Teaching LLMs to Express Confidence with Self-Reflective Rationales”

This paper introduces SaySelf, a novel framework designed to address the limitations of Large Language Models (LLMs) in expressing confidence and acknowledging uncertainty. The key contributions and findings are: Problem: LLMs often generate inaccurate information (hallucination) and struggle to convey their confidence levels, limiting their reliability and trustworthiness. Proposed Solution: SaySelf SaySelf is a two-stage … Read more

解密 Llama:探秘大型语言模型的训练之道 – 损失函数篇

大型语言模型 (LLM) 如 Llama,凭借其强大的文本生成能力,在聊天机器人、机器翻译、代码生成等领域掀起了一场技术革命。而这卓越性能的背后,离不开精心设计的训练过程,其中损失函数扮演着至关重要的角色,它引导着模型不断优化,最终达到令人惊叹的效果。 1. 损失函数:指引模型学习的方向 试想一下,训练 LLM 就像教孩子学习写作。我们会给孩子看大量的文章,并告诉他们哪些写得好,哪些写得不好,以及如何改进。在这个过程中,评价文章好坏的标准就是损失函数。 对于 LLM 来说,损失函数的目标是衡量模型预测的文本序列与真实文本序列之间的差异。损失函数的值越小,说明模型预测得越准确,反之则说明模型需要进一步调整。 2. Llama 的利器:交叉熵损失函数 Llama 主要使用交叉熵损失函数 (Cross-Entropy Loss) 进行训练。 2.1 交叉熵:信息论与概率的邂逅 交叉熵的概念源于信息论,用于衡量两个概率分布之间的差异。在 LLM 中,这两个概率分布分别代表: 2.2 以公式阐述本质 假设我们要预测一句话的下一个词,模型预测的概率分布为 [0.1, 0.2, 0.3, 0.4],而真实概率分布为 [0, 0, 1, 0],这意味着真实的下一个词是第四个词。交叉熵损失函数的计算公式如下: 可以看出,交叉熵损失函数鼓励模型预测的概率分布尽可能接近真实概率分布。 3. 优化算法:雕琢模型的利器 仅仅定义损失函数还不够,还需要选择合适的优化算法来最小化损失函数。Llama 通常使用** Adam 优化器**,它结合了 Momentum 和 RMSprop 两种优化算法的优点,能够高效地更新模型参数,使其朝着损失函数减小的方向调整。 4. 总结 损失函数是 LLM 训练的核心,它引导着模型学习语言的规律,最终生成流畅自然的文本。Llama 使用交叉熵损失函数和 Adam 优化器,在海量文本数据上进行训练,最终成就了其强大的文本生成能力。 … Read more

Llama训练过程中,如何制定 损失函数

在训练语言模型(如LLaMA)时,损失函数(Loss Function)的选择和制定非常重要。损失函数用于衡量模型的预测与实际目标之间的差异,并指导模型参数的更新,以提高模型的性能。对于语言模型,通常使用交叉熵损失函数(Cross Entropy Loss),但具体的实现可以根据不同的任务和需求进行调整。 以下是制定损失函数的一般步骤和考虑因素: 示例代码 下面是一个简化的示例代码片段,展示了如何在训练循环中计算交叉熵损失: 上述步骤和示例代码展示了如何在语言模型(如LLaMA)的训练过程中制定和计算损失函数。接下来,我们可以进一步优化和扩展这个流程,考虑更多实际训练中的细节。 进一步优化和扩展 总结 在训练语言模型(如LLaMA)时,制定损失函数的关键步骤包括选择适当的损失函数(通常为交叉熵损失),确保输入和输出形状匹配,考虑掩码来处理填充部分,以及使用优化器和反向传播来更新模型参数。进一步优化可以包括梯度裁剪、学习率调度器和有效的批量处理等方法。 通过这些步骤和优化技巧,可以有效地训练语言模型,使其在语言生成任务中表现出色。

自我精炼:让语言模型更懂你

引言 在人工智能的世界里,语言模型(LLMs)如同一颗颗璀璨的明珠,它们通过深度学习技术,能够理解、生成和处理自然语言。然而,如何让这些模型更贴近人类的思维和偏好,一直是研究者们追求的目标。近期,一种名为“直接策略优化”(Direct Policy Optimization, DPO)的方法引起了广泛关注,它通过简化的训练流程,试图让语言模型更懂人心。但DPO方法也存在不足,它没有充分考虑正面和负面反馈的相对质量,可能导致次优的训练结果。为了解决这一问题,研究者们提出了一种新的方法——自我精炼。 什么是自我精炼? 自我精炼是一种利用语言模型内部知识来评估和提升模型性能的技术。它通过设计一种精细化的函数,来估计正面和负面响应的质量。这种方法不需要额外的标注数据,而是依靠模型自身的能力来进行自我提升。 从DPO到自我精炼 DPO方法通过直接优化策略来提高模型性能,但它并没有区分不同响应的相对质量。自我精炼方法通过引入一个调整函数,来优化DPO的损失函数,使其能够更好地区分正面和负面响应。 实验验证 研究者们在多个评估者上进行了实验,结果表明自我精炼方法能够有效提升模型性能。无论是在多轮对话还是在单轮对话中,自我精炼的模型都展现出了优越的表现。 自我精炼的实践应用 写作助手 想象一下,你正在撰写一篇关于自然选择的文章。使用自我精炼的语言模型,可以生成更加详尽和准确的内容,比如解释自然选择如何促进物种的进化和适应。 客户服务 在客户服务领域,自我精炼的语言模型可以帮助快速生成诚恳且具有说服力的道歉信,向客户解释订单延迟的原因,并保证问题已得到解决。 探索世界 自我精炼的语言模型也能提供有趣的信息,比如解释为什么有人会选择使用纸质地图而不是依赖GPS设备,或者解释地球上每天发生的闪电次数。 结论 自我精炼方法通过利用语言模型的内在知识,提升了模型对人类偏好的对齐能力。这一方法不仅能够提高模型的性能,还能够减少训练时间和资源消耗。随着技术的不断进步,我们有理由相信,未来的语言模型将更加智能,更能够理解并满足我们的需求。 Q: 这篇论文试图解决什么问题? A: 这篇论文探讨了如何通过直接策略优化(Direct Policy Optimization, DPO)改进大型语言模型(Large Language Models, LLMs)的行为与人类偏好的一致性。DPO是一种替代传统基于强化学习的人类反馈(Reinforcement Learning from Human Feedback, RLHF)的方法,它避免了额外训练和存储奖励模型的需要。然而,DPO并没有考虑正面和负面响应的相对质量,可能导致次优的训练结果。为了解决这个问题,论文提出了一种利用LLMs内部知识来评估响应质量并帮助优化损失函数的方法。具体来说,论文的主要贡献包括: 实验结果表明,所提出的自精细化方法能够改进经过微调的模型的性能,与DPO和IPO相比有所提高。 Q: 有哪些相关研究? A: 在这篇论文中,提到了若干与直接策略优化(DPO)和强化学习从人类反馈(RLHF)相关的研究。以下是一些主要的相关研究: 这些研究为本文提出的自精细化方法提供了理论基础和实验背景。通过结合这些现有研究的成果,本文的方法旨在提高LLMs的训练效果,使其更好地符合人类的偏好和期望。 Q: 论文如何解决这个问题? A: 论文通过以下几个步骤解决大型语言模型(LLMs)与人类偏好对齐的问题: 通过这些步骤,论文展示了如何通过利用LLM的内在知识来提高模型对人类偏好的对齐程度,从而解决DPO方法在考虑正面和负面响应相对质量方面的不足。 Q: 论文做了哪些实验? A: 论文中进行了以下实验来验证所提出方法的有效性: 通过这些实验,论文证明了所提出的自精细化方法在多个方面改进了现有直接对齐方法的性能,并且在不同数据集和评估者上都表现出了鲁棒性。 Q: 有什么可以进一步探索的点? A: 尽管这篇论文提出了一种有效的自我精细化方法来改进大型语言模型(LLMs)的对齐,但仍有一些潜在的研究方向可以进一步探索: … Read more

代码预训练:提升语言模型实体追踪能力的新途径

引言:语言模型的新突破 在人工智能领域,语言模型的能力一直在不断进化。最近,一项引人注目的研究表明,通过在代码上预训练语言模型,能够显著提升模型对自然语言中实体状态变化的追踪能力。这项研究不仅为我们揭示了语言模型的新潜力,也为未来的智能应用提供了新的思路。 实验探索:代码与数学的双重奏 研究者们通过一系列系统实验,比较了在基础模型上进一步训练的模型,这些模型除了基础数据外,还额外训练了大量的代码数据。实验结果表明,经过代码训练的模型在实体追踪任务上的表现明显优于基础模型。与此同时,研究者们也探讨了数学训练和对齐调整(alignment tuning)对模型性能的影响,但发现这两种方法并没有带来一致的性能提升。 实体追踪的重要性 实体追踪是理解长文本和进行规划等关键能力的重要组成部分。例如,在解析一个食谱时,智能体需要追踪不同实体(如食材)的变化。以往的研究表明,一些基于Transformer的大型语言模型(如GPT-3.5)展现出了非平凡的实体追踪能力,而GPT-3等模型则似乎缺乏这种能力。 代码训练的魔力 代码训练为何能提升实体追踪能力呢?研究者们推测,这可能是因为在编写代码时,正确地追踪变量的状态非常重要。这种程序化的输入可能比纯自然语言文本提供了更强的训练信号。通过实验,研究者们发现,即使是较小的模型,经过代码训练后,在处理影响盒子状态的操作数量较少的情况下,性能也有了显著提升。 数学训练与对齐调整的探索 尽管代码训练表现出色,但数学训练和对齐调整的效果则不那么明显。数学训练可能在某些情况下提供边际效益,但并不一致。对齐调整则根据不同的模型和训练方式表现出不同的效果,有时甚至不如未调整的模型。 结论与未来展望 这项研究为理解如何通过代码预训练提升语言模型的性能提供了新的视角。未来的研究将进一步探索代码训练是如何赋予模型实体追踪和其他推理能力的。随着技术的不断进步,我们有理由相信,语言模型将变得更加智能,更好地服务于人类。 参考文献 Q: 这篇论文试图解决什么问题? A: 这篇论文探讨了预训练语言模型时加入代码数据是否能提升模型追踪话语实体状态变化的能力。具体来说,论文的主要目标是系统性地测试以下假设: 通过这些实验,论文发现,与基础模型相比,额外经过大量代码训练的模型在实体追踪任务上表现更好。然而,数学训练和对齐调整并没有在各种模型家族中显示出一致的益处。 Q: 有哪些相关研究? A: 论文中提到了以下相关研究,它们探讨了将代码包含在预训练数据中对大型语言模型(LLMs)的影响: 这些研究为本文提出的假设提供了背景和支持,即代码预训练可能对提高语言模型在实体追踪等推理任务上的表现有积极影响。 Q: 论文如何解决这个问题? A: 论文通过以下步骤解决提出的问题: 通过这些步骤,论文提供了对代码预训练、数学训练和对齐调整对语言模型实体追踪能力影响的系统性评估。 Q: 论文做了哪些实验? A: 论文中进行了三个主要实验来评估代码预训练、数学训练和对齐调整对语言模型实体追踪能力的影响。以下是每个实验的概述: 实验1:代码预训练的影响 实验2:数学预训练的影响 实验3:对齐调整的影响 每个实验都使用了“盒子任务”来评估模型的实体追踪能力,该任务要求模型根据对盒子内容的描述和随后的状态改变操作来报告每个盒子的内容。实验结果被细分为针对目标盒子的操作数量,以区分需要追踪状态变化的非平凡案例和简单的复制初始状态描述的平凡案例。 Q: 有什么可以进一步探索的点? A: 论文在讨论部分提出了一些未来研究的方向,以下是可以进一步探索的关键点: 这些探索点可以帮助研究者更深入地理解语言模型的能力和局限性,并推动自然语言处理领域的进一步发展。 Q: 总结一下论文的主要内容 A: 这篇论文的主要内容可以总结如下: 整体而言,这篇论文提供了对代码预训练、数学训练和对齐调整对语言模型实体追踪能力影响的系统性评估,并为未来的研究方向提供了指导。

五月AI领域人物与项目盘点

大家好,今天我想和大家分享一些在五月份遇到的有趣人物和项目。这些项目和人物在AI领域里都各自有着独特的光芒和成就。 AIPPT AIPPT是一个在国外已经火了一年的产品,而它在国内的火爆和盈利能力,说明它做对了几个非常巧妙的点。它通过卖会员,一个月能有400万的收入,在AI工具产品里找不到第二个。虽然AI在这个产品中只占了20%,但剩下的编辑器和模板库的功夫,让这个赛道相对干净,大公司看不上,也不会做太细。AIPPT正在出海,寻求更大的发展空间。 One2X One2X是由两位朋友新成立的公司,他们的产品方向是文字转视频工具,目标是找到下一个视频消费形态,颠覆字节。他们的小目标是先赚钱养活自己,同时他们对AI产品和算法的理解是业界顶流。有归藏老师作为产品顾问,也拿到了顶级VC的投资,值得后续持续关注。 Folotoy Folotoy是王乐要做的99块钱的AI玩具,目的是让大模型+玩具能普及到每个孩子。他们的团队不到10个人,已经能够交付AI硬件,并且产品已经卖到中东和美国。他们的硬件迭代速度比一些软件公司还快,是一个快速成长的团队。 阅览室 Junyu的阅览室有着“让认真阅读的人在互联网上有栖身之地”的使命。阅览室的环境非常好,采光极佳,是一个适合阅读和思考的地方。Junyu的AI新产品即将推出,虽然开发速度慢,但慢工出细活。

解密商业文档信息提取:让电子文档处理工具为我们效力

在现实生活中,我们常常需要将商业文档中的信息转化为结构化的格式,以便后续的系统能够解析和使用。这个过程被称为商业文档信息提取(Business Document Information Extraction,简称BDIE)。BDIE主要包括两个任务:关键信息提取(Key-Information Extraction,简称KIE)和行项目识别(Line Items Recognition,简称LIR)。本文将介绍一种全新的方法,即”检索增强结构化生成”(Retrieval Augmented Structured Generation,简称RASG),用于解决BDIE问题,并在相关基准测试中取得了最先进的成果。 什么是商业文档信息提取? 商业文档信息提取是将非结构化信息(如原始文本、扫描文档等)转化为结构化格式的过程,使其可以被后续的系统解析和使用。其中,关键信息提取的目标是将文档中的信息提取出来,并按照键值对的形式进行格式化。而行项目识别的目标是将信息提取为一系列行项目,其中每个行项目对应表格中的一行,并以列键值对的形式进行格式化。与表格结构识别不同的是,行项目识别不关注列的顺序,只要能够正确地将列映射到预定义的列键即可。 检索增强结构化生成 检索增强结构化生成(RASG)是一种由四个组件组成的方法:检索增强生成(Retrieval Augmented Generation)、监督微调(Supervised Finetuning)、结构化生成(Structured Generation)和结构化提示(Structured Prompting)。这些技术可以提高机器学习模型使用工具的能力,从而改善BDIE任务的性能。 RASG的四个组件是相互关联的: 这四个组件在使用开源的7B大型语言模型(LLM)Hermes 2 Pro – Mistral 7B上可以取得最先进的BDIE结果。然而,在使用GPT-3.5模型时,只需要其中的一个子集即可。 监督微调中的注意事项 监督微调的目标是使语言模型既能输出正确的内容,又能输出正确的结构。为了确保模型输出的结果可以被后续系统解析,我们需要将无效标记的概率置零。然而,简单地将监督微调和结构化生成相结合往往会导致结果不佳。主要存在以下两个问题: 边界框反向计算的启发式算法 对于关键信息提取任务,我们发现一个简单的贪婪算法(算法1)就足以用于边界框的反向计算。如果要使用整个页面,可以将下边界和上边界分别设置为0和页面的高度(以像素为单位)。对于行项目识别任务,一个好的启发式算法是:(1)将页面在垂直方向上划分为多个块,每个块对应一个行项目;(2)使用上述算法1为每个行项目的分配的单词块中的单词反向计算边界框。挑战在于如何划分页面。 算法1:边界框反向计算的启发式算法 这种方法的时间复杂度为O(MN^2 * Algo1),其中M是行项目的数量,N是页面的高度。我们可以通过降低页面的规模来优化这个复杂度。在实际生产中,我们使用N=128。此外,我们利用算法1的单调性进行优化:匹配分数随着上边界的增加和下边界的减小而不增加。因此,我们可以使用分治优化来加速计算,将复杂度优化为O(MNlogN * Algo1)。最后,我们使用二分搜索来找到第一个行项目的最大下边界和最后一个行项目的最小上边界,以缩小边界范围。 通用行项目识别度量 行项目识别的目标是将信息提取为有序的行项目列表,其中每个行项目对应表格中的一行,并以列键值对的形式进行格式化。为了评估行项目识别的性能,我们需要一个具备以下属性的度量方法: 目前存在的行项目识别度量方法中,ANLS*和DocILE使用基于最大权重二分图匹配的算法进行行匹配,因此不满足属性#6。此外,DocILE支持单元格内容和单元格位置的识别,但无法隔离这两个方面,这使得它无法用于只进行单元格内容或单元格位置识别的任务。GriTS满足上述所有属性,但不满足属性#7。 在接下来的部分,我们将介绍一种新的度量方法,称为通用行项目识别度量(General Line Items Recognition Metric,简称GLIRM),它满足上述所有属性。GLIRM可以看作是ANLS*和DocILE的扩展,使其满足属性#1和属性#6,同时也是GriTS的一种推广,使其满足属性#7。 GLIRM中的相似度匹配分数 根据属性#1和属性#4,我们将使用𝑓(𝑐ₚ, 𝑐ₜ)表示预测单元格𝑐ₚ和真实单元格𝑐ₜ之间的相似度度量。𝑓可以是适用于特定下游任务的任何相似度度量方式,如产品参考编号的精确匹配、边界框的交并比等。为了使度量方法类似于F1得分,我们需要将𝑓限制在0到1之间:0 ≤ 𝑓(𝑐ₚ, 𝑐ₜ) ≤ 1,对于所有𝑐ₚ, 𝑐ₜ。我们将使用𝑔𝑓(𝑟ₚ, 𝑟ₜ)表示预测行𝑟ₚ和真实行𝑟ₜ中对应单元格的相似度分数之和。 行匹配 … Read more