AgentVerse-部署多个基于大型语言模型(LLM)的智能体
AgentVerse这个框架,说白了就是让多个大模型智能体凑在一起干活儿的“总指挥部”。它主要能玩两件事:一是任务解决——把一堆智能体自动组建成一个多智能体系统,一起搞定复杂任务,比如写软件、做咨询;二是仿真——你可以在自定义环境里围观或亲自跟这些智能体互动,用来研究社会行为、做游戏什么的,都挺有意思。代码目前还在重构,如果你只需要稳定版的仿真框架,切到release-0.1分支就行。
自发布以来,AgentVerse的关键节点还真不少:2024年3月被NVIDIA的博客点名推荐;2024年1月论文被ICLR 2024接收;2023年10月在Hugging Face上开源了社区版,可以直接用OpenAI API玩NLP课堂和囚徒困境两个仿真应用;2023年8月论文详细讲了任务解决框架里的多智能体协作机制和涌现行为;2023年6月放出了一批演示,包括软件设计、数据库管理、宝可梦H5游戏等;2023年5月项目正式启动。
即将到来
- 论文代码完整发布
- 支持本地LLM(LLaMA, Vicuna等)
- 文档升级
- 更复杂的对话历史记忆
内容
下面直接进入正题,从安装开始,到仿真和任务解决的实操,再到本地模型的支持说明,最后看看AgentVerse的具体展示。
开始使用
安装
手动安装(推荐)
确保Python版本>=3.9:
git clone https://github.com/OpenBMB/AgentVerse.git --depth 1 cd AgentVerse pip install -e .
如果要用LLaMA这类本地模型,再装几个依赖:
pip install -r requirements_local.txt
通过pip安装
pip install -U agentverse
环境变量
你需要导出OpenAI API密钥:
export OPENAI_API_KEY="your_api_key_here"
如果用Azure OpenAI,则导出:
export AZURE_OPENAI_API_KEY="your_api_key_here" export AZURE_OPENAI_API_BASE="your_api_base_here"
仿真
框架所需模块
agentverse agents simulation_agent environments simulation_env
CLI示例
以教室场景为例,九个智能体——一个教授,八个学生:
agentverse-simulation --task simulation/nlp_classroom_9players
GUI示例
启动本地网站演示:
agentverse-simulation-gui --task simulation/nlp_classroom_9players
服务器跑起来后,访问 http://127.0.0.1:7860/ 就能看到教室环境。如果想运行带工具的仿真案例(比如simulation/nlp_classroom_3players_withtool),需要先安装BMTools:
git clone git+https://github.com/OpenBMB/BMTools.git cd BMTools pip install -r requirements.txt python setup.py develop
不过这是可选的——不装的话,不带工具的普通仿真依然能跑。
任务解决
框架所需模块
- agentverse - agents - simulation_env - environments - tasksolving_env
CLI示例
跑论文[2]提出的任务解决环境实验,可以这样:
运行基于AgentVerse的基准数据集:
agentverse-benchmark --task tasksolving/humaneval/gpt-3.5 --dataset_path data/humaneval/test.jsonl --overwrite
跑单个问题:
agentverse-tasksolving --task tasksolving/brainstorming
如果用工具案例(多智能体共用浏览器、Jupyter、bing搜索等),先构建XAgent[3]提供的ToolServer,按他们的指导[4]搞定后,再运行:
agentverse-tasksolving --task tasksolving/tool_using/24point
更多的工具使用任务放在agentverse/tasks/tasksolving/tool_using/里,可以慢慢翻。论文里其他的实验示例也都在agentverse/tasks/tasksolving目录下。
本地模型支持
vLLM支持
如果要跑vLLM(处理大规模推理),先按照文档[5]搭建vLLM服务器,然后设置环境变量:
export VLLM_API_KEY="your_api_key_here" export VLLM_API_BASE="http://your_vllm_url_here"
接着在任务配置里把model改成vLLM服务器里对应的模型名,比如:
model_type: vllm model: llama-2-7b-chat-hf
FSChat支持
FSChat是个本地模型框架,支持LLaMA、Vicuna等。集成步骤很简单:
1. 安装额外依赖
pip install -r requirements_local.txt
2. 启动本地服务器
根据你的模型路径和名称修改MODEL_PATH和MODEL_NAME,然后运行:
bash scripts/run_local_model_server.sh
脚本默认启动Llama 7B聊天模型。当前支持的MODEL_NAME包括:llama-2-7b-chat-hf、llama-2-13b-chat-hf、llama-2-70b-chat-hf、vicuna-7b-v1.5、vicuna-13b-v1.5。如果要用其他的FastChat兼容模型[6],需要:
1. 在agentverse/llms/init.py的LOCAL_LLMS列表里加上新模型名。
2. 在同一个文件的LOCAL_LLMS_MAPPING字典里,把模型名跟它的Huggingface标识符对应上。
3. 修改配置文件
在配置里把llm_type设为local,model设成你用的模型名:
llm: llm_type: local model: llama-2-7b-chat-hf ...
具体例子可以看agentverse/tasks/tasksolving/commongen/llama-2-7b-chat-hf/config.yaml。
AgentVerse 展示
仿真展示
参见仿真展示[7]
任务解决展示
参见任务解决展示[8]
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名