EcoAssistant: การใช้ LLM Assistant ในราคาประหยัดและแม่นยำยิ่งขึ้น
ตรวจสอบบล็อกของเราในเว็บไซต์ 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-turbo -> 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-turbo
python3 run.py --data mixed_100 --seed 0 --api --model gpt-3.5-turbo
เรียกใช้ GPT-3.5-turbo Assistant + Chain-of-Thought
เปิด cot
python3 run.py --data mixed_100 --seed 0 --api --cot --model gpt-3.5-turbo
เรียกใช้ GPT-3.5-turbo Assistant + การสาธิตโซลูชัน
เปิด 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 }
}