一文搞懂大模型RAG应用(附实践案例)

写在前面

大模型(Large Language Model,LLM)的浪潮已经席卷了几乎各行业,但当涉及到专业场景或行业细分领域时,通用大模型就会面临专业知识不足的问题。相对于成本昂贵的“Post Train”或“SFT”,基于RAG的技术方案往往成为一种更优选择。本文从RAG架构入手,详细介绍相关技术细节,并附上一份实践案例。

什么是RAG?

检索增强生成(Retrieval Augmented Generation),简称 RAG,已经成为当前最火热的LLM应用方案。经历今年年初那一波大模型潮,想必大家对大模型的能力有了一定的了解,但是当我们将大模型应用于实际业务场景时会发现,通用的基础大模型基本无法满足我们的实际业务需求,主要有以下几方面原因:

  • 知识的局限性:模型自身的知识完全源于它的训练数据,而现有的主流大模型(ChatGPT、文心一言、通义千问…)的训练集基本都是构建于网络公开的数据,对于一些实时性的、非公开的或离线的数据是无法获取到的,这部分知识也就无从具备。

  • 幻觉问题:所有的AI模型的底层原理都是基于数学概率,其模型输出实质上是一系列数值运算,大模型也不例外,所以它有时候会一本正经地胡说八道,尤其是在大模型自身不具备某一方面的知识或不擅长的场景。而这种幻觉问题的区分是比较困难的,因为它要求使用者自身具备相应领域的知识。

  • 数据安全性:对于企业来说,数据安全至关重要,没有企业愿意承担数据泄露的风险,将自身的私域数据上传第三方平台进行训练。这也导致完全依赖通用大模型自身能力的应用方案不得不在数据安全和效果方面进行取舍。

而RAG是解决上述问题的一套有效方案。

RAG架构

RAG的架构如图中所示,简单来讲,RAG就是通过检索获取相关的知识并将其融入Prompt,让大模型能够参考相应的知识从而给出合理回答。因此,可以将RAG的核心理解为“检索+生成”,前者主要是利用向量数据库的高效存储和检索能力,召回目标知识;后者则是利用大模型和Prompt工程,将召回的知识合理利用,生成目标答案。


RAG架构

完整的RAG应用流程主要包含两个阶段:

  • 数据准备阶段:数据提取——>文本分割——>向量化(embedding)——>数据入库

  • 应用阶段:用户提问——>数据检索(召回)——>注入Prompt——>LLM生成答案

下面我们详细介绍一下各环节的技术细节和注意事项:

数据准备阶段

数据准备一般是一个离线的过程,主要是将私域数据向量化后构建索引并存入数据库的过程。主要包括:数据提取、文本分割、向量化、数据入库等环节。


数据准备

  • 数据提取

    • 数据加载:包括多格式数据加载、不同数据源获取等,根据数据自身情况,将数据处理为同一个范式。

    • 数据处理:包括数据过滤、压缩、格式化等。

    • 元数据获取:提取数据中关键信息,例如文件名、Title、时间等 。

  • 文本分割

    文本分割主要考虑两个因素:1)embedding模型的Tokens限制情况;2)语义完整性对整体的检索效果的影响。一些常见的文本分割方式如下:

    • 句分割:以”句”的粒度进行切分,保留一个句子的完整语义。常见切分符包括:句号、感叹号、问号、换行符等。

    • 固定长度分割:根据embedding模型的token长度限制,将文本分割为固定长度(例如256/512个tokens),这种切分方式会损失很多语义信息,一般通过在头尾增加一定冗余量来缓解。

  • 向量化(embedding)

向量化是一个将文本数据转化为向量矩阵的过程,该过程会直接影响到后续检索的效果。目前常见的embedding模型如表中所示,这些embedding模型基本能满足大部分需求,但对于特殊场景(例如涉及一些罕见专有词或字等)或者想进一步优化效果,则可以选择开源Embedding模型微调或直接训练适合自己场景的Embedding模型。

  模型名称               描述          获取地址
ChatGPT-EmbeddingChatGPT-Embedding由OpenAI公司提供,以接口形式调用。https://platform.openai.com/docs/guides/embeddings/what-are-embeddings
ERNIE-Embedding V1ERNIE-Embedding V1由百度公司提供,依赖于文心大模型能力,以接口形式调用。https://cloud.baidu.com/doc/WENXINWORKSHOP/s/alj562vvu
M3EM3E是一款功能强大的开源Embedding模型,包含m3e-small、m3e-base、m3e-large等多个版本,支持微调和本地部署。https://huggingface.co/moka-ai/m3e-base
BGEBGE由北京智源人工智能研究院发布,同样是一款功能强大的开源Embedding模型,包含了支持中文和英文的多个版本,同样支持微调和本地部署。https://huggingface.co/BAAI/bge-base-en-v1.5
  • 数据入库:

数据向量化后构建索引,并写入数据库的过程可以概述为数据入库过程,适用于RAG场景的数据库包括:FAISS、Chromadb、ES、milvus等。一般可以根据业务场景、硬件、性能需求等多因素综合考虑,选择合适的数据库。

应用阶段:

在应用阶段,我们根据用户的提问,通过高效的检索方法,召回与提问最相关的知识,并融入Prompt;大模型参考当前提问和相关知识,生成相应的答案。关键环节包括:数据检索、注入Prompt等。


数据检索

  • 数据检索

常见的数据检索方法包括:相似性检索、全文检索等,根据检索效果,一般可以选择多种检索方式融合,提升召回率。


LLM生成

Prompt作为大模型的直接输入,是影响模型输出准确率的关键因素之一。在RAG场景中,Prompt一般包括任务描述、背景知识(检索得到)、任务指令(一般是用户提问)等,根据任务场景和大模型性能,也可以在Prompt中适当加入其他指令优化大模型的输出。一个简单知识问答场景的Prompt如下所示:

【任务描述】
假如你是一个专业的客服机器人,请参考【背景知识】,回
【背景知识】
{content} // 数据检索得到的相关文本
【问题】
石头扫地机器人P10的续航时间是多久?

Prompt的设计只有方法、没有语法,比较依赖于个人经验,在实际应用过程中,往往需要根据大模型的实际输出进行针对性的Prompt调优。

实践案例——私域知识问答应用案例

本次选用百度百科——藜麦数据(https://baike.baidu.com/item/藜麦/5843874)模拟个人或企业私域数据,并基于langchain开发框架,实现一种简单的RAG问答应用示例。

详细教程在这里获取:

一文搞懂大模型RAG应用(附实践案例)

AIPHIL
关注 关注
  • 20
    点赞
  • 173
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
智能问答进阶之路:RAG(大模型检索增强生成)框架详解与实战,融合检索与生成助力智能系统更上层楼
丨汀、的博客
11-01 2931
智能问答进阶之路:RAG(大模型检索增强生成)框架详解与实战,融合检索与生成助力智能系统更上层楼
基于langchain的RAG实战
02-19
基于langchain的RAG实战
一文读懂:大模型RAG(检索增强生成)
star_nwe的博客
07-24 757
AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频,免费分享!
模型入门到进阶:什么是 RAG?为什么需要 RAGRAG 的流程
star_nwe的博客
08-14 1473
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频,免费分享!
GraphRAG:知识图谱+大模型
Python_cocola的博客
07-12 2600
结合知识图谱检索和向量检索,利用二者的优势提高搜索结果的准确性和相关性。
【AI大模型应用开发】【RAG评估】1. 通俗易懂:深度理解RAGAS评估方法的原理与应用
同学小张的博客
02-25 4541
本文我们针对RAGAS评估方法进行详细介绍。我们将深入其原理,理解其评估指标背后是怎么实现的。都是我根据自己的理解用大白话解释,保证大家能看懂。
一文带你了解大模型RAG(检索增强生成) | 概念理论介绍+ 代码实操(含源码)
热门推荐
机器学习社区
12-30 2万+
RAG的全称是Retrieval-Augmented Generation,中文翻译为检索增强生成。它是一个为大模型提供外部知识源的概念,这使它们能够生成准确且符合上下文的答案,同时能够减少模型幻觉。本文介绍了 RAG 的概念及其背后的一些理论,本文通过Python、LangChain将其实现,在此过程中使用了 OpenAI的ChatGPT接口(可以自己搭建chatGLM3)、Weaviate矢量数据库(可以自己搭建Milvus )、OpenAI 嵌入模型实现了 RAG 管道。
用通俗易懂的方式讲解:一文详解大模型 RAG 模块
2301_78285120的博客
02-02 7653
RAG 技术是一种检索增强生成的方法,结合了大型语言模型和检索系统的优势,以提高生成内容的准确性、相关性和时效性。相比于仅依赖大型语言模型的生成,RAG技术可以从外部知识库中检索信息,避免了模型的幻觉问题,并提升了对实时性要求较高问题的处理能力。与传统的知识库问答系统相比,RAG技术更加灵活,可以处理非结构化的自然语言文本。RAG并非旨在取代已有的知识库问答系统,而是作为一种补充,强调实时性和准确性,并且通过结合生成和检索机制来提升自然语言处理任务的效果。增强数据获取。
模型系列——解读RAG
我相信......
02-04 2239
RAG 是2023年最流行的基于 LLM 的应用系统架构。有许多产品几乎完全建立在 RAG 之上,覆盖了结合网络搜索引擎和 LLM 的问答服务,到成千上万个数据聊天的应用程序。很多人将RAG和Agent 作为大模型应用的两种主流架构,但什么是RAG呢?RAG又涉及了哪些具体的技术呢?1. 什么是RAGRAG即检索增强生成,为 LLM 提供了从某些数据源检索到的信息,并基于此修正生成的答案。RAG ...
深度好文:最全的大模型 RAG 技术概览
2201_75499313的博客
01-17 6546
如果你已经熟悉检索增强生成(Retrieval Augmented Generation, RAG)的概念,请直接跳转到高级 RAG 部分。检索增强生成(Retrieval Augmented Generation, RAG)是一种技术,它通过从数据源中检索信息来辅助大语言模型(Large Language Model, LLM)生成答案。
模型-大模型RAG应用基础认知视频
03-16
本视频系列专注于大模型的一个具体应用——RAG(Retrieval-Augmented Generation),这是一种结合检索和生成的新型NLP技术,旨在提高模型的上下文理解和回答生成质量。 **大模型RAG应用基础认知** 1. **什么是RAG*...
《AI大模型应用》--唐诗三百首RAG检索增强生成.zip
07-15
个人深耕AI大模型应用领域积累的成果,希望对您有所帮助。有大模型账号、环境问题、AI大模型技术应用落地方案等相关问题,欢迎详聊,能为您解决问题是我的荣幸! 个人深耕AI大模型应用领域积累的成果,希望对您有所...
《AI大模型应用》--文渊支持图文回答的RAG增强检索项目.zip
07-15
个人深耕AI大模型应用领域积累的成果,希望对您有所帮助。有大模型账号、环境问题、AI大模型技术应用落地方案等相关问题,欢迎详聊,能为您解决问题是我的荣幸! 个人深耕AI大模型应用领域积累的成果,希望对您有所...
《AI大模型应用》--从0-1系统性快速学习大模型检索增强技术RAG.zip
07-15
个人深耕AI大模型应用领域积累的成果,希望对您有所帮助。有大模型账号、环境问题、AI大模型技术应用落地方案等相关问题,欢迎详聊,能为您解决问题是我的荣幸! 个人深耕AI大模型应用领域积累的成果,希望对您有所...
Task 3:源大模型RAG实战-注释版.rar
最新发布
08-19
【Datawhale AI夏令营第四期】 浪潮源大模型应用开发方向笔记 RAG实战教程代码注释版 在通义千问的帮助下详细解读的教程代码。
模型RAG从入门到精通(非常详细)看这篇就够了,草履虫都能轻松看懂!!!
EnjoyEDU的博客
08-08 1095
RAG系统的实际应用中,需要工程和算法等的多方参与和努力,理论上有很多方法,在实践的过程中我觉得还需要大量的实验对比,不断验证和优化,也可能会遇到许多细节问题,比如可想到的异构数据源的加载和处理啊,知识的展示形态(文本、图片、表格)等是否能一起回答,提升下用户体验,以及建立一套自动化的评估机制,当然还有模型的持续迭代和大小模型的训练支持。作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。具体来说,设计了一个轻量级的检索评估器来评估检索到的文档的整体质量,并基于评估结果触发不同的知识检索操作。
模型+检索增强(RAG、Atlas 和 REPLUG)
ZhengrongYue的博客
09-19 1万+
模型+检索增强/图谱增强(RAG、Atlas 和 REPLUG)
模型优化:RAG还是微调?
探索人工智能领域
09-05 4895
在这篇博文中,我们将深入探讨区分 RAG 的细微差别以及跨各个维度的微调,在我看来,这些细微差别对于确定特定任务的最佳技术至关重要。
prompt+rag
11-17
根据提供的引用内容,可以得知prompt+RAG的流程如下: 1. 首先,使用Retriever部分在知识库中检索出top-k个匹配的文档zi。 2. 然后,将query和k个文档拼接起来作为QA的prompt,送入seq2seq模型。 3. seq2seq模型生成回复y。 4. 如果需要进行Re-rank,可以使用LLM来rerank,给LLM写好prompt即可。 下面是一个简单的示例代码,演示如何使用prompt+RAG: ```python from transformers import RagTokenizer, RagRetriever, RagSequenceForGeneration # 初始化tokenizer、retriever和seq2seq模型 tokenizer = RagTokenizer.from_pretrained('facebook/rag-token-base') retriever = RagRetriever.from_pretrained('facebook/rag-token-base', index_name='exact', use_dummy_dataset=True) model = RagSequenceForGeneration.from_pretrained('facebook/rag-token-base') # 设置query和context query = "What is the capital of France?" context = "France is a country located in Western Europe. Paris, the capital city of France, is known for its romantic ambiance and iconic landmarks such as the Eiffel Tower." # 使用Retriever部分检索top-k个匹配的文档 retrieved_docs = retriever(query) # 将query和k个文档拼接起来作为QA的prompt input_dict = tokenizer.prepare_seq2seq_batch(query, retrieved_docs[:2], return_tensors='pt') generated = model.generate(input_ids=input_dict['input_ids'], attention_mask=input_dict['attention_mask']) # 输出生成的回复 generated_text = tokenizer.batch_decode(generated, skip_special_tokens=True)[0] print(generated_text) ```
写文章

热门文章

  • 一文搞懂大模型RAG应用(附实践案例) 15523

最新评论

  • 一文搞懂大模型RAG应用(附实践案例)

    小居快跑: 文末跳转不了啊

  • 一文搞懂大模型RAG应用(附实践案例)

    一只懒毛毛虫: 写得好好呀

大家在看

  • C语言 | Leetcode C语言题解之第423题从英文中重建数字
  • Java | Leetcode Java题解之第423题从英文中重建数字
  • Python | Leetcode Python题解之第423题从英文中重建数字
  • C++ | Leetcode C++题解之第424题替换后的最长重复字符
  • Golang | Leetcode Golang题解之第423题从英文中重建数字

最新文章

2023年1篇

目录

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家玻璃钢仿铜人物雕塑价格如何平顶山玻璃钢花盆定做玻璃钢艺术雕塑供应商宿州玻璃钢雕塑优势山东艺术商场美陈生产厂家四川常用商场美陈订购天津人物玻璃钢雕塑市场江苏人物肖像玻璃钢雕塑定做玻璃钢雕塑学徒招聘信息吉安步行街玻璃钢雕塑定做价格玻璃钢塑料雕塑制作咸宁玻璃钢雕塑考拉厂家玻璃钢龙的九子雕塑作品常见商场美陈批发价南京商场美陈玻璃钢雕塑最优质广西玻璃钢雕塑订制价格佳木斯玻璃钢雕塑多少钱益阳玻璃钢南瓜屋雕塑保山玻璃钢雕塑订购小区玻璃钢雕塑订制锡林郭勒玻璃钢雕塑黑龙江户外玻璃钢雕塑供应商定做玻璃钢雕塑厂家贵不贵天津耐用性高玻璃钢雕塑寒亭玻璃钢花盆花器安徽多彩玻璃钢雕塑批发湖州玻璃钢仿铜雕塑厂家浦口商场户外美陈挂护栏上面的玻璃钢花盆香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化