大模型评测之幻觉检测hallucination_evaluation_model
大背景:
- 2025开年deepseek铺天盖地的新闻
- 参会代表已经表明,年度主线就是以AI为基础
- Manus于3月初横空出世
- 国内各种模型竞赛的现状,只要是和科技沾边的公司不可能没有大模型,哪怕是里三层外三层套壳也得上
- 东升西降,宏观使然,竞争中必然有科技竞争
小背景
- 本公司自研大模型rd,在模型排名中必有一席之地
- 除了加大力度研发,还需各种评测
- 正好,吾就是一名专业的模型评测员
- 随着各种假信息的泛滥,模型越来越不清楚安全的边界、真实的边界,只是于铺天盖地的网页中查找然后总结,算不上一个优秀的大模型
幻觉检测
什么是幻觉检测?
官网中介绍到:“HHEM模型系列旨在检测 LLM 中的幻觉。它们在构建检索增强生成 (RAG) 应用程序的背景下特别有用,其中 LLM 总结了一组事实,并且 HHEM 可用于衡量该总结与事实在事实上的一致程度。”
说人话,就是检测一下大模型对事实的认知能力如何。
大模型地址:https://huggingface.co/vectara/hallucination_evaluation_model
如何做幻觉检测
- 仔细阅读中大模型地址的Model Card部分,这对你理解 “事实但是幻觉” 很重要。
- 把项目克隆下来,待会儿要用到里面的模型进行计算
- 下载官方数据集,https://huggingface.co/datasets/vectara/leaderboard_results/tree/main ,数据集是一个很大的csv文件,里面是用于测试幻觉的各种问题,用于模型的输入
- 使用提示语,提示语要和问题进行拼接
编写一个脚本,从csv中读取问题,请求大模型,再将大模型的答案追加到后一列。参考如下:
def huan_jue():
df = pd.read_csv('leaderboard_summaries.csv', encoding='utf-8')
df = df[df['model'] == 'deepseek/deepseek-v3'] data = {"source": [], 'ori_summary': [], "rendu_summary": []}
for index, row in df.iterrows():
source = row[0]
ori_summary = row[1]
msg = f'Provide a concise summary of the following passage, covering the core pieces of information described in english. {source}'
con = rendu(msg)
try:
con = con['choices'][0]['message']['content']
except IndexError:
con = ''
print(index, con[:100])
data["source"].append(source)
data["ori_summary"].append(ori_summary)
data["rendu_summary"].append(con) df2 = pd.DataFrame(data)
df2.to_csv('output.csv', index=False)上面的过程可能很漫长,建议放到服务器后台进行,后台命令参考,如果不打算用服务器跑,这一步忽略。
nohup python hallucination_test.py > nohup.out 2>&1 &
下载依赖的模型,参考代码如下(如果已配置梯子,这一步可以忽略)
import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
from huggingface_hub import snapshot_download snapshot_download(
repo_id="microsoft/OmniParser-v2.0",
# repo_type="dataset", # 下载数据集时才需要
local_dir="../hallucination_evaluation_model/google/flan-t5-base",
# proxies={"https": "http://localhost:7890"},
# max_workers=8,
etag_timeout=180
)- 使用大模型地址的Model Card部分提到的计算方式进行计算,这也是为什么第一步让大家熟读Model Card。我用的是Pipline方式计算的。计算也很耗时,建议放在服务器进行。
分数转化为排行榜支持的形式,首先我们看一下排行榜 https://huggingface.co/spaces/vectara/leaderboard ,首列分数越低代表该大模型致幻程度越小,说明模型越好。那四列的意思分别为:
幻觉率:幻觉评分低于0.5的摘要百分比
- 事实一致率:幻觉率的补充,以百分比表示。
- 回答率:非空摘要的百分比。这要么是模型拒绝生成响应,要么是由于各种原因抛出错误。(例如,模型认为文档包含不恰当的内容)
- 平均摘要长度:生成的摘要的平均字数
- 转换分数脚本参考
import pandas as pd
result = {
'Hallucination Rate': 0,
'Factual Consistency Rate': 0,
'Answer Rate': 0,
'Average Summary Length': 0
}
with open('result.json', 'r') as f:
con = eval(f.read())
hr = fcr = ar = 0
df = pd.read_csv('hallu_rendu/rendu_summary.csv') asl = []
for i in df['rendu_summary'].tolist():
j = i.split(' ')
sm = 0
sm += len(j)
asl.append(sm) for i in con:
if i < 0.5:
hr += 1
if not i:
ar += 1 hr = round(hr/len(con), 2)
fcr = 1-hr
hr = str(hr * 100) + '%'
fcr = str(fcr * 100) + '%'
ar = str((len(con) - ar) / len(con) * 100) + '%'
asl = str(sum(asl)/len(asl))
result['Hallucination Rate'] = hr
result['Factual Consistency Rate'] = fcr
result['Answer Rate'] = ar
result['Average Summary Length'] = asl
print(result)
聊一聊我们的模型评测结果
我们的rd模型在评测中各项评分如下:{'Hallucination Rate': '16.0%', 'Factual Consistency Rate': '84.0%', 'Answer Rate': '100.0%', 'Average Summary Length': '102.68190854870775'}
这个结果算不上好,但至少上榜了。
你们的呢,评论区聊一聊
大模型评测之幻觉检测hallucination_evaluation_model的更多相关文章
- R2CNN模型——用于文本目标检测的模型
引言 R2CNN全称Rotational Region CNN,是一个针对斜框文本检测的CNN模型,原型是Faster R-CNN,paper中的模型主要针对文本检测,调整后也可用于航拍图像的检测中去 ...
- AI大模型学习了解
# 百度文心 上线时间:2019年3月 官方介绍:https://wenxin.baidu.com/ 发布地点: 参考资料: 2600亿!全球最大中文单体模型鹏城-百度·文心发布 # 华为盘古 上线时 ...
- 无插件的大模型浏览器Autodesk Viewer开发培训-武汉-2014年8月28日 9:00 – 12:00
武汉附近的同学们有福了,这是全球第一次关于Autodesk viewer的教室培训. :) 你可能已经在各种场合听过或看过Autodesk最新推出的大模型浏览器,这是无需插件的浏览器模型,支持几十种数 ...
- PowerDesigner 学习:十大模型及五大分类
个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...
- PowerDesigner 15学习笔记:十大模型及五大分类
个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...
- WPF 3D 平移模型+动画(桥梁检测系统)
原文:WPF 3D 平移模型+动画(桥梁检测系统) 关于WPF 3D,网上有很多旋转的例子,但是关于平移的例子并不是太多.本文并非WPF 3D扫盲篇,因此需要对WPF 3D有一定了解,至少知道View ...
- 华为高级研究员谢凌曦:下一代AI将走向何方?盘古大模型探路之旅
摘要:为了更深入理解千亿参数的盘古大模型,华为云社区采访到了华为云EI盘古团队高级研究员谢凌曦.谢博士以非常通俗的方式为我们娓娓道来了盘古大模型研发的"前世今生",以及它背后的艰难 ...
- 文心大模型api使用
文心大模型api使用 首先,我们要获取硅谷社区的连个key 复制两个api备用 获取Access Token 获取access_token示例代码 之后就会输出 作文创作 作文创作:作文创作接口基于文 ...
- 千亿参数开源大模型 BLOOM 背后的技术
假设你现在有了数据,也搞到了预算,一切就绪,准备开始训练一个大模型,一显身手了,"一朝看尽长安花"似乎近在眼前 -- 且慢!训练可不仅仅像这两个字的发音那么简单,看看 BLOOM ...
- DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍
DeepSpeed Chat: 一键式RLHF训练,让你的类ChatGPT千亿大模型提速省钱15倍 1. 概述 近日来,ChatGPT及类似模型引发了人工智能(AI)领域的一场风潮. 这场风潮对数字世 ...
随机推荐
- Qt编写的项目作品21-网络请求客户端/服务器
一.实现原理 http请求就是tcp通信,所以第一步实例化QTcpServer类监听端口,并绑定newConnection信号槽. 一旦有新的连接,交给专门的解包类处理,将对应的数据解包,http请求 ...
- 导出 wireshark 网络包二进制数据的三种方法
Wireshark 是一款很好用的 UI 抓包工具,在 Windows.macOS 上都可以使用.最近开发的一个统计日志上报功能,发送的网络请求明明可以收到 server 正确的响应,但却捞取不到相关 ...
- 综述😋Security and Privacy Challenges of ✌Large Language Models A Survey
- Failed to run MSBuild command 错误问题解决
场景:提示:这里简述项目相关背景: CMake 报错 CMake ERROR Failed to run MSBuild command: MSBuild.exe.如下图所示: 问题描述提示:这里描述 ...
- postgresql-10.12-2-windows-x64安装成功后在安装postgis-bundle-pg96x64-setup-2.5.3-1时提示Spatial database creation failed
问题描述: postgresql-10.12-2-windows-x64安装成功后在安装postgis-bundle-pg96x64-setup-2.5.3-1时提示Spatial database ...
- 基于开源IM即时通讯框架MobileIMSDK:RainbowChat v11.6版已发布
关于RainbowChat RainbowChat是一套基于开源IM聊天框架 MobileIMSDK 的产品级移动端IM系统.RainbowChat源于真实运营的产品,解决了大量的屏幕适配.细节优化. ...
- 融云技术分享:基于WebRTC的实时音视频首帧显示时间优化实践
本文由融云技术团队原创投稿,作者是融云WebRTC高级工程师苏道,转载请注明出处. 1.引言 在一个典型的IM应用里,使用实时音视频聊天功能时,视频首帧的显示,是一项很重要的用户体验指标. 本文主要通 ...
- 性能测试工具_nGrinder
1. ngrinder-controller-3.4.3.war 放置到tomcat的webapps目录下:2. 启动tomcat;3. 访问地址: http://localhost:8080/ngr ...
- 让 LLM 来评判 | 基础概念
基础概念 这是 让 LLM 来评判 系列文章的第一篇,敬请关注系列文章: 基础概念 选择 LLM 评估模型 设计你自己的评估 prompt 评估你的评估结果 奖励模型相关内容 技巧与提示 什么是评估模 ...
- UWP Shadow 阴影
参考文字: https://mtaulty.com/2016/08/10/windows-10-uwp-and-composition-light-and-shade/ <Grid Backgr ...