当前位置: 首页 > news >正文

评估大模型(LLM)摘要生成能力:方法、挑战与策略

大语言模型(LLMs)有着强大的摘要生成能力,为信息快速提取和处理提供了便利。从新闻文章的快速概览到学术文献的要点提炼,LLMs 生成的摘要广泛应用于各个场景。然而,准确评估这些摘要的质量却颇具挑战。如何确定一个摘要是否精准、简洁且连贯,成为了研究者和开发者亟待解决的问题。本文将深入探讨评估 LLM(Agent-as-a-Judge:AI系统评估新思路) 摘要的多种方法、面临的挑战以及应对策略。

一、评估 LLM 摘要的重要性

随着 LLMs 在摘要生成任务中的应用日益广泛,评估其生成摘要的质量至关重要。优质的摘要能够帮助用户迅速把握文本核心内容,节省大量阅读时间。在学术研究中,研究者可以通过准确的文献摘要快速筛选相关资料;在商业领域,决策者能够依据精准的行业报告摘要做出明智的决策。相反,低质量的摘要可能会误导用户,导致信息获取错误,甚至影响决策的准确性。准确评估 LLM 摘要(RAG(Retrieval-Augmented Generation)评测:评估LLM中的幻觉现象),不仅有助于用户选择更可靠的摘要工具,还能推动 LLMs 自身的优化与改进,促进自然语言处理技术的发展。

二、评估 LLM 摘要的难点

(一)摘要输出的开放性与主观性

与分类、实体提取等任务不同,摘要的输出具有开放性。一个好的摘要取决于流畅性、连贯性和一致性等定性指标,而这些指标难以进行定量测量。例如,摘要的相关性在很大程度上依赖于具体语境和受众需求。对于专业人士而言,与专业知识紧密相关的内容才是关键;而普通读者可能更关注通俗易懂的信息。这种主观性使得评估标准难以统一,增加了评估的难度。

(二)缺乏高质量的标注数据集

在评估 LLM 摘要时,创建用于对比的金标准数据集十分困难。以检索增强生成(RAG)为例,可以通过合成问答对的方式轻松创建数据集来评估检索器。但对于摘要生成任务,自动生成参考摘要并非易事,往往需要人工标注。虽然已有研究人员整理了一些摘要数据集,但这些数据集可能无法满足特定应用场景的需求,导致评估结果与实际应用存在偏差。

(三)现有评估指标的局限性

学术文献中的许多摘要评估指标并不适用于实际开发场景。一些基于神经网络训练的评估指标,如 Seahorse、Summac 等,模型体积庞大,运行成本高昂,难以大规模应用。而传统的评估指标,如 BLEU 和 ROUGE,主要基于精确的单词或短语匹配,适用于抽取式摘要评估。在面对 LLMs 生成的抽象式摘要时,由于这类摘要可能会对原文进行改写和重新表述,这些传统指标的评估效果不佳。

三、优秀摘要的关键特质

尽管评估 LLM 摘要存在诸多困难,但一个优秀的摘要通常具备以下关键特质:

(一)相关性

摘要应保留原文的重要观点和细节,能够准确反映原文的核心内容。在评估时,可以从精确率和召回率的角度考虑,即摘要中保留了多少原文的事实(召回率),以及摘要中的事实有多少能在原文中得到支持(精确率)。在保持摘要长度一定的情况下,召回率越高越好,但不能为了追求高召回率而使摘要长度与原文相近;同时,精确率应尽可能接近 100%,以避免生成虚假信息。

(二)简洁性

优秀的摘要信息密度高,不会多次重复相同观点,语言简洁明了。在实际评估中,可以通过实体密度这一指标来衡量。研究表明,人工创建的摘要以及人们偏好的 AI 生成摘要,实体密度约为 0.15 个实体 / 词元。偏离这一数值的摘要,无论是密度过高还是过低,都可能存在问题。可以通过计算摘要的实体密度,并与理想值进行比较,对偏离理想值的摘要进行惩罚。还可以使用句子模糊度指标,对模糊、未明确表述关键信息的句子进行惩罚,以确保摘要简洁有效。

(三)连贯性

摘要应结构合理、逻辑清晰,易于理解,而不是简单地堆砌压缩后的事实。在评估连贯性时,可以采用平均余弦相似度的方法,计算每第 n 个句子和第 n+2 个句子之间的平均余弦相似度。该数值越高,表明摘要的连贯性越好。通过这种方式,可以从量化的角度对摘要的连贯性进行评估。

(四)忠实性

摘要不能虚构原文未提及的信息,必须忠实于原文内容。在评估过程中,需要确保摘要中的所有信息都能在原文中找到依据,避免出现虚假信息,这对于保证摘要的可靠性至关重要。

四、DeepEval 框架及其摘要评估指标

DeepEval 是一个用户友好的 LLM 评估框架,在摘要评估方面具有一定的优势。它提供了许多关键 RAG 指标的现成实现,并且拥有灵活的基于思维链的 LLM 评判工具 GEval,方便用户定义自定义标准。其基础设施有助于组织和加速评估过程,能够快速在整个数据集上运行评估。

DeepEval 的摘要评估指标是一种无参考指标,只需输入原文和待评估的生成摘要。该指标实际上评估了两个关键部分:对齐度和覆盖率。在对齐度评估中,评估器 LLM 会从摘要中生成一系列声明,并判断这些声明在从原文提取的事实中得到支持的数量,从而得出对齐度分数;在覆盖率评估中,LLM 会从原文生成一系列评估问题,然后仅依据摘要尝试回答这些问题。若无法找到答案,则提示 “idk”,最后根据回答正确的问题数量得出覆盖率分数。最终的摘要分数为对齐度和覆盖率分数中的最小值。

五、改进 DeepEval 的摘要评估指标

尽管 DeepEval 的摘要评估指标提供了一个良好的起点,但仍存在一些问题,影响了评估的可靠性和有效性。

(一)覆盖率评估问题

当前,覆盖率评估中的问题被限制为是非问题,这种方式存在局限性。一方面,二元的是非问题限制了信息的表达,难以确定细微的定性要点;另一方面,若回答问题的 LLM 虚构了 “是” 的答案,评估器可能会错误地认为回答正确。因为在只有 “是”“否”“idk” 三种可能答案的情况下,虚构 “是” 的答案的可能性较高。此外,问题的表述方式可能会暗示答案为 “是”,进一步增加了虚构答案的风险。

针对这一问题,可以让 LLM 从原文生成开放式问题,即 “复杂问题”,并为每个问题赋予重要性评分。在评估时,使用另一个 LLM 对基于摘要生成的答案与基于原文生成的参考答案进行 0 - 5 分的相似度评分,并给出解释,以此来更准确地评估覆盖率。

(二)对齐度评估问题

在对齐度评估中,从原文提取事实的过程存在缺陷。当前,使用 LLM 从原文提取事实列表时,会导致部分事实被遗漏。而且,LLM 生成的事实列表具有不确定性,这会导致对齐度分数波动较大,无法公平地评判摘要的忠实性。例如,即使摘要中的某个细节在原文中存在,但如果未被提取到事实列表中,也可能被误判为不忠实。

为解决这一问题,可将整个原文输入到评估摘要声明的 LLM 中,而不是仅输入提取的事实列表。这样,在一次 LLM 调用中评估所有声明,既能保证评估的准确性,又不会显著增加令牌成本。

(三)最终分数计算问题

目前,最终分数取对齐度和覆盖率分数中的最小值,这可能会导致问题。由于覆盖率分数通常较低,即使对齐度分数发生较大变化(如从 1 降至 0.8),也可能不会影响最终分数。然而,对齐度分数的下降可能意味着摘要存在严重问题,如虚构声明。

为解决此问题,可以将最终分数改为 F1 分数,类似于机器学习分类中的 F1 分数计算方式,以综合考虑精确率和召回率的重要性。还可以根据实际需求调整精确率和召回率的权重,例如,若非常重视避免虚构信息,则可以提高精确率的权重。

六、综合评估指标体系的构建

在改进 DeepEval 摘要评估指标的基础上,可以进一步构建一个综合评估指标体系。除了上述改进的相关性和忠实性评估指标外,还应纳入简洁性和连贯性评估指标。

(一)简洁性评估指标

  1. 实体密度

    通过计算摘要中实体数量与词元数量的比值,得到实体密度。与理想的实体密度 0.15 进行比较,对偏离该值的摘要进行惩罚。当实体密度过高时,摘要可能过于复杂;实体密度过低,则可能信息不足。

  2. 句子模糊度

    将摘要拆分为句子,使用 LLM 对每个句子进行分类,判断其是否模糊。模糊句子是指未直接提及主要观点、使用模糊表述的句子。最终以模糊句子在总句子中的比例作为句子模糊度分数,该分数越高,说明摘要中模糊信息越多,简洁性越差。

  3. 重复性

    利用 GEval 工具,以 LLM 作为评判器,判断摘要中是否存在不必要的重复信息。若存在重复的事实或主要观点,则认为摘要存在问题。在实际应用中,由于 LLM 的回答可能不稳定,需要进行提示工程优化,以提高评估的准确性。

(二)连贯性评估指标

采用平均余弦相似度方法,计算每第 n 个句子和第 n+2 个句子之间的平均余弦相似度。通过将句子转换为向量,计算向量之间的余弦相似度,进而得到连贯性分数。该分数越高,表明摘要中句子之间的逻辑联系越紧密,连贯性越好。

将这些评估指标整合为自定义指标后,可以在数据集上并行评估,一次性获取所有结果。但需要注意的是,对于一些指标,如连贯性和召回率,目前难以确定其对于摘要的 “最优” 值,只能通过比较不同 AI 生成摘要的分数来判断其优劣。

评估 LLM 摘要生成能力是一个复杂且具有挑战性的任务,需要综合考虑多个方面的因素。从摘要的相关性、简洁性、连贯性和忠实性等特质出发,改进现有评估指标,构建综合评估体系,能够更准确地评估 LLM 摘要的质量。然而,目前的评估方法仍存在一些不足之处,如部分指标缺乏明确的最优值,评估结果可能受到 LLM 本身的不确定性影响等。

未来,随着自然语言处理技术的不断发展,有望出现更先进的评估方法和技术。一方面,可以进一步优化评估指标,结合更多语义理解和上下文信息,提高评估的准确性;另一方面,探索更有效的数据集创建方法,减少人工标注的工作量,提高标注质量。还可以研究如何更好地利用多模态(MiniCPM-o 2.6:开源大型语言模型在多模态任务上超越GPT-4o和Claude 3.5)信息,如图片、音频等,辅助评估摘要质量。

相关文章:

评估大模型(LLM)摘要生成能力:方法、挑战与策略

大语言模型(LLMs)有着强大的摘要生成能力,为信息快速提取和处理提供了便利。从新闻文章的快速概览到学术文献的要点提炼,LLMs 生成的摘要广泛应用于各个场景。然而,准确评估这些摘要的质量却颇具挑战。如何确定一个摘要…...

《PYTHON语言程序设计》(2018版)1.20修改这道题,利用类的方式(二) 接近成功....(上)

在类的外面建立4个顶点 turtle.speed(20)ran1_x1 random.randint(-69, -60) ran1_y1 random.randint(-5, 10) ran1_x2 random.randint(-69, -60) ran1_y2 random.randint(75, 80) ran1_x3 random.randint(79, 90) ran1_y3 random.randint(70, 85) ran1_x4 random.randin…...

USB子系统学习(四)使用libusb读取鼠标数据

文章目录 1、声明2、HID协议2.1、描述符2.2、鼠标数据格式 3、应用程序4、编译应用程序5、测试 1、声明 本文是在学习韦东山《驱动大全》USB子系统时,为梳理知识点和自己回看而记录,全部内容高度复制粘贴。 韦老师的《驱动大全》:商品详情 …...

【产品小白】用户调研的需求是否都采纳?

在用户调研中,并非所有需求都应被直接采纳,而应通过系统分析转化为符合产品战略的有效决策。以下是关键思考框架: 1. 用户需求 ≠ 产品需求 矛盾性:用户个体需求可能相互冲突(如A功能的去留),需…...

软件测试就业

文章目录 2.6 初识一、软件测试理论二、软件的生产过程三、软件测试概述四、软件测试目的五、软件开发与软件测试的区别?六、学习内容 2.7 理解一、软件测试的定义二、软件测试的生命周期三、软件测试的原则四、软件测试分类五、软件的开发与测试模型1.软件开发模型…...

qt部分核心机制

作业 1> 手动将登录项目实现,不要使用拖拽编程 并且,当点击登录按钮时,后台会判断账号和密码是否相等,如果相等给出登录成功的提示,并且关闭当前界面,发射一个跳转信号,如果登录失败&#…...

【RocketMQ】RocketMq之ConsumeQueue深入研究

目录 一:RocketMq 整体文件存储介绍 二:ConsumeQueue 的文件结构 三:ConsumeQueue 写入和查询流程 一:RocketMq 整体文件存储介绍 存储⽂件主要分为三个部分: CommitLog:存储消息的元数据。所有消息都会…...

如今物联网的快速发展对hmi的更新有哪些积极影响

一、功能更加丰富 物联网的快速发展使得 HMI(人机界面)能够连接更多的设备和系统,从而实现更加丰富的功能。例如,通过与传感器网络的连接,HMI 可以实时显示设备的运行状态、环境参数等信息,为用户提供更加…...

linux 性能60秒分析

linux 60秒分析 需要运行的工具是 1、uptime 2、dmesg | tail 3、vmstat 1 4、mpstat -P ALL 1 5、pidstat 1 6、iostat -xz 1 7、free -m 8、sar -n DEV 1 9、sar -n TCP,ETCP 1 10、topuptime 快速检查平均负载 [rootaaaaaa ~]# uptime15:17:20 up 3 days, 14 min, 7 us…...

Redisson全面解析:从使用方法到工作原理的深度探索

文章目录 写在文章开头详解Redisson基本数据类型基础配置字符串操作列表操作映射集阻塞队列延迟队列更多关于Redisson详解Redisson 中的原子类详解redisson中的发布订阅模型小结参考写在文章开头 Redisson是基于原生redis操作指令上进一步的封装,屏蔽了redis数据结构的实现细…...

neo4j-解决导入数据后出现:Database ‘xxxx‘ is unavailable. Run :sysinfo for more info.

目录 问题描述 解决方法 重新导入 问题描述 最近在linux上部署了neo4j,参照之前写的博客:neo4j-数据的导出和导入_neo4j数据导入导出-CSDN博客 进行了数据导出、导入操作。但是在进行导入后,重新登录网页版neo4j,发现对应的数据库状态变…...

51单片机之引脚图(详解)

8051单片机引脚分类与功能笔记 1. 电源引脚 VCC(第40脚):接入5V电源,为单片机提供工作电压。GND(第20脚):接地端,确保电路的电位参考点。 2.时钟引脚 XTAL1(第19脚&a…...

Hangfire.NET:.NET任务调度

引言:为何选择 Hangfire? 在开发.NET 应用程序时,我们常常会遇到这样的场景:应用程序需要定期发送报告,像财务报表,每日业务数据汇总报告等,这些报告需要定时生成并发送给相关人员;…...

深入解析:React 事件处理的秘密与高效实践

在 React 中,事件处理是构建交互式应用的核心。本文将带你深入探索 React 事件处理的机制、最佳实践以及如何避免常见陷阱,助你写出更高效、更健壮的代码。 1. React 事件处理的独特之处 合成事件(SyntheticEvent) React 使用合…...

开源像素字体,可用于独立游戏开发

方舟像素字体 / Ark Pixel Font 开源的泛中日韩像素字体,使用 SIL 开放字体许可证 第1.1版(SIL Open Font License 1.1)授权。 支持 10、12 和 16 像素尺寸。 支持语言特殊字形:中文-中国大陆、中文-香港特别行政区、中文-台湾…...

【论文阅读】Comment on the Security of “VOSA“

Comment on the Security of Verifiable and Oblivious Secure Aggregation for Privacy-Preserving Federated Learning -- 关于隐私保护联邦中可验证与遗忘的安全聚合的安全性 论文来源摘要Introduction回顾 VOSA 方案对VOSA不可伪造性的攻击对于类型 I 的攻击对于类型 II 的…...

了解传输层TCP协议

目录 一、TCP协议段格式 二、TCP原理 1.确认应答 2.超时重传 3.连接管理 建立连接 断开连接 4.滑动窗口 5.流量控制 6.拥塞控制 7.延时应答 8.捎带应答 9.面向字节流 10.TCP异常情况 TCP,即Transmission Control Protocol,传输控制协议。人如…...

flask实现用户名查重,重复的用户名阻止注册,以及如何优化

在 Flask 中实现用户名查重,并阻止重复的用户名进行注册,可以使用数据库(如 SQLite、MySQL、PostgreSQL)存储用户信息,并在注册时检查用户名是否已存在。以下是实现步骤: 1. 安装 Flask 及 SQLAlchemy 确保…...

ASP.NET Core对JWT的封装

目录 JWT封装 [Authorize]的注意事项 JWT封装 NuGet 库 |Microsoft.AspNetCore.Authentication.JwtBearer 9.0.1https://www.nuget.org/packages/Microsoft.AspNetCore.Authentication.JwtBearerhttps://www.nuget.org/packages/Microsoft.AspNetCore.Authentication.JwtBea…...

wordpressAI工具,已接入Deepseek 支持自动生成文章、生成图片、生成长尾关键词、前端AI窗口互动、批量采集等

基于关键词或现有内容生成SEO优化的文章,支持多种AI服务(如OpenAI、百度文心一言、智谱AI等),并提供定时任务、内容采集、关键词生成等功能。 核心功能 文章生成 关键词生成:根据输入的关键词生成高质量文章。 内容…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

数据库分批入库

今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程

鸿蒙电脑版操作系统来了,很多小伙伴想体验鸿蒙电脑版操作系统,可惜,鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机,来体验大家心心念念的鸿蒙系统啦!注意:虚拟…...

鸿蒙HarmonyOS 5军旗小游戏实现指南

1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发,采用DevEco Studio实现,包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...

python读取SQLite表个并生成pdf文件

代码用于创建含50列的SQLite数据库并插入500行随机浮点数据,随后读取数据,通过ReportLab生成横向PDF表格,包含格式化(两位小数)及表头、网格线等美观样式。 # 导入所需库 import sqlite3 # 用于操作…...