全参数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并行切分

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

使用 3*8=24张 3090(24GB),需要进行张量并行,Tensor parallesim = 8,这里需要手动进行模型转换
sh convert_llama13b_tp8.sh 
使用 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微调出来的模型,验证生成效果,参考下面的脚本

sh generate_no_tp.sh

codellamagitcloneidehuggingface生成效果githubelt文件夹url
  • 本文作者:李琛
  • 本文链接: https://wapzz.net/post-4300.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
本站部分内容来源于网络转载,仅供学习交流使用。如涉及版权问题,请及时联系我们,我们将第一时间处理。
文章很赞!支持一下吧 还没有人为TA充电
为TA充电
还没有人为TA充电
0
  • 支付宝打赏
    支付宝扫一扫
  • 微信打赏
    微信扫一扫
感谢支持
文章很赞!支持一下吧
关于作者
2.3W+
5
0
1
WAP站长官方

阿里云赵大川:弹性计算推理解决方案拯救 AIGC 算力危机

上一篇

文心一言 VS 讯飞星火 VS chatgpt (38)-- 算法导论5.4 2题

下一篇
  • 复制图片
按住ctrl可打开默认菜单