大模型评测之幻觉检测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数据库相关开发的一些经验总结
一.前言 近期花了两个多月时间,将数据库相关的代码重新封装成了各种轮子(这条路必须打通,打通以后,相关项目只需要引入这个组件pri即可),测试了从Qt4.7到Qt6.1的各种版本,测试了odbc.sq ...
- ANOSIM分析
ANOSIM分析(analysis of similarities)即相似性分析,主要用于分析高维数据组间相似性,为数据间差异显著性评价提供依据.在一些高维数据分析中,需要使用PCA.PCoA.NMD ...
- 前端学习openLayers配合vue3(加载线上数据源)
现在我们学习一下加载网上的线上数据再加上点矢量图层,紧接着上一步 关键代码 layers: [ //瓦片图层source第三方,或者自带的,地图的底层 new TileLayer({ // sourc ...
- vue el-select封装一个滚动加载更多下拉选项的自定义指令
没有什么讲究,直接上代码 模板部分 <el-select v-model="operator" filterable remote size="small" ...
- js操作shadow-root内的DOM元素
其实就是 documentfragment元素,就是动态生成的文档碎片元素. 1,项目中在DOM结构里遇到了shadow-root(open),用JS方法无法直接获取其内的DOM元素 2.shadow ...
- MySQL8.0常用命令
---------------------------------------------------------------------------------------------------- ...
- ClickHouse-4SQL参考
SQL参考 ClickHouse支持以下形式的查询: SELECT INSERT INTO CREATE ALTER 其他类型的查询 ClickHouse SQL 语句 语句表示可以使用 SQL 查询 ...
- 无网环境Docker Rpm离线安装
总体思路:找一台可以联网的linux,下载docker的RPM依赖包而不进行安装(yum localinstall),将所有依赖的rpm环境打包好,再在无网环境中解压逐一安装(rpm: --force ...
- bug的合规描述
bug的合格描述: 发现问题的版本bug的合格描述: 开发人员需要知道出现问题的版本,才能够获取对应版本的代码来重现故障问题出现的环境 环境分为硬件环境和软件环境,详细的环境描述有利于故障的重现( ...
- Kotlin:【泛型】