大模型时代的企业转型: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框架时,有时候会发现某些情况并不尽人意,尽管大模型的推理和生成能力已经日渐成熟,但是受限于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将更深入地融入我们的生活,改变我们的工作方式,提升我们的生活质量。