大模型时代的企业转型:RAG技术的进化与挑战
从2023年起开始火爆的大语言模型(Large Language Model,LLM),如GPT/Gemini/通义千问/GLM/文心一言/豆包等,经过了一年多的比拼和进化,已经几乎涵盖了所有通用性、常识性的知识和理解力;
与之同时,更多传统行业的企业也被吸引到大语言模型的生态中,探索新AI技术为企业带来实质性的变革。与大模型厂商对通用能力的比拼不同,传统企业更关注大模型通用能力与自身行业或企业内部的垂直领域的知识相结合,以满足企业特有业务场景的述求。
垂直领域融合
大语言模型对企业垂直领域知识进行融合,主流是两个方向:
Fine-Tuning
将私域知识标注为训练数据,直接对大模型进行增量训练,提升大模型自身的知识储备和认知能力,这也是大模型厂商持续提升模型能力的方式之一。
RAG(Retrieval Augmented Generation)
通过在大模型外部构建一套检索体系,解决企业私域知识的提炼和召回问题,并通过prompt让大模型在企业私域知识的背景下返回结果。
与Fine-Tuning不同,RAG降低了企业对大模型应用的技术门槛,从去年开始一直是受广大非AI专业企业的热衷。本文从多个RAG实践项目提炼经验,探索如何更好的借助RAG框架为企业进行赋能。
RAG的机会与痛点
RAG框架的优势在于构建了 Query 和 Generate 的分工机制,在不要求改变大语言模型Generate能力的基础上,实现与企业私域知识的融合。
如果没有 Query环节,尽管当下大语言模型的输入宽度最高已经突破百万tokens,但是也难以一次性覆盖企业全部私域知识量;而且如果用户每次问询都伴随巨量tokens的提示词,也是一种性价比极低的方法。所以在当前算力背景下,RAG在大模型应用场景中依然有举足轻重的地位。
然而,企业在实践大模型+RAG框架时,有时候会发现某些情况并不尽人意,尽管大模型的推理和生成能力已经日渐成熟,但是受限于RAG框架下文本片段+向量召回机制下的Query准确率问题,往往制约了大模型本身能力的发挥。如何更好的协同RAG框架下Query和 Generate的能力,一直是大模型应用的探索方向之一。
RAG的优化实践
为了解决RAG面临的痛点,我们可以把RAG的Query体系归纳为三大环节:知识预处理、用户提问和查询召回。在每个环节下,一步步探索帮助改善Query问题的具体实践:
Part1:知识预处理
RAG从企业各种类型的文件中提取知识内容,这些内容被切割为知识块,作为检索的最小单元。知识块内容质量的好坏,直接影响到后续检索和生成回复的准确率。
这个环节我们可以从两个方面进行改善:
1.文档规范
企业可以从文档编写和积累源头,对内容加以规范,从而使其被RAG更准确的提取和切割。我们提供几种格式的规范参考:
文本:采用多级标题的段落结构,每个末级标题下的内容不易过长(受切片宽度影响),每个段落内容必须是完整和清晰的。
表格:单行表头的表格最佳,行数据避免使用合并单元格的情况。
图片:图片与文字的顺序要清晰,一般word/pdf适合文字上、图片下的布局,ppt可以适合文字上、图片下或文字左、图片右的布局。
PDF:PDF通常是用OCR进行文字提取的,对单换行符不敏感,所以对正文的段落划分,建议采用双换行符的方式,便于识别段落。
2.内容加工
对于更新频率低的文档,我们可以利用大模型Generate能力对文档内容进行智能化加工,具体实践的方案:
智能摘要:对整篇文档的内容进行摘要提取,摘要可以用于单独匹配用户的问题。
问题预测:对整篇文档或文档片段进行预测问题,生成多个相关的问题短语句,问题短语句可以用于单独匹配用户的问题。
图片加工:仅依靠图片上下文关系或ORC技术对图片进行内容推理的方式并不可靠;可以借助大模型对图片的理解能力,将文档内的图片归纳为文本描述,从而以文本的形式与用户问题匹配
知识图谱:在大模型的帮助下,可以更加智能的提取文档中的重要实体,并构建三元组形式(实体1 - 关系 - 实体2),搭建多文档的知识图谱。
Part2:用户提问
用户提问的内容和方法,也是影响RAG准确率的重要因素,对此,我们可以增加更多显性和隐性的互动环节来改善:
问题澄清
受到传统文本召回的搜索引擎影响,很多用户习惯于用一个词汇或短语进行提问,这种行为会带来更多的匹配不确定性。借助大模型可以快速构建多种澄清场景,并对用户问题进行判断和追问后,归纳成高质量的完整问题进行信息检索。
问题衍生
大模型的Generate能力可以将用户的问题进行相关性衍生,这个环节对用户是隐性的。衍生的相关问题可以分别用于检索更多的知识片段,然后排序合并到大模型的prompt里,确保生成回复的全面性。
问题分类器
企业内部往往会同时存在多个领域的知识,这些知识在一起被检索时,往往可能会出现干扰,通过构建一个问题分类器,可以定义不同的分类指向不同的知识库。用户在提问时可以率先明确问题分类,也可以借助大模型能力对问题进行自动分类,结合分类路由实现避免不同领域相似知识的干扰。
Part3:查询召回
该环节是将用户需求与知识储备进行匹配的桥梁,也是RAG框架里重要的一环,回归到Query的本质。自人类进入信息化社会以来,信息的查询和召回一直是一个持续的话题,我们也可以引入优秀的策略和先进的技术来提升召回准确率:
向量模型召回
作为RAG框架的首选,也是查询召回的基础能力,面对长文本的向量匹配,我们可以选择更高维度的向量模型来捕获和比较更多特征值,提升准确率。
目前部分向量模型:
模型 | 维度 |
Bert向量模型 | 768 |
BGE向量模型 | 1024 |
GPT向量模型 | 1536~3072 |
文本向量组合召回
文本召回和向量召回是两种常见的应对海量数据的检索技术,各自具有独特的优缺点。为了提升检索效果,可以将这两者进行有效融合。
例如,可以先进行基于关键词的文本召回,然后在此基础上实施向量召回;或者同时进行文本匹配和向量匹配,最后通过综合评分模型进行结果排序和召回。这样的融合策略有助于提高检索的准确性和效率。
重排模型召回
重排模型是一种在低算力、低成本的向量模型与高准确率、高成本的大语言模型之间的折中方案。它结合了向量模型的高效性和大语言模型的语义理解能力,旨在提供更优的检索效果,同时降低计算资源的需求。
重排模型如:商业闭源的Cohere Rerank模型和开源bge-reranker-large模型等都是当下比较热门的重排模型。
知识图谱召回
结合对文档预处理的知识图谱构建,我们在查询召回环节可以引用图谱的能力,通过对问题的实体识别,进行关系推理和图谱查询;也可以与文本召回和向量召回相结合,形成一个混合召回策略,提升整体的搜索效果。
通过企业内部制度的规范、大模型Generate能力的融入、以及衍生技术工具的升级,使得RAG不单单是一个大模型的外挂系统,而是一个具有流程化的,将企业私域知识和大模型通用能力深度融合的企业实践。在未来,随着科技的不断进步和用户习惯的不断重塑,RAG技术也将会为企业带来新的机遇和挑战。
在如今的AI时代,我们已经全面步入了大模型时代。飞速发展的大模型及其衍生技术,正在不断推动各行各业的创新与变革。包括RAG在内的这些技术不仅提升了数据处理和决策的效率,更为未来的应用场景开辟了无限可能。从智能助手到自动化决策,从个性化推荐到深度语义理解,未来的AI将更加智能、灵活和人性化。展望未来,我们有理由相信,随着技术的不断进步,AI将更深入地融入我们的生活,改变我们的工作方式,提升我们的生活质量。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
全面上线|Alluxio AI助力知乎千卡模型训练
混合云架构,带来便捷与挑战 知乎目前是典型的混合云架构,数据和服务都分布在不同的机房: 离线机房: 专为满足大数据相关业务方需求而设计的离线计算服务中心。其主要职能是部署离线调度、离线存储以及调度平台等服务。这些服务的目标是提供高效的离线数据处理和计算能力。在离线机房中,大数据业务方可以安心进行批量数据处理和计算任务,从而满足他们对数据处理、存储和调度的要求。 在线机房: 此机房专为知乎主站提供直接面向用户的服务而设计。其中包括评论、回答、搜索、推荐等核心服务。在线机房的重点在于实时性和响应速度,以确保用户能够在最短的时间内获得稳定、高效的服务体验。知乎主站作为一个知识社区,其在线机房是为了保障用户对知识和信息的交流与分享能够得到优质、连续的支持。 GPU 机房: 此机房专门用于部署机器学习平台,主要服务于算法用户。其主要特点是提供强大的 GPU 资源管理、模型训练、数据集导入导出等一站式解决方案。GPU 机房的核心任务是为算法用户提供高性能计算资源,以满足机器学习模型训练和推理的要求。这样的设计能够使算法用户更专注于模型的研发与优化,而不必担心计算资源的供给。 架构图如下所示: 混合...
- 下一篇
【直播预告】快十年了,Rust 怎么还没有取代 C/C++?
最近几年,Rust 的发展势头极为强劲。在《Stack Overflow 2024 年度开发者调查报告》中,毫不意外地,Rust 仍然是开发者最喜爱的语言,连续九年稳坐榜首。 Rust,这个因内存安全出名的编程语言,从 1.0 版本发布开始算起,距今已经快十年时间了。每年都有人跳出来说,Rust 将取代 C/C++。 这么说不是没有来由。 不论是 Linux、Windows,还是 Android,其主要编程语言要么是 C,要么是 C++。由于这两种语言允许直接访问系统内存,不当使用时可能导致内存安全漏洞。而 Rust 的诞生,就是为了能够解决 C/C++ 开发者面临的问题——内存不安全。 当前,这些操作系统都在探索和引入 Rust 语言,以利用其在内存安全和并发编程方面的优势。谷歌甚至还放话要脱离 C/C++。这意味着,Rust 正在操作系统领域渐渐取代 C/C++。 那么,在操作系统之外,Rust 也将取代 C/C++吗?有人就认为,Rust 适合写内核级别的代码,但并不是适合业务开发,因为它不够高效,不够灵活。 本期【开源漫谈】直播,我们将深入探讨Rust在操作系统领域的崛起及其对...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- CentOS7安装Docker,走上虚拟化容器引擎之路