MiniWoB++的RCI代理
欢迎来到我们论文"语言模型可以解决计算机任务"的代码库。在这个代码库中,你会找到我们RCI代理的实现,它使用预训练的语言模型在MiniWoB++基准测试中执行计算机任务,由自然语言引导。该代理采用简单的RCI提示方案,使其能够改进输出。
依赖项
RCI代理使用Python 3.9实现,需要以下依赖项:
- gym
- openai
- selenium
- Pillow
- regex
pip install -r requirements.txt
注意:MiniWoB++在Windows上不受官方支持。请参考此问题。
使用方法
设置
要运行代码,你必须首先安装MiniWoB++并配置你的OpenAI API密钥。MiniWoB++与OpenAI Gym环境集成。导航到computergym
目录并执行以下命令来安装它:
cd computergym
pip install -e .
完成后,你需要在example_config.json
文件中写入你的OpenAI API密钥,然后将文件重命名为config.json
运行
要运行代码,只需执行以下命令:
python main.py --env [任务名称] --llm [语言模型名称] --num-episodes [集数] --erci [显式RCI次数] --irci [隐式RCI次数] --sgrounding
以下是你需要指定的参数:
--env
:你想运行的MiniWoB++任务的名称。你可以在available_tasks.txt
中查看可用任务列表--llm
:你想使用的语言模型的名称。模型名称和相应的API名称如下:- chatgpt: "gpt-3.5-turbo"
- davinci: "text-davinci-003"
- ada: "ada"
- babbage: "babbage"
- curie: "curie"
- davinci1: "davinci"
- davinci2: "text-davinci-002"
--num-episodes
:运行任务的集数--erci
:动作计划的显式RCI循环次数。-1
将移除动作计划采样--irci
:代理接地的隐式RCI循环次数--sgrounding
:如果为True,则启用状态接地更新--headless
:如果为True,则MiniWoB++环境将在无头模式下运行
考虑运行以下命令来验证一切是否正常运行:
python main.py --env choose-list --llm chatgpt --num-episodes 1 --irci 1 --sgrounding
评估
我们项目的方法取得了令人印象深刻的结果,我们的代理在所有测试模型中获得了第二高的分数。我们观察到我们的代理优于基线,除了CC-Net(SL + RL),它使用基于字典的打字动作。
我们的RCI代理的独特之处在于,它使用的样本比WebN-T5-3B少120倍,比CC-Net少11,000倍就实现了这一壮举。获取专家演示和为计算机任务定义奖励函数可能是一个艰巨的挑战,但我们的研究突出了使用LLM克服这些障碍并在通用计算机任务中取得成功的潜力。
查看我们的论文!
我们的论文可在Arxiv上获取。如果你在研究中使用此代码,我们恳请你引用我们的论文。
@article{kim2023language,
title={Language Models can Solve Computer Tasks},
author={Geunwoo Kim and Pierre Baldi and Stephen McAleer},
journal={arXiv preprint arXiv:2303.17491},
year={2023},
}