如何使用 Colab 训练 Alpaca-LoRa

本文主要参考视频《AI大模型训练-第四课 | 模型微调与数据安全:部署属于你自己的“大”语言模型》,介绍如何使用 Alpaca-LoRa 训练和部署模型。在训练过程中使用租借的 A100,总耗时2小时43分41秒,共花费3.5美金。

前期准备

训练模型

下载源码 Test_Alpaca_Lora_with_Colab.ipynb,然后在 Colab 里打开。

在 代码执行程序 -> 更改运行时类型选择 GPU类型 -> A100,运行时规格 -> 高 RAM。

PS: 训练 Alpaca-Lora 按照官方说法是需要 28G 显存,A100 有 40G 显存,所以是足够了,费用是1.3美金/小时。

image.png

点击“连接”
image.png

下面具体介绍下代码,具体可以参考Test_Alpaca_Lora_with_Colab.ipynb

挂载 Google Drive

from google.colab import drive
drive.mount('/content/gdrive')

下载 Alpaca-Lora 项目

%cd /content/gdrive/MyDrive
!git clone https://github.com/xuwenhao/alpaca-lora.git
%cd alpaca-lora
!git pull

这里使用的是从 alpaca-lora Fork 出来的项目,好处是帮我们锁定了 python 部分三方库的版本,保证项目的正常运行。具体改动如下:

bitsandbytes==0.37.2
peft==0.2.0
transformers== 4.29.2

安装依赖

!pip install -r requirements.txt

安装和使用机器训练监控工具 wandb

!pip install wandb

# 登录 wandb,会要求输入 Weights and Biases 的 Key,请提前申请好
import wandb
wandb.login()

训练模型

!python finetune.py \
    --base_model 'huggyllama/llama-7b' \
    --data_path './alpaca_data.json' \
    --output_dir './lora-alpaca-20230624-01' \
    --batch_size 128 \
    --micro_batch_size 50 \
    --num_epochs 3 \
    --learning_rate 1e-4 \
    --cutoff_len 512 \
    --val_set_size 2000 \
    --lora_r 8 \
    --lora_alpha 16 \
    --lora_dropout 0.05 \
    --lora_target_modules '[q_proj,v_proj]' \
    --train_on_inputs \
    --group_by_length \
    --wandb_project 'mactalk-demo' \
    --wandb_run_name 'alpaca-20230624' \
    --wandb_log_model 'true' \
    --wandb_watch 'false'

base_model: 在这里选择的预训练模型是 llama-7b。

data_path: 微调使用的数据地址。Alpaca 用的指令数据量是52K,利用 text-davinci-003 生成。

output_dir: 模型输出地址,这里可以任意修改。

wandb_project: wandb 项目名称,会在 wandb 后台显示。

wandb_run_name: wandb 运行名称,会在 wandb 后台显示。

训练过程:

image.png

wandb 监控数据:

image.png

部署模型

可以在 Colab 直接部署使用。

!python generate.py \
    --load_8bit \
    --base_model 'huggyllama/llama-7b' \
    --lora_weights './lora-alpaca-20230624-01' \
    --share_gradio

PS: 需要加上 share_gradio,不然无法输出公共URL进行使用。该单机部署只能作为 Demo 使用。

你会看到日志输出:

Running on public URL: xxxx.gradio.live ,点击后就可以在直接使用了

image.png

image.png

image.png

image.png

参考资料

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYmFNXER' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片