七月论文审稿GPT第4.2版:通过15K条paper-review数据微调Llama2 70B(含各种坑)
内容提要
本文记录了作者在微调LLaMA2 70B模型过程中遇到的报错信息及解决方法,包括GPU占用和数据截断等问题。作者成功微调了5K条数据,并进行了推理,结果超过了GPT4-1106模型。作者计划使用更大的15K数据集进行微调。
延伸解读
显存与硬件配置的实际需求
文章记录,微调LLaMA2 70B时显存最高占用达570GB,因此建议使用8张80GB的A100显卡。在尝试关闭flash_attn后,即使使用DeepSpeed Zero-3,8张A100训练到第4个batch仍会出现显存不足。这表明对于70B模型,flash_attn和足够的显存是训练成功的关键因素,硬件不足会直接导致训练中断。
数据清洗与问题定位的耗时
作者采用二分法定位引发训练报错的数据,从5000多条数据中逐步缩小范围,最终发现第1453行数据有问题。整个过程从下午1点持续到凌晨5点,耗时约12小时。这反映了在微调大模型时,数据质量排查可能消耗大量时间,且需要耐心和系统的方法。
小数据量微调的效果与局限
使用5K数据微调LLaMA2 70B后,在285条测试数据上推理,效果超过了GPT4-1106,且与7B模型使用15K数据的效果打平。但作者也指出,由于数据量只有5K,效果不一定稳定,因此计划提高数据质量并使用15K数据进一步微调。这说明小数据量可能取得不错结果,但扩大数据量和提升质量仍是后续方向。
Q&A
在微调LLaMA2 70B模型时遇到了哪些主要问题?
主要问题包括GPU占用过高和数据截断错误。
作者是如何解决显存不足的问题的?
作者使用了DeepSpeed Zero-3优化训练,降低了显存占用。
微调5K条数据的结果如何?
推理结果显示5K数据的效果超过了GPT4-1106模型。
作者计划如何提高数据质量?
作者计划使用更大的15K数据集进行微调,以提高数据质量。
在微调过程中,如何处理数据中的错误?
作者通过二分法定位并剔除引发异常的数据,最终成功使用5089条数据完成训练。
训练过程中显存的最高占用是多少?
训练过程中显存的最高占用为570GB。