
FireAct项目中的语言模型微调指南与示例
FireAct项目提供了语言模型微调的完整解决方案,包括示例代码、提示词和训练数据。该项目详细介绍了如何在Llama和GPT等多任务模型上进行数据生成、监督微调和推理操作。项目包含适用于Alpaca和GPT格式的训练数据样本,并配有使用案例和模型卡,方便快速部署和应用。支持OpenAI和SERP API集成,具体信息请参考项目仓库与Hugging Face模型卡。
FireAct 是一个关于语言代理微调的项目,提供了一套工具、任务定义、数据生成和实验运行的完整解决方案。该项目的代码库基于学术论文《FireAct: Toward Language Agent Fine-tuning》中提出的研究成果。项目中包含了用于模型微调的提示、演示代码以及生成的数据,同时还介绍了项目中微调的模型家族。
FireAct 项目附带了生成训练数据和运行实验所需的数据集及提示。用户可以在 data/ 目录下找到用于生成训练数据的样本,包括 Alpaca 格式和 GPT 格式的训练数据样本。此外,prompts/ 目录中包括生成训练数据的提示信息。
为顺利运行 FireAct 项目,用户需准备 OpenAI 和 SERP 的 API 密钥,并将其存储在环境变量中。安装虚拟环境可以通过 Conda 实现:
conda create -n fireact python=3.9 conda activate fireact
完成环境创建后,克隆项目代码仓库并安装所需依赖:
git clone https://github.com/anchen1011/FireAct.git pip install -r requirements.txt
可以通过 generation.py 脚本进行数据生成。以下是运行示例:
python generation.py \ --task hotpotqa \ --backend gpt-4 \ --promptpath default \ --evaluate \ --random \ --task_split val \ --temperature 0 \ --task_end_index 5
生成数据后需将轨迹转化为支持的格式,如 Alpaca 或 GPT 格式。详见项目中的数据示例。
微调过程涉及到对选定模型进行训练,以下为示例:
cd finetune/llama_lora python finetune.py \ --base_model meta-llama/Llama-2-13b-chat-hf \ --data_path ../../data/finetune/alpaca_format/hotpotqa.json \ --micro_batch_size 8 \ --num_epochs 30 \ --output_dir ../../models/lora/fireact-llama-2-13b \ --val_set_size 0.01 \ --cutoff_len 512
结合 FireAct Llama 模型运行推理:
python generation.py \ --task hotpotqa \ --backend llama \ --evaluate \ --random \ --task_split dev \ --task_end_index 5 \ --modelpath meta-llama/Llama-2-7b-chat \ --add_lora \ --alpaca_format \ --peftpath forestai/fireact_llama_2_7b_lora
若需定量评估,应将 --task_end_index 设置为较大的值(如500)。
FireAct 项目中发布了若干基于 Llama 家族的多任务模型。用户可在 Hugging Face 平台上找到这些模型的详细信息:
FireAct 项目的代码和方法参考并改进了多个网站和代码库,包括 ReAct、stanford_alpaca、alpaca-lora 和 chatgpt-finetune-ui 等。这一系列参考为 FireAct 的开发提供了坚实的基础。