AI大模型教程
一起来学习

使用 GaLore 预训练LLaMA-7B

项目代码:

https://github.com/jiaweizzhao/galorehttps://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

安装依赖包

pip install -r requirements.txt

其中,requirements.txt 文件为:

torch==2.1.0
transformers==4.31.0
tokenizers
datasets==2.14.6
peft
wandb
loguru
nvitop
lion-pytorch
matplotlib
bitsandbytes
scipy
scikit-learn
evaluate

pip install tensorly

注意:Pytorch 需确保2.1.0以上,不然会报错。

数据集准备

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

语言建模等。语言建模

由于数据集太大,这里只下载了一个文件大约356317条数据。

wandb 启用离线模式

启用离线模式后,wandb 将不会上传数据,但仍然会记录实验过程中的数据和结果。

wandb  offline
# 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。

执行命令:

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

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的样子:

文章来源于互联网:使用 GaLore 预训练LLaMA-7B

相关推荐: 飞天奖居然也用AI整活了!网友锐评:你敢再土一点吗?

大家好,我是花生~ 刚结束的第 34 届 “飞天奖” 颁奖典礼想必很多人都有关注,最后是雷佳音获得优秀男演员奖,赵丽颖获得优秀女演员奖,《三体》、《狂飙》和《繁花》等 16 部作品获得优秀电视剧奖,这些都是大家非常喜爱的演员和作品,能获奖属于实至名归。 而在获…

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » 使用 GaLore 预训练LLaMA-7B
分享到: 更多 (0)

AI大模型,我们的未来

小欢软考联系我们