智能体混合系统 (MoA)
概述 · 快速入门 · 高级示例 · 交互式命令行演示 · 评估 · 结果 · 致谢
概述
智能体混合系统(MoA)是一种新颖的方法,它利用多个大语言模型的集体优势来提升性能,实现了最先进的结果。通过采用分层架构,每一层由多个大语言模型智能体组成,MoA在AlpacaEval 2.0上的得分达到65.1%,显著超越了GPT-4 Omni的57.5%,而且仅使用了开源模型!
快速入门:50行代码实现MoA
要在您自己的应用中开始使用MoA,请参阅moa.py
。在这个简单的例子中,我们将使用2层和4个大语言模型。您需要:
- 安装Together Python库:
pip install together
- 获取您的Together API密钥并导出:
export TOGETHER_API_KEY=
- 运行Python文件:
python moa.py
多层MoA示例
在前面的例子中,我们介绍了如何实现2层MoA(4个大语言模型回答,1个大语言模型聚合)。然而,MoA的一个优势是能够通过多层处理获得更好的响应。在这个例子中,我们将介绍如何在advanced-moa.py
中运行3层以上的MoA。
python advanced-moa.py
交互式命令行演示
这个交互式命令行演示展示了一个简单的多轮对话机器人,其最终响应是由各种参考模型聚合而成。
要运行交互式演示,请按以下3个步骤操作:
- 导出您的API密钥:
export TOGETHER_API_KEY={your_key}
- 安装依赖:
pip install -r requirements.txt
- 运行脚本:
python bot.py
命令行界面将提示您交互式输入指令:
- 在">>>"提示符处输入您的指令开始。
- 系统将使用预定义的参考模型处理您的输入。
- 它将基于这些模型的聚合输出生成响应。
- 您可以通过输入更多指令继续对话,系统将保持多轮交互的上下文。
[可选] 附加配置
演示会要求您指定某些选项,但如果您想进行额外配置,可以指定以下参数:
--aggregator
:用于最终响应生成的主要模型。--reference_models
:用作参考的模型列表。--temperature
:控制响应生成的随机性。--max_tokens
:响应中的最大标记数。--rounds
:处理输入进行优化的轮数。(轮数 == MoA层数 - 1)--num_proc
:并行运行的进程数,以加快执行速度。--multi_turn
:布尔值,用于切换多轮交互能力。
评估
我们提供了脚本来快速复现论文中呈现的一些结果。为方便起见,我们包含了来自AlpacaEval、MT-Bench和FLASK的代码,并进行了必要的修改。我们对这些项目创建基准测试表示感谢。
准备工作
# 安装依赖
pip install -r requirements.txt
cd alpaca_eval
pip install -e .
cd FastChat
pip install -e ".[model_worker,llm_judge]"
cd ..
# 设置API密钥
export TOGETHER_API_KEY=<TOGETHER_API_KEY>
export OPENAI_API_KEY=<OPENAI_API_KEY>
运行AlpacaEval 2
要运行AlpacaEval 2,执行以下脚本:
bash run_eval_alpaca_eval.sh
运行MT-Bench
对于MT-Bench评估的最小示例,运行:
bash run_eval_mt_bench.sh
运行FLASK
对于FLASK评估的最小示例,运行:
bash run_eval_flask.sh
结果
我们在AlpacaEval 2.0排行榜和MT-Bench上都取得了领先地位。值得注意的是,在AlpacaEval 2.0上,仅使用开源模型,我们就实现了从57.5%(GPT-4 Omni)到65.1%(MoA)的7.6%绝对提升。
FLASK提供了模型在多个维度上的细粒度评估。我们的MoA方法在无害性、稳健性、正确性、效率、事实性、常识、洞察力、完整性方面显著优于原始的Qwen1.5-110B-Chat。此外,MoA在正确性、事实性、洞察力、完整性和元认知方面也优于GPT-4 Omni。
如果您在复现结果时遇到困难,请随时与我们联系。
致谢
值得注意的是,这项工作得以实现,要归功于AI领域活跃组织的协作精神和贡献。我们感谢Meta AI、Mistral AI、Microsoft、阿里云和DataBricks开发了Llama 3、Mixtral、WizardLM 2、Qwen 1.5和DBRX模型。此外,我们还要感谢Tatsu Labs、LMSYS和KAIST AI开发了AlpacaEval、MT-Bench和FLASK评估基准。
许可证
本项目采用Apache 2.0许可证 - 详情请参阅LICENSE文件。
引用
如果您发现这项工作有帮助,请考虑引用:
@article{wang2024mixture,
title={Mixture-of-Agents Enhances Large Language Model Capabilities},
author={Wang, Junlin and Wang, Jue and Athiwaratkun, Ben and Zhang, Ce and Zou, James},
journal={arXiv preprint arXiv:2406.04692},
year={2024}
}