Project Icon

Vicuna-LoRA-RLHF-PyTorch

Vicuna模型LoRA与RLHF的完整优化流程

本文详述如何在普通硬件上优化Vicuna语言模型,包括环境配置、监督微调、合并PEFT适配器、训练奖励模型和PPO微调等步骤,适合中文技术人员使用。

Vicuna-LoRA-RLHF-PyTorch简介

Vicuna-LoRA-RLHF-PyTorch 项目旨在在普通消费级硬件上,使用低秩自适应(Low-Rank Adaptation, LoRA)和人类反馈增强学习(RLHF)来微调Vicuna大型语言模型(LLM). 这是一个完整的管道项目,帮助开发者高效地在有限资源下进行模型优化。

环境设置

项目主要在2080Ti显卡上进行测试,并使用以下软件环境:

  • PyTorch版本:2.0.0
  • CUDA版本:11.8

Todo列表

项目需要执行的主要任务清单包括:

  • 下载Vicuna权重
  • 执行监督微调(SFT)
  • 将适配器合并到模型中
  • 实现RLHF:
    • 训练奖励模型
    • 使用增强学习进行调优(RL)

执行步骤

以下是项目的执行流程:

下载Vicuna权重

通过运行以下命令,下载并应用权重差异:

python apply_delta.py --base 'decapoda-research/llama-7b-hf' --target './weights/vicuna-7b' --delta lmsys/vicuna-7b-delta-v1.1

监督微调

在开始微调之前,执行以下操作以注释掉特定代码行:

# 需注释掉以下内容
#to_return = {k: v for k, v in to_return.items() if (("lora_" in k and adapter_name in k) or ("bias" in k))}

然后运行:

python supervised_finetune.py --data_path './data/merge_sample.json' --output_path 'lora-Vicuna' --model_path './weights/vicuna-7b' --eval_steps 200 --save_steps 200 --test_size 1

合并PEFT适配器到模型

检查PEFT版本,若不是0.2.0版本,需要切换至该版本:

pip uninstall peft -y
pip install peft==0.2.0

合并适配器:

python merge_peft_adapter.py --model_name 'lora-Vicuna'

训练奖励模型

通过以下指令训练奖励模型:

python train_reward_model.py --model_name './weights/vicuna-7b' --gradient_accumulation_steps 32 --per_device_train_batch_size 1 --train_subset 100 --eval_subset 10 --local_rank 0 --bf16 False

合并奖励适配器到模型

运行以下指令合并奖励适配器:

python merge_peft_adapter.py --model_name ./reward_model_vicuna-7b

使用PPO调优语言模型

最后一步使用PPO进行语言模型调优:

python tuning_lm_with_rl.py --model_name './lora-Vicuna-adapter-merged' --reward_model_name './reward_model_vicuna-7b-adapter-merged' --adafactor False --tokenizer_name 'decapoda-research/llama-7b-hf' --save_freq 100 --output_max_length 128 --batch_size 1 --gradient_accumulation_steps 1 --batched_gen True --ppo_epochs 1 --seed 0 --learning_rate 1.4e-5 --early_stopping True --output_dir './tuning_llama_rl_checkpoints'

注意事项

项目中有以下几点需注意:

  1. Vicuna模型权重并未在HuggingFace上发布,所以需自行下载。
  2. 进行SFT之前,需确保注释掉特定代码行。
  3. PEFT版本0.3.0.dev0存在问题,需使用0.2.0版本。
  4. 训练奖励模型时可能遇到错误,需使用最新的transformer代码解决。

参考资料

本项目的部分工具和方法来源于其他项目和资源,如FastChat和Alpaca-LoRA。开发者可以参考这些工具来配置环境和理解具体实施细节。

许可证

本项目采用MIT许可证,任何人都可以自由使用、复制和分发。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号