提示工程、RAG 还有微调在工程当中应该怎么选择,今天小余哥来给大家讲清楚。
那首先呢,我们要弄清楚大模型是怎么训练出来的。
训练大模型,首先需要海量的数据,然后通过训练的方法来构造一个大模型。然后这个大模型,其实它具备了非常多的能力,因为我们在训练的过程里面,其实使用到的数据是非常多样化的,包括金融数据、医疗数据、智能制造的数据、教育数据,还有好多好多其他行业的数据。
然后从另外一个角度,我们可以把这个大模型比作是智能化的大脑,比如说一个人的大脑。那假如这个人就是我,而且具备了各种能力,比如说 AI 的能力、金融科技的能力、医疗领域的能力、管理能力,还有一些其他的能力。那下面,我通过一个案例给大家讲一下这三者之间的主要的区别是什么。那假如屏幕前的你有一个问题想问我,所以你找到了我,然后问了一个问题,但是很不幸我没有给出你想要的答案。所以我们接下来要剖析一下为什么没有给出一个正确的答案。那这里,可能有三种不同的情况要考虑。那第一种情况,其实也比较容易想到的,就是你可能没有问清楚,就是你没有让我明白你到底想做什么。所以这个时候,就是要把这个问题整理成一个让我能听得懂,然后更详细的一种方式要传递给我,我才能有可能帮到你。那这个过程本质上对应到提示工程,如果我们接下来使用提示工程的方法能解决这个问题,那我们就结束了。如果还是没有解决,我们要考虑第二种情况。那有可能是我欠缺相关领域的知识。那打个比方,如果你问了我一个 AI 加建筑的问题,其实我对 AI 比较熟悉,但对建筑其实不太熟悉的,而且我曾也服务过很多其他行业的企业,所以我本身掌握一定的方法论,但是因为我不知道相关的知识,所以我目前是帮不到你。所以这个时候怎么办,一个正确的方案是给我讲清楚问题,最好围绕问题给我把建筑行业的相关的一些背景知识给我讲清楚,让我至少明白问题的背景、问题的场景以及要解决的问题本身,有了这些相关的知识,我们也把它叫做上下文之后,我有可能帮到你。那这个实际上对应到 RAG。那如果用 RAG 也没有办法解决,那我们可能要去考虑第三个原因,有可能是我自身的能力不足。那这里就涉及到我的解决方案的能力需要有待提高,还有方法论也需要有待提高。所以这时候,我可能要反过来去提升我自己,因为基于现在的能力,即便你给我提供了很详细的相关的知识,让我弄清楚了这个问题本身,我可能也没有办法帮到你。所以等我提高我自己之后,我再反过来帮你,有可能可以给你一个正确的回复。那第三个,实际上对应到模型的微调,就是不要再去抱怨外部的环境,而是先重点提高自己。所以微调本身,也是对大模型本身的一个改造,但是一和二其实对大模型是没有做任何的改造的。所以在工程当中,我们的做事的方式也是从提示工程开始到 RAG,然后最后到模型的微调,不要一开始就要做微调,这个是在工程当中不可取的。