Perencanaan Bertambah Pengetahuan untuk Agen Berbasis LLM.
?Kertas • Web
Perkembangan kami didasarkan pada beberapa langkah utama: Awalnya , kami menciptakan basis pengetahuan tindakan yang luas, yang menggabungkan pengetahuan perencanaan tindakan yang berkaitan dengan tugas-tugas tertentu. Basis data ini bertindak sebagai reservoir informasi eksternal, yang mengarahkan proses pembuatan tindakan model. Selanjutnya , dengan mengubah pengetahuan tindakan menjadi teks, kami memungkinkan model untuk memahami secara mendalam dan memanfaatkan pengetahuan ini dalam menciptakan lintasan tindakan. Terakhir , melalui fase pembelajaran mandiri yang berpengetahuan , kami menggunakan lintasan yang dikembangkan dari proses berulang model untuk terus meningkatkan pemahaman dan penerapan pengetahuan tindakan. Proses ini tidak hanya memperkuat kemampuan perencanaan agen tetapi juga meningkatkan potensi penerapannya dalam situasi yang kompleks.
Untuk memulai KnowAgent, ikuti langkah-langkah instalasi sederhana berikut:
git clone https://github.com/zjunlp/KnowAgent.git
cd KnowAgent
pip install -r requirements.txt
Kami telah menempatkan kumpulan data HotpotQA dan ALFWorld masing-masing di bawah Path_Generation/alfworld_run/data
dan Path_Generation/hotpotqa_run/data
. Untuk konfigurasi lebih lanjut, kami menyarankan untuk melanjutkan dengan pengaturan awal ALFWorld dan FastChat.
Proses Pembuatan Jalur Perencanaan merupakan bagian integral dari KnowAgent. Anda dapat menemukan skrip untuk menjalankan Planning Path Generation di direktori Path_Generation
, khususnya run_alfworld.sh
dan run_hotpotqa.sh
. Skrip ini dapat dijalankan menggunakan perintah bash. Untuk menyesuaikan skrip dengan kebutuhan Anda, Anda dapat memodifikasi parameter mode
untuk beralih antara mode pelatihan ( train
) dan pengujian ( test
), dan mengubah parameter llm_name
untuk menggunakan LLM yang berbeda:
cd Path_Generation
# For training with HotpotQA
python run_hotpotqa.py --llm_name llama-2-13b --max_context_len 4000 --mode train --output_path ../Self-Learning/trajs/
# For testing with HotpotQA
python run_hotpotqa.py --llm_name llama-2-13b --max_context_len 4000 --mode test --output_path output/
# For training with ALFWorld
python alfworld_run/run_alfworld.py --llm_name llama-2-13b --mode train --output_path ../Self-Learning/trajs/
# For testing with ALFWorld
python alfworld_run/run_alfworld.py --llm_name llama-2-13b --mode test --output_path output/
Di sini kami merilis lintasan yang disintesis oleh Llama-{7,13,70}b-chat di Google Drive sebelum Filtering.
Setelah mendapatkan jalur perencanaan dan lintasan yang sesuai, proses Belajar Mandiri Berpengetahuan dimulai. Lintasan yang dihasilkan terlebih dahulu harus diubah ke dalam format Alpaca menggunakan skrip yang terletak di direktori Self-Learning.
Untuk iterasi awal, ikuti langkah-langkah yang diuraikan dalam traj_reformat.sh
:
cd Self-Learning
# For HotpotQA
python train/Hotpotqa_reformat.py --input_path trajs/KnowAgentHotpotQA_llama-2-13b.jsonl --output_path train/datas
# For ALFWorld
python train/ALFWorld_reformat.py --input_path trajs/KnowAgentALFWorld_llama-2-13b.jsonl --output_path train/datas
Untuk iterasi berikutnya, penting untuk melakukan Penyaringan dan Penggabungan Lintasan Berbasis Pengetahuan sebelum menjalankan skrip pemformatan ulang lintasan. Anda dapat mencapainya menggunakan traj_merge_and_filter.sh
:
python trajs/traj_merge_and_filter.py
--task HotpotQA
--input_path1 trajs/datas/KnowAgentHotpotQA_llama-2-13b_D0.jsonl
--input_path2 trajs/datas/KnowAgentHotpotQA_llama-2-13b_D1.jsonl
--output_path trajs/datas
Selanjutnya, mulai proses Self-Learning dengan menjalankan train.sh
dan train_iter.sh
, seperti yang ditentukan dalam skrip yang terletak di Self-Learning/train.sh
dan Self-Learning/train_iter.sh
:
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 deepspeed train/train_lora.py
--model_name_or_path llama-2-13b-chat
--lora_r 8
--lora_alpha 16
--lora_dropout 0.05
--data_path datas/data_knowagent.json
--output_dir models/Hotpotqa/M1
--num_train_epochs 5
--per_device_train_batch_size 2
--per_device_eval_batch_size 1
--gradient_accumulation_steps 1
--evaluation_strategy "no"
--save_strategy "steps"
--save_steps 10000
--save_total_limit 1
--learning_rate 1e-4
--weight_decay 0.
--warmup_ratio 0.03
--lr_scheduler_type "cosine"
--logging_steps 1
--fp16 True
--model_max_length 4096
--gradient_checkpointing True
--q_lora False
--deepspeed /data/zyq/FastChat/playground/deepspeed_config_s3.json
--resume_from_checkpoint False
@article { zhu2024knowagent ,
title = { KnowAgent: Knowledge-Augmented Planning for LLM-Based Agents } ,
author = { Zhu, Yuqi and Qiao, Shuofei and Ou, Yixin and Deng, Shumin and Zhang, Ningyu and Lyu, Shiwei and Shen, Yue and Liang, Lei and Gu, Jinjie and Chen, Huajun } ,
journal = { arXiv preprint arXiv:2403.03101 } ,
year = { 2024 }
}
Kami mengucapkan terima kasih kepada pencipta dan kontributor proyek-proyek berikut, yang telah mempengaruhi perkembangan KnowAgent secara signifikan:
Terima kasih yang tulus kami sampaikan kepada semua kontributor atas kontribusi mereka yang tak ternilai di bidang ini!
Kami akan menawarkan pemeliharaan jangka panjang untuk memperbaiki bug dan memecahkan masalah. Jadi jika Anda mempunyai masalah, silakan sampaikan masalahnya kepada kami.