LLama2:meta-llama/Llama-2-7b-chat-hf
基础模型:conghao/llama2-7b-chat-hf
Lora模型:conghao/llama2-qlora-med-zh

基础模型为基于Llama-2-7b-chat-hf将LLama的原始权重文件转换为Transformers库对应的模型文件格式。可基于此模型进行微调。

Lora模型llama2-qlora-med-zh为基于医学数据集训练好的模型权重,损失函数收敛至0.2924。

资源配置

  • Hardware
    • CPU: Arch x86_64 Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz 8Core
    • Mem: 32G
    • GPU: GPU 0: Tesla A10 24 MB
  • OS
    • CentOS7.9.2009
    • cuda 11.4
  • Software
    • Python3.10 / pip 22.3.1
  • Datasets

训练

1
2
3
4
5
6
7
8
9
10
python finetune.py \
--base_model "/home/work/virtual-venv/lora-env/data/llama2-chat-hf" \
--data_path "./data/llama_data.json" \
--output_dir "./llama2-qlora-med-zh" \
--prompt_template_name 'med_template' \
--micro_batch_size 16 \
--batch_size 16 \
--wandb_run_name med_e1

#nohup python finetune.py --base_model "/home/work/virtual-venv/lora-env/data/llama2-chat-hf" --data_path "./data/llama_data.json" --output_dir "./llama2-qlora-med-zh" --prompt_template_name 'med_template' --micro_batch_size 16 --batch_size 16 --wandb_run_name med_e2 2>/tmp/llama2-ft.log 1>&2 &

训练过程:https://wandb.ai/jingying/llama2-med/runs/t3zap65o


推理

1
2
3
4
5
python infer.py \
--base_model '/home/work/virtual-venv/lora-env/data/llama2-chat-hf' \
--lora_weights '/home/work/virtual-venv/lora-env/src/llama2-finetuning-med/llama2-qlora-med-zh' \
--use_lora True --instruct_dir './data/infer.json' \
--prompt_template 'med_template'

华佗Lora模型推理效果:

可以看到基于该数据集进行微调的效果与华佗效果存在一定差距,需要优化:

  • batch_size ,用的16G T4微调,batch_size最大设置16,华佗batch_size为128
  • 数据集优化,该训练使用的数据集指令和输出较为简单,需要更换数据集。