当前位置:AIGC资讯 > AIGC > 正文

llama-factory-0.7.0微调llama3-8B-Instruct-262k

1.摘要

用llama-factory-0.7.0微调Llama-3-8B-Instruct-262k,微调数据是1.5k的论文审稿。

GPU配置是A40.

用llama-factory的0.7.1版本微调Llama-3-8B-Instruct-262k.

2.准备工作

2.1软硬件依赖

2.2 安装LLaMA-Factory

下载0.7.0版本

cd LLaMA-Factory

pip install –r requirements.txt

pip install -e .[metrics]

2.3 下载模型Llama-3-8B-Instruct-262k

https://huggingface.co/gradientai/Llama-3-8B-Instruct-262k

2.4 微调数据整理

数据文件:paper_review.json

微调数据文件paper_review.json中的数据格式:

{

"input_sys": "",

"instruction":"",

"input": "",

"output": "",

}

把微调数据文件paper_review.json放到LLaMA-Factory/data/目录下面。

2.5 修改LLaMA-Factory/data/dataset_info.json

在data/dataset_info.json中增加:

"paper_review": {

"file_name": "paper_review.json",

"columns": {

"system": "input_sys",

"prompt": "instruction",

"query": "input",

"response": "output"

}

}

2.6 增加LLaMA-Factory/examples/lora_single_gpu/paper-review-sft.sh

cp sft.sh  paper-review-sft.sh

在paper-review-sft.sh文件中修改下面三项(黄色部分):

#!/bin/bash

CUDA_VISIBLE_DEVICES=0 python ../../src/train_bash.py \

    --stage sft \

    --do_train \

    --model_name_or_path /root/autodl-tmp/LLM/Llama-3-8B-Instruct-262k \

    --dataset alpaca_gpt4_en,glaive_toolcall \

    --dataset_dir ../../data \

    --template default \

    --finetuning_type lora \

    --lora_target q_proj,v_proj \

    --output_dir /root/autodl-tmp/LLM/saves-7.0/llama3-8b/lora/sft \

    --overwrite_cache \

    --overwrite_output_dir \

    --cutoff_len 256000 \

    --preprocessing_num_workers 16 \

    --per_device_train_batch_size 1 \

    --per_device_eval_batch_size 1 \

    --gradient_accumulation_steps 8 \

    --lr_scheduler_type cosine \

    --logging_steps 10 \

    --warmup_steps 20 \

    --save_steps 100 \

    --eval_steps 100 \

    --evaluation_strategy steps \

    --load_best_model_at_end \

    --learning_rate 5e-5 \

    --num_train_epochs 3.0 \

    --max_samples 3000 \

    --val_size 0.1 \

    --plot_loss \

    --fp16

3. 开始微调

cd LLaMA-Factory/examples/lora_single_gpu/

sh  paper-review-sft.sh

跑起来以后GPU占用24G左右

跑完用时100分钟

4.推理

4.1 增加LLaMA-Factory/examples/inference/cli_demo_test.sh文件

cp cli_demo.sh  cli_demo_test.sh

4.2 修改cli_demo_test.sh中的内容

CUDA_VISIBLE_DEVICES=0 python ../../src/cli_demo.py \

    --model_name_or_path /root/autodl-tmp/LLM/Llama-3-8B-Instruct-262k \

    --adapter_name_or_path /root/autodl-tmp/LLM/saves-7.0/llama3-8b/lora/sft \

    --template default \

--finetuning_type lora \

--max_length 256000 \

--buffer_size 256000 \

--cutoff_len 256000

4.3 运行推理

cd LLaMA-Factory/examples/inference

sh cli_demo_test.sh

5. 推理的时候遇到的错误RuntimeError: "triu_tril_cuda_template" not implemented for 'BFloat16'

经过观察日志

训练时:Instantiating LlamaForCausalLM model under default dtype torch.float16.

推理时:Instantiating LlamaForCausalLM model under default dtype torch.bfloat16.

说明训练用的是torch.float16.,推理用的是torch.bfloat16. 我们可以修改Llama-3-8B-Instruct-262k中的config.json文件,把config.json里面的"torch_dtype": "bfloat16",修改成"torch_dtype": "float16"。

在运行推理时,正常

更新时间 2024-06-17