仅用250美元,Hugging Face技术主管亲自教你如何微调Llama 3!

科技 2024-05-06 17:43 阅读:18

微调大语言模型一直是一个让人望而却步的任务。但是最近,Hugging Face技术主管Philipp Schmid发布了一篇博客,详细介绍了如何利用Hugging Face的库和fsdp以及Q-Lora对大型模型进行微调。

我们都知道,Meta推出的Llama 3、Mistral AI推出的Mistral和Mixtral模型以及AI21实验室推出的Jamba等开源大语言模型已经成为OpenAI的竞争对手。然而,大多数情况下,用户需要根据自己的数据对这些开源模型进行微调,才能充分发挥模型的潜力。

虽然在单个GPU上使用Q-Lora对较小的大语言模型(如Mistral)进行微调并不困难,但对像Llama 3 70b或Mixtral这样的大型模型进行高效微调仍然是一个难题。因此,Philipp Schmid介绍了如何使用PyTorch FSDP和Q-Lora,并借助Hugging Face的TRL、Transformers、PEFT和datasets等库,对Llama 3进行微调。除了FSDP,作者还对PyTorch 2.2更新后的Flash Attention v2也进行了适配。

微调的主要步骤包括设置开发环境、创建和加载数据集、使用PyTorch FSDP、Q-Lora和SDPA微调大语言模型,以及测试模型并进行推理。

在设置开发环境时,首先要安装Hugging Face Libraries和PyTorch,包括trl、transformers和datasets等库。接下来,登录Hugging Face获取Llama 3 70b模型。

创建和加载数据集是微调的关键步骤之一。作者使用了HuggingFaceH4/no_robots数据集,这是一个包含10,000条指令和样本的高质量数据集,可用于有监督微调,使语言模型更好地遵循人类指令。

接下来,使用PyTorch FSDP、Q-Lora和SDPA对大语言模型进行微调。作者编写了run_fsdp_qlora.py脚本,用于加载数据集、初始化模型和分词器,并开始模型训练。脚本使用trl库中的SFTTrainer来进行微调。

训练完成后,作者对模型进行了评估和测试。通过加载测试数据集,作者尝试生成指令,并手动评估模型的表现。

总的来说,通过遵循Philipp Schmid的指导,你可以用250美元在家中微调Llama 3,释放出这一大型模型的潜力。赶紧动手尝试吧!