EcoAssistant: استخدام مساعد LLM بتكلفة معقولة وبدقة أكبر
تحقق من مدونتنا في موقع AutoGen!
يوجد إصدار مبسط مزود بأحدث AutoGen في simplified_demo.py
EcoAssistant هو إطار عمل يمكن أن يجعل مساعد LLM أكثر دقة وبأسعار معقولة للإجابة على الأسئلة المستندة إلى التعليمات البرمجية. لأنه يقوم على فكرة التسلسل الهرمي المساعد وإظهار الحل . إنه مبني على AutoGen.
مساعد LLM هو وكيل مساعد مدعوم من LLM للمحادثة مثل ChatGPT وGPT-4 وهو قادر على معالجة استعلام المستخدم في المحادثة.
الإجابة على الأسئلة المستندة إلى التعليمات البرمجية هي مهمة تتطلب من مساعد LLM كتابة التعليمات البرمجية لاستدعاء واجهات برمجة التطبيقات الخارجية للإجابة على السؤال. على سبيل المثال، في ضوء السؤال "ما هو متوسط درجة الحرارة للمدينة X في الأيام الخمسة القادمة؟"، يحتاج المساعد إلى كتابة رمز للحصول على معلومات الطقس عبر واجهات برمجة التطبيقات (APIS) معينة وحساب متوسط درجة الحرارة للمدينة X في اليوم التالي. 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 + سلسلة الأفكار
قم بتشغيل 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 }
}