xFinder:针对大型语言模型的稳健且精确的答案提取

xFinder:针对大型语言模型的稳健且精确的答案提取​【1】
在这里插入图片描述

【摘要】大型语言模型 (LLM) 的不断进步使人们越来越关注开发公平可靠的方法来评估其性能的关键问题。特别是,测试集泄漏、提示格式过拟合等主观或非主观作弊现象的出现,对LLM的可靠评估提出了重大挑战。由于评估框架通常使用正则表达式 (RegEx) 进行答案提取,因此某些模型可能会调整其响应以符合正则表达式易于提取的特定格式。然而,基于正则表达式的关键答案提取模块经常出现提取错误。本文对整个 LLM 评估链进行了全面分析,证明优化关键答案提取模块可以提高提取准确率,减少 LLM 对特定答案格式的依赖,增强 LLM 评估的可靠性。为了解决这些问题,我们提出了 xFinder,这是一种专门为关键答案提取而设计的模型。作为此过程的一部分,我们创建了一个专门的数据集,即 Key Answer Finder (KAF) 数据集,以确保有效的模型训练和评估。通过真实场景下的泛化测试和评估,结果表明,只有 5 亿个参数的最小 xFinder 模型的平均答案提取准确率为 93.42%。相比之下,最佳评估框架中的正则表达式准确率为 74.38%。与现有的评估框架相比,xFinder 表现出更强的鲁棒性和更高的准确性。xFinder 的所有资源均可在 https://github.com/IAAR-Shanghai/xFinder 获得。

1.介绍

在这里插入图片描述
在这里插入图片描述

图 1: 典型的 LLM 评估管道。
一项系统评价揭示了现有评估管道的各个阶段存在多种不可靠性,如图 1 所示。

当前的评估框架主要依靠正则表达式 (RegEx) 从模型输出中提取答案。例如,他们可能会选择**“答案是”等短语后面的内容作为关键响应**。然而,许多LLM无法生成标准化答案,这使得从输出中提取关键答案变得复杂。图 2 说明了当前评估框架未能正确提取响应的实例。常规规则无法提取答案的主要情况有两种:首先,当模型没有对评估问题产生相关响应时,其次,当模型的响应不符合标准时。在第一种情况下,**将模型未能提供相关响应归类为错误是不合理的,因为评估旨在衡量模型的知识理解和推理能力,而不仅仅是其跟踪能力。**在第二种情况下,尽管 LLM 的响应有效地解决了问题,但响应的非标准格式阻碍了使用 RegEx 的正确提取,从而导致“错误判断”
在这里插入图片描述
在这里插入图片描述
图 2: LM Eval Harness 和 OpenCompass 无法提取关键答案的情况。A/T/C/M 分别代表具有字母/短文本/分类标签/数学选项的任务。

为了构建 xFinder,我们最初创建了 Key Answer Finder (KAF) 数据集。该训练集用于微调 xFinder,我们成功微调了 19 个不同大小的 LLM,所有这些 LLM 在测试集和泛化集上都表现良好。例如,在测试集上,xFinder-qwen1505 的平均提取准确率为 96.88%。为了确保 xFinder 的泛化性,我们使用原始 KAF 数据集之外的不同任务上各种模型的输出构建了一个泛化集。xFinder-qwen1505 在该数据集上实现了 93.42% 的平均提取准确率,证明了该模型具有很大的通用性。最后,为了确保实验设置的一致性,我们利用 xFinder 和传统评估框架的正则表达式答案提取模块,在真实条件下对 10 个 LLM 进行一组通用评估任务,随后对 10 个 LLM 的表现进行排名。我们发现,现有框架中基于正则表达式的关键答案提取组件往往无法正确提取答案或根本无法提取答案。此外,不同评估框架产生的排名显示出显着的不一致。相比之下,我们微调的各种规模的 xFinder 模型在 LLM 排名中实现了高度一致性,在评估结果中表现出更高的稳定性。

2.相关工作

回顾了评估工作,统一 LLM 评估框架,微调 LLM 进行评估。

3.问题定义

定义了什么是无效答案和最符合的答案。

4.方法论

详细介绍 xFinder 的实现过程,包括 KAF 数据集的构建和 xFinder 的训练,如图 3 所示。
在这里插入图片描述在这里插入图片描述

图 3: 研究框架示意图。前三个阶段分别对应于第 4.1、 4.2 和 4.3 节 ;最后阶段说明了在当前评估管道中用 xFinder 替换正则表达式。 第 5.2 节 中的实验证明了我们的方法在此管道中的有效性。注意:图中围绕“不可靠评估”的百分比 80.3%、77.0% 和 2.2% 分别表示 Llama3-8B-Instruct 模型在 GSM8K 基准测试上通过 LM Eval Harness、OpenCompass 和 UltraEval 框架使用正则表达式评估的结果,而我们的方法获得了 80.2% 的可靠结果。

5.实验

在这里插入图片描述
表 1: KAF 测试集提取精度比较:主流框架与 xFinder 模型。具体来说,xFinder-qwen1505、xFinder-qwen1518、xFinder-gemma7、xFinder-chatglm36base 和 xFinder-llama38 分别是使用 Qwen1.5-0.5B、Qwen1.5-1.8B、Gemma-7B、ChatGLM3-6B-base 和 Llama-8B 上的 KAF 训练集进行微调的模型。

在这里插入图片描述
表 2: KAF 泛化集的提取精度比较:主流框架、GPT-4 和 xFinder 模型。具体来说,xFinder-qwen1505 和 xFinder-llama38it 分别表示使用 Qwen1.5-0.5B 和 Llama3-8b-instruct 上的 KAF 数据集进行微调的模型。

在这里插入图片描述
图 4: 凹凸图:LLM 在不同评估框架上的排名变化。

6.局限性

尽管 xFinder 取得了令人鼓舞的成果,但我们必须承认一些局限性。我们最小的 xFinder 模型只有 5 亿个参数,作为评估任务中的关键答案提取组件表现良好。尽管如此,对于一些研究人员来说,部署成本可能仍然很高。未来,我们承诺通过探索模型压缩技术来不断更新 xFinder,以支持更小的版本,从而有可能实现 CPU 部署,从而进一步增强 xFinder 的灵活性。

7.结论

在本文中,我们分析了现有 LLM 评估框架中可能导致评估结果不可靠的关键因素,强调 LLM 响应中的关键答案提取模块是一个薄弱环节。为了解决这个问题,我们引入了一种关键答案提取模型 xFinder,专门用于提取 LLM 响应中的关键答案。大量的实验结果表明,与现有的基于正则表达式的关键答案提取方法相比,xFinder 可以更准确、更高效地从 LLM 输出中提取关键答案,从而提高评估可靠性。本研究标志着构建可靠评价框架的第一步。未来,我们将继续解决法学硕士可靠性评估中的其他关键问题,为准确评估法学硕士表现奠定基础。

8. 附录例子

在这些图中,红色部分代表系统提示,蓝色部分代表演示内容,黑色部分则代表问题。
在这里插入图片描述
在这里插入图片描述
图27: 用于生成 LLM 响应的 5-shot-cot-restrict 提示(以 alpha 选项类型问题为例)。

在这里插入图片描述

你是一名协助人员,负责从给出的输出句子中提取出准确的关键答案。你只需提供提取出的关键答案,不得添加任何其他文字。 我会给出一个问题,然后提供输出句子以及答案范围。输出句子是针对所给出问题的回答。答案范围可以是描述预期答案的类型,也可以是列出所有可能的有效答案。根据所提供的信息,您必须准确且精确地确定并提取出与输出句子内容相匹配的、符合答案范围的关键答案。请不要对问题发表主观看法。首先,您需要确定输出句子的内容是否与给定的问题相关。如果整个输出句子与问题毫无关联(即输出句子没有回答问题),则输出“无有效答案”。否则,忽略与问题无关的部分,然后提取与答案范围相匹配的关键答案。以下是您需要注意的一些特殊情况: (1)如果输出的句子给出了多个不同的答案,需仔细判断后续给出的答案是对之前答案的修正还是修改。如果是修正或修改,则将此修正或修改后的答案作为最终回复。相反,如果输出的句子在多个答案之间反复变化,且没有明确的最终答案,应输出“无有效答案”。 (2)如果答案范围是一个列表,而输出句子中的关键答案并未明确列在答案范围内的候选选项之中,那么也应输出“无有效答案”。 问题:(问题) 输出句子:{语言模型回复} 关键答案类型:(关键答案类型) 答案范围:(答案范围) 关键提取的答案:

图 32:xfinder 提取关键答案的提示框。

Github【2】

快速入门

  1. 创建基准数据集:为了利用 xFinder 进行评估过程的简化,我们已将各种主流的基准数据集统一转换为统一的 JSON 格式。有关具体实施细节,请参考 create_benchmark_dataset.py 脚本。如果您希望使用 xFinder 对自己的数据集进行评估,请参考我们提供的脚本模板 benchmark_dataset_template.py 以获取格式转换指导。
  2. 准备问答对及语言模型输出:收集您想要评估的语言模型输出内容。请确保您的数据包含以下要素: 原始问题 ,主要答案类型(选项:字母、简短文本、分类标签、数学) ,LLM 输出 ,标准答案范围
  3. 部署 xFinder 模型:从以下模型中选择一个进行部署:xFinder-qwen1505 或 xFinder-llama38it 部署好 xFinder 模型后,请按照以下步骤进行评估:
# Install xfinder
conda create -n xfinder_env python=3.10 -y
conda activate xfinder_env
pip install xfinder

# Perform an evaluation with xFinder (a built-in example)
CUDA_VISIBLE_DEVICES=0 python -m xfinder.eval --run-example --model-name xFinder-qwen1505 --inference-mode local --model-path-or-url /path/to/anonymized/model/xFinder-qwen1505

示例:正则表达式与 xFinder

我们演示了四种类型的问题实例,其中正则表达式无法提取或经常提取错误答案,而 xFinder 准确提取关键答案。

{
    "key_answer_type": "alphabet option",
    "question": "A man is seen playing guitar on a stage with others playing instruments behind him. The man grabs a guitar from the audience and begins playing both one after the other ...",
    "llm_output": "Option A is the correct choice as it describes ...",
    "standard_answer_range": "[['A', 'strums the guitar in the end, continues playing the guitar with the crowd following him as well as lining up next to him.'], ['B', 'continues playing the instruments and ends by waving to the crowd and walking off stage.'], ['C', 'then turns to the audience and gives a stuffed toy to the audience and continues playing.'], ['D', 'finally stops playing and moves his hands for the crowd to see.']]",
    "gold_label": "A",
    "xFinder_output": "A",
},
{
    "key_answer_type": "short text",
    "question": "If you really wanted a grape, where would you go to get it? Answer Choices: winery / fruit stand / field / kitchen / food",
    "llm_output": "The answer is winery / fruit stand / field / kitchen / food ...",
    "standard_answer_range": "[\"winery\", \"fruit stand\", \"field\", \"kitchen\", \"food\"]",
    "gold_label": "[No valid answer]",
    "xFinder_output": "[No valid answer]",
},
{
    "key_answer_type": "categorical label",
    "question": "How tall is the Sears Building ?",
    "llm_output": "The Sears Building is a specific structure, so the answer would be a Location ...",
    "standard_answer_range": "['Abbreviation', 'Entity', 'Description', 'Person', 'Location', 'Number']",
    "gold_label": "Location",
    "xFinder_output": "Location",
},
{
    "key_answer_type": "math",
    "question": " Mike made 69 dollars mowing lawns over the summer. If he spent 24 dollars buying new mower blades, how many 5 dollar games could he buy with the money he had left? ",
    "llm_output": "To find out how many 5 dollar ... Let's calculate that:\n\n$45 / $5 = 9\n\nSo, Mike could buy 9 5 dollar games with the money he had left.",
    "standard_answer_range": "a(n) number / set / vector / matrix / interval / expression / function / equation / inequality",
    "gold_label": "9",
    "xFinder_output": "9",
}
{
“key_answer_type”:“字母选项”,
“提问”:"一个男人在舞台上弹吉他,其他人在他身后弹奏乐器。这个人从观众手里抓起一把吉他,开始一把接一把地弹……”
“llm_output”: “选项A是正确的选择,因为它描述了…”,
“standard_answer_range”: "[['A‘, ’最后弹奏吉他,继续弹奏吉他,人群跟着他,在他旁边排队。‘], [’B‘, ’继续演奏乐器,最后向人群挥手,走下舞台。‘], [’C‘, ’然后转向观众,把一个毛绒玩具递给观众,继续玩。‘], [’D‘, ’终于停止演奏,并向观众挥手']]"“gold_label”:A,
“xFinder_output”:A,
},
{
“key_answer_type”: “短文本”,
问:“如果你真的想要一颗葡萄,你会去哪里买?”答案选择:酒庄/水果摊/田地/厨房/食物”,
“llm_output”: “答案是酒厂/水果摊/田地/厨房/食物…”,
“standard_answer_range”:(\“酒厂\”,\“水果店\”,\“\”,\“厨房\”,\“食品\”),
“gold_label”: “[没有有效答案]”,
“xFinder_output”: “[没有有效答案]”,
},
{
“key_answer_type”:“分类标签”,
“问题”:“西尔斯大厦有多高?”
“llm_output”: “ Sears大楼是一个特定的建筑,所以答案是一个位置…”,
“standard_answer_range”: “[‘缩写’,‘实体’,‘描述’,‘人’,‘地点’,‘数字’]”,
“gold_label”:“位置”,
“xFinder_output”:“位置”,
},
{
“key_answer_type”:“数学”,
“问题”:“迈克夏天割草赚了69美元。如果他花了24美元购买新的割草机刀片,那么他用剩下的钱可以买多少个5美元的游戏呢?”,
“llm_output”: "找出有多少个5美元…这样,迈克就可以用剩下的钱买95美元的游戏了。”
“standard_answer_range”:“一个(n)/集合/向量/矩阵/区间/表达式/函数/方程/不等式”,
“gold_label”:9“xFinder_output”:9}

参考文献:
【1】xFinder: Robust and Pinpoint Answer Extraction for Large Language Models:https://arxiv.org/abs/2405.11874v1

@inproceedings{
    xFinder,
    title={xFinder: Large Language Models as Automated Evaluators for Reliable Evaluation},
    author={Qingchen Yu and Zifan Zheng and Shichao Song and Zhiyu li and Feiyu Xiong and Bo Tang and Ding Chen},
    booktitle={The Thirteenth International Conference on Learning Representations},
    year={2025},
    url={https://openreview.net/forum?id=7UqQJUKaLM}
}

​【2】xFinder:Github代码仓库:https://github.com/IAAR-Shanghai/xFinder

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值