生成式语言模型的文本生成评价指标(从传统的基于统计到现在的基于语义)
文本生成评价指标
- 以 BLEU 为代表的基于统计的文本评价指标
- 基于 BERT 等预训练模型的文本评价指标
1.以 BLEU 为代表的基于统计的文本评价指标
1.BLEU(Bilingual Evaluation Understudy, 双语评估辅助工具)
所有评价指标的鼻祖,核心思想是比较 候选译文 和 参考译文 里的 n-gram 的重合程度,重合程度越高就认为译文质量越高。
unigram 用于衡量单词翻译的准确性,高阶 n-gram 用于衡量句子翻译的流畅性。
-
一般取 N = 1 ~ 4,然后加权平均
B L E U = B P × e x p ( ∑ n = 1 N W n × P n ) B P = { 1 e x p ( 1 − l r / l c ) l c = 机器翻译候选译文的长度 l r = 最短的参考译文长度 BLEU=BP \times exp(\sum_{n=1}^N W_n \times P_n)\\ \begin{aligned} BP= \begin{cases} 1 \\ exp(1-lr/lc) \end{cases} \end{aligned}\\ lc=机器翻译候选译文的长度\\ lr=最短的参考译文长度 BLEU=BP×exp(n=1∑NWn×Pn)BP={1exp(1−lr/lc)lc=机器翻译候选译文的长度lr=最短的参考译文长度
- W n W_n Wn 指的是 n-gram 权重,默认是均匀权重
- BP 是惩罚因子,如果译文的长度小于最短参考译文,则 BP 小于 1
- BLEU 的 1-gram 精确度表示译文忠于原文的程度,其他的 n-gram 表示翻译的流畅度
-
优点
- 易于计算,速度快。
- 应用范围广泛
-
缺点
- 不考虑语义、句子结构
- 不能很好的处理形态丰富的句子(所以论文中建议配备 4 条参考译文)
- BLEU 偏向于较短的翻译结果
2.ROUGE(Recall-Oriented Understudy for Gisting Evaluation)
ROUGE 是 BLEU 的改进版,从名字上可以看出,他专注于召回率而非精确率。
即,他会查看有多少个参考译文中的 n 元词组出现在输出中。
- ROUGE 大致分为四种(前两种常用)
- ROUGE-N(将 BLEU 的精确率优化为召回率)
- ROUGE-L(将 BLEU 的 n-gram 优化为公共子序列)
- ROUGE-W(将 ROUGE-L 的连续匹配给予更高的奖励)
- ROUGE-S(允许 n-gram 出现跳词(skip))
- 初衷
- 在 SMT(统计机器翻译) 时代,机器翻译效果很差,需要同时评价翻译的准确度和流畅度。
- 在 NMT(神经网络机器翻译) 时代,神经网络能力很强,翻译的结果大多都是通顺的,但是可能会一本正经的胡说八道
- ROUGE 的出现是为了解决 NMT 的漏翻问题(低召回率)。所以 ROUGE 只适合评价 NMT,不适用于 SMT,因为他不评价译文的流畅与否。
- ROUGE-N
-
N 指 N-gram,计算方式与 BLEU 类似,但是基于召回率
-
ROUGE-N 主要统计 N-gram 上的召回率,对于 N-gram ,可以计算得到 ROUGE-N 的分数
R O U G E − N = ∑ S ∈ { R e f e r e n c e S u m m a r i e s } g r a m N ∈ S ∑ g r a m N ∈ S C o u n t m a t c h ( g r a m N ) ∑ S ∈ { R e f e r e n c e S u m m a r i e s } g r a m N ∈ S ∑ g r a m N ∈ S C o u n t ( g r a m n ) ROUGE-N=\frac{\sum_{S\in \{ReferenceSummaries\}gram_N\in S}\sum_{gram_N\in S} Count_{match}(gram_N)} {\sum_{S\in \{ReferenceSummaries\}gram_N \in S}\sum_{gram_N \in S} Count(gram_n)} ROUGE−N=∑S∈{ReferenceSummaries}gramN∈S∑gramN∈SCount(gramn)∑S∈{ReferenceSummaries}gramN∈S∑gramN∈SCountmatch(gramN)
- 分母是统计参考译文中的 N-gram 的个数;分子是统计参考译文与机器译文共有的 N-gram 个数
-
- ROUGE-L
-
ROUGE-L 中的 L 指最长公共子序列(Longest Common Subsequence, LCS),ROUGE-L 计算的时候使用了 机器译文 C 和 参考译文 S 的最长公共子序列。
R L C S = L C S ( C , S ) l e n ( S ) P L C S = L C S ( C , S ) l e n ( C ) F L C S = ( 1 + β 2 ) R L C S P L C S R L C S + β 2 P L C S R_{LCS}=\frac{LCS(C,S)}{len(S)}\\ P_{LCS}=\frac{LCS(C,S)}{len(C)}\\ F_{LCS}=\frac{(1+\beta^2)R_{LCS}P_{LCS}}{R_{LCS}+\beta^2P_{LCS}} RLCS=len(S)LCS(C,S)PLCS=len(C)LCS(C,S)FLCS=RLCS+β2PLCS(1+β2)RLCSPLCS
- R L C S R_{LCS} RLCS 表示 召回率, P L C S P_{LCS} PLCS 表示精确率, F L C S F_{LCS} FLCS 就是 ROUGE-L
- 一般 β \beta β 会设置一个很大的数,因此 F L C S F_{LCS} FLCS 几乎只考虑 R L C S R_{LCS} RLCS(召回率)
-
- ROUGE-W
- ROUGE-S
2.基于语言模型的方法
1.PPL(困惑度)
它也可以用来比较两个语言模型在预测样本上的优劣。
低困惑度的概率分布模型或概率模型能更好地预测样本。
P P L ( W ) = P ( w 1 w 2 . . . w N ) − 1 N PPL(W)=P(w_1w_2...w_N)^{-\frac1N} PPL(W)=P(w1w2...wN)−N1
- 在对模型进行损失计算的时候,直接对损失去个指数就是 PPL 了
2.基于 BERT 的评分指标 → B E R T S C O R E BERT_{SCORE} BERTSCORE
-
核心思想:对两个 生成句 和 参考句(WordPiece 进行 tokenize) 分别用 BERT 提取特征,然后对两个句子的每个词分别计算内积,得到一个相似性矩阵。基于这个矩阵,可以分别对参考句和生成句做一个最大相似性得分的累加然后归一化,得到 B E R T s c o r e BERT_{score} BERTscore 的 precision 、 recall 和 F1
R B E R T = 1 ∣ x ∣ ∑ x i ∈ x max x ^ j ∈ x ^ x i T x ^ j P B E R T = 1 ∣ x ^ ∣ ∑ x ^ j ∈ x ^ max x i ∈ x x i T x ^ j F B E R T = 2 P B E R T ⋅ R B E R T P B E R T + R B E R T R_{BERT}=\frac1{|x|}\sum_{x_i \in x} \max_{\hat{x}_j \in \hat{x}}x_i^T\hat{x}_j\\ P_{BERT}=\frac1{|\hat x|}\sum_{\hat x_j \in \hat x} \max_{x_i \in x}x_i^T \hat x_j\\ F_{BERT}=2\frac{P_{BERT}·R_{BERT}}{P_{BERT}+R_{BERT}} RBERT=∣x∣1xi∈x∑x^j∈x^maxxiTx^jPBERT=∣x^∣1x^j∈x^∑xi∈xmaxxiTx^jFBERT=2PBERT+RBERTPBERT⋅RBERT
3.总结
- BLEU
- 优点:计算速度,适合评估机器翻译等文本生成任务的准确性。依赖于 n-gram 匹配,所以对短文本评价友好
- 缺点:无法衡量语义,容易惩罚语义合理的表示;对自由度较高的生成任务表现不佳
- 使用场景:机器翻译、文本摘要,尤其是目标文本相对固定的情形
- ROUGE
- 优点:对文本摘要任务适用,尤其是 ROUGE-L 可识别长的匹配序列,适合评估摘要生成中较长的语义片段
- 缺点:依赖表层匹配,缺乏对语义的深层次理解
- 使用场景:在摘要生成任务中表现良好
- PPL
- 优点:可量化生成文本的流畅度,适合语言模型的评估
- 缺点:与人类理解不直接相关;低的 PPL 不保证高质量文本。
- 使用场景:适用于评估语言模型在训练数据上的拟合程度,对生成模型的流畅度 衡量有效
- B E R T s c o r e BERT_{score} BERTscore
- 优点:基于 BERT 等预训练模型,能捕获词汇和语义的相似度,弥补了传统表层指标的不足;对重组、同义表达的容忍度更高
- 缺点:计算较慢,依赖模型的复杂度;性能依赖于使用的预训练模型
- 使用场景:适合需要语义理解的生辰任务,如开放式问答和文本生成任务,在多样化表达中优异。
- 总结
- B L E U BLEU BLEU 和 R O U G E ROUGE ROUGE 更适合传统的,较为结构化的生成任务
- PPL 适合流畅度的评估
- B E R T s c o r e BERT_{score} BERTscore 适合更深层次的语义对齐场景
相关文章:
生成式语言模型的文本生成评价指标(从传统的基于统计到现在的基于语义)
文本生成评价指标 以 BLEU 为代表的基于统计的文本评价指标基于 BERT 等预训练模型的文本评价指标 1.以 BLEU 为代表的基于统计的文本评价指标 1.BLEU(Bilingual Evaluation Understudy, 双语评估辅助工具) 所有评价指标的鼻祖,核心思想是比较 候选译文 和 参考…...
【网安案例学习】暴力破解攻击(Brute Force Attack)
### 案例与影响 暴力破解攻击在历史上曾导致多次重大安全事件,特别是在用户数据泄露和账户被盗的案例中。随着计算能力的提升和密码管理技术的进步,暴力破解的威胁虽然有所减弱,但仍需警惕,特别是在面对高价值目标时。 【故事一…...
时间序列预测(十八)——实现配置管理和扩展命令行参数解析器
如图,这是一个main,py文件,在此代码中,最开始定义了许多模型参数,为了使项目更加灵活和可扩展,便于根据不同的需求调整参数和配置,可以根据实际需要扩展参数和配置项。 下面是如何实现配置管理和扩展命令行…...
Vue问题汇总解决
作者:fyupeng 技术专栏:☞ https://github.com/fyupeng 项目地址:☞ https://github.com/fyupeng/distributed-blog-system-api 留给读者 我们经常在使用Vue开发遇到一些棘手的问题,解决后通常要进行总结,避免下次重复…...
Spark学习
Spark简介 1.Spark是什么 首先spark是一个计算引擎,而不是存储工具,计算引擎有很多: 第一代:MapReduce廉价机器实现分布式大数据处理 第二代:Tez基于MR优化了DAG,性能比MR快一些 第三代:Spark…...
一些小细节代码笔记汇总
Python cv2抓取摄像头图片保存到本地 import cv2 import datetime, ossavePath "E:/Image/"if not os.path.exists(savePath):os.makedirs(savePath)cap cv2.VideoCapture(0) capture Falseif not cap.isOpened():print("无法打开摄像头")exit()while…...
L4.【LeetCode笔记】链表题的VS平台调试代码
不用调用87.【C语言】数据结构之链表的头插和尾插文章提到的头插函数 记下这个模板代码,可用于在Visual Studio上调试出问题的测试用例 如创建链表[1,2,3,4,5] #include <stdilb.h> // Definition for singly-linked list.struct ListNode {int val;struct ListNode *…...
JavaCV 之高斯滤波:图像降噪与细节保留的魔法
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s…...
VsCode显示空格
ctrl shift p选择Preferences: Open User Settings (JSON) 加上"editor.renderWhitespace": "all" {"cmake.configureOnOpen": true,"files.encoding": "gb2312","editor.fontVariations": false,"edito…...
.Net C# 基于EFCore的DBFirst和CodeFirst
DBFirst和CodeFirst 1 概念介绍 1.1 DBFirst(数据库优先) 含义:这种模式是先创建数据库架构,包括表、视图、存储过程等数据库对象。然后通过实体框架(Entity Framework)等工具,根据已有的数据…...
w012基于springboot的社区团购系统设计
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板ÿ…...
笔记本降频超鬼锁屏0.39电脑卡到不行解决办法实操记录
1、最开始没发现cpu问题,我发现我电脑突然异常的卡顿,最开始我怀疑是不是微软win用久了或者自动更新导致的问题,于是自己重装了操作系统 发现问题依然存在 2、我怀疑难道我的 cpu 内存 固态硬盘 其中一个有点问题?心想要是硬盘的…...
优选算法第四讲:前缀和模块
优选算法第四讲:前缀和模块 1.[模板]前缀和2.【模板】二维前缀和3.寻找数组的中心下标4.除自身以外数组的乘积5.和为k的子数组6.和可被k整除的子数组7.连续数组8.矩阵区域和 1.[模板]前缀和 链接: link #include <iostream> #include <vector> using…...
ubuntu20.04 加固方案-设置限制su命令用户组
一、编辑/etc/pam.d/su配置文件 打开终端。 使用文本编辑器(如vim)编辑/etc/pam.d/su文件。 vim /etc/pam.d/su 二、添加配置参数 在打开的配置文件的中,添加以下参数: auth required pam_wheel.so 创建 wheel 组 并添加用户 …...
TDengine数据备份与恢复
TDengine数据备份与恢复 一、数据备份和恢复介绍二、基于 taosdump 进行数据备份恢复三、基于 taosExplorer 进行数据备份恢复3.1 taosExplorer 的安装与配置3.2 使用taosExplorer 进行数据备份 一、数据备份和恢复介绍 官网地址:TDengine - 数据备份和恢复 为了防止…...
2024最新的开源博客系统:vue3.x+SpringBoot 3.x 前后端分离
本文转载自:https://fangcaicoding.cn/article/54 大家好!我是方才,目前是8人后端研发团队的负责人,拥有6年后端经验&3年团队管理经验,截止目前面试过近200位候选人,主导过单表上10亿、累计上100亿数据…...
研究中的“异质性”、“异质性结果”是指?
“异质性”这个词在统计学和研究中指的是数据、现象或群体之间的差异,即不同个体、组别、区域或时间点的表现或特征并不相同。相对的概念是“同质性”,即所有个体或组别在某一方面表现相同或接近。 异质性(Heterogeneity)的含义 …...
Springboot整合AOP和redis
aop pom.xml <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 开启自动代理 注意:在完成了引入AOP依赖包后,一般来说并不需要去做其他…...
freetype学习总结
freetype学习总结 目录 freetype学习总结1. LCD显示字符问题引入2. freetype概念2.1 嵌入式设备使用FreeType的方法步骤2.2 嵌入式设备使用FreeType的注意事项 3. freetype官方C示例3.1 example1.c源码 4. 嵌入式设备上使用FreeType的简单示例4.1 简单示例代码4.2 代码分析 5. …...
上海亚商投顾:沪指缩量调整 华为概念股午后爆发
上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 市场全天震荡调整,沪指、深成指午后跌超1%,创业板指一度跌逾2%,尾盘跌幅有…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
