Inglés | 中文 | 日本語
Conjunto de datos | Punto de referencia | ? Modelos | ? Papel
KwaiAgents es una serie de trabajos relacionados con agentes de código abierto de KwaiKEG de Kuaishou Technology. El contenido de código abierto incluye:
Tipo | Modelos | Datos de entrenamiento | Datos de referencia |
Qwen | Qwen-7B-MAT Qwen-14B-MAT Qwen-7B-MAT-cpp Qwen1.5-14B-MAT | KAgentInstruct | KAgentBench |
Baichuan | Baichuan2-13B-MAT |
Escala | Planificación | Uso de herramientas | Reflexión | Concluyendo | Perfil | Puntuación general | |
---|---|---|---|---|---|---|---|
GPT-3.5-turbo | - | 18.55 | 26.26 | 8.06 | 37.26 | 35,42 | 25,63 |
llama2 | 13B | 0,15 | 0,44 | 0,14 | 16.60 | 17,73 | 5.30 |
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 |
HerramientaLlama | 7B | 0,20 | 4.83 | 1.06 | 15,62 | 10.66 | 6.04 |
AgenteLM | 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 |
Escala | Sin agente | Reaccionar | GPT automático | 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) |
Primero instale miniconda para el entorno de compilación. Luego cree primero el entorno de compilación:
conda create -n kagent python=3.10
conda activate kagent
pip install -r requirements.txt
Recomendamos utilizar vLLM y FastChat para implementar el servicio de inferencia de modelos. Primero, debe instalar los paquetes correspondientes (para un uso detallado, consulte la documentación de los dos proyectos):
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
Para implementar KAgentLM, primero debe iniciar el controlador en una terminal.
python -m fastchat.serve.controller
En segundo lugar, debe utilizar el siguiente comando en otra terminal para la implementación del servicio de inferencia de una sola gpu:
python -m fastchat.serve.vllm_worker --model-path $model_path --trust-remote-code
Donde $model_path
es la ruta local del modelo descargado. Si la GPU no es compatible con Bfloat16, puede agregar --dtype half
a la línea de comando.
En tercer lugar, inicie el servidor API REST en la tercera terminal.
python -m fastchat.serve.openai_api_server --host localhost --port 8888
Finalmente, puede usar el comando curl para invocar el modelo igual que el formato de llamada OpenAI. He aquí un ejemplo:
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"}]} '
Aquí, cambie kagentlms_qwen_7b_mat
por el modelo que implementó.
llama-cpp-python ofrece un servidor web que pretende actuar como un reemplazo directo de la API OpenAI. Esto le permite utilizar modelos compatibles con llama.cpp con cualquier cliente compatible con OpenAI (bibliotecas de idiomas, servicios, etc.). El modelo convertido se puede encontrar en kwaikeg/kagentlms_qwen_7b_mat_gguf.
Para instalar el paquete del servidor y comenzar:
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
Finalmente, puede usar el comando curl para invocar el modelo igual que el formato de llamada OpenAI. He aquí un ejemplo:
curl http://localhost:8888/v1/chat/completions
-H " Content-Type: application/json "
-d ' {"messages": [{"role": "user", "content": "Who is Andy Lau"}]} '
Descargue e instale KwaiAgents, recomendado 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 no es obligatorio, pero debe configurarlo cuando haga preguntas relacionadas con el clima. Puede obtener la clave API en este sitio web (lo mismo para el uso del modelo local).
kagentsys --query= " Who is Andy Lau's wife? " --llm_name= " gpt-3.5-turbo " --lang= " en "
Para utilizar un modelo local, debe implementar el servicio de modelo correspondiente como se describe en el capítulo anterior.
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 "
Argumentos completos del comando:
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
Nota :
browse_website
, debe configurar Chromedriver en su servidor.http_proxy
. El uso de herramientas personalizadas se puede encontrar en ejemplos/custom_tool_example.py
Solo necesitamos dos líneas para evaluar las capacidades del agente como:
cd benchmark
python infer_qwen.py qwen_benchmark_res.jsonl
python benchmark_eval.py ./benchmark_eval.jsonl ./qwen_benchmark_res.jsonl
El comando anterior dará resultados como
plan : 31.64, tooluse : 43.30, reflextion : 33.34, conclusion : 44.85, profile : 44.78, overall : 39.85
Consulte el punto de referencia/ para obtener más detalles.
@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}
}