EcoAssistant: использование помощника LLM более доступно и точно
Посетите наш блог на сайте AutoGen!
Упрощенная версия с последней версией AutoGen находится в simplified_demo.py
EcoAssistant — это платформа, которая может сделать помощника LLM более доступным и точным для ответов на вопросы с помощью кода. Он основан на идее иерархии помощников и демонстрации решений . Он построен на основе AutoGen.
Помощник LLM — это помощник-агент, поддерживаемый диалоговым LLM, таким как ChatGPT и GPT-4, и способный отвечать на запросы пользователей в ходе разговора.
Ответ на вопросы на основе кода — это задача, требующая от помощника LLM написания кода для вызова внешних API для ответа на вопрос. Например, при задании вопроса «Какова средняя температура в городе X в ближайшие 5 дней?» помощнику необходимо написать код, чтобы получить информацию о погоде через определенный APIS и рассчитать среднюю температуру в городе X в ближайшие 5 дней. 5 дней.
Ответ на вопросы, основанный на коде, требует итеративного кодирования, потому что, как и человек, LLM вряд ли может написать правильный код с первой попытки. Поэтому помощнику необходимо взаимодействовать с пользователем, чтобы получать обратную связь и итеративно пересматривать код, пока он не станет правильным. Мы построили нашу систему на основе двухагентной среды диалога , где помощник LLM связан с агентом-исполнителем кода, который может автоматически выполнять код и возвращать выходные данные помощнику LLM.
Иерархия помощников — это иерархия помощников, в которой помощники LLM ранжируются по их стоимости (например, GPT-3.5-турбо -> GPT-4). При ответе на запрос пользователя EcoAssistant сначала просит самого дешевого помощника ответить на запрос. Только когда это не удается, мы вызываем более дорогого помощника. Он разработан для экономии средств за счет сокращения использования дорогостоящих помощников.
Демонстрация решения — это метод, который использует прошлую успешную пару запроса-кода для помощи в будущих запросах. Каждый раз, когда запрос успешно обрабатывается, мы сохраняем пару код-запрос в базу данных. Когда приходит новый запрос, мы извлекаем наиболее похожий запрос из базы данных, а затем используем запрос и связанный с ним код в качестве контекстной демонстрации. Он предназначен для повышения точности за счет использования прошлых успешных пар запроса-кода.
Сочетание иерархии помощников и демонстрации решения усиливает индивидуальные преимущества, поскольку решение высокопроизводительной модели естественным образом будет использоваться для управления более слабой моделью без конкретных проектов.
По запросам о погоде, акциях и местах EcoAssistant превосходит индивидуального помощника GPT-4 на 10 баллов по показателю успеха при менее чем 50 % стоимости GPT-4. Более подробную информацию можно найти в нашей статье.
Все данные включены в этот репозиторий.
Вам нужно только установить ключи API в keys.json
Установите необходимые библиотеки (мы рекомендуем 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-турбо.
python3 run.py --data mixed_100 --seed 0 --api --model gpt-3.5-turbo
Запускаем GPT-3.5-турбо-помощник + Chain-of-Thought
включи cot
python3 run.py --data mixed_100 --seed 0 --api --cot --model gpt-3.5-turbo
Запускаем GPT-3.5-турбо помощник + демонстрация решения
включить solution_demonstration
python3 run.py --data mixed_100 --seed 0 --api --solution_demonstration --model gpt-3.5-turbo
Запустите иерархию помощников (GPT-3.5-турбо + 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-турбо + 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 }
}