LLM输出评估标准
LLM输出评估标准
LLM评估方法
- 响应的完整性和简洁性:确定大模型的响应是否完全解决用户查询,简洁性则评估生成响应的相关性。
- 文本相似性指标:将生成的文本与参考文本进行比较,评估它们的相似度,并给出得分以理解大模型的表现。
- 问答准确性:衡量大模型基于事实的正确性回答问题的能力。
- 相关性:确定大模型对特定提示或用户问题的响应相关性。
- 幻觉指数:识别大模型生成的信息多少是虚构的,或是否对特定提示输出了偏见内容。
- 有害性:确定大模型输出中冒犯性或有害语言的百分比。
- 任务特定指标:这取决于任务类型和应用(如摘要、翻译等),存在的专业指标,例如机器翻译的 BLEU分数。
LLM评估指标
任务 | 评测指标 | 说明 |
---|---|---|
分类任务 | 精准率 召回率 F1分数 | 计算模型预测为正例的样本中真正为正例的比例 计算全部正例的样本中被模型正确预测的比例 综合衡量模型输出的精确率和召回率 |
语言建模任务 | 困惑度 | 衡量模型对文本数据的预测能力 |
文本生成任务 | BLUE ROUGE | 衡量机器翻译与参考翻译之间的重叠度 衡量机器摘要对参考摘要的覆盖度 |
问题任务 | 准确率 | 衡量模型预测的正确答案的比例 |
注意:
- BLEU(Bilingual Evaluation Understudy) 评估机器翻译和文本生成任务之间的重叠率。
- ROUGE(Recall-Oriented Understudy for Gisting Evaluation) 是一种广泛用于评估文本生成任务(如机器翻译、摘要生成等)输出质量的自动评价指标。
- BLUE 更适合评估较长文本的翻译质量,综合考虑了词汇重叠和文本长度。
- ROUGE 更适合评估短文本的相似度,如摘要生成任务。
困惑度(Perplexity)
在语言建模任务中,困惑度(ppl、Perplexity)是一种常用的评估指标,用于衡量模型对文本数据的预测能力。困惑度越低,表示模型对文本的预测越准确。
困惑度定义
困惑度是基于概率模型的一个度量,用于评估模型对一组数据的拟合程度。具体来说,困惑度衡量的是模型在生成给定文本时的不确定性。数学上,困惑度定义为:
ppl = 2 − 1 N ∑ i = 1 N log 2 P ( w i ) 其中: N 是文本中词的数量 P ( w i ) 是模型预测第 i 个词的概率 \text{ppl} = 2^{-\frac{1}{N} \sum_{i=1}^{N} \log_2 P(w_i)} 其中:\\ N 是文本中词的数量\\ P(w_i) 是模型预测第i个词的概率 ppl=2−N1∑i=1Nlog2P(wi)其中:N是文本中词的数量P(wi)是模型预测第i个词的概率
为什么使用困惑度
- 直观性:困惑度可以理解为模型在预测下一个词时的平均“困惑”程度。困惑度越低,表示模型对文本的预测越准确。
- 标准化:困惑度将不同长度的文本进行了标准化,使得不同长度的文本可以进行比较。
- 易于计算:困惑度的计算相对简单,适用于各种概率模型。
计算步骤
1. 计算每个词的对数概率:对于每个词 w i ,计算模型预测该词的概率 P ( w i ) 2. 求和:将所有词的对数概率相加: ∑ i = 1 N log 2 P ( w i ) 3. 取平均值:将总和除以词的数量 N : 1 N ∑ i = 1 N log 2 P ( w i ) 4. 取指数:最后,取上述结果的负指数: 2 − 1 N ∑ i = 1 N log 2 P ( w i ) \begin{aligned} &1. 计算每个词的对数概率: 对于每个词 w_i,计算模型预测该词的概率 P(w_i)\\ &2. 求和: 将所有词的对数概率相加: \sum_{i=1}^{N} \log_2 P(w_i)\\ &3. 取平均值: 将总和除以词的数量 N: \frac{1}{N} \sum_{i=1}^{N} \log_2 P(w_i)\\ &4. 取指数: 最后,取上述结果的负指数: 2^{-\frac{1}{N} \sum_{i=1}^{N} \log_2 P(w_i)} \end{aligned} 1.计算每个词的对数概率:对于每个词wi,计算模型预测该词的概率P(wi)2.求和:将所有词的对数概率相加:i=1∑Nlog2P(wi)3.取平均值:将总和除以词的数量N:N1i=1∑Nlog2P(wi)4.取指数:最后,取上述结果的负指数:2−N1∑i=1Nlog2P(wi)
示例
假设我们有一个简单的语言模型,对一个含 3 个token的句子进行预测,每个token的概率分别为:
P ( w 1 ) = 0.5 P ( w 2 ) = 0.25 P ( w 3 ) = 0.125 P(w_1) = 0.5 \\ P(w_2) = 0.25 \\ P(w_3) = 0.125 P(w1)=0.5P(w2)=0.25P(w3)=0.125
计算困惑度的步骤如下:
1. 计算每个词的对数概率: log 2 P ( w 1 ) = log 2 0.5 = − 1 log 2 P ( w 2 ) = log 2 0.25 = − 2 log 2 P ( w 3 ) = log 2 0.125 = − 3 2. 求和: ∑ i = 1 3 log 2 P ( w i ) = − 1 + ( − 2 ) + ( − 3 ) = − 6 3. 取平均值: 1 3 ∑ i = 1 3 log 2 P ( w i ) = − 6 3 = − 2 4. 取指数: 2 − ( − 2 ) = 2 2 = 4 \begin{aligned} & 1. 计算每个词的对数概率: \\ & \log_2 P(w_1) = \log_2 0.5 = -1 \\ & \log_2 P(w_2) = \log_2 0.25 = -2 \\ & \log_2 P(w_3) = \log_2 0.125 = -3 \\ & 2. 求和: \sum_{i=1}^{3} \log_2 P(w_i) = -1 + (-2) + (-3) = -6 \\ & 3. 取平均值: \frac{1}{3} \sum_{i=1}^{3} \log_2 P(w_i) = \frac{-6}{3} = -2\\ & 4. 取指数: 2^{-(-2)} = 2^2 = 4 \\ \end{aligned} 1.计算每个词的对数概率:log2P(w1)=log20.5=−1log2P(w2)=log20.25=−2log2P(w3)=log20.125=−32.求和:i=1∑3log2P(wi)=−1+(−2)+(−3)=−63.取平均值:31i=1∑3log2P(wi)=3−6=−24.取指数:2−(−2)=22=4
因此,该语言模型的困惑度为 4。
困惑度的解释
- 困惑度为 1:表示模型完美地预测了每个词,这是理想情况。
- 困惑度大于 1:表示模型存在一定的预测误差,数值越大,表示模型的预测能力越差。
困惑度的应用
- 语言模型评估:在训练语言模型时,可以使用困惑度来评估模型的性能,选择最优的模型。
- 文本生成:在文本生成任务中,困惑度可以用来评估生成文本的质量。
- 机器翻译:在机器翻译任务中,困惑度可以用来评估翻译模型的性能。
总结
困惑度(Perplexity)是语言建模任务中一个重要的评估指标,用于衡量模型对文本数据的预测能力。困惑度越低,表示模型的预测越准确。通过计算每个词的对数概率并取平均值,最后取指数,可以得到困惑度。
个人学习记录使用不喜勿喷,感谢~
- 精准率、召回率、F1分数
- 困惑度(Perplexity)
- BLUE
- ROUGE
相关文章:
LLM输出评估标准
LLM输出评估标准 LLM评估方法 响应的完整性和简洁性:确定大模型的响应是否完全解决用户查询,简洁性则评估生成响应的相关性。文本相似性指标:将生成的文本与参考文本进行比较,评估它们的相似度,并给出得分以理解大模…...
ansible学习笔记之02command模块与shell模块
目录 1、概述 2、模块介绍 2.1 command模块 2.2 shell模块 2.3 小结 3、实验 3.1 测试ls命令 3.2 测试环境变量 3.3 测试操作符">" 1、概述 本文介绍ansible的command模块与shell模块,并通过实验比对两个模块的异同。 2、模块介绍 2.1…...
Python 在同一/或不同PPT文档之间复制幻灯片
复制幻灯片可以帮助我们更高效地完成工作,节省大量的制作时间。通过复制现有的幻灯片,可以快速创建新的演示文稿,而无需重新设计板式样式等。此外,复制幻灯片还可以帮助我们保持内容的一致性,使整个PPT演示文稿看起来更…...
4. React 性能优化技巧:如何让你的应用更快
在构建大型应用时,性能优化是一个非常重要的话题。React 提供了许多优化工具,帮助我们提高应用的渲染速度和响应能力。本文将分享一些常见的 React 性能优化技巧。 4.1. 使用 React.memo 缓存组件 当组件的 props 没有变化时,React 默认不会…...
云标准:云计算标准
目录 云计算标准的定义和分类 云计算标准的内容 云计算标准的重要性 云计算标准化组织 5.云计算标准的具体实例 云计算标准是确保云计算技术、服务和应用发展的重要规范,它们对于提高云计算系统的互操作性、可靠性和安全性至关重要。以下是对云计算标准的详细解…...
Redis【2】- SDS源码分析
1 简介&基础用法 Redis 中用得最多的就是字符串,在 C 语言中其实可以直接使用 char* 字符数组来实现字符串,也有很多可以直接使用得函数。但是 Redis 并没有使用 C 语言原生的字符串,而是自己实现了一个 SDS(简单动态字符串&…...
力扣打卡8:最长上升子序列
链接:300. 最长递增子序列 - 力扣(LeetCode) 本题我开始想到的是dp,复杂度为O(n^2),这也是很经典的解法。 看到进阶解法可以O(nlogn),想到可能是要用到二分,但是,我想到的是和map排…...
记录一次老平台改造通知用户刷新页面,纯前端实现
记录一次老平台改造通知用户刷新页面,纯前端实现 方案概述背景现状问题本质 方案设计前提设计实现 其他补充写在最后的话抛出一个问题 方案概述 背景 前端构建完上线,用户还停留还在老页面,用户不知道网页重新部署了,跳转页面的时…...
ubuntu22.04 使用可以用的镜像源获取你要的镜像
默认的是不行的 不管pull啥镜像 仍然会出现这个错误 Error response form daemon:Get "https://registry-1.docker.io/v2": net/http: request canceled while waiting for connection (Client.Timeout exceeded while await) 操作方法是 如果在目录没有/etc/docker…...
Chrome扩展程序开发示例
项目文件夹内文件如下: manifest.json文件内容: {"manifest_version": 3,"name": "我的法宝","description": "我的有魔法的宝贝","version": "1.0","icons": {"…...
Linux 下使用飞鸽传书实现与Windows飞秋的通信
最近把单位的办公电脑换成Linux系统,但是其他同事们都使用飞秋2013进行局域网通信和文件传输,经过一番尝试,发现飞鸽传书For Linux 2014能够实现两者的互相通信。 飞鸽传书ForLINUXLinux版下载_飞鸽传书ForLINUX免费下载_飞鸽传书ForLINUX1.2…...
docker批量创建cloudstack虚拟主机脚本
批量创建cloudstack脚本 #!/bin/bash # 配置变量 container_prefix"cloudworker-" base_ip"192.168.1." start_ip2 #开始ip start_container2 #上同 end_container4 #结束ip 包括 network_name"my_macvlan_network" image_name"dockedahi:…...
SpringBoot项目集成MinIO
最近在学习MinIO,所以想让自己的SpringBoot项目集成MinIO,在网上查阅资料,并进行操作的过程中遇到一些问题,所以想把自己遇到的坑和完成步骤记录下来供自己和各位查阅。 一. MinIO的下载安装以及基本使用 1. 下载地址:https://d…...
【Flutter】常用样式、方法、组件(长期更新中)
一、样式设置 设置颜色透明度:color: Color(0xff4B9E32).withOpacity(0.08) 二、常用方法 数组排序:list.sort(); **升序**:(obj1, obj2) > obj1.compareTo(obj2) **降序**:(obj1, obj2) > obj2.compareTo(obj1)obj1.co…...
dbus接口方法的variant类型传参详解
python实现c++中so库调用及dbus服务开发-CSDN博客 之前写的这篇博文介绍了如何创建一个dbus服务,但是注册的接口方法的入参还是比较简单的,实际上dbus的参数类型有很多种,调用方式也有多种,我们来逐一介绍下。 其实基础数据类型,如字符串、整型、浮点型、布尔型等大多数…...
【时时三省】(NIT计算机考试)Word的使用方法
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 一、软件简介 Microsoft Word,简称Word,是微软公司开发的一款文字处理软件,广泛应用于文档编辑、排版、打印等领域。无论是撰写论文、报告、简历…...
spring技术点
引入对象 Autowired 和 Resource的区别 Autowired 和 Resource的区别 valid 参数校验 jarkata进行SpringMVC校验 常规当前进行校验的配置操作,参考文档如下进行操作。 SpringMVC校验注解不生效 List类型参数校验 由于list类型默认不能进行标注校验实现&#x…...
工业—使用Flink处理Kafka中的数据_ChangeRecord1
使用 Flink 消费 Kafka 中 ChangeRecord 主题的数据,当某设备 30 秒状态连续为 “ 预警 ” ,输出预警 信息。当前预警信息输出后,最近30...
实验日志——DETR
DETR训练日志 1. 代码来源 代码源自作者的Github: https://github.com/facebookresearch/detr?tabreadme-ov-file 2. 数据来源 在DETR中只使用了COCO2017数据集,其中训练集有118288张图像,验证集有5001张数据,测试集有40671张数据&#…...
前端常用缓存技术深度剖析
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
汽车IVI中控开发入门及进阶(三十七):基于HFP协议的蓝牙电话
概述: HFP全称Hands-free Profile,是一款让蓝牙设备控制电话的软件,多用于汽车上。此类设备最常见的例子是车载免提装置与蜂窝电话或可穿戴无线耳机一起使用。该配置文件定义了支持免提配置文件的两个设备如何在点对点的基础上相互交互。免提模式的实现通常使耳机或嵌入式免…...
分布式系统架构1:共识算法Paxos
1.背景 今天开始更新分布式的文章,工作几年后还没系统的学习分布式的内容,趁着还有时间学习沉淀的时候多输出些文章 2.为什么需要分布式共识算法 思考:现在你有一份随时变动的数据,需要确保它正确存储在网络的几台不同机器上&a…...
大语言模型应用Text2SQL本地部署实践初探
自从两年前OpenAI公司发布ChatGPT后,大模型(Large Language Model,简称LLM)相关技术在国内外可谓百家争鸣,遍地开花,在传统数据挖掘、机器学习和深度学习的基础上,正式宣告进入快速发展的人工智能(Artificial Intellig…...
C# WPF抽奖程序
C# WPF抽奖程序 using Microsoft.Win32; using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows; using System.…...
linux运维命令
防火墙相关命令 防火墙规则查看 firewall-cmd --list-all 禁ping firewall-cmd --permanent --add-rich-rulerule protocol valueicmp drop firewall-cmd --reload 执行完以上命令后,通过firewall-cmd --list-all查看规则生效情况 firewall-cmd --list-all 其…...
环境兼容: Vue3+ELement-plus
题目:环境兼容: Vue3ELement-plus 前言 身为小白的我也在负责一个项目咯,开发的是Vue3项目,然后就搜阅多篇文章,整理了这个。内容很多是转载的,拼成的我这个文章。 Element-plus简介 Element-plus 是基于…...
解决 PyTorch 中的 AttributeError: ‘NoneType‘ object has no attribute ‘reshape‘ 错误
这里写目录标题 一、错误分析二、错误原因三、解决方案1. 检查损失函数2. 检查前向传播3. 检查 backward 函数4. 检查梯度传递 四、前向传播与反向传播1. 前向传播2. 反向传播3. 自定义 backward 函数示例反向传播过程:常见的错误:1:损失函数…...
Unity 设计模式-命令模式(Command Pattern)详解
命令模式(Command Pattern)是一种行为型设计模式,它将请求封装成对象,从而使得可以使用不同的请求、队列或日志请求,以及支持可撤销的操作。命令模式通常包含四个主要角色:命令(Command…...
如何解决maven项目使用Ctrl + /添加注释时的顶格问题
一、问题描述 相信后端开发的程序员一定很熟悉IDEA编译器和Maven脚手架,使用IDEA新建一个Maven工程,通过SpringBoot快速构建Spring项目。在Spring项目pom.xml文件中想添加注释,快捷键Ctrl /,但是总是顶格书写。 想保证缩进统一…...
网络安全信息收集(总结)更新
目录 重点: 前言: 又学到了,就是我们什么时候要子域名收集,什么时候收集域名,重点应该放前面 思考: 信息收集分为哪几类,什么是主域名,为什么要收集主域名,为什么要收…...
微服务-seata分布式事务
1.简述 1.1.什么是分布式事务 事务:是应用程序中一系列严密的操作,所有操作必须成功完成,要么全部失败,ACID 特性。本地事务:关系型数据库中,由一组SQL组成的一个执行单元,该单元要么整体成功,要么整体失败ÿ…...
(亲测好用)YOLO格式txt数据集转COCO格式json
1、数据集结构形式 YOLO格式数据集: b文件夹下有images和labels两个文件夹,分别存放图片和标签格式的数据。 两个文件夹下分别有train、val、test三个文件夹,里面存放对应的数据。 COCO数据集格式: COCO格式数据文件夹下有三个…...
LVS的DR模式是否依赖内核的数据包转发
LVS的DR模式是否依赖内核的数据包转发 是的,LVS(Linux Virtual Server) 的 DR(Direct Routing)模式 依赖于 内核的数据包转发。在 DR 模式下,数据包的转发行为是由 Linux 内核进行的,因此正确配…...
沿着数组的指定轴对每行(列)应用一个函数np.apply_along_axis
【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 沿着数组的指定轴 对每行(列)应用一个函数 np.apply_along_axis [太阳]选择题 根据题目代码,执行的结果是? import numpy as np array np.array([[1, 2, 3],…...
BEPUphysicsint定点数3D物理引擎使用
原文:BEPUphysicsint定点数3D物理引擎使用 - 哔哩哔哩 上一节給大家介绍了BEPUphysicsint的一些基本的情况,这节课我们来介绍它的基本使用,本节主要从以下5个方面来介绍: (1) 创建一个物理世界Space,并开启模拟迭代; (2) 添加一个物理物体…...
LinuxUDP编程
由于UDP是无连接、尽力传输的,所以Server端绑定完IP、端口号后,使用recvfrom可以阻塞等待客户端的数据,而且Client端通过sendto发送的数据包直接发送到互联网(也是基于IP、端口号)这种操作是不担保Server端是否收到的&…...
Elasticsearch vs 向量数据库:寻找最佳混合检索方案
图片来自Shutterstock上的Bakhtiar Zein 多年来,以Elasticsearch为代表的基于全文检索的搜索方案,一直是搜索和推荐引擎等信息检索系统的默认选择。但传统的全文搜索只能提供基于关键字匹配的精确结果,例如找到包含特殊名词“Python3.9”的文…...
Android显示系统(07)- OpenGL ES - 纹理Texture
Android显示系统(02)- OpenGL ES - 概述 Android显示系统(03)- OpenGL ES - GLSurfaceView的使用 Android显示系统(04)- OpenGL ES - Shader绘制三角形 Android显示系统(05)- OpenGL…...
C#加速Bitmap存图
如果希望大幅提高图像保存速度,特别是在处理非常大的图像时,可以尝试以下更直接、更高效的方法: 1. 避免使用 Bitmap 类的 Save 方法 Bitmap.Save 方法的速度受限于 GDI 库的操作,尤其是对于非常大的图像,它可能会经历…...
打通Vue3+Flask(python3)+Mysql-实现简单数据交互
一、需要准备的工具 下载python3,Vscode,pycharm(这里用的社区版),phpstudy_pro,Node.js(建议下载长期支持版本,版本不宜过低,比如18,20),Vue.js…...
PT8M2102 触控型 8Bit MCU
1 产品概述 ● PT8M2102 是一款基于 RISC 内核的8位 MTP 单片机,内部集成了电容式触摸感应模块、TIMER,PWM、LVR、LVD、WDT等外设,其主要用作触摸按键开关,广泛适用于触控调光、电子玩具、消费电子、家用电器等领域,具…...
【PyQt5教程 一】Qt Designer 安装及其使用方法说明,附程序源码
目录 一、PyQt5介绍: (1)PyQt简介: (2)PyQt API: (3)支持的环境: (4)安装: (5)配置环境变量…...
Spark on Yarn安装配置,大数据技能竞赛(容器环境)
Spark on Yarn模式,即把Spark作为一个客户端,将作业提交给Yarn服务,由于在生产环境中,很多时候都要与Hadoop使用同一个集群,因此采用Yarn来管理资源调度,可以有效提高资源利用率。 环境说明: 服…...
★ 数据结构 ★ 排序
Ciallo~(∠・ω< )⌒☆ ~ 今天,我将和大家一起学习数据结构中的各种排序~ ❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️ 澄岚主页:椎名澄嵐-CSDN博客 数据结构专栏:https://blog.csdn.net/2302_80328146/categ…...
数据结构 (26)图的遍历
前言 数据结构中的图遍历是指从图中的任一顶点出发,按照某种方法访问图中的所有顶点,且每个顶点只访问一次。 一、遍历方法 遍历主要有两种方法:深度优先搜索(DFS)和广度优先搜索(BFS)。 1.深度…...
用vue框架写一个时钟的页面
你可以使用Vue框架来创建一个简单的时钟页面。首先,你需要在HTML文件中引入Vue框架的CDN: <script src"https://cdn.jsdelivr.net/npm/vue"></script>然后,创建一个包含时钟功能的Vue实例: <div id&qu…...
【Android】View的工作流程——measure
1.View的工作流程入口 1.1DecorView被加载到Window中 看到这里你对Activity的构成有一定的了解,每个 Activity 都有一个与之关联的 Window 对象,而 DecorView 是这个 Window 的根视图。当DecorView被创建以及加载资源的时候,此时它的内容还…...
day35—蓝桥杯2024年第16届校赛模拟第二期-T4(最小花费)
【问题描述】 小蓝有一个整数,初始值为 1 ,他可以花费一些代价对这个整数进行变换。 小蓝可以花费 1 的代价将整数增加 1 。 小蓝可以花费 3 的代价将整数增加一个值,这个值是整数的数位中最大的那个(1 到 9)。 小蓝可…...
Java 中 List 接口的学习笔记
1. 什么是 List? 在 Java 中,List 是一个接口,属于 Java Collections Framework。它表示一个有序的集合,可以包含重复元素。List 接口允许通过索引访问元素,提供了多种实现方式,如 ArrayList 和 LinkedLis…...
朗新科技集团如何用云消息队列 RocketMQ 版“快、准、狠”破解业务难题?
作者:邹星宇、刘尧 朗新科技集团:让数字化的世界更美好 朗新科技集团股份有限公司是领先的能源科技企业,长期深耕电力能源领域,通过新一代数字化、人工智能、物联网、电力电子技术等新质生产力,服务城市、产业、生活中…...