微信扫码
与创始人交个朋友
我要投稿
近年来,大型语言模型 (LLMs) 在自然语言处理领域取得了突破性进展,但在复杂任务面前仍面临准确性不足的挑战。为了提升 LLM 性能,研究人员提出了多种方法,但往往需要精心设计的 prompt 或复杂的协作框架。
论文《More Agents Is All You Need》提出了一种简单而有效的 Sampling-and-Voting 方法,通过多个 LLM 代理的集体智慧来提高任务的解决能力。实验表明,该方法在算术推理、一般推理、代码生成等多种任务上都取得了显著的性能提升,并且具有通用性、兼容性、有效性和鲁棒性等特点。
本文带你快速解读论文核心要点,文末附上论文原文和代码链接。
LLM 性能提升的探索
现有的 LLM 性能提升方法主要分为三类:
LLM 自集成: 例如 CoT-SC,通过生成多个推理链并选择最一致的答案来提高推理能力。例如,在解决“小明有 5 个苹果,小红给了他 3 个,小明现在有多少个苹果?”这个问题时,CoT-SC 会生成多个推理链,例如“小明有 5 个苹果,加 3 个苹果,等于 8 个苹果”,并最终选择最合理的答案“8”。
异构 LLM 集成: 例如 LLM-Blender,通过监督学习将多个异构 LLM 整合,以提升整体性能。例如,可以将擅长生成文本的 LLM 与擅长理解文本的 LLM 进行整合,从而提高文本摘要的质量。
多 LLM 代理协作: 例如 LLM-Debate,通过 LLM 代理之间的辩论来提高推理能力。例如,可以将多个 LLM 代理分别扮演正方和反方,就某个问题进行辩论,最终根据辩论结果得出结论。
然而,这些方法存在一定的局限性,例如需要精心设计的 prompt 或复杂的协作框架,或者需要额外的训练数据。
Sampling-and-Voting 方法:简单而强大的性能提升利器
方法原理与流程:Sampling 和 Voting 两个阶段
Sampling-and-Voting 方法的核心思想是利用多个 LLM 代理的集体智慧来提高任务的解决能力。其流程分为两个阶段:
1. Sampling 阶段:
将任务查询重复输入单个 LLM 或多 LLM 代理协作框架。
每个 LLM 代理独立地对查询进行处理,并生成相应的输出结果。
收集所有 LLM 代理的输出结果,形成一个样本集合。
2. Voting 阶段:
对样本集合中的每个样本进行相似度评估,计算其与其他样本的累积相似度。
选择累积相似度最高的样本作为最终答案。
这种方法的优势在于,通过集成多个 LLM 代理的输出,可以有效地减少单个模型的偏差和错误,从而提高最终结果的准确性和可靠性。
实验设置:任务、语言模型和增强方法
为了全面评估 Sampling-and-Voting 方法的有效性,我们在多种任务、语言模型和增强方法上进行了实验:
任务:
算術推理:使用 GSM8K 和 MATH 数据集,测试 LLMs 的数学计算和推理能力。
一般推理:使用 MMLU 和 Chess 数据集,测试 LLMs 的常识推理和逻辑判断能力。
代码生成:使用 HumanEval 数据集,测试 LLMs 生成可执行代码的能力。
2. 语言模型:
Llama2-13B 和 Llama2-70B:来自 Meta AI 的开源模型,参数量分别为 130 亿和 700 亿。
GPT-3.5-Turbo:来自 OpenAI 的闭源模型,专为对话场景设计。
GPT-4:来自 OpenAI 的最先进模型,具有强大的推理和生成能力。
3. 增强方法:
Prompt Engineering:CoT, Zero-Shot CoT, SPP 等方法,通过设计不同的提示来引导 LLM 生成更准确的答案。
多 LLM 代理协作:Debate 和 Reflection 方法,通过 LLM 代理之间的交互来提高推理能力。
实验结果:通用性、兼容性、有效性和鲁棒性
实验结果表明,Sampling-and-Voting 方法在各种任务、语言模型和增强方法上都取得了显著的性能提升,并具有以下特性:
通用性:
Sampling-and-Voting 方法可以普遍提升不同任务和 LLM 的性能。
即使是小型 LLM,通过增加代理数量,也能在某些任务上达到与大型 LLM 相当甚至更好的性能。
2. 兼容性:
Sampling-and-Voting 方法可以与现有的 prompt engineering 和多代理协作方法结合,实现进一步的性能提升。
这说明该方法具有良好的正交性和可扩展性,可以与其他 LLM 性能提升技术相辅相成。
3. 有效性:
在大多数情况下,Sampling-and-Voting 方法的性能优于其他方法的独立应用。
这说明该方法简单而有效,无需复杂的模型设计或训练过程,即可显著提升 LLMs 的性能。
4. 鲁棒性:
Sampling-and-Voting 方法在不同的超参数设置下依然保持性能提升,展现出较强的鲁棒性。
这说明该方法对超参数的选择不敏感,具有较高的实用性和稳定性。
深入理解:任务难度与性能提升
任务难度对性能提升的影响
实验结果显示,Sampling-and-Voting 方法的性能提升与任务难度密切相关。在简单任务上,提升效果可能并不明显,但在复杂任务上,性能提升则更为显著。这表明该方法更适合用于解决那些对单个 LLM 具有挑战性的问题。
任务难度维度分析:内在难度、推理步骤数量、先验概率
为了更深入地理解任务难度与性能提升之间的关系,我们将任务难度分为三个维度进行分析:
内在难度:指任务本身的复杂程度,例如问题涉及的概念数量、逻辑关系的复杂程度等。内在难度越高,LLM 解决问题的难度越大,Sampling-and-Voting 方法带来的性能提升也越明显。
推理步骤数量:指解决任务所需的推理步骤数量。步骤越多,LLM 犯错的概率越高,Sampling-and-Voting 方法可以有效地减少错误积累,从而提高最终结果的准确性。
先验概率:指正确答案的先验概率,即在没有任何其他信息的情况下,正确答案出现的可能性。先验概率越低,LLM 猜对答案的可能性越小,Sampling-and-Voting 方法可以有效地扩大搜索空间,提高找到正确答案的概率。
优化策略:逐步 Sampling-and-Voting 和分层 Sampling-and-Voting
基于对任务难度维度的分析,我们提出了两种优化策略,以进一步提升 Sampling-and-Voting 方法的效力:
逐步 Sampling-and-Voting:对于需要多个推理步骤的任务,可以将任务分解为多个子步骤,并在每个子步骤上进行 Sampling-and-Voting,从而减少错误累积,提高最终结果的准确性。
分层 Sampling-and-Voting:对于先验概率较低的任务,可以先使用 Sampling-and-Voting 方法缩小答案范围,然后再使用更强大的 LLM 或其他方法进行精细搜索,从而提高找到正确答案的效率。
这两种优化策略可以根据任务的具体特点进行选择和组合,以最大程度地发挥 Sampling-and-Voting 方法的优势。
论文创新点
论文提出的 Sampling-and-Voting 方法带来了两个重要的创新观点:
观点一:简单方法也能匹敌复杂方法: 传统观点认为,提升 LLM 性能需要复杂的技术。然而,本文证明,简单的 Sampling-and-Voting 方法在许多情况下可以达到甚至超越复杂方法的效果。
观点二:小型模型也能媲美大型模型: 通常认为,大型 LLM 拥有更好的性能。然而,本文实验表明,通过增加代理数量,小型 LLM 可以达到与大型 LLM 相当甚至更好的性能水平。
结论与展望:开启 LLM 性能提升的新篇章
论文提出的 Sampling-and-Voting 方法为 LLM 性能提升提供了新的思路,并具有简单、有效、通用的优点。未来,我们将继续探索以下方向:
成本优化: 随着代理数量的增加,如何优化 Sampling 阶段的成本将成为重要的研究课题。
缓解幻觉问题: LLMs 有时会生成 factually incorrect or nonsensical 的输出,如何缓解这些“幻觉”问题,确保 LLM 的可靠性,也是未来的研究重点。
LLM 的发展日新月异,Sampling-and-Voting 方法为 LLM 性能提升提供了新的思路和工具,相信在未来,LLM 将在更多领域发挥更大的作用,为人类社会带来更多福祉。
论文与代码
论文原文:https://arxiv.org/pdf/2402.05120.pdf
代码及数据:https://anonymous.4open.science/r/more_agent_is_all_you_need
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-03-30
2024-04-26
2024-05-10
2024-04-12
2024-05-28
2024-05-14
2024-04-25
2024-07-18
2024-04-26
2024-08-13
2024-12-22
2024-12-21
2024-12-21
2024-12-21
2024-12-21
2024-12-20
2024-12-20
2024-12-19