首页 > 其他分享 >半天玩转大模型技术之RAG

半天玩转大模型技术之RAG

时间:2024-09-19 10:19:26浏览次数:10  
标签:检索 RAG 模型 知识 玩转 LLM 向量

引 言

当前大模型在金融行业最广泛的应用之一就是知识问答,而支撑该应用的技术正是当下火热的检索增强生成(Retrieval Augmented Generation)技术,简称 RAG。因企业具体的业务往往需要注入特定的知识,比如ChatBI中企业数据库的相关知识、客服助手中客服FAQ等,所以RAG不仅可以应用在知识问答中,也在很多的业务场景中均有应用。本文将带读者了解RAG技术,并以知识问答为例帮助读者快速搭建一套属于自己RAG。

什么是RAG?

RAG全称为检索增强生成(Retrieval Augmented Generation),“检索”顾名思义是对大模型外挂知识库的检索,“增强生成”则是把检索得到的信息通过prompt提示给大模型使其从包含外部信息中学习知识(in-context learning)并生成正确答案。

为什么产生RAG技术?

RAG的产生主要源自于大模型自身存在的局限性。

时效性

大模型的知识更新就停留在它完成训练的那一刻,而重训一次大模型硬件、能源、时间等成本消耗非常高,仅为更新知识频繁重训大模型并不现实。因此,大模型无法回答近期发生的事件、趋势等具有时效性的问题。

缺少专业领域知识

大模型的训练虽然用了海量的知识,但仍然无法覆盖所有领域,比如法律、医学及企业内部知识等,所以面对未知的知识问题时,大模型无法给出有效的回答。

幻觉问题

面对未知的问题,大模型仍然会给出看似合理的错误回答,让用户难辨真假,这就是大模型的幻觉问题。大模型产生幻觉是因其训练的本质,即经过大量的训练后,预测下一个token。所以面对未知的问题,大模型不知“自己不知道”,只是在预测下一个概率高的token。

图1 大模型预测下一个token

RAG的出现就是为了解决上述问题,通过外挂知识库,解决时效性问题、补充领域知识;通过将检索内容作为背景知识供大模型参考,减少幻觉。

RAG的核心组件

图2 RAG流程

(图源自论文:Gao, Yunfan et. “Retrieval-Augmented Generation for Large Language Models: A Survey.” arXiv e-prints (2023): arXiv-2312)

上图展示了RAG的工作流程,对于用户的问题“如何评价你们OpenAI公司……”,从事先已经建立好索引的知识向量库中(图中索引模块)检索出与问题相关的文档片段“片段1《Sam Altman 回归 OpenAI 重任CEO……》、片段2《大戏落幕?Sam Altman将回归OpenAI……》、片段3《OpenAI 人事震荡……》”(图中检索模块),再将用户问题和检索到知识片段拼接成一个prompt“问题:如何评价你们OpenAI公司的……,请基于以下资料回答上述问题:片段1……,片段2……,片段3……”提交给大模型LLM生成最终的回答(图中生成模块)。

从上述流程不难总结出,RAG包含以下核心组件:知识向量库,检索和LLM生成。

知识向量库

在介绍知识向量库前,我们先了解下知识向量,将知识数据通过embedding算法映射到一个固定维度的向量空间中,从而捕捉到知识数据的语义就是知识向量。用相同的embedding算法将用户问题映射到同一向量空间,用户问题和知识的语义相似度就可以通过两个向量在空间中的距离来度量。知识向量库顾名思义就是专门用来高效存储和检索向量数据的数据库。常见embedding算法有M3E、text-embedding-3、fasttext等,常见的向量库有faiss、Milvus、Elasticsearch等。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等,

标签:检索,RAG,模型,知识,玩转,LLM,向量
From: https://blog.csdn.net/2401_84206094/article/details/142353416

相关文章

  • 机器学习模型中特征贡献度分析:预测贡献与错误贡献
    在机器学习领域,特征重要性分析是一种广泛应用的模型解释工具。但是特征重要性并不等同于特征质量。本文将探讨特征重要性与特征有效性之间的关系,并引入两个关键概念:预测贡献度和错误贡献度。核心概念预测贡献度:衡量特征在模型预测中的权重,反映模型在训练集上识别的模式。这与传......
  • 易优CMS添加视频模型的常见错误及解决方法
    在使用易优CMS(EyouCMS)时,如果您遇到添加视频模型时的常见错误,以下是一些可能的问题及其解决方法:1.视频无法上传问题描述:在后台尝试上传视频文件时,出现上传失败的情况。解决方法:检查服务器配置:确保服务器的PHP配置允许上传较大的文件。检查php.ini中的upload_max_filesize和p......
  • 全面解读大模型备案流程及重点、难点解析【附教程】
    本文详解大模型备案流程,旨在指引企业和开发者顺利完成备案,确保企业成功拿到大模型备案号。一、政策要求做大模型备案大模型备案是中国国家互联网信息办公室为加强生成式人工智能服务的管理,确保用户权益得到充分保护,以及保障国家安全和社会秩序稳定而实施的一项关键性政策。......
  • 图神经网络模型的应用(8)--1
    1.图数据上的一般任务        前面介绍过,按照元素和层级来划分,图数据上的任务一般可以分为节点上的任务、边上的任务和图上的任务。而在实际应用中,大部分图神经网络的应用都集中在节点分类、链路预测和图分类上;在设计一个新的图神经网络模型时,我们常使用的标准数据集......
  • BayesianLSTM PawaritL 使用PyTorch中的贝叶斯LSTM进行能源消耗预测,贝叶斯神经网络仅
    https://colab.research.google.com/github/PawaritL/BayesianLSTM/blob/master/Energy_Consumption_Predictions_with_Bayesian_LSTMs_in_PyTorch.ipynb#EnergyConsumptionPredictionswithBayesianLSTMsinPyTorchAuthor:PawaritLaosunthara内容:请点击上面的在Col......
  • python 深度神经网络训练,pytorch ,tensorflow paddle大模型训练中损失突然增大的原因
    在机器学习和深度学习的训练过程中,损失函数的数值突然变高可能是由多种因素引起的。以下是一些可能的原因和相应的解决方案:1.**学习率设置不当**:如果学习率过高,可能会导致模型在优化过程中跳过最小值,甚至导致模型发散。相反,如果学习率过低,则可能导致模型训练速度过慢,甚至停滞......
  • 【FLUX大模型】LORA-马卡龙女孩肖像摄影v1.0(附lora文件及在线使用)
    ​​马卡龙女孩肖像摄影lora​这个马卡龙女孩的lora模型已经上线了,可以直接生成马卡龙配色风格的女性肖像,画面干净温柔,配合人物夸张的特写表情,会显得更有张力,特别适合人物情绪的表达以及时尚单品的广告宣传lora特点这个lora是基于flux大模型训练的,所以在真......
  • 边缘智能-大模型架构初探
    R2Cloud接口机器人注册请求和应答注册是一个简单的HTTP接口,根据机器人/用户信息注册,创建一个新机器人。请求URLURLhttp://ip/robot/regTypePOSTHTTPVersion1.1Content-Typeapplication/json请求参数Param含义Rule是否必须缺省robotid机器人唯一IDmd5加密后的......
  • 10. Top-K vs Top-P:生成式模型中的采样策略与 Temperature 的影响
    在之前的文章中我们探讨了BeamSearch和GreedySearch。现在来聊聊model.generate()中常见的三个参数:top-k,top-p和temperature。代码文件下载文章目录Top-K采样详解工作原理数学表述代码示例Top-P采样详解工作原理数学表述代码示例Temperature的作......
  • OSG开发笔记(三十):OSG加载动力学仿真K模型文件以及测试Demo
    前言  Osg需要打开模型文件,但是遇到显示动力学仿真的K模型文件,.k文件是一种描述材料属性的文件,比如密度、弹性模量等,该模型文件不是常规中间开放格式,无法直接支持,需要自定义解析并且重建三维模型。<br>Demo  实际非常流程,因为视频转gif导致部分看起来不行:      <......