【NLP】 28. 语言模型的评估方式:MRR, PERPLEXITY, BLEU, WER从困惑度到实际效果

语言模型的评估方式:从困惑度到实际效果

评估语言模型(LLM)是否有效,并不仅仅是看它生成句子是否“听起来通顺”,我们需要定量的指标对模型性能做出系统性评价。评估方法主要分为两大类:

  • 内在评价(Intrinsic Evaluation):直接衡量模型本身的语言建模能力。
  • 外在评价(Extrinsic Evaluation):模型作为子模块嵌入下游任务时的表现。

1️⃣ Mean Reciprocal Rank (MRR):排名相关指标

  • 用途:衡量模型在预测多个候选项时,正确答案排第几位。

  • 公式
    M R R = 1 ∣ Q ∣ ∑ i = 1 ∣ Q ∣ 1 rank _ i MRR = \frac{1}{|Q|} \sum_{i=1}^{|Q|} \frac{1}{\text{rank}\_i} MRR=Q1i=1Qrank_i1

    其中 rank _ i \text{rank}\_i rank_i 表示第 i i i 个查询中正确答案的排序位置。

  • 例子

    • 输入:The student submitted the
    • 候选输出(按概率排序):[report, homework, form]
    • 正确答案为 assignment,排名第 4
    • MRR = 1 4 = 0.25 \frac{1}{4} = 0.25 41=0.25
  • 优点:衡量模型排序能力;适合开放式问答、多选题预测

  • 缺点:只关注第一个正确答案;不适合多标签预测任务


2️⃣ Perplexity(困惑度):语言模型专属指标

  • 定义:衡量语言模型对测试集的平均预测难度,数值越低越好。

  • 公式
    Perplexity = exp ⁡ ( − 1 N ∑ i = 1 N log ⁡ P ( w i ∣ w < i ) ) \text{Perplexity} = \exp\left(-\frac{1}{N} \sum_{i=1}^{N} \log P(w_i | w_{<i})\right) Perplexity=exp(N1i=1NlogP(wiw<i))

  • 直观理解:模型在每个位置平均“有多少个选择”。完美模型的困惑度为 1。

  • 例子

    • 模型 A 预测 “The student submitted the assignment.” 中每个词概率均为 1/10

      • Perplexity = ( 1 10 ) 5 = 1 0 5 \left(\frac{1}{10}\right)^5 = 10^5 (101)5=105, 非常高
    • 模型 B 预测大部分词准确,只有一个词较不确定(如 1/2)

      • Perplexity 更低 → 模型更好
  • 优点

    • 标准、通用、训练过程直接相关
  • 缺点

    • 不适用于非语言建模类任务(如分类)
    • 对 tokenizer 敏感(BPE vs WordPiece 结果不同)

3️⃣ 外在指标:BLEU / WER 等

这些指标用于实际任务效果的衡量,模型不再作为主角,而是作为系统中的一环

🧪 BLEU:用于机器翻译

  • 衡量模型生成的翻译和参考翻译的 n-gram 重合度
  • 范围通常 0–1,越高越好

🧪 WER(Word Error Rate):用于语音识别

  • 衡量生成句子和参考答案之间的词级错误率

  • WER = S + D + I N \text{WER} = \frac{S + D + I}{N} WER=NS+D+I,其中:

    • S = 替换(substitutions)
    • D = 删除(deletions)
    • I = 插入(insertions)
    • N = 总词数

4️⃣ 内在 vs 外在指标对比

类型示例优点缺点
内在指标Perplexity, MRR快速、直接、易复现不一定能反映实际应用中的表现
外在指标BLEU, WER真实任务导向,评估全面与系统其他模块耦合,受上下游影响大

✅ 小结:什么是“好”的语言模型?

  1. 在 Perplexity 上表现好 → 预测合理
  2. 在排序任务中有高 MRR 或准确率 → 输出合理排序
  3. 在具体任务中提升 BLEU/WER 等指标 → 实际可用
  4. 在统一任务设置下泛化能力强 → 可 Few-shot/Zero-shot 适应多任务

一个优秀的语言模型,不只是能“说得好”,更要能“答得对”、“用得稳”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/79782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 企业级开发设计模式全解析

Java 企业级开发设计模式全解析 在 Java 企业级开发的复杂领域中&#xff0c;设计模式如同精湛的工匠工具&#xff0c;能够帮助开发者构建高效、可维护、灵活且健壮的软件系统。它们是无数开发者在长期实践中总结出的解决常见问题的最佳方案&#xff0c;掌握这些模式对于提升开…

小刚说C语言刷题—1038编程求解数学中的分段函数

1.题目描述 编程求解数学中的分段函数。 …………x1 (当 x>0 )。 yf(x)…0 (当 x0 )。 ………x−1 (当 x<0 )。 上面描述的意思是&#xff1a; 当x>0 时 yx1 ; 当 x0 时 y0 ; 当 x<0 时 yx−1 。 输入 输入一行&#xff0c;只有一个整数x(−30000≤x≤30…

滚珠螺杆的精度如何保持?

滚珠螺杆通常用于需要精确定位的地方&#xff0c;高机械效率、低传递扭矩和几乎为零的轴向游隙&#xff0c;使滚珠螺杆成为工具定位和飞机副翼驱动等应用中的重要设备。但是&#xff0c;连续工作产生的阻力和热量会导致较大的摩擦力和定位误差。那么&#xff0c;滚珠螺杆的精度…

在 Laravel 中深度集成 Casbin 到原生 Auth 系统

在 Laravel 中深度集成 Casbin 到原生 Auth 系统需要实现多层次的融合&#xff0c;以下是专业级实现方案&#xff1a; 一、核心集成架构 #mermaid-svg-WYM1aoAyHrR5bCdp {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-…

JavaScript 实现输入框的撤销功能

在 Web 开发中&#xff0c;为输入框添加撤销功能可以极大地提升用户体验&#xff0c;方便用户快速回滚到之前的输入状态。本文将通过一段简单的 HTML、CSS 和 JavaScript 代码&#xff0c;详细介绍如何实现输入框的撤销功能。 整体实现思路 利用 JavaScript 监听输入框的inpu…

计算机视觉与深度学习 | 点云配准算法综述(1992-2025)

点云配准算法综述(1992-2025) 点云配准 点云配准算法综述(1992-2025)一、传统方法(1992-2020)1. **ICP(Iterative Closest Point)**2. **NDT(Normal Distributions Transform)**3. **4PCS(4-Points Congruent Sets)**二、深度学习驱动的方法(2018-2025)1. **Poin…

数据库的二级索引

二级索引 10.1 二级索引作为额外的键 表结构 正如第8章提到的&#xff0c;二级索引本质上是包含主键的额外键值对。每个索引通过B树中的键前缀来区分。 type TableDef struct {// 用户定义的部分Name stringTypes []uint32 // 列类型Cols []string // 列名Indexes …

Java IO流核心处理方式详解

一、IO流概述 Java IO&#xff08;Input/Output&#xff09;流是处理输入输出操作的核心机制&#xff0c;通过流&#xff08;Stream&#xff09;的形式实现设备间的数据传输。所有操作都基于以下两个核心抽象&#xff1a; InputStream/OutputStream&#xff1a;字节流基类 Re…

WidowX-250s 机械臂的简单数字孪生案例

前面一段时间记录了一下WidowX-250s机械臂的学习与遥操作演示&#xff0c;相关链接如下&#xff1a; WidowX-250s 机械臂学习记录&#xff1a; https://blog.csdn.net/qq_54900679/article/details/145556979 WidowX-250s 机械臂遥操作演示记录&#xff1a; https://blog.c…

uniapp 云开发全集 云开发的概念

一、云开发的概念 1.1 云开发介绍 云开发 unicloud 是 DCloud 联合阿里云、腾讯云、支付宝云&#xff0c;为开发者提供的基于 serverless 模式和 js 编程的云开发平台&#xff0c;可以使用极小的成本代价开发具轻松实现前后台整体业务。 1.2 云开发的核心组成 云开发的核心组…

GGD独立站的优势

GGD模式(基于Google生态的独立站模式)越来越受欢迎&#xff0c;主要有以下原因&#xff1a; 1. 全球化覆盖 GGD独立站依托Google强大的生态系统&#xff0c;能够帮助企业轻松触达全球用户&#xff0c;实现国际化布局&#xff0c;拓展业务范围。Google作为全球最大的搜索引擎&…

签名去背景图像处理实例

一、前言 在生活中我们经常用到电子签名&#xff0c;但有时候我们所获取的图像的彩色图像&#xff0c;我们需要获取白底黑字的电子签名&#xff0c;我们可以通过下面程序对彩色图像进行处理达到我们的处理目的。 原始彩色图像如下&#xff1a; 二、程序和运行结果 clear all;c…

WebAssembly(Wasm):现代Web开发的超级加速器

在当今的Web开发领域&#xff0c;性能和效率是开发者们永恒的追求目标。随着Web应用的复杂度不断增加&#xff0c;传统的JavaScript在某些场景下已经难以满足高性能计算和复杂逻辑处理的需求。此时&#xff0c;WebAssembly&#xff08;Wasm&#xff09;作为一种新兴的Web技术&a…

简单理解MCP:AI如何使用工具

简单理解MCP&#xff1a;AI如何使用工具&#xff08;以天气/新闻服务为例&#xff09; 你是否注意到人工智能(AI)助手正变得越来越智能&#xff1f;它们不再仅仅是聊天&#xff0c;还能执行实际操作&#xff0c;比如查询天气、在线搜索&#xff0c;甚至预订会议。这通常涉及到…

护网奇谈: 红队工程师手记

零、引言&#xff1a;在演练中活着&#xff0c;在现实中消失 人们常说&#xff0c;护网是网络安全界的“大阅兵”。 每年一次&#xff0c;红蓝对阵&#xff0c;政企联动&#xff0c;战鼓擂响&#xff0c;态势大屏高挂&#xff0c;PPT如潮&#xff0c;报告成山。 你在屏幕前看…

机器翻译与数据集

机器翻译与数据集 语言模型是自然语言处理的关键&#xff0c;而机器翻译是语言模型最成功的基准测试。因为机器翻译正是将输入序列转换成输出序列的序列转换模型&#xff08;sequence transduction&#xff09;的核心问题。序列转换模型在各类现代人工智能应用中发挥着至关重要…

基于 HTML 和 CSS 实现的 3D 翻转卡片效果

一、引言 在网页设计中&#xff0c;为了增加用户的交互体验和视觉吸引力&#xff0c;常常会运用一些独特的效果。本文将详细介绍一个基于 HTML 和 CSS 实现的 3D 翻转卡片效果&#xff0c;通过对代码的剖析&#xff0c;让你了解如何创建一个具有立体感的卡片&#xff0c;在鼠标…

C++ 中二级指针的正确释放方法

C 中二级指针的正确释放 一、什么是二级指针&#xff1f; 简单说&#xff0c;二级指针就是指向指针的指针。 即&#xff1a; int** p;它可以指向一个 int*&#xff0c;而 int* 又指向一个 int 类型的变量。 常见应用场景 动态二维数组&#xff08;例如 int** matrix&#x…

大数据平台与数据仓库的核心差异是什么?

随着数据量呈指数级增长&#xff0c;企业面临着如何有效管理、存储和分析这些数据的挑战。 大数据平台和 数据仓库作为两种主流的数据管理工具&#xff0c;常常让企业在选型时感到困惑&#xff0c;它们之间的界限似乎越来越模糊&#xff0c;功能也有所重叠。本文旨在厘清这两种…

Winform(11.案例讲解1)

今天写两个案例,用于更好的理解控件的使用 在写之前先写一个类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _1.案例讲解 { internal class Student { public string …