grantchenhuarong
grantchenhuarong
基于LLaMA-7B32层网络的中文小羊驼,制作了43万指令问答语料,在checkpoint-11600的Lora模型基础上,使用2080Ti11GB显卡训练。显存占用10GB,75秒左右一轮,需要执行17298-11600=5698轮,预期5天左右完成训练。 MICRO_BATCH_SIZE = 8 BATCH_SIZE = 256 MAX_STEPS = None GRADIENT_ACCUMULATION_STEPS = BATCH_SIZE // MICRO_BATCH_SIZE EPOCHS = 3 # we don't always need 3 tbh LEARNING_RATE = 3e-4 # the...
数据是整理了N多的诗词,定了几个专用prompts, 如prompt_list = ["扮演一位诗词专家,背诵如下诗篇全文", "扮演一位诗词专家,指出如下诗句出处", "扮演一位诗词专家,介绍如下诗词解读", "扮演一位诗词专家,介绍下如下诗人"]。组装了43万6千多的语料。形状如下 { "instruction": "扮演一位诗词专家,背诵如下诗篇全文", "input": "宋·李清照 武陵春 (风住沉香花已尽)", "output": "风住沉香花已尽,日晚倦梳头。物是人非事事休,欲语泪先流。闻说双溪春尚好,也拟泛轻舟。只恐双溪舴艋(zé měng)舟,载不东许多愁。" }, { "instruction": "扮演一位诗词专家,背诵如下诗篇全文", "input": "宋·李清照 声声慢 (寻寻觅觅)", "output": "寻寻觅觅,冷冷清清,凄凄惨惨戚戚。乍暖还寒时候,最难将息。三杯两盏淡酒,怎敌它,万来风急。雁过也,正伤心,却是旧时相识。满地黄花堆积,憔悴损,如今有谁堪摘?守着窗儿,独自怎生得黑!梧桐更兼细雨,到黄昏,点点滴滴。这次第,怎一个愁字了得!" }
训练参数大致如下(其它如原代码未改动): MICRO_BATCH_SIZE = 8 BATCH_SIZE = 256 GPU占用稍微超过10GB
几个问题困扰中,求大神指导: 1、是训练次数不足么?(我现在把诗文减少到347首,做了只用一条指令的347条全文背诵的语料,再从checkpoint-5800处重跑,这个应该可以重复尝试多次数据了。但是又要跑120小时。。。当然过程当中应该会过拟合吧?中间停了就好。重新验证中) 2、是语料准备有问题么?格式、指令或者其它一些未注意的地方? 3、训练参数需要调整或者设置?
谢谢两位的指导。现在正式启动用finetune_other_continue进行训练,看看效果是否能够出来。
finetune_other_continue 以checkpoint-11600为基础,参数如下: #DATA_PATH="./sample/merge_sample.json" #"../dataset/instruction/guanaco_non_chat_mini_52K-utf8.json" DATA_PATH="./data/instructions.json" OUTPUT_PATH="lora-Vicuna" MODEL_PATH="/data/ftp/models/llama/7b" lora_checkpoint="./lora-Vicuna/checkpoint-11600" from_data_beginning=True # False TEST_SIZE=1 python finetune.py \ --data_path $DATA_PATH \ --output_path $OUTPUT_PATH \ --model_path $MODEL_PATH \ --eval_steps 200 \ --save_steps 200 \...
1、重新下载了新版的huggingface的llama-7b模型,对齐了bos_token_id,eos_token_id,重新再训练一下。 2、也将fintune.sh当中加载lora模型参数的代码变更了下,确实将checkpoint-11600叠加上来了。 语料还是固定指令的350首诗,目前看训练速度是比之前快一多半。原来到17298 steps需要116小时,目前看只要60小时左右。 中间将保存的steps改成50了,尽早看看新的训练效果。
继续训练中,目前执行到11250,加载generate.sh,交互效果不太好。  目前训练语料357首诗文,构造如下  跑的微调脚本如下python finetune.py --data_path ./data/instructions.json --output_path ./lora-Vicuna/shici4/ --model_path /data/ftp/models/llama/7b-hf/ --eval_steps 50 --save_steps 50 --test_size 1 --resume_from_checkpoint ./lora-Vicuna/checkpoint-11600 --ignore_data_skip True 请大神帮忙分析下问题出在哪? 1、语料不足? 2、语料格式整理问题? 3、训练欠拟合,继续? 4、测试集只定了1,有无影响? 5、Anything else?
用lora权重11600推理测试正常    beam_num都是默认的4路。
有一个情况是这样的,我用一台2080ti 11GB机器持续训练,然后将生成的权重拷贝到另外一台1080ti 11GB机器进行推理测试。两边的环境、数据、模型是一致的。这个情况应该不会影响效果吧?不然,就只能断掉2080ti的训练,验证一下再进行继续训练了。目前我用的参数是依照 fintune_others_continue.sh的。