Datawhale AI 夏令营:大模型应用开发--Task03笔记

#task03链接Datawhale

一、什么是RAG

RAG(检索增强生成,Retrieval Augmented Generation)是一种结合了外部知识检索与生成模型的技术,用以解决大模型在实际应用中可能存在的几个问题:

  1. 知识局限性:基础大模型的知识主要来源于训练数据,对于实时性或非公开的知识,大模型可能无法掌握。RAG通过检索外部知识库,使模型能够获取和利用最新或专有的知识。

  2. 数据安全性:为了保护企业的数据安全,不必将敏感数据纳入模型训练集,而是通过RAG在生成过程中动态检索和引用外部数据,避免了数据泄露的风险。

  3. 大模型幻觉:由于大模型是基于概率生成的,有时会出现“胡说八道”的情况。通过RAG方法,生成模型能够参考外部知识,从而减少这种幻觉的发生,生成更准确和可靠的答案。

RAG的方法主要包括三个步骤:检索外部知识、结合上下文生成答案,以及输出增强后的生成结果。这使得大模型在复杂场景中能够更好地应对挑战。

二、完整的RAG链路

RAG(Retrieval-Augmented Generation)系统的两个主要步骤:离线计算和在线计算。:

离线计算

  1. 文档解析与清洗:首先解析知识库中的文档,将其切割为短文本块(Chunks),并进行清洗和去重。
  2. 向量化与索引:将所有文本块转换为向量表示,这一步称为向量化或索引。向量化过程通常在离线完成,并将生成的向量存储在数据库中,如Milvus。

在线计算

  1. 用户查询与检索:当用户发出查询时,首先通过向量模型将查询转换为向量,然后与数据库中的所有向量计算相似度,检索出最相近的文本块。
  2. 召回与精排:为了提高检索效率,先进行召回,快速获取可能相关的文本块,然后通过精确的向量相似度计算,筛选出最优结果。
  3. 重排:在知识库较大时,加入重排步骤,使用重排模型优化结果,使得最相关的文本块排名靠前。
  4. 生成响应:最终,从检索出的文本块中挑选最相似的结果,与用户查询拼接成Prompt,输入到大模型中生成回复,从而完成整个RAG链路。

三、RAG框架

目前,开源社区中已经涌现出了众多RAG框架,例如:

  • TinyRAG:DataWhale成员宋志学精心打造的纯手工搭建RAG框架。

  • LlamaIndex:一个用于构建大语言模型应用程序的数据框架,包括数据摄取、数据索引和查询引擎等功能。

  • LangChain:一个专为开发大语言模型应用程序而设计的框架,提供了构建所需的模块和工具。

  • QAnything:网易有道开发的本地知识库问答系统,支持任意格式文件或数据库。

  • RAGFlow:InfiniFlow开发的基于深度文档理解的RAG引擎。

 四、RAG案例实战

PAI实例创建创建流程与速通手册一致~

通过环境准备与模型下载,本次我们选用基于BERT架构的向量模型 bge-small-zh-v1.5,它是一个4层的BERT模型,最大输入长度512,输出的向量维度也为512。(模型在魔搭平台的地址为 AI-ModelScope/bge-small-zh-v1.5。)

向量模型下载~

# 向量模型下载
from modelscope import snapshot_download
model_dir = snapshot_download("AI-ModelScope/bge-small-zh-v1.5", cache_dir='.')

下载完成后~

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值