使用 Unsloth 超高效微调 Llama 3.1

本文介绍了如何高效地对 Llama 3.1 模型进行监督微调,特别是使用 Unsloth 库进行 8B 模型的微调。文章强调,Llama 3.1 的发布缩小了闭源和开源模型之间的性能差距,微调该模型可以实现更好的性能和定制化,且成本更低。作者提供了监督微调的全面概述,比较了与提示工程的不同,并详细介绍了主要技术及其优缺点。 监督微调(SFT)概述: SFT 是一种改善和定制预训练 LLM 的方法,通过在较小的数据集上重新训练基础模型,使其能够更好地执行指令和回答问题。 SFT 可以提高模型的整体性能,增加新知识,或适应特定任务和领域。 SFT 技术: 全微调:对预训练模型的所有参数进行重新训练,效果最佳但需要大量计算资源。 LoRA(低秩适应):只训练小的适配器,减少内存使用和训练时间,非破坏性。 QLoRA:LoRA 的扩展,提供更高的内存节省,适合 GPU 内存受限的情况,但训练时间更长。 微调 Llama 3.1 8B 的过程: 使用 Unsloth 库进行高效微调,支持单 GPU 设置,提供更快的训练速度和更低的内存使用。 训练使用了 mlabonne/FineTome-100k 数据集,经过处理后应用 ChatML 模板。 训练参数和过程: 训练使用 A100 GPU,耗时约 4 小时 45 分钟,建议在资源有限的情况下加载数据集的子集以加快训练。 主要超参数包括学习率、批量大小、训练轮数等,使用 AdamW 8-bit 优化器。 模型评估与保存: 训练完成后,通过简单的提示测试模型性能,并使用 Unsloth 提供的保存方法将训练好的模型上传到 Hugging Face Hub。 文章还提到量化模型的不同格式以便于在推理引擎中使用。 后续步骤建议: 评估模型性能,进行偏好对齐,量化以提高推理速度,或在 Hugging Face Space 部署模型。 使用 Unsloth 超高效微调 Llama 3....

August 21, 2024 · 4 min · fisherdaddy