EcoAssistant: menggunakan asisten LLM dengan lebih terjangkau dan akurat
Lihat blog kami di situs web AutoGen!
Versi sederhana dengan AutoGen terbaru ada di simplified_demo.py
EcoAssistant adalah kerangka kerja yang dapat membuat asisten LLM lebih terjangkau dan akurat untuk menjawab pertanyaan berbasis kode. Hal ini didasarkan pada gagasan hierarki asisten dan demonstrasi solusi . Itu dibangun di atas AutoGen.
Asisten LLM adalah agen asisten yang didukung oleh LLM percakapan seperti ChatGPT dan GPT-4 dan mampu menjawab permintaan pengguna dalam percakapan.
Menjawab pertanyaan berdasarkan kode adalah tugas yang mengharuskan asisten LLM menulis kode untuk memanggil API eksternal guna menjawab pertanyaan. Misalnya, jika diberikan pertanyaan "Berapa suhu rata-rata kota X dalam 5 hari ke depan?", asisten perlu menulis kode untuk mendapatkan informasi cuaca melalui APIS tertentu dan menghitung suhu rata-rata kota X pada hari berikutnya. 5 hari.
Menjawab pertanyaan berdasarkan kode memerlukan pengkodean berulang, karena, seperti halnya manusia, LLM sulit menulis kode yang benar pada percobaan pertama. Oleh karena itu, asisten perlu berinteraksi dengan pengguna untuk mendapatkan umpan balik dan merevisi kode secara berulang hingga kode tersebut benar. Kami membangun sistem kami pada kerangka percakapan dua agen , di mana asisten LLM digabungkan dengan agen pelaksana kode yang dapat secara otomatis mengeksekusi kode dan mengembalikan output ke asisten LLM.
Hierarki asisten adalah hierarki asisten, di mana asisten LLM diberi peringkat berdasarkan biayanya (misalnya, GPT-3.5-turbo -> GPT-4). Saat menjawab pertanyaan pengguna, EcoAssistant terlebih dahulu meminta asisten termurah untuk menjawab pertanyaan tersebut. Hanya jika gagal, kami memanggil asisten yang lebih mahal. Hal ini dirancang untuk menghemat biaya dengan mengurangi penggunaan asisten yang mahal.
Demonstrasi solusi adalah teknik yang memanfaatkan pasangan kode kueri yang berhasil di masa lalu untuk membantu kueri di masa mendatang. Setiap kali kueri berhasil ditangani, kami menyimpan pasangan kode kueri ke database. Saat kueri baru muncul, kami mengambil kueri yang paling mirip dari database, lalu menggunakan kueri tersebut dan kode terkaitnya sebagai demonstrasi dalam konteks. Ini dirancang untuk meningkatkan akurasi dengan memanfaatkan pasangan kode kueri yang berhasil di masa lalu.
Kombinasi hierarki asisten dan demonstrasi solusi memperkuat manfaat individual karena solusi dari model berperforma tinggi akan secara alami dimanfaatkan untuk memandu model yang lebih lemah tanpa desain khusus.
Untuk pertanyaan tentang cuaca, stok, dan tempat, EcoAssistant mengungguli asisten GPT-4 individual dengan tingkat keberhasilan 10 poin dengan biaya kurang dari 50% dari GPT-4. Rincian lebih lanjut dapat ditemukan di makalah kami.
Semua data disertakan dalam repositori ini.
Anda hanya perlu mengatur kunci API Anda di keys.json
Instal perpustakaan yang diperlukan (kami merekomendasikan Python3.10):
pip3 install -r requirements.txt
Kami menggunakan kumpulan data Mixed-100 sebagai contoh. Untuk dataset lainnya, cukup ubah nama dataset menjadi google_places/stock/weather/mixed_1/mixed_2/mixed_3 pada perintah berikut.
Hasil keluarannya dapat ditemukan di folder results
.
Perintah berikut ditujukan untuk sistem otonom tanpa umpan balik manusia yang dijelaskan di Bagian 4.5.
Jalankan asisten turbo GPT-3.5
python3 run.py --data mixed_100 --seed 0 --api --model gpt-3.5-turbo
Jalankan asisten GPT-3.5-turbo + Rantai Pemikiran
nyalakan cot
python3 run.py --data mixed_100 --seed 0 --api --cot --model gpt-3.5-turbo
Jalankan demonstrasi solusi + asisten turbo GPT-3.5
aktifkan solution_demonstration
python3 run.py --data mixed_100 --seed 0 --api --solution_demonstration --model gpt-3.5-turbo
Jalankan hierarki asisten (GPT-3.5-turbo + GPT-4)
atur model
ke gpt-3.5-turbo,gpt-4
python3 run.py --data mixed_100 --seed 0 --api --model gpt-3.5-turbo,gpt-4
Jalankan EcoAssistant: hierarki asisten (GPT-3.5-turbo + GPT-4) + demonstrasi solusi
python3 run.py --data mixed_100 --seed 0 --api --solution_demonstration --model gpt-3.5-turbo,gpt-4
Aktifkan umpan balik manusia
Untuk sistem dengan penilaian manusia, harap setel eval
ke human
(yang secara default llm
) seperti contoh perintah berikut.
python3 run.py --data mixed_100 --seed 0 --api --solution_demonstration --model gpt-3.5-turbo,gpt-4 --eval human
Jalankan kode emas untuk Mixed-100 yang kami kumpulkan seperti dijelaskan di Bagian 4.4
Skrip ini akan mencetak keluaran kode.
python3 run_gold_code_for_mix_100.py
Jika Anda merasa repositori ini berguna, mohon pertimbangkan untuk mengutip:
@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 }
}