Englisch | 中文 | 日本語
Datensatz | Benchmark | ? Modelle | ? Papier
KwaiAgents ist eine Reihe von Agenten-bezogenen Werken, die von der KwaiKEG von Kuaishou Technology als Open-Source-Lösung bereitgestellt werden. Zu den Open-Source-Inhalten gehören:
Typ | Modelle | Trainingsdaten | Benchmark-Daten |
Qwen | Qwen-7B-MAT Qwen-14B-MAT Qwen-7B-MAT-cpp Qwen1.5-14B-MAT | KAgentInstruct | KAgentBench |
Baichuan | Baichuan2-13B-MAT |
Skala | Planung | Werkzeuggebrauch | Spiegelung | Abschließend | Profil | Gesamtpunktzahl | |
---|---|---|---|---|---|---|---|
GPT-3.5-Turbo | - | 18.55 | 26.26 | 8.06 | 37.26 | 35,42 | 25.63 |
Lama2 | 13B | 0,15 | 0,44 | 0,14 | 16.60 | 17.73 | 5.30 Uhr |
ChatGLM3 | 6B | 7,87 | 11.84 | 7.52 | 30.01 | 30.14 | 15.88 |
Qwen | 7B | 13.34 | 18.00 | 7,91 | 36.24 | 34,99 | 21.17 |
Baichuan2 | 13B | 6,70 | 16.10 | 6,76 | 24.97 | 19.08 | 14.89 |
ToolLama | 7B | 0,20 | 4,83 | 1.06 | 15.62 | 10.66 | 6.04 |
AgentLM | 13B | 0,17 | 0,15 | 0,05 | 16.30 | 15.22 | 4,88 |
Qwen-MAT | 7B | 31.64 | 43.30 | 33,34 | 44,85 | 44,78 | 39,85 |
Baichuan2-MAT | 13B | 37.27 | 52,97 | 37.00 | 48.01 | 41,83 | 45,34 |
Qwen-MAT | 14B | 43.17 | 63,78 | 32.14 | 45,47 | 45.22 | 49,94 |
Qwen1.5-MAT | 14B | 42,42 | 64,62 | 30.58 | 46,51 | 45,95 | 50.18 |
Skala | NoAgent | Reagieren | Auto-GPT | KAgentSys | |
---|---|---|---|---|---|
GPT-4 | - | 57,21 % (3,42) | 68,66 % (3,88) | 79,60 % (4,27) | 83,58 % (4,47) |
GPT-3.5-Turbo | - | 47,26 % (3,08) | 54,23 % (3,33) | 61,74 % (3,53) | 64,18 % (3,69) |
Qwen | 7B | 52,74 % (3,23) | 51,74 % (3,20) | 50,25 % (3,11) | 54,23 % (3,27) |
Baichuan2 | 13B | 54,23 % (3,31) | 55,72 % (3,36) | 57,21 % (3,37) | 58,71 % (3,54) |
Qwen-MAT | 7B | - | 58,71 % (3,53) | 65,67 % (3,77) | 67,66 % (3,87) |
Baichuan2-MAT | 13B | - | 61,19 % (3,60) | 66,67 % (3,86) | 74,13 % (4,11) |
Installieren Sie zuerst Miniconda für die Build-Umgebung. Erstellen Sie dann zuerst die Build-Umgebung:
conda create -n kagent python=3.10
conda activate kagent
pip install -r requirements.txt
Wir empfehlen die Verwendung von vLLM und FastChat zur Bereitstellung des Modellinferenzdienstes. Zunächst müssen Sie die entsprechenden Pakete installieren (die genaue Verwendung finden Sie in der Dokumentation der beiden Projekte):
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
Um KAgentLMs bereitzustellen, müssen Sie zunächst den Controller in einem Terminal starten.
python -m fastchat.serve.controller
Zweitens sollten Sie den folgenden Befehl in einem anderen Terminal für die Bereitstellung des Inferenzdienstes mit einer GPU verwenden:
python -m fastchat.serve.vllm_worker --model-path $model_path --trust-remote-code
Dabei ist $model_path
der lokale Pfad des heruntergeladenen Modells. Wenn die GPU Bfloat16 nicht unterstützt, können Sie --dtype half
zur Befehlszeile hinzufügen.
Drittens starten Sie den REST-API-Server im dritten Terminal.
python -m fastchat.serve.openai_api_server --host localhost --port 8888
Schließlich können Sie den Befehl „curl“ verwenden, um das Modell genauso aufzurufen wie das OpenAI-Aufrufformat. Hier ist ein Beispiel:
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"}]} '
Ändern Sie hier kagentlms_qwen_7b_mat
in das von Ihnen bereitgestellte Modell.
llama-cpp-python bietet einen Webserver, der als Ersatz für die OpenAI-API dienen soll. Dadurch können Sie llama.cpp-kompatible Modelle mit jedem OpenAI-kompatiblen Client (Sprachbibliotheken, Dienste usw.) verwenden. Das konvertierte Modell finden Sie in kwaikeg/kagentlms_qwen_7b_mat_gguf.
So installieren Sie das Serverpaket und legen los:
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
Schließlich können Sie den Befehl „curl“ verwenden, um das Modell genauso aufzurufen wie das OpenAI-Aufrufformat. Hier ist ein Beispiel:
curl http://localhost:8888/v1/chat/completions
-H " Content-Type: application/json "
-d ' {"messages": [{"role": "user", "content": "Who is Andy Lau"}]} '
Laden Sie die KwaiAgents herunter und installieren Sie sie, empfohlen 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
Der WEATHER_API_KEY ist nicht obligatorisch, Sie müssen ihn jedoch konfigurieren, wenn Sie wetterbezogene Fragen stellen. Sie können den API-Schlüssel von dieser Website erhalten (dasselbe gilt für die Verwendung lokaler Modelle).
kagentsys --query= " Who is Andy Lau's wife? " --llm_name= " gpt-3.5-turbo " --lang= " en "
Um ein lokales Modell zu verwenden, müssen Sie den entsprechenden Modelldienst wie im vorherigen Kapitel beschrieben bereitstellen
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 "
Vollständige Befehlsargumente:
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
Notiz :
browse_website
verwenden müssen, müssen Sie den Chromedriver auf Ihrem Server konfigurieren.http_proxy
festlegen. Die Verwendung benutzerdefinierter Tools finden Sie in examples/custom_tool_example.py
Wir benötigen nur zwei Zeilen, um die Fähigkeiten des Agenten zu bewerten:
cd benchmark
python infer_qwen.py qwen_benchmark_res.jsonl
python benchmark_eval.py ./benchmark_eval.jsonl ./qwen_benchmark_res.jsonl
Der obige Befehl liefert die Ergebnisse wie folgt
plan : 31.64, tooluse : 43.30, reflextion : 33.34, conclusion : 44.85, profile : 44.78, overall : 39.85
Weitere Einzelheiten finden Sie unter benchmark/.
@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}
}