AvaTaR
AvaTaR: 优化工具辅助知识检索的大型语言模型代理
AvaTaR是一种新颖且自动化的框架,旨在优化大型语言模型(LLM)代理,以有效地使用提供的工具,并在特定任务或领域中提升其性能。在优化过程中,我们设计了一个比较模块(comparator module),通过对从训练数据中抽取的正面和负面例子的推理,迭代地向LLM代理提供有见地和全面的提示。
使用场景
AvaTaR主要用于需要大量信息检索和处理的场景,如问答系统、图像注释生成、以及其他需要精确工具使用的复杂任务。比如在数据集STaRK和Flickr30k Entities上,通过优化LLM代理的动作,可以显著提升其任务表现。
安装步骤
-
创建环境并安装依赖:
conda create -n avatar python=3.11 pip install stark-qa typeguard
-
准备工作:
- 在命令行中指定API密钥:
export ANTHROPIC_API_KEY=YOUR_API_KEY export OPENAI_API_KEY=YOUR_API_KEY export OPENAI_ORG=YOUR_ORGANIZATION
- 下载嵌入(Embeddings):
sh scripts/emb_download_all.sh
- 获取并组织原始数据:
- 运行代码时,STaRK数据将自动下载。
- 对于Flickr30k Entities,需提交表单获取访问权限,然后按照以下结构组织数据:
data ├── flickr30k_entities │ ├── raw │ │ ├── Annotations │ │ ├── flickr30k-images │ ├── split │ │ ├── test.index │ │ ├── train.index │ │ ├── val.index │ ├── qa.csv
- 在命令行中指定API密钥:
运行代理
我们已经在output/eval
目录下包含了本地VSS结果,并在output/agent
目录下包含了分组数据(仅限STaRK)。通过这些文件,您可以直接按照AvaTaR管道优化代理动作。
-
优化:根据默认设置进行优化:
sh scripts/run_avatar_stark.sh
可以在
scripts/run_avatar_stark.sh
中指定数据集名称和分组。sh run_avatar_flickr30k_entities.sh
-
评价:运行以下命令评价优化后的代理动作:
sh scripts/run_eval_avatar_stark.sh
或
sh scripts/run_eval_avatar_flickr30k_entities.sh
参考文献
@article{wu24avatar,
title = {AvaTaR: Optimizing LLM Agents for Tool-Assisted Knowledge Retrieval},
author = {
Shirley Wu and Shiyu Zhao and
Qian Huang and Kexin Huang and
Michihiro Yasunaga and Kaidi Cao and
Vassilis N. Ioannidis and Karthik Subbian and
Jure Leskove and James Zou
},
eprinttype = {arXiv},
eprint = {2406.11200},
year = {2024}
}
广告:私人定制视频文本提取,字幕翻译制作等,欢迎联系QQ:1752338621