在人工智能的名词解析这篇文章中,简单介绍了人工智能的几个流派以及名词解释。
所以今天就来讲一下,基于神经网络的人工智能的简单实现流程。
要实现一个人工智能,首先要选择一个基于神经网络架构的机器学习模型,比如chatGPT使用的由谷歌发表的Transformer架构。
而目前比较出名的两种人工智能实现,一个是openAI公司的chatGPT,一个是我国清华大学开源的chatGLM,其实不论是GPT(Generative Pre-Trained Transformer——生成式预训练Transformer模型)还是chatGLM模型都是GLM(General Language Model)模型的一种具体实现。
GPT的出名是因为chatGPT投入市场的巨大反响,而GLM出名是因为这个基本上是我国个人或学校研究学习人工智能常用的框架。
但不论是chatGPT还是chatGLM,要想使用都需要经过训练和微调。
所谓的训练,就是用大量的数据来让模型去学习——也就是训练。训练的参数量越大效果越好;比如chatGPT模型从3.0开始训练的数据量,就已经达到了千亿级别。这也是为什么被叫做大模型的原因。
训练和微调
首先,经过训练出来的大模型还不一定能够完全使用,或者说在某些领域还不够完善;比如大模型可能会涉及到一下政治问题,人种问题,又或者在某些领域需要更精确的结果,以及能源的消耗问题等。
所以,这时就需要用到微调;所谓的微调就是使用少量的参数对已经训练好的模型进行调整。
打个比方来说,训练就像我们上学时,不论是语文,数学,英语,还是物理化学生物,政治地理等都需要学习;这样虽然从理论上来说,你什么都会;但可能什么都不精通。
所以,微调就像针对某个课程进行强化训练;比如,在数学竞赛之前,专门花一两个月的时间,对数学知识进行强化训练,由老师开设培训班,大量的补充基础知识与进阶知识,然后再大量的做题训练。
而微调就是要达到这种效果。
而根据微调方式,及数据量由分为提示词微调,高效微调,全量微调等;当然,还有其它更多的微调方式,这里只是简单介绍这几种。
提示词
所谓的提示词微调,是因为大模型中有一种叫做Prompt的提问方式,也就是同样的大模型,不同的人使用可能会有不同的效果;究其原因就是Prompt的使用。
良好的Prompt能够给出更加准确的问题,然后得到更加准确的回答;比如,现在就有一种工作叫做提示词工程师。当然,随着大模型的发展,大模型会变得更加智能,以后可能就不需要提示词了。而且openAI的CEO奥特曼也明确表示过,提示词工程师最多也就是这三五年过渡时期的临时岗位。就像上世纪的电话接线员一样。
全量微调
全量微调,就是针对模型所有的参数都进行调整的一种方式;其主要出现的场景一是这个模型的自主化比较高,比如AGI(通用大模型);或者是当前大模型与预期的模型有较大的差异,比如一个金融领域的大模型要应用到医疗领域,这时就需要对整个大模型进行调整才可以。
全量微调需要大量的硬件资源和能源支撑,其消耗可能并不比重新训练一个新的大模型要低。所以,一般情况下不会选择全量微调;除非拥有足够的资源,比如时间,硬件资源,训练数据,甚至包括电力支撑。
因此,就有了下面的高效微调。
高效微调
高效微调,就是对部分参数进行调整;就像一辆汽车,本身已经可以正常的行驶;已经能够满足大部分普通人的使用需求。
但总有部分发烧友希望在部分场景拥有更好的性能,然后对汽车的部分功能进行改造。
比如,调整发动机的功率,增大排气管,增加尾翼;把一个普通的轿车改造成能够媲美部分赛车性能的改装车。
高效微调,需要的数据量更少,调整的参数更少,在垂直应用领域可能具有更好的效果。
而且其能耗更低,成本更低;普通人的电脑就可以满足小模型的参数微调。而不像大模型或全量微调,只有大企业或大型实验室才有能力玩的转。
总结
当然,这里只是简单记录了一下人工智能实现的方式,从选择神经网络架构,训练及微调的基本理论;具体的训练和微调方式,需要进行具体处理。
比如,大模型集群部署,训练,微调;集群之间怎么协作,训练和微调的数据怎么获得,数据的格式等等一系列的问题处理。