Closed deerluffy closed 1 year ago
您可以适当调大学习率。 如果加载微调中间的checkpoint,则需要把start-step设置为该checkpoint对应的总步数,避免起始lr过大导致loss上升
@gongbaitao 谢谢,训练了1天多之后,loss 从2下降到了1,epoch 训练到17,我看初始代码的设计epoch 是100,但是我们用fastchat 训练llama一般只做3个epoch,想问下,这个100epoch 是你们的经验值么?
并不是经验值,您需要根据自己的数据集特点来设置合适的epoch,一般3个即可
感谢 @gongbaitao ,我关掉这个问题,后面自己再试一下。
微调数据格式
{ "<ans>":"谢谢你的帮助和解释。我会考虑购买这个工具的。", "prompt":"扮演一个女性与男性聊天,AI是你要扮演的人,用户是一个普通男性,请根据聊天历史回应用户的话", "input":"用户:你好,小芳,你需要什么帮助?\n<sep>AI:我需要你帮我理解最近一款IT工具是如何运作的。你能为我讲解一下吗?\n<sep>用户:当然,我很乐意为你解释。这款工具是用于确保数据隐私安全的一种工具,你可能对这个比较感兴趣,对吧?\n<sep>AI:是的,我一直想知道如何更好地处理客户数据。这个工具是否完全安全,也就是说,它是否易受到黑客攻击?\n<sep>用户:我们团队已经设计了非常完善的安全系统,确保任何外部攻击者不能访问你的数据。此外,我们还提供了实时监控系统,这意味着你可以立即获得关于它的任何问题的通知。\n<sep>AI:听起来非常不错。这个工具还有其他类型数据处理功能吗?比如说营销数据?\n<sep>用户:当然有。我们的工具可以为你提供全面的数据分析支持,它会分析顾客的行为,帮助你更好地预测市场市场趋势。\n<sep>AI:这听起来很棒。另外,对于普通商业应用程序的IT管理如何进行整合?\n<sep>用户:我们平台支持大多数商业系统,并且很容易进行整合。你需要使用的是API接口来传递数据即可。<sep>AI:" }
运行参数 nohup bash scripts/finetune_cpm_bee.sh &export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 GPUS_PER_NODE=8 NNODES=1 MASTER_ADDR="localhost" MASTER_PORT=12345
OPTS="" OPTS+=" --model-config /data/xxx/huggingface/cpm-bee-10b/config.json" OPTS+=" --dataset /data/xxx/CPM-Bee/mmdata/bin_data/train" OPTS+=" --eval_dataset /data/xxx/CPM-Bee/mmdata/bin_data/eval" OPTS+=" --epoch 100" OPTS+=" --batch-size 6" OPTS+=" --train-iters 100" OPTS+=" --save-name cpm_bee_finetune" OPTS+=" --max-length 2048" OPTS+=" --save results/" OPTS+=" --lr 0.0001" OPTS+=" --inspect-iters 100" OPTS+=" --warmup-iters 1" OPTS+=" --eval-interval 1000" OPTS+=" --early-stop-patience 5" OPTS+=" --lr-decay-style noam" OPTS+=" --weight-decay 0.01" OPTS+=" --clip-grad 1.0" OPTS+=" --loss-scale 32768" OPTS+=" --start-step 0" OPTS+=" --load /data/xxx/huggingface/cpm-bee-10b/pytorch_model.bin"
环境:v100、NVIDIA-SMI 510.68.02 Driver Version: 510.68.02 CUDA Version: 11.6 日志: | task loss: 2.2724 | Epoch: 2 | Iter: 151 | loss: 2.2019 | lr: 5.0000e-06, scale: 32768.0000 | time: 22.5786 | token/max: 0.9941 | mask/max: 0.0859 | grad_norm: 0.3210 | task loss: 2.2019 | Epoch: 2 | Iter: 152 | loss: 2.2585 | lr: 4.9938e-06, scale: 32768.0000 | time: 22.5854 | token/max: 0.9900 | mask/max: 0.0914 | grad_norm: 0.3239 | task loss: 2.2585 | Epoch: 2 | Iter: 153 | loss: 2.2654 | lr: 4.9875e-06, scale: 32768.0000 | time: 22.5856 | token/max: 0.9922 | mask/max: 0.0935 | grad_norm: 0.3255 | task loss: 2.2654 | Epoch: 2 | Iter: 154 | loss: 2.2877 | lr: 4.9814e-06, scale: 32768.0000 | time: 22.5771 | token/max: 0.9914 | mask/max: 0.0924 | grad_norm: 0.3396 | task loss: 2.2877 | Epoch: 2 | Iter: 155 | loss: 2.3035 | lr: 4.9752e-06, scale: 32768.0000 | time: 22.5659 | token/max: 0.9925 | mask/max: 0.0863 | grad_norm: 0.3450 | task loss: 2.3035 | Epoch: 2 | Iter: 156 | loss: 2.1965 | lr: 4.9690e-06, scale: 32768.0000 | time: 22.5814 | token/max: 0.9899 | mask/max: 0.0919 | grad_norm: 0.3295 | task loss: 2.1965 | Epoch: 2 | Iter: 157 | loss: 2.2583 | lr: 4.9629e-06, scale: 32768.0000 | time: 22.5882 | token/max: 0.9906 | mask/max: 0.0835 | grad_norm: 0.3215 | task loss: 2.2583 | Epoch: 2 | Iter: 158 | loss: 2.3117 | lr: 4.9568e-06, scale: 32768.0000 | time: 22.5998 | token/max: 0.9923 | mask/max: 0.0921 | grad_norm: 0.3174 | task loss: 2.3117 | Epoch: 2 | Iter: 159 | loss: 2.3250 | lr: 4.9507e-06, scale: 32768.0000 | time: 22.6069 | token/max: 0.9899 | mask/max: 0.0745 | grad_norm: 0.3270 | task loss: 2.3250 | Epoch: 2 | Iter: 160 | loss: 2.3023 | lr: 4.9447e-06, scale: 32768.0000 | time: 22.6160 | token/max: 0.9903 | mask/max: 0.0875 | grad_norm: 0.3343 | task loss: 2.3023 | Epoch: 2 | Iter: 161 | loss: 2.2870 | lr: 4.9386e-06, scale: 32768.0000 | time: 22.5969 | token/max: 0.9880 | mask/max: 0.0984 | grad_norm: 0.3184 | task loss: 2.2870 | Epoch: 2 | Iter: 162 | loss: 2.3250 | lr: 4.9326e-06, scale: 32768.0000 | time: 22.5914 | token/max: 0.9865 | mask/max: 0.1004 | grad_norm: 0.3363 | task loss: 2.3250 | Epoch: 2 | Iter: 163 | loss: 2.2920 | lr: 4.9266e-06, scale: 32768.0000 | time: 22.5874 | token/max: 0.9932 | mask/max: 0.0949 | grad_norm: 0.3271 | task loss: 2.2920 | Epoch: 2 | Iter: 164 | loss: 2.2536 | lr: 4.9207e-06, scale: 32768.0000 | time: 22.5857 | token/max: 0.9868 | mask/max: 0.0954 | grad_norm: 0.3186 | task loss: 2.2536 | Epoch: 2 | Iter: 165 | loss: 2.3462 | lr: 4.9147e-06, scale: 32768.0000 | time: 22.5778 | token/max: 0.9924 | mask/max: 0.0852 | grad_norm: 0.3356 | task loss: 2.3462 | Epoch: 2 | Iter: 166 | loss: 2.2151 | lr: 4.9088e-06, scale: 32768.0000 | time: 22.5759 | token/max: 0.9871 | mask/max: 0.0973 | grad_norm: 0.3214 | task loss: 2.2151 | Epoch: 2 | Iter: 167 | loss: 2.3018 | lr: 4.9029e-06, scale: 32768.0000 | time: 22.5674 | token/max: 0.9845 | mask/max: 0.0904 | grad_norm: 0.3371
如上:辛苦帮看下是否正常呢?