Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena

在这里插入图片描述

指令微调后的模型不一定在传统Benchmark上取得更好的结果,类似MMLU和HELM。根据人类爱好对齐后的模型,需要新的评测方法。

文章提出了两个主要内容:MT-bench和Chatbot Arena

MT-bench是一系列开放式问题,用于评估聊天机器人的多回合对话和指令遵循能力——这是人类偏好的两个关键因素。MT-bench还精心构建,根据其核心能力(如推理和数学)区分聊天机器人。

此外,我们还开发了聊天机器人竞技场(Chatbot Arena),这是一个众包平台,可以让聊天机器人在真实场景中进行匿名战斗——用户可以同时与两个聊天机器人进行对话,并根据个人偏好对它们的反应进行评分。

并且发现了模型评测存在的些许问题:位置偏见,冗长偏见,自我增强偏见,和有限的推理能力

MT-Bench

现有的评估方式一般有三种

  1. 核心知识benchmark:有固定的回答,可以自动校验
  2. 指令跟随:是稍微开放性的问题
  3. 聊天benchmark:问题多样性,复杂、开放。

MT-bench:80条多轮对话,总共8个类别:写作、角色扮演、提取、推理、数学、编码、知识I (STEM)和知识II(人文/社会科学)。每一个类里有10条多轮对话。

Chatbot-arena

匿名对战平台,让不同的模型对一个输入进行回答,选择哪一个更好。

LLM-as-a-judge

三种评估模式:

  1. 成对比较:给大模型一个问题两个回答,选择哪一个更好,或者平局。
  2. 单回答评分:直接给出一个分数。
  3. 参考指导评分:给样例,按照样例模式给分。

advantage

可扩展,可解释

limitations

  1. position bias:大模型可能倾向于放在前面的样例,或者某些位置的样例。
  2. verbosity bias:大模型更倾向于冗长的回复
  3. self-enhancement bias:大模型更倾向于自己生成的回答
  4. Limited capability in grading math and reasoning questions:难以评价数学和推理问题

address limitations

  1. 交换位置,两次评分
  2. few-shot
  3. 思维链+先生成参考答案,指导思考
  4. 微调一个判断模型

多轮对话评估

  1. 分多次输入多轮对话的评估
  2. 一次输入全部对话评估

作者发现2更好

Agreement Evaluate

作者评估了在MT-bench和Chatbot Arena上,人类和LLM判官之间的一致性。

MT-bench

在6个大模型上问了这80个问题,然后使用两种评价:

  1. 58个专家评价
  2. LLM评价

人类和GPT-4模型的高度一致

GPT-4的两两比较和单一答案评分显示与人类专家的一致性非常高。GPT-4与人类在设置S2 (w/o tie)下的一致性达到85%,甚至高于人类之间的一致性(81%)。这意味着GPT-4的判断与大多数人类密切一致。不沦是comparison还是single score,都能给出不错的答案。

在这里插入图片描述

### 如何在 Android 项目中添加 WebSocket 支持 要在 Android 项目中添加 WebSocket 支持,可以使用 Gradle 或 Maven 来管理依赖项。以下是具体的实现方式: #### 方法一:通过 Gradle 添加依赖 Gradle 是 Android 开发中最常用的构建工具之一。为了在 Android 项目中集成 WebSocket 功能,可以通过 `build.gradle` 文件引入相应的库。 以下是一个典型的配置示例: ```groovy dependencies { implementation 'org.java-websocket:Java-WebSocket:1.3.0' [^1] } ``` 将上述代码片段添加到项目的 `app/build.gradle` 文件中的 `dependencies` 部分即可完成 WebSocket 库的引入。 #### 方法二:通过 Maven 添加依赖 如果您的项目基于 Maven 进行构建,则可以在 `pom.xml` 中定义如下依赖关系: ```xml <dependency> <groupId>org.java-websocket</groupId> <artifactId>Java-WebSocket</artifactId> <version>1.3.0</version> </dependency> ``` 此方法适用于那些仍然采用 Maven 的旧版 Android 工程或者跨平台项目。 #### 注意事项 当您尝试将 Spring Boot 和 WebSocket 结合使用时,在某些情况下可能会遇到打包问题。例如,使用 IntelliJ IDEA 自带的 JAR 打包功能可能导致运行时报错 `javax.websocket.server.ServerContainer not available` [^3]。这种现象通常是因为测试未通过而中断了构建流程。解决办法是切换至命令行模式并跳过单元测试阶段来重新执行打包操作: ```bash mvn package -DskipTests ``` 对于纯 Android 环境而言,由于其架构设计上的差异,并不会直接受此类 Bug 影响;不过仍需注意版本兼容性和设备性能等因素可能带来的额外挑战。 #### 示例代码展示基本连接逻辑 下面给出一段简单的 Java 实现用于演示如何创建一个基础客户端链接过程: ```java import org.java_websocket.client.WebSocketClient; import java.net.URI; public class SimpleWebSocketExample extends WebSocketClient { public SimpleWebSocketExample(URI serverUri) { super(serverUri); } @Override public void onOpen(ServerHandshake handshakedata) { System.out.println("Connected to Server"); } @Override public void onClose(int code, String reason, boolean remote) { System.out.println("Connection Closed:" + reason); } @Override public void onError(Exception ex) { ex.printStackTrace(); } @Override public void onMessage(String message) { System.out.println("Received Message From Server : " + message); } } // Usage Example: SimpleWebSocketExample client = new SimpleWebSocketExample(new URI("ws://echo.websocket.org")); client.connect(); ``` 以上即是在 Android Studio 内部设置以及调用 WebSockets API 的全过程概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

volcanical

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值