使用 GaLore 预训练LLaMA-7B

打印 上一主题 下一主题

主题 857|帖子 857|积分 2571

项目代码:
https://github.com/jiaweizzhao/galore
https://github.com/jiaweizzhao/galore
参考博客:
https://zhuanlan.zhihu.com/p/686686751
创建环境

底子环境配置如下:


  • 操作系统: CentOS 7
  • CPUs: 单个节点具有 1TB 内存的 Intel CPU,物理CPU个数为64,每颗CPU核数为16
  • GPUs: 8 卡 A800 80GB GPUs
  • Python: 3.10 (需要先升级OpenSSL到1.1.1t版本(点击下载OpenSSL),然后再编译安装Python),点击下载Python
  • NVIDIA驱动步伐


  • 版本: 515.125.06,根据差别型号选择差别的驱动步伐,点击下载。
  • CUDA工具包: 11.8,点击下载
conda create -n GaLore python=3.10
安装依靠包
  1. pip install -r requirements.txt
复制代码
此中,requirements.txt 文件为:
  1. torch==2.1.0
  2. transformers==4.31.0
  3. tokenizers
  4. datasets==2.14.6
  5. peft
  6. wandb
  7. loguru
  8. nvitop
  9. lion-pytorch
  10. matplotlib
  11. bitsandbytes
  12. scipy
  13. scikit-learn
  14. evaluate
复制代码
pip install tensorly
注意:Pytorch 需确保2.1.0以上,不然会报错。

数据集准备

本文使用 C4 数据集进行训练,C4 数据集是由 Google 提供的一个大型预训练数据集,用于训练语言模子。C4 数据集包含了数十亿个网页的内容,颠末处置惩罚和清洗后形成了一个适适用于训练大型语言模子的数据集。这个数据集可以用于训练各种天然语言处置惩罚任务,如文本天生、文本分类
、语言建模等。语言建模


  • 下载地址:https://huggingface.co/datasets/allenai/c4/tree/main/en
由于数据集太大,这里只下载了一个文件约莫356317条数据。
wandb 启用离线模式

启用离线模式后,wandb 将不会上传数据,但仍然会记载实行过程中的数据和结果。
  1. wandb  offline
  2. # W&B offline. Running your script from this directory will only write metadata locally. Use wandb disabled to completely turn off W&B.
复制代码
单张 4090 消费级显卡预训练 LLaMA-7B

接下来,使用单个 GPU(例如:NVIDIA RTX 4090)训练 7B 模子,您所需要做的就是指定 --optimizer=galore_adamw8bit_per_layer ,这会启用 GaLoreAdamW8bit 并进行每层权重更新。通过激活(梯度)检查点(activation checkpointing),您可以将在 NVIDIA RTX 4090 上测试的批量巨细保持为 16。
实行命令:
  1. CUDA_VISIBLE_DEVICES=3 torchrun --standalone --nproc_per_node 1 torchrun_main.py \
  2.     --model_config configs/llama_7b.json \
  3.     --lr 0.005 \
  4.     --galore_scale 0.25 \
  5.     --rank 1024 \
  6.     --update_proj_gap 500 \
  7.     --batch_size 16 \
  8.     --total_batch_size 512 \
  9.     --activation_checkpointing \
  10.     --num_training_steps 150000 \
  11.     --warmup_steps 15000 \
  12.     --weight_decay 0 \
  13.     --grad_clipping 1.0 \
  14.     --dtype bfloat16 \
  15.     --eval_every 1000 \
  16.     --single_gpu \
  17.     --optimizer galore_adamw8bit_per_layer
复制代码
CUDA_VISIBLE_DEVICES=3 torchrun --standalone --nproc_per_node 1 torchrun_main.py --model_config configs/llama_7b.json --lr 0.005 --galore_scale 0.25 --rank 1024 --update_proj_gap 500 --batch_size 16 --total_batch_size 512 --activation_checkpointing --num_training_steps 150000 --warmup_steps 15000 --weight_decay 0 --grad_clipping 1.0 --dtype bfloat16 --eval_every 1000 --single_gpu --optimizer galore_adamw8bit_per_layer
似乎是因为连不了外网所以没找到数据集:

解决方法,手动下载数据集,上传到服务器:


 下载地址:https://huggingface.co/datasets/allenai/c4/tree/main/en
同样,模子也要提前下好,放在指定位置:







开始训练了,只是比较慢,显存开销在22G的样子:






免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

农妇山泉一亩田

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表