有些场景,是大模型没办法直接拿来使用的

    随着越来越多的企业开始使用大模型,大模型的能力也越来越强。但是,在实际应用中,大模型的应用还是有一些限制的。
 比如,因为大模型是基于公开的知识学习的,可能无法回答一些特定领域的问题,比如:最近大火的中国歼10C飞机,你让大模型
 回答一些它的详细参数,它肯定回答不了,因为这些东西是保密了。
 比如,让大模型出一份公司的财务报告,这个大模型也回答不了,因为财务报告需要十分的准确,而大模型给出的回答不能保证100%的正确。
 再比如,让大模型回答某航班今天机票价格,因为这个价格是变动的,大模型也回答不了。
 当然,类似的场景还有很多,针对这些场景,已经出现的相应的一些解决方案,比如RAG(Retrieval-Augmented Generation)技术,比如
 Function Calling技术,比如Agent技术,当然还有今天要说的微调技术。

什么场景适合微调?

   当我们想做一个特写领域的大模型时,比如法律知识,医学知识,公司内部技术资料等,我们就需要对现在的基础大模型进行微调。
 所谓微调,就是只调整大模型的部分参数,我们知道大模型的参数量是巨大,以我们准备使用的deepseek为例,看下图:

huggingface上的deepseek版本

 可以看到,deepseek的参数量是非常大的,以最小的7B版本为例,表示这个模型参数是70亿(1B=1billion代表10亿),如果对70亿
 的参数作全量调试,时间成本和
 资源成本都是非常高的,这对于一般企业来说是不现实的。所以,我们需要对大模型进行微调,只调整大模型的部分参数,这样可以大大
 降低时间成本和资源成本。

如何对基础大模型进行微调?

微调的算法:

1、Adapter Tuning · 2、Prefix Tuning · 3、Prompt Tuning · 4、P-Tuning · 5、P-Tuning v2 · 6、LoRA · 
 7、QLoRA 等等,
 因为实在太多,非专业人员很难全部掌握,我们只需要知道现在最常用的是LoRA,因为它的效果最好,而且实现起来也比较简单。
 关于LoRA的详细介绍,大家有兴趣可以
自己网上搜索一下,这里就不再详细介绍了。

微调的工具:

1、LLaMA-Factory , https://github.com/hiyouga/LLaMA-Factory。优点:操作界面可视化,配置项丰富。
2、unsloth , https://github.com/unslothai/unsloth。优点:微调效率高,GPU占用资源少。可以使用
   https://www.kaggle.com/平台,每周有30个小时GPU资源免费使用。训练一些小模型还是可以的。
3、swift , https://github.com/modelscope/ms-swift。优点:适合针对阿里千问大模型进行微调。

接下来的项目实战,我们就以unsloth为例,来介绍一下如何对基础大模型进行微调。