EcoAssistant:更经济、更准确地使用 LLM 助理
查看我们在 AutoGen 网站上的博客!
最新 AutoGen 的简化版本位于simplified_demo.py
中
EcoAssistant 是一个框架,可以使 LLM 助手更经济、更准确地进行代码驱动的问答。它基于助理层次结构和解决方案演示的思想。它基于 AutoGen 构建。
LLM Assistant 是由 ChatGPT 和 GPT-4 等会话式 LLM 支持的助理代理,能够在会话中解决用户查询。
代码驱动问答是需要LLM助理编写代码调用外部API来回答问题的任务。例如,对于“X城市未来5天的平均气温是多少?”这个问题,助手需要编写代码通过某些API获取天气信息,并计算出X城市未来5天的平均气温。 5天。
代码驱动的问答需要迭代编码,因为就像人类一样,LLM 很难在第一次尝试时编写出正确的代码。因此,助手需要与用户交互以获得反馈并迭代修改代码,直到代码正确。我们在双代理对话框架上构建了我们的系统,其中LLM助手与代码执行器代理相结合,可以自动执行代码并将输出返回给LLM助手。
助理层次结构是助理的层次结构,其中 LLM 助理按其成本进行排名(例如,GPT-3.5-turbo -> GPT-4)。当解决用户查询时,EcoAssistant 首先要求最便宜的助手来回答查询。只有当它失败时,我们才会调用更昂贵的助手。它旨在通过减少昂贵助手的使用来节省成本。
解决方案演示是一种利用过去成功的查询代码对来帮助未来查询的技术。每次成功解决查询时,我们都会将查询代码对保存到数据库中。当出现新查询时,我们从数据库中检索最相似的查询,然后使用该查询及其关联代码作为上下文演示。它旨在通过利用过去成功的查询代码对来提高准确性。
辅助层次结构和解决方案演示的结合放大了个人收益,因为高性能模型的解决方案将自然地用于指导较弱的模型,而无需具体设计。
对于有关天气、股票和地点的查询,EcoAssistant 的成功率比单独的 GPT-4 助手高出 10 个百分点,而成本还不到 GPT-4 的 50%。更多详细信息可以在我们的论文中找到。
所有数据都包含在该存储库中。
您只需在keys.json
中设置您的API密钥
安装所需的库(我们推荐Python3.10):
pip3 install -r requirements.txt
我们使用Mixed-100数据集作为示例。对于其他数据集,只需在以下命令中将数据集名称更改为 google_places/stock/weather/mixed_1/mixed_2/mixed_3 即可。
输出结果可以在results
文件夹中找到。
以下命令适用于第 4.5 节中描述的没有人类反馈的自治系统。
运行GPT-3.5-turbo助手
python3 run.py --data mixed_100 --seed 0 --api --model gpt-3.5-turbo
运行GPT-3.5-turbo助手+Chain-of-Thought
打开cot
python3 run.py --data mixed_100 --seed 0 --api --cot --model gpt-3.5-turbo
运行GPT-3.5-turbo助手+解决方案演示
打开solution_demonstration
python3 run.py --data mixed_100 --seed 0 --api --solution_demonstration --model gpt-3.5-turbo
运行助手层次结构(GPT-3.5-turbo + GPT-4)
将model
设置为gpt-3.5-turbo,gpt-4
python3 run.py --data mixed_100 --seed 0 --api --model gpt-3.5-turbo,gpt-4
运行EcoAssistant:助手层次结构(GPT-3.5-turbo + GPT-4)+解决方案演示
python3 run.py --data mixed_100 --seed 0 --api --solution_demonstration --model gpt-3.5-turbo,gpt-4
启用人工反馈
对于具有人工判断的系统,请将eval
设置为human
(默认为llm
),如以下示例命令。
python3 run.py --data mixed_100 --seed 0 --api --solution_demonstration --model gpt-3.5-turbo,gpt-4 --eval human
运行我们收集的 Mixed-100 的黄金代码,如第 4.4 节所述
该脚本将打印代码输出。
python3 run_gold_code_for_mix_100.py
如果您发现此存储库有用,请考虑引用:
@article { zhang2023ecoassistant ,
title = { EcoAssistant: Using LLM Assistant More Affordably and Accurately } ,
author = { Zhang, Jieyu and Krishna, Ranjay and Awadallah, Ahmed H and Wang, Chi } ,
journal = { arXiv preprint arXiv:2310.03046 } ,
year = { 2023 }
}