Llama2是Meta开源的语言大模型,它经过训练的数据集包含2万亿个token。相比Llama,Llama2的上下文长度已经从2048扩展到4096,这使其能够理解和生成更长的文本。Llama2包括了多个模型,分别是7B、13B和70B的模型。
一、准备工作
- 在autodl平台租用实例(直接搜索,有许多租用教程,建议租用显存大于24G的显卡)
- 安装需要用的依赖包
Python 3.8+
PyTorch 1.13.1+
transformers 4.31.0
peft 0.5.0
二、模型下载
Llama网址:https://github.com/LlamaFamily/Llama-Chinese
下载代码文件,以及Chinese-Llama-2-7b的模型权重,放在项目里。
1.将模型文件上传AutoDL
将模型文件放在/root/autodl-tmp下
2.自定义数据集训练微调
dataset_info.json包含所有数据集的信息,并且需要重新创建一个self_cognition.json文件,self_cognition-base.json为原来的self_cognition.json文件
self_cognition-base.json文件部分数据展示,可以自行修改内容。
3. 模型微调训练
打开AutoDL终端,切换到你项目根目录下执行以下代码:
CUDA_VISIBLE_DEVICES=0 python src/train_bash.py \
--stage sft \
--model_name_or_path /root/autodl-tmp/LLaMA-Efficient-Tuning/models/Chinese-Llama-2-7b \
--do_train \
--dataset self_cognition\
--template default \
--finetuning_type lora \
--lora_target q_proj,v_proj \
--output_dir /root/autodl-tmp/LLaMA-Efficient-Tuning/models/My-sft-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 5e-5 \
--num_train_epochs 15.0 \
--plot_loss \
--fp16
训练结束后
4. 命令行演示
执行以下代码:
python src/cli_demo.py --model_name_or_path /root/autodl-tmp/LLaMA-Efficient-Tuning/models/Chinese-Llama-2-7b --template default --checkpoint_dir /root/autodl-tmp/LLaMA-Efficient-Tuning/models/My-sft-checkpoint
效果图,即可完成对话
6. Web界面演示
执行以下代码
python src/web_demo.py --model_name_or_path /root/autodl-tmp/LLaMA-Efficient-Tuning/models/Chinese-Llama-2-7b --template default --checkpoint_dir /root/autodl-tmp/LLaMA-Efficient-Tuning/models/My-sft-checkpoint
运行结果
网页上,输入上面的URL