一文搞懂大模型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 2930
智能问答进阶之路:RAG(大模型检索增强生成)框架详解与实战,融合检索与生成助力智能系统更上层楼
基于langchain的RAG实战
02-19
基于langchain的RAG实战
一文读懂:大模型RAG(检索增强生成)
star_nwe的博客
07-24 753
AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频,免费分享!
模型入门到进阶:什么是 RAG?为什么需要 RAGRAG 的流程
star_nwe的博客
08-14 1466
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频,免费分享!
【AI大模型应用开发】【RAG评估】1. 通俗易懂:深度理解RAGAS评估方法的原理与应用
同学小张的博客
02-25 4538
本文我们针对RAGAS评估方法进行详细介绍。我们将深入其原理,理解其评估指标背后是怎么实现的。都是我根据自己的理解用大白话解释,保证大家能看懂。
GraphRAG:知识图谱+大模型
Python_cocola的博客
07-12 2598
结合知识图谱检索和向量检索,利用二者的优势提高搜索结果的准确性和相关性。
模型系列——解读RAG
我相信......
02-04 2234
RAG 是2023年最流行的基于 LLM 的应用系统架构。有许多产品几乎完全建立在 RAG 之上,覆盖了结合网络搜索引擎和 LLM 的问答服务,到成千上万个数据聊天的应用程序。很多人将RAG和Agent 作为大模型应用的两种主流架构,但什么是RAG呢?RAG又涉及了哪些具体的技术呢?1. 什么是RAGRAG即检索增强生成,为 LLM 提供了从某些数据源检索到的信息,并基于此修正生成的答案。RAG ...
用通俗易懂的方式讲解:一文详解大模型 RAG 模块
2301_78285120的博客
02-02 7645
RAG 技术是一种检索增强生成的方法,结合了大型语言模型和检索系统的优势,以提高生成内容的准确性、相关性和时效性。相比于仅依赖大型语言模型的生成,RAG技术可以从外部知识库中检索信息,避免了模型的幻觉问题,并提升了对实时性要求较高问题的处理能力。与传统的知识库问答系统相比,RAG技术更加灵活,可以处理非结构化的自然语言文本。RAG并非旨在取代已有的知识库问答系统,而是作为一种补充,强调实时性和准确性,并且通过结合生成和检索机制来提升自然语言处理任务的效果。增强数据获取。
模型技术知识点:RAG
h1453586413的博客
06-18 1664
RAG的核心思想是让语言模型在生成回答或文本时能够动态地从外部知识库中检索相关信息。这种方法能够提高模型生成内容的准确性、可靠性和透明度,同时减少“幻觉”(即模型生成看似合理但实际上错误的信息)。
一文带你了解大模型RAG(检索增强生成) | 概念理论介绍+ 代码实操(含源码)
热门推荐
机器学习社区
12-30 2万+
RAG的全称是Retrieval-Augmented Generation,中文翻译为检索增强生成。它是一个为大模型提供外部知识源的概念,这使它们能够生成准确且符合上下文的答案,同时能够减少模型幻觉。本文介绍了 RAG 的概念及其背后的一些理论,本文通过Python、LangChain将其实现,在此过程中使用了 OpenAI的ChatGPT接口(可以自己搭建chatGLM3)、Weaviate矢量数据库(可以自己搭建Milvus )、OpenAI 嵌入模型实现了 RAG 管道。
一文读懂:大模型RAG
weixin_42029738的博客
06-11 536
本文概述 RAG 的核心算法,并举例说明其中的一些方法。RAG融合是一个强大的功能,能够提高RAG应用的语义搜索效率。通过使用语言模型生成多个查询并对搜索结果进行重新排序,RAG融合可以呈现更丰富多样的内容,并提供了一个额外的层次,用于调整应用。此外,RAG融合还可以实现自动纠正、节省成本以及增加内容多样性。但是,需要注意一些权衡,比如潜在的延迟问题、自动纠正的挑战以及成本影响。对于依赖常见概念但可能出现内部行话或重叠词汇的应用来说,RAG融合尤其有用。
【AI大模型应用开发】【RAG评估】0. 综述:一文了解RAG评估方法、工具与指标
同学小张的博客
02-24 5026
本文主要总结了当前比较流行的RAG评估方法和指标。当前AI技术的快速发展,RAGRAG评估是当前比较有前景的发展方向,不断有新的评估工具和理论被提出,让我们持续跟进,了解这些工具和理论,从而在使用时知道如何选择。
【AI大模型应用开发】【RAG评估】2. 实战:LangChain x RAGAs x LangSmith联合评估RAG应用,兼看如何借助LangSmith有效学习LangChain
同学小张的博客
02-26 2078
今天我们完整的实战:将RAGAs集成在LangChain的RAG应用中,同时打通LangSmith平台,使评估过程可视化。同时还会有意外收获:带你看看如何利用LangSmith平台来有效学习LangChain的使用和相关知识。
一文读懂「RAG,Retrieval-Augmented Generation」检索增强生成
女王の专属领地
01-20 8256
检索增强生成(Retrieval Augmented Generation),简称 RAG,已经成为当前最火热的LLM应用方案。它是一个为大模型提供外部知识源的概念,这使它们能够生成准确且符合上下文的答案,同时能够减少模型幻觉。知识的局限性:模型自身的知识完全源于它的训练数据,而现有的主流大模型(ChatGPT、文心一言、通义千问…)的训练集基本都是构建于网络公开的数据,对于一些实时性的、非公开的或离线的数据是无法获取到的,这部分知识也就无从具备。幻觉问题。
模型RAG从入门到精通(非常详细)看这篇就够了,草履虫都能轻松看懂!!!
EnjoyEDU的博客
08-08 1093
RAG系统的实际应用中,需要工程和算法等的多方参与和努力,理论上有很多方法,在实践的过程中我觉得还需要大量的实验对比,不断验证和优化,也可能会遇到许多细节问题,比如可想到的异构数据源的加载和处理啊,知识的展示形态(文本、图片、表格)等是否能一起回答,提升下用户体验,以及建立一套自动化的评估机制,当然还有模型的持续迭代和大小模型的训练支持。作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。具体来说,设计了一个轻量级的检索评估器来评估检索到的文档的整体质量,并基于评估结果触发不同的知识检索操作。
大语言模型落地的关键技术:RAG
产品老A,6年互联网大厂AIPM,专注探索新型人机交互
04-06 2478
RAG 是检索增强生成(Retrieval-Augmented Generation)的简称,是当前最火热的大语言模型应用落地的关键技术,主要用于提高语言模型的效果和准确性。
模型RAG入门及实践
奇舞周刊
05-14 704
本文作者系360奇舞团前端开发工程师前言在大语言模型(LLM)飞速发展的今天,LLMs 正不断地充实和改进我们周边的各种工具和应用。如果说现在基于 LLM 最火热的应用技术是什么,检索增强生成(RAG,Retrieval Augmented Generation)技术必占据重要的一席。RAG 最初是为了解决 LLM 的各类问题的产生的,但后面大家发现在现阶段的很多企业痛点上,使用RAG好像是更好的...
5分搞懂模型 - RAG(检索、增强、生成)
最新发布
2401_85327249的博客
09-01 1629
RAG(Retrieval-Augmented Generation,检索增强生成) 是一种结合了信息检索技术与语言生成模型人工智能技术。该技术通过从外部知识库中检索相关信息,并将其作为提示(Prompt)输入给大型语言模型(LLMs),以增强模型处理知识密集型任务的能力,如问答、文本摘要、内容生成等。RAG模型由Facebook AI Research(FAIR)团队于2020年首次提出,并迅速成为大模型应用中的热门方案。
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应用(附实践案例) 15491

最新评论

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

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

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

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

最新文章

2023年1篇

目录

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

天下网标王磐石网站整站优化丰台专业网站优化排名广州网站优化网络推广公司商丘网站seo优化哪家好闵行区百度网站优化价格费用网站百度关键词优化嘉兴网站优化公司多少钱网站建设优化认可k火18星来巩义网站优化多少钱寿光优化网站平台优化网站文章内链什么设置网站有百度权重1优化好做吗杭州优化seo网站排名宜城网站seo优化服务商淮安网站关键词优化公司推荐湖北优化网站推广网站数据优化揭阳网站优化搜索哪里有网站优化系统加盟优化网站解读易速达百度网站优化资讯seo优化对网站的建议于网站排名在线优化辽宁运营网站建设优化价格深圳网站制作优化大型网站手法蓟县网站关键词优化吉林省灯饰企业商务网站优化望牛墩网站优化有了网站怎么做优化香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

天下网标王 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化