使用Claude-llm-trainer轻松微调Llama-2模型

2024年04月07日 由 daydream 发表 273 0

开源的大型语言模型(LLM)如Llama-2和Mistral因其灵活性和易用性而受到欢迎。您可以将它们部署在自己的服务器和计算机上,并为您的应用进行微调。部署得当的Llama-2模型可以为您节省时间和金钱,同时满足数据隐私要求。


微信截图_20240407112535


然而,对LLM进行微调需要收集和准备数据、编写用于训练模型的代码、调整超参数、进行训练和测试等步骤。这些挑战往往使得个人和组织难以创建自定义模型。


为了解决这一问题,OthersideAI的创始人兼CEO马特·舒默(Matt Shumer)创建了claude-llm-trainer,这是一个只需一条指令即可帮助您针对特定任务微调Llama-2的工具。


如何使用claude-llm-trainer


Claude-llm-trainer是一个Google Colab笔记本,其中包含了用于微调Llama-2 7B以完成特定任务的代码。要使用claude-llm-trainer,您只需在第一个单元格中配置设置,包括您希望为训练模型而设置的任务描述、示例数量以及您的Claude API密钥(如果您没有Claude密钥,可以在Anthropic Console上注册免费账户并创建API密钥)。


之后,按顺序运行单元格,直到笔记本末尾。模型将保存在您的Google Drive中。现在,您可以下载模型并在自己的服务器上使用。


生成训练示例和微调模型的时间长短取决于您的Colab和Claude订阅情况。除了任务配置外,您还可以执行以下一些基本操作来配置您的训练模型:


– Claude-llm-trainer的默认基础模型是“NousResearch/llama-2-7b-chat-hf”。要更改模型类型,请将Cell 7中的“model_name”变量更改为所需模型的路径。例如,要使用Mistral-7B模型,您可以将其设置为“mistralai/Mistral-7B-Instruct-v0.2”。


– 要更改训练模型的存储位置,请将Cell 10中的“model_path”变量设置为您选择的Google Drive位置。


– 当您有100个训练示例并正在微调较小的模型之一时,该过程在免费的Colab层级上运行良好。但是,如果您想在更大的模型上进行更重的训练,请考虑注册Pro层级并使用更强大的GPU。


– 如果您可以访问更强大的计算机集群,如Amazon AWS或Microsoft Azure,您可以将Colab作为笔记本文档下载并在您选择的计算平台上使用。但是,您必须为存储平台(如Amazon S3、Azure Blob、本地存储等)修改Cell 10。


微信截图_20240407112625


Claude-llm-trainer的工作原理


尽管Claude-llm-trainer非常方便,但它并不一定适合所有应用。为了确定它是否适合您的任务,您应该了解其工作原理。


在Cell 2中,Claude-llm-trainer使用Claude 3来生成训练示例。这个过程称为模型蒸馏,其中使用强大的模型(例如GPT-4或Claude 3),也称为“教师”模型,来训练较弱的模型(例如Llama-2或Mistral),即“学生”模型。


了解这一点很重要,因为如果训练器模型无法完成您的目标任务,那么使用模型蒸馏对您的应用将不会有用。例如,如果您想为您的LLM微调一个非常特殊的任务,这个任务需要与公司相关的专有知识,那么模型蒸馏可能就不会很有效。最好的方法是使用教师模型进行实验,看看它是否能完成您想要训练LLM的目标任务。默认情况下,Claude-llm-trainer使用Claude 3家族中最小、最快的Haiku作为教师模型来生成示例。您可以在Cell 2中修改教师模型。


在Cell 3中,Claude-llm-trainer使用Claude 3 Opus为训练后的模型生成系统提示。一旦单元格运行完毕,它将显示系统提示。如果您对系统提示不满意,可以多次运行该单元格。当您使用微调后的LLM进行下游任务时,您将需要这个系统提示。


在Cell 4和Cell 5中,生成的示例被编译成Pandas DataFrame,并被拆分为训练集和测试集。该工具还将数据集作为json文件存储在您的笔记本中。您可以下载它们以备后用。(请注意,您Colab环境中的文件将在会话结束时被删除。)


在Cell 6中,下载用于微调LLM所需的库。如果您更改了要微调的模型,您可能需要更改库的版本。Cell 7配置用于微调模型的超参数。在这里,您可以进行进一步的调整以改进模型的训练。


Cell 8是真正进行模型微调的地方。在模型经历多个训练周期时,您可以跟踪进度以及模型在训练和测试数据集上性能的提升。值得注意的是,Claude-llm-training使用低秩适应(LoRA)来训练模型。LoRA是一种技术,它在微调过程中仅使用基础模型中的一部分参数,这样做更快且更节省内存。


在Cell 9中,使用样本命令对训练后的模型进行测试。请确保将提示更改为与您的任务相匹配。


在Cell 10中,将LoRA适配器合并到主模型中,并将其存储在您的Google Drive中。最后两个单元格包含加载模型并在您的应用程序中使用的必要代码。

文章来源:https://bdtechtalks.com/2024/04/04/claude-llm-trainer/
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消