如何通过MT-Bench评估大模型

news2024/11/13 11:46:38

如何评估LLM在开放性问题的回答能力

  前面三篇博客中介绍了如何评估大模型,内容包括评估大模型时常用的指标,每个指标背后的含义,如何通过编写代码实现指标的收集。对于pass@k指标,还进行了专门的说明。在前面的博客中,我们提到,对于数据集大致可以分为三类,选择题,数学题,代码生成题,对于这三类数据集,在收集指标时,实现过程都有所不同,具体如下图所示。

  可以看到,上面的数据集都找到了一种方式来评估LLM生成的内容是否正确,那么,如果是针对开放性问题,如何评估LLM的能力呢?比如让LLM写一篇优美的作文,写一封措辞友好的email等。这类问题,无法通过选择题来做标准数据集,在实际应用中,很多下游任务往往是这种更贴近人类的开放性问题任务,他不会是做一个选择题或者数学题。对于这类任务,如何有效的评估LLM的能力呢?本篇博客提到的MT-Bench评估方法就是解决该类问题的。

如何实现MT-Bench评估

MT-Bench采用的数据集

   首先来看看MT-Bench评估所采用的数据集,如下图所示,可以看到MT-Bench方法采用的数据集包含了写作、角色扮演、推理、数学、编码、人文、提取、STEM(科学(Science),技术(Technology),工程(Engineering),数学(Mathematics)四门学科英文首字母的缩写),8个不同领域的问题。和前面介绍的数据集mmlu,c-eval等相似。

  具体到某个类型下的数据,如下图所示,包括category,prompt,reference,这里的reference是标准答案,有些category类型有标准答案,有些是没有的。

MT-Bench评估方法的原理

  一句话理解就是用GPT4作为裁判,对其他大模型生成的内容进行打分,分数设置为1-10,通过分数高低来评估LLM生成的内容的质量。

  在MT-Bench中会提到两个术语,第一个是turn1,turn2,即第一轮和第二轮,这里的turn2指的是:针对第一个问题,继续问第二个相关性问题,对于第二个问题的得分情况。例如,如下图所示,可以看到,第二个问题都和第一个问题紧密相关。

  MT-Bench中第二个术语就是“Single Answer Grading”和“Pariwise Comparison”。Single Answer的意思就是:针对大模型的回答,给出具体的分数;Pariwise的意思是:在输入时会给出两个模型生成的答案,让GPT4判断哪个大模型生成的答案更好。理解了上面的术语后,我们再来看看MT-Bench中使用到的Prompt

MT-Bench中使用到的Prompt

MT-Bench中使用到的prompt部分截图,如下所示,如果要review所有的prompt,查看这里。

上面的prompt中,大概的意思就是让gpt作为judge裁判,对内容进行评估, 对上面的pair-v2的system_prompt信息进行翻译,内容如下所示:“请充当一个公正的评委,评估两个AI助手对以下用户问题提供的回应的质量。您应选择那个按照用户的指示更好地回答了用户的问题的助手。您的评估应考虑诸如回应的实用性、相关性、准确性、深度、创造性和详细程度等因素。开始您的评估,比较两个回应并提供简要解释。避免任何立场偏见,并确保回应的呈现顺序不影响您的决定。不要让回应的长度影响您的评估。不要偏袒助手的某些名称。请尽量客观。在提供解释后,请按照以下格式严格输出您的最终判决:“[[A]]”如果助手A更好,“[[B]]”如果助手B更好,对于平局,请输出“[[C]]

对于single-v1的prompt_template信息进行翻译,内容如下所示“

[指导]
请充当一个公正的评委,评估AI助手对以下用户问题的回应质量。您的评估应考虑回应的实用性、相关性、准确性、深度、创造性和详细程度等因素。开始您的评估,提供简要解释。请尽量客观。在提供解释后,您必须按照以下格式严格给出对回应的评分,使用这个格式:“[[评分]]”,例如:“评分:[[5]]”。

[问题]
{问题}

[助手回答的开始]
{回答}
[助手回答的结束]

 通过对上面prompt的分析,可以进一步知道MT-Bench的工作原理。即,首先调用需要评估的大模型将数据集中的问题作为输入,得到大模型生成的答案,再通过gpt4对生成的答案进行打分,得到最终的评估结果。

MT-Bench脚本执行过程

  在Fashchat的官网给出了如何通过运行脚本收集评估结果的步骤,这里做简要介绍。如果对FastChat如何部署大模型不清楚,可以参考我前面的关于FastChat的博客。

第一:通过FastChat部署需要评估的大模型

git clone https://github.com/lm-sys/FastChat.git
cd FastChat
pip install -e ".[model_worker,llm_judge]"
python3 -m fastchat.serve.controller
python3 -m fastchat.serve.vllm_worker --model-path [MODEL-PATH]
python3 -m fastchat.serve.openai_api_server --host localhost --port 8000

第二:调用部署模型的接口生成答案

python gen_api_answer.py --model [MODEL-NAME] --openai-api-base http://localhost:8000/v1 --parallel 50

第三:调用GPT4对生成的答案的评分

export OPENAI_API_KEY=XXXXXX  # set the OpenAI API key
python gen_judgment.py --model-list [LIST-OF-MODEL-ID] --parallel [num-concurrent-api-call]

MT-Bench评估存在的局限性

  虽然MT-Bench可以帮助评估LLM在开放性问题方面的能力,但也有很多局限性,这些局限性导致给出的评估结果可能不是完全正确。具体的局限性如下所示:

1.Position bias,位置偏见,当两个模型答案比较靠近的时候,交换两个模型的答案的位置,会改变评估结果,通常来说,靠前的答案,得分更高一些。
2.Verbosity bias,啰嗦性偏见,如果内容写的更多,通常能拿到更好的分数。
3.Self-enhancement bias,自我增强的偏见,如果其他模型生成的内容,与gpt4生成的内容更贴近,通常得分更高。
4.Limited capability in grading math and reasoning questions,对数学和推理问题的评分能力有限。

总结

  对于MT-Bench的局限性,我是这样看待的,有评估指标强过没有评估指标。另外,还可以通过相对比较的方式,评估可选模型中哪些模型能力相对更好一些。

  MT-Bench评估方法提供的数据集只包含了8个典型领域的问题,在实际应用中,还可以进一步扩张,使用MT-Bench评估方法的思路,对微调后的模型或者垂直领域模型进行评估。例如,训练了一个专门写测试用例的模型,那么可以准备一份测试用例数据集,采用MT-Bench的思路进行评估。总结而言,MT-Bench提出的评估模型思路是非常有价值的,尽管存在一些局限性。

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

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

相关文章

【PC端查看PDA扫描结果】

1、生成条形码 https://www.gaitubao.com/barcode 2、打开Android Studio 进行下图这样配置,那么就能看到pda扫描的数据了 Decoding result:

Jenkins插件安装失败时这么做就搞定啦!

1.网络或墙的问题导致插件下载安装失败 这种错误提示很明显,就是无法连接到插件下载地址,导致插件下载失败。 解决方法 为Jenkins更换源 点击Jenkins主页面左侧列表中【系统管理】—— 下拉找到【管理插件】 选择【高级】选项卡 替换最下方【升级站点…

PTFE四氟托盘应用于化工、医药、食品行业

PTFE托盘是一种广泛应用于化工、医药、食品等行业的特种托盘,采用聚四氟乙烯(PTFE)材料制造而成。PTFE是一种具有出色耐腐蚀性、高温稳定性和优异物理特性的材料。 PTFE托盘在化工领域中被广泛应用,主要用于处理腐蚀性的化学物质。…

【极客公园 IF 2024】李彦宏:AI-native时代,需要怎样的产品和开发者

文章目录 01 卷 AI 原生应用才有价值,大模型进展 对 多数人不是机会02 大公司代表落后生产力,千万不要看大公司在干嘛03 搜索本身也在进化,有机会变成全新的产品04 用生成式AI改造现有业务,可以创造更大价值05 创业公司能做出三五…

LeetCode刷题--- 全排列 II

个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 http://t.csdnimg.cn/6AbpV 数据结构与算法 http://t.csdnimg.cn/hKh2l 前言:这个专栏主要讲述递归递归、搜…

【微服务架构】——hystrix基础知识

文章目录 一、Hystrix是什么?二、为什么要使用Hystrix?三、在哪用?什么时候用?四、Hystrix是如何实现自动服务降级和服务熔断的呢? 一、Hystrix是什么? Hystrix是一个用于处理分布式系统的延迟和容错的开源…

智慧安防视频监控可视化平台EasyCVR调用接口返回“Unauthorized”是什么原因?

智慧安防视频监控可视化平台EasyCVR采用了开放式的网络结构,平台能在局域网、公网、专网等复杂的网络环境中,将场景中分散的海量网络监控设备进行统一接入与汇聚管理,并能提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云…

在 Windows PC 上轻松下载并安装 FFmpeg

FFmpeg 是一种开源媒体工具,可用于将任何视频格式转换为您需要的格式。该工具只是命令行,因此它没有图形、可点击的界面。如果您习惯使用常规图形 Windows 程序,安装 FFmpeg 一开始可能看起来很复杂,但不用担心,它;很简…

xhr请求是什么?

1、什么是xhr请求? xhr,全称为XMLHttpRequest,用于与服务器交互数据,是ajax功能实现所依赖的对象,jquery中的ajax就是对 xhr的封装。 XHR(XMLHttpRequest)请求是一种在浏览器中发送HTTP请求的…

互式流程图|BPMN JointJS+ JavaScript 3.7.3 Crack

JointJS 是 JavaScript 图表库为卓越的 UI 提供支持 使用经过验证的库快速、自信地构建高级视觉和无代码/低代码应用程序。 赋能全球行业领导者 使用 JointJS 构建的图表 一个库,‍无限 UI 选项 直接在您的应用程序中享受交互式流程图、BPMN 和其他图表工作室。利用…

matplotlib科研绘图之折线图、柱状图、散点图、误差棒

matplotlib折线图例子1 # -*- coding: utf-8 -*- # Time : 2023/12/19 10:56 # Author : 长沙有肥鱼 # FileName: 21.py # Software: PyCharm # Blog : https://blog.csdn.net/weixin_53660567?spm1010.2135.3001.5343# 导入Matplotlib库 import matplotlib import ma…

【Vue】el-date-picker日期范围组件(本周、本月、上周)

系列文章 【Vue】vue增加导航标签 本文链接:https://blog.csdn.net/youcheng_ge/article/details/134965353 【Vue】Element开发笔记 本文链接:https://blog.csdn.net/youcheng_ge/article/details/133947977 【Vue】vue,在Windows IIS平台…

proxysql读写分离组件部署

一、前言 在mysql一主两从架构的前提下,引入读写分离组件,可以极大的提高mysql性能,proxysql可以在高可用mysql架构发生主从故障时,进行自动的主从读写节点切换,即当mysql其他从节点当选新的主节点时,proxy…

使用yolov8和moviepy自动截取视频中人出现的片段

前言 这么长时间没写博客,其实主要是忙于一个行为实时检测大型项目的开发,最近闲下来就写这篇当年末总结了。这篇文章的起因还是某个业务需求,要求分析视频中有人的部分,没人的部分需要去掉,同时行为检测的数据集如果…

沉浸式数字文旅黑科技!用AI数字人升级景区体验

这年头文旅界也太卷了! 在国家文化数字化战略的深入实施下,各地方文旅纷纷打造新型消费场景,以数字文旅提升消费产品的互动性和社交性,增强用户沉浸式体验。 其中,数字人乘着AI大语言模型的东风,被文旅品牌…

SAP 特殊采购类80简介

前面我们已经测试特殊采购类40、70,我们今天测试一下特殊采购类80。 特殊采购类80:在替代工厂生产,在成品层维护特殊采购类,需求和收货在计划工厂完成,成品生产和组件采购在生产工厂完成。 80采购类也是我们在SAP系统中实现跨工厂需求传递的一种方式。它具有传递方式简单、…

破局:国内母婴市场“红利减退”,母婴店如何拓客引流裂变?

破局:国内母婴市场“红利减退”,母婴店如何拓客引流裂变? 背景:中国母婴市场近年来人口出生率一直在恒定范围值,国家也在鼓励优生、多生政策,并且随着互联网的高速发展,人均可支配收入也在增加&…

XC6617 双路输出电容式触摸感应加PWM调光芯片 适用于触摸台灯、触摸调光LED灯

XC6617是一款单路输入双路输出电容式触摸感应PWM调光IC XC6617可在有介质(如玻璃、亚克力、塑料、陶瓷等)隔离保护的情况下实现触摸功能,安全性高。XC6617内置稳压源、上电复位/低压复位及环境自适应算法等多种措施,抗干扰性能优秀。 应用范围:…

程序员应用开发的神器——低代码

一、火热的低代码 低代码的热潮至今未消停,从阿里钉钉跨平台协作方式,再到飞书上的审批流程,以及目前我们接触到的表单审批、投票的模板,这些都是关于低代码的实现方式。 据Gartner最新报告显示,到2023年,超…

微信小程序隐藏返回首页按钮

当用户打开的小程序最底层页面是非首页时,默认展示“返回首页”按钮,开发者可在页面onLoad或者onShow中调用 hideHomeButton 进行隐藏 onLoad(options) {wx.hideHomeButton() }, 官方文档 链接:wx.hideHomeButton(Object object) | 微信开放…