الإنجليزية | 中文 | 日本語
مجموعة البيانات | المعيار | ؟ نماذج | ؟ ورق
KwaiAgents عبارة عن سلسلة من الأعمال المتعلقة بالوكيل مفتوحة المصدر بواسطة KwaiKEG من شركة Kuaishou Technology. يتضمن المحتوى مفتوح المصدر ما يلي:
يكتب | نماذج | بيانات التدريب | البيانات المرجعية |
كوين | كوين-7B-MAT كوين-14B-MAT كوين-7B-MAT-cpp Qwen1.5-14B-MAT | KAgentInstruct | KAgentBench |
بايتشوان | بايتشوان2-13ب-مات |
حجم | تخطيط | استخدام الأداة | انعكاس | الختام | حساب تعريفي | النتيجة الإجمالية | |
---|---|---|---|---|---|---|---|
جي بي تي-3.5-تيربو | - | 18.55 | 26.26 | 8.06 | 37.26 | 35.42 | 25.63 |
اللاما2 | 13 ب | 0.15 | 0.44 | 0.14 | 16.60 | 17.73 | 5.30 |
دردشةGLM3 | 6 ب | 7.87 | 11.84 | 7.52 | 30.01 | 30.14 | 15.88 |
كوين | 7 ب | 13.34 | 18.00 | 7.91 | 36.24 | 34.99 | 21.17 |
بايتشوان2 | 13 ب | 6.70 | 16.10 | 6.76 | 24.97 | 19.08 | 14.89 |
أداة لاما | 7 ب | 0.20 | 4.83 | 1.06 | 15.62 | 10.66 | 6.04 |
وكيلLM | 13 ب | 0.17 | 0.15 | 0.05 | 16.30 | 15.22 | 4.88 |
كوين مات | 7 ب | 31.64 | 43.30 | 33.34 | 44.85 | 44.78 | 39.85 |
بايتشوان2-مات | 13 ب | 37.27 | 52.97 | 37.00 | 48.01 | 41.83 | 45.34 |
كوين مات | 14 ب | 43.17 | 63.78 | 32.14 | 45.47 | 45.22 | 49.94 |
Qwen1.5-MAT | 14 ب | 42.42 | 64.62 | 30.58 | 46.51 | 45.95 | 50.18 |
حجم | NoAgent | رد فعل | لصناعة السيارات في جي بي تي | KAgentSys | |
---|---|---|---|---|---|
جي بي تي-4 | - | 57.21% (3.42) | 68.66% (3.88) | 79.60% (4.27) | 83.58% (4.47) |
جي بي تي-3.5-تيربو | - | 47.26% (3.08) | 54.23% (3.33) | 61.74% (3.53) | 64.18% (3.69) |
كوين | 7 ب | 52.74% (3.23) | 51.74% (3.20) | 50.25% (3.11) | 54.23% (3.27) |
بايتشوان2 | 13 ب | 54.23% (3.31) | 55.72% (3.36) | 57.21% (3.37) | 58.71% (3.54) |
كوين مات | 7 ب | - | 58.71% (3.53) | 65.67% (3.77) | 67.66% (3.87) |
بايتشوان2-مات | 13 ب | - | 61.19% (3.60) | 66.67% (3.86) | 74.13% (4.11) |
قم بتثبيت miniconda لبيئة البناء أولاً. ثم قم بإنشاء build env أولاً:
conda create -n kagent python=3.10
conda activate kagent
pip install -r requirements.txt
نوصي باستخدام vLLM وFastChat لنشر خدمة استنتاج النموذج. أولاً، تحتاج إلى تثبيت الحزم المقابلة (للاستخدام التفصيلي، يرجى الرجوع إلى وثائق المشروعين):
pip install vllm
pip install " fschat[model_worker,webui] "
pip install " fschat[model_worker,webui] "
pip install vllm==0.2.0
pip install transformers==4.33.2
لنشر KAgentLMs، تحتاج أولاً إلى تشغيل وحدة التحكم في محطة طرفية واحدة.
python -m fastchat.serve.controller
ثانيًا، يجب عليك استخدام الأمر التالي في محطة طرفية أخرى لنشر خدمة الاستدلال أحادية وحدة معالجة الرسومات:
python -m fastchat.serve.vllm_worker --model-path $model_path --trust-remote-code
حيث $model_path
هو المسار المحلي للنموذج الذي تم تنزيله. إذا كانت وحدة معالجة الرسومات لا تدعم Bfloat16، فيمكنك إضافة --dtype half
إلى سطر الأوامر.
ثالثًا، قم بتشغيل خادم REST API في المحطة الثالثة.
python -m fastchat.serve.openai_api_server --host localhost --port 8888
أخيرًا، يمكنك استخدام أمر الضفيرة لاستدعاء النموذج بنفس تنسيق استدعاء OpenAI. هنا مثال:
curl http://localhost:8888/v1/chat/completions
-H " Content-Type: application/json "
-d ' {"model": "kagentlms_qwen_7b_mat", "messages": [{"role": "user", "content": "Who is Andy Lau"}]} '
هنا، قم بتغيير kagentlms_qwen_7b_mat
إلى النموذج الذي قمت بنشره.
يقدم llama-cpp-python خادم ويب يهدف إلى العمل كبديل مباشر لواجهة برمجة تطبيقات OpenAI. يتيح لك ذلك استخدام النماذج المتوافقة مع llama.cpp مع أي عميل متوافق مع OpenAI (مكتبات اللغات والخدمات وما إلى ذلك). يمكن العثور على النموذج المحول في kwikeg/kagentlms_qwen_7b_mat_gguf.
لتثبيت حزمة الخادم والبدء:
pip install " llama-cpp-python[server] "
python3 -m llama_cpp.server --model kagentlms_qwen_7b_mat_gguf/ggml-model-q4_0.gguf --chat_format chatml --port 8888
أخيرًا، يمكنك استخدام أمر الضفيرة لاستدعاء النموذج بنفس تنسيق استدعاء OpenAI. هنا مثال:
curl http://localhost:8888/v1/chat/completions
-H " Content-Type: application/json "
-d ' {"messages": [{"role": "user", "content": "Who is Andy Lau"}]} '
قم بتنزيل وتثبيت KwaiAgents، الموصى به باستخدام Python>=3.10
git clone [email protected]:KwaiKEG/KwaiAgents.git
cd KwaiAgents
python setup.py develop
export OPENAI_API_KEY=sk-xxxxx
export WEATHER_API_KEY=xxxxxx
WEATHER_API_KEY ليس إلزاميًا، لكنك تحتاج إلى تهيئته عند طرح أسئلة متعلقة بالطقس. يمكنك الحصول على مفتاح API من موقع الويب هذا (نفس الشيء بالنسبة لاستخدام النموذج المحلي).
kagentsys --query= " Who is Andy Lau's wife? " --llm_name= " gpt-3.5-turbo " --lang= " en "
لاستخدام نموذج محلي، تحتاج إلى نشر خدمة النموذج المطابق كما هو موضح في الفصل السابق
kagentsys --query= " Who is Andy Lau's wife? " --llm_name= " kagentlms_qwen_7b_mat "
--use_local_llm --local_llm_host= " localhost " --local_llm_port=8888 --lang= " en "
وسيطات الأمر الكاملة:
options:
-h, --help show this help message and exit
--id ID ID of this conversation
--query QUERY User query
--history HISTORY History of conversation
--llm_name LLM_NAME the name of llm
--use_local_llm Whether to use local llm
--local_llm_host LOCAL_LLM_HOST
The host of local llm service
--local_llm_port LOCAL_LLM_PORT
The port of local llm service
--tool_names TOOL_NAMES
the name of llm
--max_iter_num MAX_ITER_NUM
the number of iteration of agents
--agent_name AGENT_NAME
The agent name
--agent_bio AGENT_BIO
The agent bio, a short description
--agent_instructions AGENT_INSTRUCTIONS
The instructions of how agent thinking, acting, or talking
--external_knowledge EXTERNAL_KNOWLEDGE
The link of external knowledge
--lang {en,zh} The language of the overall system
--max_tokens_num Maximum length of model input
ملحوظة :
browse_website
، فستحتاج إلى تكوين chromedriver على الخادم الخاص بك.http_proxy
. يمكن العثور على استخدام الأدوات المخصصة في الأمثلة/custom_tool_example.py
نحتاج فقط إلى سطرين لتقييم قدرات الوكيل مثل:
cd benchmark
python infer_qwen.py qwen_benchmark_res.jsonl
python benchmark_eval.py ./benchmark_eval.jsonl ./qwen_benchmark_res.jsonl
الأمر أعلاه سيعطي النتائج مثل
plan : 31.64, tooluse : 43.30, reflextion : 33.34, conclusion : 44.85, profile : 44.78, overall : 39.85
يرجى الرجوع إلى المعيار/ لمزيد من التفاصيل.
@article{pan2023kwaiagents,
author = {Haojie Pan and
Zepeng Zhai and
Hao Yuan and
Yaojia Lv and
Ruiji Fu and
Ming Liu and
Zhongyuan Wang and
Bing Qin
},
title = {KwaiAgents: Generalized Information-seeking Agent System with Large Language Models},
journal = {CoRR},
volume = {abs/2312.04889},
year = {2023}
}