近几年AI产品的大火带来了新一轮的技术潮,尤为突出的是以生成式的AIGC模型。例如OpenAI公司的ChatGPT、百度的文心一言、阿里巴巴的通义千问、华为的盘古大模型等等。
那么对于提示工程、RAG(检索增强)和微调,在工程当中,我们应该怎么去选择呢?
首先我们需要了解大模型的流程:
1.数据收集:大量的文本数据作为训练数据;
2.模型搭建:构建LLM大模型
3.训练模型:将收集的数据作为训练数据训练搭建好的LLM模型
4.使用模型:喂入关键词,模型自动组合生成对应的回答;
这里就存在一些问题:
1.我们收集到的数据一定是最全面,最可靠的吗?
2.LLM一定是适用任何场景下吗?
3.模型生成的内容一定是可靠的吗?是否是正确的?
4.模型的稳定性和可靠性以及迁移性怎么样?
假设一个模型训练完成,得到一个LLM大模型,当用户喂入一个问题时,模型的回答是错误的,并非正确的答案。那么错误的原因是什么呢?
1.问题不够清晰,没有问清楚问题;
2.模型缺乏相关的知识;
3.模型的能力不足;
那么这三种原因就对应了我们大模型中的三种技术:
提示工程
当用户的问题不够清晰,不能够让模型理解相对应的问题,从而导致模型展示出来的结果是错误的。这里我们需要用到“提示工程”来解决这一问题;
其实本质上就是将问题转变一种询问方式,或者换一种说法,让模型更容易理解;
RAG(Retrieval-augmented Generation)
当模型缺乏相关知识的时候就会用和这部分问题相似度最高的内容回答,但这部分内容往往不是最佳的答案,或者说不是正确的答案。因此,模型需要了解有关这个问题更加简明的、容易理解的内容输送给模型,这样模型给到的反馈才会更加准确;
例如你问了我一个关于脑机接口面的问题,由于我对脑机接口这个行业不了解,欠缺该领域的知识,所以目前我是帮不到你的。那我该怎么办呢?
一个比较好的解决方案就是,你可以围绕问题,把脑机接口行业相关的一些背景知识给我讲清楚,让我至少能了解问题的背景、问题的场景以及要解决的问题的本身。
有了这些相关的知识,也可以理解为上下文之后,我就有可能可以帮到你。
这其实就是RAG的本质。
微调
模型压根对一些领域不了解。其实本质就是我在训练模型的时候,数据集收集的不够全面,从而导致模型并没有接触过相关的知识,以至于当用户问到这方面的问题是模型不能够正确回答;
以刚刚脑机接口为例,LLM在训练之初并没有学习过这方面的知识,所以模型当让不能够正确的回答该问题,那么解决的方法只能是让LLM去学习脑机接口相关的知识。从而让模型能够学习脑机接口这个行业的知识;
这其实就是模型微调的概念。
综上所述呢,在工程当中,我们应该从提示工程开始,然后到RAG,最后到模型的微调。
不要一开始就要做模型微调。