什么是 RAG
RAG
是retrieval-augmented-generation
的缩写,翻译为中文的意思就检索增强,以基于最新,最准确的数据建立LLM
的语料知识库。
LLM
现存的痛点
我们知道 LLM
的知识库是通过现有的网络公开的数据作为数据源来训练的,现在公开的很多模型他们基于的训练数据会比我们现在网络上公开的数据早很多,那自然就会产生一种问题,网络上最新的数据和知识 LLM
是不知道。还有一种情况就是很多企业他们对自己的数据的安全做的很好,也就是私有化数据(这些数据是有价值的,也是企业的立足之本)。这些数据网络上肯定是不存在,那自然 LLM
也是不知道的。
我们在提问LLM
对于一些不知道的知识时候,LLM
很多时候是不知道如何回答问题的。甚至会对我们的问题进行胡诌随机回答,也就是瞎说。
为什么要用 RAG
如果使用 pretrain 好的 LLM 模型,应用在你个人的情境中,势必会有些词不达意的地方,例如问 LLM 你个人的信息,那么它会无法回答;这种情况在企业内部也是一样,例如使用 LLM 来回答企业内部的规章条款等。
这种时候主要有三种方式来让 LLM 变得更符合你的需求:
- \1.
Promt Enginerring
:输入提示来指导 LLM 产生所需回应。例如常见的 In-context Learning,通过在提示中提供上下文或范例,来形塑模型的回答方式。例如,提供特定回答风格的示例或包含相关的情境信息,可以引导模型产生更合适的答案。 - \2.
Fine tuning:
这个过程包括在特定数据集上训练LLM
,使其响应更符合特定需求。例如,一个EDA公司会使用其内部文件verilog code
进行Fine tuning
,使其能够更准确地回答关于企业内部