windows环境下在家用笔记本电脑本地部署并微调Gemma全流程记录

部署并实现推理:

从huggingface官网下载https://huggingface.co/models?other=gemma

可先下gemma-2b,对消费级显卡友好.

在本地安装最新的transformer库:

pip install -U "transformers==4.38.1" --upgrade

运行代码:

# pip install accelerate
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("相应模型路径")
model = AutoModelForCausalLM.from_pretrained("相应模型路径", device_map="auto")

input_text = "Write me a poem about Machine Learning."
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")

outputs = model.generate(**input_ids,max_length = 64)
print(tokenizer.decode(outputs[0]))

使用Lora微调gemma

框架配置

我使用的是hiyouga大佬主理的LLaMA-Factory框架

按照LLaMA-Factory官方readme配置环境

git clone https://github.com/hiyouga/LLaMA-Factory.git
conda create -n llama_factory python=3.10
conda activate llama_factory
cd LLaMA-Factory
pip install -r requirements.txt

Windows系统如果要开启量化一定注意安装预编译的 bitsandbytes 库, 支持 CUDA 11.1 到 12.2。

pip install https://github.com/jllllll/bitsandbytes-windows-webui/releases/download/wheels/bitsandbytes-0.40.0-py3-none-win_amd64.whl

数据集配置

使用lora微调,构建自己的数据集时可按照instruction-input-output的方式构建数据集,具体格式可以参考 

LLaMA-Factory\data

文件夹里面的json文件格式。

注意在dataset_info.json文件中新增一项添加自己想要训练的数据集的文件名!只需加上file_name就可以保证能运行。

 "starcoder_python": {
    "hf_hub_url": "bigcode/starcoderdata",
    "ms_hub_url": "AI-ModelScope/starcoderdata",
    "columns": {
      "prompt": "content"
    },
    "folder": "python"
  },
  "你数据集的名字":{
    "file_name":"XXX.json"
  },
}

训练,测试,导出

对windows系统,我们需要写一个.bat文件,而不是官方的.sh脚本。

训练脚本:

在LLama-Factory文件夹下创建train.bat文件,内容如下:


set CUDA_VISIBLE_DEVICES=0 
python LLaMA-Factory\src\train_bash.py ^
    --stage sft ^
    --model_name_or_path model_path ^
    --do_train ^
    --dataset 你的数据集名称 ^
    --finetuning_type lora ^
    --lora_target q_proj,v_proj ^
    --output_dir 你存放checkpoint的文件夹 ^
    --overwrite_cache ^
    --per_device_train_batch_size 4 ^
    --gradient_accumulation_steps 4 ^
    --lr_scheduler_type cosine ^
    --logging_steps 10 ^
    --save_steps 1000 ^
    --learning_rate 1e-5 ^
    --num_train_epochs 4.0 ^
    --template gemma ^
    --quantization_bit 4

注意修改model路径/dataset路径,train_bash.py路径等参数

根据具体任务可以调整学习率等参数

可选择finetuning_type,我这里选择lora

根据硬件条件可以调整    --quantization_bit 4/8/fp16等不同量化等级,也可以调整batchsize。

在LLama-Factory文件夹下运行.\train.bat脚本即可完成lora微调

导出脚本:

python src/export_model.py ^
    --model_name_or_path 修改 ^
    --adapter_name_or_path 修改 ^
    --template gemma ^
    --finetuning_type lora ^
    --export_dir 修改 ^
    --export_size 2 ^
    --export_legacy_format False

测试脚本:

set CUDA_VISIBLE_DEVICES=0 
python src/cli_demo.py ^
    --model_name_or_path 修改 ^
    --adapter_name_or_path 修改 ^
    --template gemma ^
    --quantization_bit 8

导出权重,测试操作同训练,在LLama-Factory文件夹下创建相应脚本运行即可。

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值