关于大模型微调与训练的问题,大模型训练的难点在哪里? 原创
“ 大模型训练的难点不在于大模型本身,而在于训练数据 ”
这两天公众号上有一个小兄弟问我关于大模型训练的问题,然后他想自己训练一个小模型,但又不知道该怎么操作;所以,今天就再来讨论一下大模型的训练问题,大模型训练的难点到底在哪里?
大模型训练的难点
对大部分学习大模型技术的人来说,大模型训练和微调可能都是一个无法绕过的问题,也是很多人弄不明白的问题,总认为由于没有足够的算力,个人无法进行模型训练。
但事实上有这种想法的人是进入了一个误区,原因是对大模型不够了解,认为大模型的难点就在于训练。
大家都知道目前市面上的模型主要都是预训练模型或者一些基座模型;除了哪些真正有技术和资金,能够真的自己去设计模型,然后实现模型的组织或企业来说,大部分所谓的自己的模型都是基于一些开源模型进行的二次训练或微调。
大模型技术本身确实有很多难点,比如说算法,架构,并行计算的方式,幻觉问题,能力不足等等多种问题;但对采用开源模型,使用重新训练的方式得到一个具有特定模型的企业来说,大模型本身对他们来说并没有特别大的难度,如果说有难度那么唯一的难度就是基于当前模型做的二次开发,使得其功能更完善与强大。
而如果只是把开源模型重新训练一下,那么大模型本身的复杂度对他们来说都不是问题;原因就在于这些开源模型在开源的时候已经把模型的基础架构和一些算法进行了实现;对训练者来说已经不需要再进行算法的开发。
因此,对这些训练者来说,重新训练一个大模型就类似于把别人已经制作好的工具,用自己的数据重新再跑一遍,然后怎么跑,开源者已经给了一个详细的步骤;就是开源模型的核心技术以及训练的步骤。这些文档在开源模型里面都已经有了,不会的直接拿过来看就行了,如果看不懂就多看几遍,多尝试几遍。
上面说了这么多,主要就是想说明白一件事,对基于开源模型进行训练的人来说,大模型本身已经做的很好了,你已经不需要再对大模型进行调整,就可以直接进行训练;或者如果你能力很强,当然也可以根据自己的需求对大模型的整个架构或算法进行重写。
ok ,现在我们说一下大模型训练的真正难点在什么地方?这个前提是抛开大模型的架构设计和算法实现,只是单纯的对大模型进行训练,不涉及二次开发等情况。
对训练者来说,大模型训练的难点不在于算力,也不在于大模型的复杂度,而在于训练数据的收集与处理。
大模型训练的流程现在基本上已经很详细了,网络上能找到各种大模型训练和微调的文章以及案例;但训练和微调的过程你知道了,算力也可以去买算力服务,但训练的数据哪里来?
使用开源模型做训练来实现一个新的业务,最难的一点就是收集和整理训练数据;比如说,你想做一个垃圾分类的模型,那么你就需要收集大量的和垃圾有关的数据,比如干垃圾有哪些,湿垃圾又有哪些,什么是可回收的,什么是不可回收的。
如果只是训练一个小模型问题还不是很大,少者几十到几百,多则几千到几千万,甚至上亿的训练数据;传说openAI训练GPT4已经把全世界能找到的数据全部收集了过来,用于模型的训练;这些数据的收集,处理,加载,存储都是一个个问题。
这玩意就类似于造原子弹,原子弹的图纸都是公开的,技术也是公开的;但制造原子弹的原料哪里来?
原子弹的原料都是各国严格管控的,如果想自己制作原料,就一个高速离心机有几个国家能做的出来?
所以,大模型的训练的难度就像造原子弹一样,技术和原理都有了;但就是找不到制造的原料,而数据就是大模型训练的原料。
当然,现在有很多提供各种数据的企业服务,甚至一些灰色地带公开叫卖一些数据;但问题是这些数据可能并不能完全符合你的需求,因此想打造一个好的模型,模型的设计或选择虽然很重要;但训练数据的收集和整理也很重要。
本文转载自公众号AI探索时代 作者:DFires