全参数finetune Ziya-LLaMA-13B相关模型,目前支持数据并行+张量并行+ZeRO

这篇具有很好参考价值的文章主要介绍了全参数finetune Ziya-LLaMA-13B相关模型,目前支持数据并行+张量并行+ZeRO。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

全参数Finetune

这个示例主要用于全参数finetune Ziya-LLaMA-13B相关模型,目前支持数据并行+张量并行+ZeRO

step0 环境安装

git clone git@github.com:IDEA-CCNL/Fengshenbang-LM.git
cd Fengshenbang-LM/
pip install --edit .

step1 下载示例数据

Ziya-Finetune-Small,后续按照格式替换成自己的数据,目前代码直接用文件读取,非datasets读取,所以建议git clone下来然后在配置里引用对应的数据路径

git lfs install
git clone https://huggingface.co/datasets/IDEA-CCNL/Ziya-Finetune-Small

step2 准备模型

以Ziya-LLaMA-13B-Pretrain-v1为例,因为开源的是delta参数的模型,首先按照指引合并模型,得到一个llama13b_hf的文件夹

step3 将huggingface模型转化成fengshen的格式

需要自己指定convert_llama13b_to_fs.sh内地址

cd fengshen/examples/ziya_llama
sh convert_llama13b_to_fs.sh

step4 请按照自己机器的显存大小进行tensor并行切分

这里提供两个跑起来的示例供参考

  1. 使用 3*8=24张 3090(24GB),需要进行张量并行,Tensor parallesim = 8,这里需要手动进行模型转换
sh convert_llama13b_tp8.sh
  1. 使用 1*8=8张 A100(80GB),不需要进行张量并行,Tensor parallesim = 1,这里不需要再进行模型转换

step5 根据step4的两种配置分别进行训练

分别参考下面的脚本(这里采用slurm作为调度系统,如果没有,单机多卡训练去掉srun进行训练,多机多卡训练参考torchrun进行训练)

# 用8张80GB A100进行微调
sh finetune_no_tp.sh
# 用24张24GB 3090进行微调
sh finetune_tp.sh

训练loss曲线可以在封神榜公开的wandb项目查看 ziya_llama13b_finetune_example

step6 验证微调后的生成效果

例如针对finetune_no_tp.sh微调出来的模型,验证生成效果,参考下面的脚本文章来源地址https://www.toymoban.com/news/detail-502793.html

sh generate_no_tp.sh

到了这里,关于全参数finetune Ziya-LLaMA-13B相关模型,目前支持数据并行+张量并行+ZeRO的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包