语言模型代理的树搜索
我们提出了一种推理时的树搜索算法,使语言模型代理能够在交互式网络环境中进行探索和多步规划。本仓库展示了如何在VisualWebArena和WebArena基准测试上运行我们的方法。
待办事项
- 为价值函数添加除gpt-4o以外的其他选项
新闻
安装
# 推荐Python 3.10或3.11
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
playwright install
pip install -e .
在(V)WA上的端到端评估
-
设置独立环境。 详情请查看此页面。
-
配置每个网站的URL。 首先,将
DATASET
导出为visualwebarena
:
export DATASET=visualwebarena
然后,设置网站的URL
export CLASSIFIEDS="<你的分类广告域名>:9980"
export CLASSIFIEDS_RESET_TOKEN="4b61655535e7ed388f0d40a93600254c" # 分类广告网站的默认重置令牌,如果你编辑了docker-compose.yml,请更改
export SHOPPING="<你的购物网站域名>:7770"
export REDDIT="<你的Reddit域名>:9999"
export WIKIPEDIA="<你的维基百科域名>:8888"
export HOMEPAGE="<你的主页域名>:4399"
如果你想在WebArena任务上运行,请确保也设置了CMS、GitLab和地图环境,然后设置它们各自的环境变量:
export DATASET=webarena
export SHOPPING_ADMIN="<你的电子商务CMS域名>:7780/admin"
export GITLAB="<你的GitLab域名>:8023"
export MAP="<你的地图域名>:3000"
- 为每个测试示例生成配置文件:
python scripts/generate_test_data.py
你将在config_files文件夹中看到生成的*.json
文件。每个文件包含一个测试示例的配置。
- 获取并保存所有网站的自动登录cookie:
bash prepare.sh
- 设置API密钥。
如果使用OpenAI模型,将有效的OpenAI API密钥(以sk-
开头)设置为环境变量:
export OPENAI_API_KEY=你的密钥
- 启动评估。例如,要复现我们的GPT-4o + 搜索代理,你可以运行提供的脚本:
bash scripts/run_vwa_shopping_search.sh
该脚本将使用我们论文中的默认超参数在完整的VWA购物任务集上运行搜索代理。请注意,包含字幕模型的基线默认在GPU上运行(例如,BLIP-2-T5XL作为字幕模型将占用大约12GB的GPU VRAM)。同样,scripts/
中的其他bash脚本复现了其他VWA网站和纯文本WA环境的结果。
默认情况下,脚本运行带有搜索的代理实验。如果你希望复现基线结果(没有搜索),在执行run.py
时设置--agent_type prompt
。
运行Llama-3模型
如果你希望运行我们论文中的Llama-3模型,首先设置一个vLLM OpenAI兼容服务器。然后,更新scripts/run_llama_vwa_shopping_search.sh
中的OPENAI_BASE_URL
环境变量,以反映vLLM服务器运行的URL。这个特定脚本展示了如何在VWA购物环境中运行Llama-3代理;它在其他方面与运行其他环境的OpenAI脚本非常相似。
代理轨迹
我们在这里发布了gpt-4o代理(使用gpt-4o作为奖励函数)的代理轨迹和结果。它们以run.py中指定的相同格式保存。
引用
如果你发现我们的方法或代码有用,请考虑引用我们的论文:
@article{koh2024tree,
title={Tree Search for Language Model Agents},
author={Koh, Jing Yu and McAleer, Stephen and Fried, Daniel and Salakhutdinov, Ruslan},
journal={arXiv preprint arXiv:2407.01476},
year={2024}
}
致谢
我们的代码主要基于VisualWebArena代码库和WebArena代码库。