当前位置:   article > 正文

windows环境下在家用笔记本电脑本地部署并微调Gemma全流程记录_win系统使用llama-factory

win系统使用llama-factory

部署并实现推理:

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

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

在本地安装最新的transformer库:

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

运行代码:

  1. # pip install accelerate
  2. from transformers import AutoTokenizer, AutoModelForCausalLM
  3. tokenizer = AutoTokenizer.from_pretrained("相应模型路径")
  4. model = AutoModelForCausalLM.from_pretrained("相应模型路径", device_map="auto")
  5. input_text = "Write me a poem about Machine Learning."
  6. input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
  7. outputs = model.generate(**input_ids,max_length = 64)
  8. print(tokenizer.decode(outputs[0]))

使用Lora微调gemma

框架配置

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

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

  1. git clone https://github.com/hiyouga/LLaMA-Factory.git
  2. conda create -n llama_factory python=3.10
  3. conda activate llama_factory
  4. cd LLaMA-Factory
  5. 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就可以保证能运行。

  1. "starcoder_python": {
  2. "hf_hub_url": "bigcode/starcoderdata",
  3. "ms_hub_url": "AI-ModelScope/starcoderdata",
  4. "columns": {
  5. "prompt": "content"
  6. },
  7. "folder": "python"
  8. },
  9. "你数据集的名字":{
  10. "file_name":"XXX.json"
  11. },
  12. }

训练,测试,导出

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

训练脚本:

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

  1. set CUDA_VISIBLE_DEVICES=0
  2. python LLaMA-Factory\src\train_bash.py ^
  3. --stage sft ^
  4. --model_name_or_path model_path ^
  5. --do_train ^
  6. --dataset 你的数据集名称 ^
  7. --finetuning_type lora ^
  8. --lora_target q_proj,v_proj ^
  9. --output_dir 你存放checkpoint的文件夹 ^
  10. --overwrite_cache ^
  11. --per_device_train_batch_size 4 ^
  12. --gradient_accumulation_steps 4 ^
  13. --lr_scheduler_type cosine ^
  14. --logging_steps 10 ^
  15. --save_steps 1000 ^
  16. --learning_rate 1e-5 ^
  17. --num_train_epochs 4.0 ^
  18. --template gemma ^
  19. --quantization_bit 4

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

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

可选择finetuning_type,我这里选择lora

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

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

导出脚本:

  1. python src/export_model.py ^
  2. --model_name_or_path 修改 ^
  3. --adapter_name_or_path 修改 ^
  4. --template gemma ^
  5. --finetuning_type lora ^
  6. --export_dir 修改 ^
  7. --export_size 2 ^
  8. --export_legacy_format False

测试脚本:

  1. set CUDA_VISIBLE_DEVICES=0
  2. python src/cli_demo.py ^
  3. --model_name_or_path 修改 ^
  4. --adapter_name_or_path 修改 ^
  5. --template gemma ^
  6. --quantization_bit 8

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/368310
推荐阅读
相关标签
  

闽ICP备14008679号