告诉面试官我想做AI全栈,Rag要被问傻了
1. RAG是什么?
RAG是一种结合检索(Retrieval)和生成(Generation)的技术,主要用于让AI在回答问题或生成内容时,能够更好地利用外部知识库,而不是完全依赖于自身预训练的知识。简单来说,它就像是给AI配了一个“外挂”,让它在回答问题时可以先去知识库中查找相关的资料,然后再生成答案。
2. RAG怎么解决AI幻觉问题?
AI幻觉是指AI生成的内容与事实不符或缺乏依据。RAG通过以下方式减少幻觉:
- 检索知识库:当用户问问题时,RAG会先去知识库中查找与问题最相关的资料(比如文档、数据等)。这些资料是经过验证的,所以AI生成的内容会更有依据。
- 减少模型更新和推理成本:AI模型不需要频繁更新来学习新知识,因为知识库可以随时更新,AI只需要检索最新的知识即可。 来张图展现一下(感谢网上的图像)
3. RAG的工作原理
RAG的工作可以分为三个阶段:
(1)检索(Retrieval)
- 用户提出问题后,RAG会先将问题转换成一个“向量”(一种数学表示),然后在知识库中查找最相关的向量。
- 知识库中的内容会被提前处理成向量,并存储在一个叫 “向量数据库” 的地方。这个数据库可以根据语义理解来检索数据,而不是单纯靠关键词匹配。
- 比如,你问“如何做巧克力蛋糕”,RAG会在知识库中找到与“巧克力蛋糕制作”最相关的资料片段。
(2)增强(Augmented)
- 找到相关资料后,RAG会把资料和用户的问题组合在一起,形成一个新的输入,送给大模型。
- 这就好比你给AI提供了一个“提示”,让它在回答问题时有更具体的参考。
(3)生成(Generation)
- 最后,AI根据组合后的输入生成答案。因为有知识库的支持,生成的内容会更准确、更有针对性。
4. 如何构建RAG知识库?
构建RAG知识库的过程大概如下:
- 准备知识库数据:把相关的文档、资料整理好,这些可以是公司内部的文件、行业知识等。
- 文本分块:把长文档分割成小块,每块包含一部分信息。比如一篇长文章可以分成多个段落。
- 向量化:用一个叫 “embedding model” 的工具,把文本块转换成向量,存储到向量数据库中。后面使用如(余弦相似法,求问题和对应知识库内容距离,得到相似度)
- 设置检索规则:告诉RAG如何根据用户问题检索最相关的向量。
5. RAG的优势
- 减少幻觉:因为有知识库的支持,AI生成的内容更有依据。
- 灵活更新:知识库可以随时更新,而不需要重新训练AI模型。
- 高效检索:通过向量检索,可以在海量数据中快速找到相关资料。
6. RAG和Fine-tuning的区别
- RAG:不需要对AI模型进行微调(Fine-tuning),而是通过检索知识库来增强生成能力。这种方式更灵活,不需要大量的训练数据和计算资源。
- Fine-tuning:需要对模型进行重新训练,适应特定任务或数据。这通常需要大量数据和计算资源,而且一旦数据更新,可能需要重新训练。
7. FastGPT和LlamaIndex的使用场景
- FastGPT:适合快速搭建RAG应用,不需要编码,操作简单。你只需要准备好知识库数据,导入到FastGPT中,就可以快速使用。
- LlamaIndex:更适合需要定制化的场景,比如自定义知识库的切分规则、调整检索逻辑等。但使用它需要一定的编程能力。
如何基于公司私有组件库来生成代码?
- 推荐: RAG:
Retrieval(检索)-Augmented(增强)-Generation(生成) - 不推荐:Fine-tuning 微调
- 不推荐:预训练自有模型
RAG 的内部原理是什么?
Retrieval阶段:根据用户输入的问题,检索知识库数据,召回相似的知识库数据。Augmented阶段:将检索到的知识库数据与用户输入的问题组合到一起,作为输入给大模型。Generation阶段:大模型根据输入的内容生成代码。