RAG 技术:让 AI “ 知道 ” 你在问啥!

RAG 是啥?
RAG,全称 Retrieval-Augmented Generation,意思是 “ 检索增强生成 ” 。以前的 AI 模型知识有限,还可能答错或者答得不靠谱,而且企业用起来也不安全。RAG 就是来解决这些问题的!它能让 AI 在回答前先去 “ 图书馆 ” (知识库)搜资料,再给出答案。
RAG 怎么干活?
RAG 的工作流程简单来说就是三步走:
你问我答:用户问问题,比如 “ 今天吃什么好?”,RAG 系统接收到了。
翻书找答案:RAG 的 “ 小助手 ” 会飞快地在知识库里找相关资料,比如美食推荐、营养搭配之类的。
整合输出:把找到的资料和问题混合在一起,扔进大模型里加工,生成一个超棒的答案,比如 “ 今天你可以试试清蒸鲈鱼,肉嫩味美,还很营养哦!”。
RAG 的核心组件
RAG 主要有两个核心组件:
检索器(Retriever):就像在图书馆里负责找书的管理员,能在知识库里快速定位到相关资料。
生成器(Generator):拿到资料后,它就像个作家,把资料和问题结合,生成最终的回答。
RAG 跟其他技术比有啥厉害之处?
对比直接用大模型 API 或者微调,RAG 有这些牛 X 的地方:
知识更新快:知识库能实时更新,AI 就能立马掌握新知识,不用重新训练,省时省力。
省钱省心:不用大规模重新训练模型,成本大大降低。
不会忘事儿:不会像微调那样,在没训练过的任务上表现不好,稳稳地保留了模型的通用能力。
不过呢,RAG 也有点小缺点,比如在特别需要深度理解和风格模仿的问题上,可能就没微调那么厉害。
RAG 的关键环节和挑战
文档切分(Chunking):把文档切成合适的大小,就像切蛋糕一样,得找到那个完美的大小,不然可能影响检索效率。
Embedding 模型选择:选对模型就像给汽车选发动机,直接决定向量表示的质量,影响后续的检索和生成效果。
检索效果评估:得时刻监控检索的召回率和精确率,就像给检索系统做定期体检,有问题及时调整。
向量数据库的作用:它是高效存储和检索向量表示的中流砥柱,就像给知识库装上了超级导航,能快速定位到相关信息。
整体效果评估:要时不时对 RAG 系统来个全方位体检,从生成答案的准确性、相关性等方面打分,确保系统一直在线。
#牛客创作赏金赛##牛客在线求职答疑中心#
全部评论
哇,你讲的好清楚呢!RAG 技术听起来就像是个超级聪明的助手,可以帮助 AI 更准确地回答问题。那么,你想知道 RAG 在实际应用中是怎么帮助我们的吗?😄 或者,如果你有其他求职或专业问题,我这个小助手也可以帮你解答哦!对了,悄悄告诉你,点击我的头像,我们可以私信聊天,更加方便呢!🎉🐮💬
1 回复 分享
发布于 05-05 18:08 AI生成

相关推荐

1️⃣面试官:上面这个是 RAG 标准流程,实际项目中还有哪些优化技巧?在实际中,召回源会考虑多路召回,例如稀疏召回,语义召回,字面召回等。对于多路召回截断和召回分数对齐的问题,还会采用在召回后面增加一个重排序的阶段,精简召回数并提升召回的质量。另外,其中的 embedding 模型,重排序模型,以及生成模型会根据系统问答的指标情况,会针对性的进行进一步的微调。2️⃣面试官:那生成环节怎么评估效果?首先是量化指标:例如 Rouge - L ,文本相似度,关键词重合度等指标。除了准确度,还可以评估生成答案的多样性,看看模型是否能够生成多种合理且相关的答案。还需要引入人类评估:进行人工评估,一般是负责改项目的产品经理和测试人员,以及内测的普通用户对模型的回答进行质量、准确性和连贯性的评分。还应考虑资源效率:考虑模型的计算复杂性、内存需求和推理速度,尤其是在资源受限的环境中,看看 RAG 是否能够以合理硬件资源效果提供更好的性能。3️⃣面试官: RAG 中为什么会出现幻觉?幻觉问题是大模型的一个通病,出现幻觉问题主要分为两大类,一类是生成结果与数据源不一致,自相矛盾。另一类是用户问题超出了大模型的认知。针对前者可能是训练数据和源数据不一致、数据没对齐或者编码器理解能力的缺陷和解码器策略错误可能导致幻觉。后者则是用户的问题不在语言模型认知范围内。4️⃣面试官:针对幻觉的问题,有什么解决思路?第一个是引入更精准的知识库,消除虚假的数据源,减少数据偏差。另外可以加入一些纠偏规则,比如采用 ReAct 的思想,让大模型对输出的结果进行反思;还有现在比较流行的思路是集成知识图谱,即不再局限于向量数据库匹配,做召回时不仅考虑文档块,同时还考虑图谱的三元组。将知识图谱( KGs )集成到 RAG 中,通过利用知识图谱中结构化且相互关联的数据,可以增强当前 RAG 系统的推理能力。5️⃣面试官:在实际做项目中,经常遇到各种边界的 case ,一般怎么解决?首先是无效问题:如果对于知识库中没有的问题,我们需要做一个准入的判别,判断是否需要回答。一般是一个二分类模型,或者直接用大模型+ prompt 来做,使模型在这种情况下输出一个预设的兜底话术。第二是减少幻觉:对于时间变化的问题,模型回答"我不知道"。在推理模块中添加规则和提示工程技术,使模在不确定时回答"根据当前的信息,不足以回答这个问题"。还有格式错误:模型可能会生成无法解析的答案,例如没有输出预定义格式。
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务