赞
踩
从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]))
我使用的是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文件夹下创建相应脚本运行即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。