CHATEVAL: TOWARDS BETTER LLM-BASED EVALUATORS THROUGH MULTI-AGENT DEBATE

828 篇文章

已下架不支持订阅

本文研究如何通过多智能体辩论框架ChatEval改善基于大型语言模型(LLM)的文本评估,以实现更接近人类评估质量的效果。ChatEval让多个LLM协同工作,通过角色扮演和沟通策略,提高了处理复杂评估任务的效率和准确性。实验证明,ChatEval在两个基准任务上表现出与人类评估一致的高准确性和相关性,且角色多样性和不同的沟通策略对其性能至关重要。

本文是LLM系列文章,针对《CHATEVAL: TOWARDS BETTER LLM-BASED EVALUATORS THROUGH MULTI-AGENT DEBATE》的翻译。

CHATEVAL:通过多智能体的辩论,实现更好的基于LLM的评估

摘要

文本评估在历史上提出了重大挑战,通常需要大量的人力和时间成本。随着大型语言模型(LLM)的出现,研究人员探索了LLM作为人类评估替代品的潜力。虽然这些基于单智能体的方法显示出了前景,但实验结果表明,还需要进一步的进步来弥补其目前的有效性和人类水平的评估质量之间的差距。认识到人类评估过程的最佳实践通常涉及多个人类注释器在评估中的协作,我们求助于多智能体辩论框架,超越了单一智能体的提示策略。基于多代理的方法使一组LLM能够与一系列智能同行协同工作,利用他们独特的能力和专业知识来提高处理复杂任务的效率和有效性。在本文中,我们构建了一个名为ChatEval的多智能体裁判团队,以自主讨论和评估不同模型对开放式问题和传统自然语言生成(NLG)任务生成的回答的质量。我们从实际场景中获得见解和教训,在这些场景中,人类发起小组讨论进行头脑风暴,并在ChatEval中提出不同的沟通策略。我们在两个基准任务上的实验表明,ChatEval提供了与人类评估一致的卓越准确性和相关性。此外,我们发现不同的角色提示(不同的人物角色)在多智能体辩论过程中是必不可少的;也就是说,在提示中使用相同的角色描述可能会导致性能下降。我们的定性分析还表明,ChatEval超越了单纯的文本评分,为可靠的评估提供了一个模仿人类的评估过程。我们的代码可在https://github.com/chanchimin/ChatEval.

1 引言

2 方法

3 实验

已下架不支持订阅

TimeCMA是一种创新性的多变量时间序列预测(MTSF)框架,它通过跨模态对齐的方式,利用大型语言模型LLM)来提升预测性能[^1]。这一方法的设计目的是解决传统时间序列预测模型在处理高维、复杂时空依赖性和多尺度动态方面的不足。TimeCMA的核心在于其跨模态对齐模块,该模块基于信道间相似性检索来聚合时间序列和LLM分支,从而增强模型的预测能力[^1]。 在TimeCMA中,时间序列数据和由LLM生成的提示嵌入被有效结合,前者提供了解耦但可能较弱的时间序列嵌入,后者则提供了纠缠但鲁棒的提示嵌入[^2]。这种双模态编码策略使得TimeCMA能够更好地捕捉时间序列中的长期依赖关系,同时克服了LLM在处理多尺度动态和季节模式上的局限性。 此外,TimeCMA通过使用最后一个token嵌入来减少计算成本和加速LLM方法的推理速度,这表明了其在实际应用中的高效性和可行性。这种方法不仅提高了预测的准确性,还增强了模型的可解释性,这对于需要高度透明度的应用场景尤为重要。 ### 示例代码 下面是一个简化的示例,展示如何构建一个基本的时间序列预测模型,尽管它并不直接实现TimeCMA,但可以作为理解其工作原理的基础。 ```python import numpy as np from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense # 构建LSTM模型 model = Sequential() model.add(LSTM(50, activation='relu', input_shape=(n_steps, n_features))) model.add(Dense(1)) model.compile(optimizer='adam', loss='mse') # 准备数据 def split_sequence(sequence, n_steps): X, y = [], [] for i in range(len(sequence)): end_ix = i + n_steps if end_ix > len(sequence)-1: break seq_x, seq_y = sequence[i:end_ix], sequence[end_ix] X.append(seq_x) y.append(seq_y) return np.array(X), np.array(y) # 定义输入序列 raw_seq = [10, 20, 30, 40, 50, 60, 70, 80, 90] n_steps = 3 n_features = 1 X, y = split_sequence(raw_seq, n_steps) X = X.reshape((X.shape[0], X.shape[1], n_features)) # 拟合模型 model.fit(X, y, epochs=200, verbose=0) # 进行预测 x_input = np.array([70, 80, 90]) x_input = x_input.reshape((1, n_steps, n_features)) yhat = model.predict(x_input, verbose=0) print(yhat) ``` 此代码片段演示了如何使用Keras库中的LSTM层来构建一个简单的递归神经网络模型,用于时间序列预测。虽然这不是TimeCMA的具体实现,但它可以帮助理解时间序列预测的基本概念。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

UnknownBody

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

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

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

打赏作者

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

抵扣说明:

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

余额充值