llama factory作为高效、易用的微调工具,提供了极大的便利性,带有可视化的微调工具。
做微调其实有很多中方式,一种是可以通过命令行去做任务,还有一种是通过可视化页面配置参数的方式进行微调。
主流大模型已经是做了预训练的,预训练的基本原则它是有一个数据集,这就导致我们的大模型存在一个问题,它的数据是静止的,最新出的一个大模型它的数据集会有一个截止时间。比如:那天发布的,以这个时间为截止,数据就止步到这个时间。如果你想让它学习到新的知识,比如新闻、热点事件,还有公司的一些业务文档的一些行业知识等,那这个模型就办不到了。所以我们需要对一些大模型做一些知识的喂投,让它去理解我们特定领域知识的一些特性,说白了就是我们要训练出来一个比较匹配我们业务的大模型,就是做行业领域这块的。
RAG其实也是一种方式,RAG有个问题就是数据量有一定限制的,不能无限制的去喂投。RAG每次都需要去建一些知识库,其实有些行业知识,我们都是沉淀下来的一些固定的东西,这些东西我们可以通过微调训练,把它给训练进去。
微调过程主要包括以下步骤:
1、数据准备:收集和准备特定任务的数据集
可以到llamaFactory官方网站上看一下对于数据集的一些要求。一般是一些对话的格式,比如一个数据集的格式:
[{
"instruction":"识别......",(提问)
"input":"",(输入)
"output":""(输出)
}]
这里是简单的问答,还有一种方式是多人对话,比如说要做医疗行业的大模型,针对一些心理问诊,那有多人对话,比如说:因为问诊是循序渐进,所有它是由多人会话的。
2、模型选择:选择一个预训练模型作为基础模型
可以选择DeepSeek-R1-Distill-Qwen-1.5B,可以通过huggingFace网站上下载这个模型
3、迁移学习:在新的数据集上继续训练模型,同时保留预训练模型的知识
训练完后会得到一个叫lora模型,最终需要将lora模型和预训练模型进行合并。合并完之后就会得到一个微调的模型。这个模型其实跟原有的模型格式是一样的。
4、参数调整:根据需要调整模型的参数,例如:学习率(速度)、批大小等。
llamafactory页面上会提供一下参数:量化等级、量化方法等,参数很多,但是主要的参数:比如学习率、批大小等。
5、模型评估:在验证数据集上评估模型的性能,并根据反馈进行调整。
模型评估主要是验证训练后的模型的效果,可以通过验证集进行评估。
相比从头开始训练模型,微调可以显著减少所需的数据量和计算资源。一般具有很多显卡资源的大公司,他们有条件去做基座模型研发,有条件去做预训练。
llama factory:这个工具可以到github上去了解。