企业级LLM与RAG实战技术综合应用

随着大语言模型(LLM)在自然语言处理领域的广泛应用,许多问题也随之暴露出来。AG(检索增强生成)技术正是为了解决以下几方面的不足而诞生的:

  1. 制造虚假信息:LLM有时会一本正经地胡说八道,给出看似合理但实际上错误的答案。
  2. 知识范围有限:模型只能依赖于训练时的数据,无法处理最新信息或超出训练范围的内容。

为了弥补这些不足,RAG(检索增强生成)技术应运而生。RAG通过利用外部数据源辅助文本生成,结合了检索和生成两种方法,从外部知识库中获取信息,以增强模型的生成能力。

RAG 的工作流程

RAG的工作过程大致可以分为以下几个阶段:

  1. 数据收集 → 数据规整 → 数据分片 → 数据向量化 → 数据存储(向量库) → 输入增强 → 数据检索 → 数据重排 → 文本生成 → 结果集评估。

对这些阶段进行优化是提高RAG准确率的关键。下面,我们对各个阶段进行逐一解析:

1. 数据收集阶段

从PDF、Word、Markdown等文件中提取文本,将多种文件格式转换为统一的纯文本格式。数据收集不仅是文档汇总,更重要的是对文档进行分类。同类文档构成一个知识库。例如,将行业文档、证券期货、银行、大宗商品交易等文档与软件开发文档区分开来。

2. 数据规整

对文档进行清理和优化,以整理出高质量的内容,包括:

  • 文件命名规范:文件名使用词语或短语命名,与内容相关,避免无意义的数字、符号或缩写。
  • 文件内容规整:将文档中的图片替换为文本描述,删除多余格式字符,合并段落(人工按语义处理,自动按长度处理)。
  • 剔除无效文档

3. 数据分片

支持按页码、固定长度、指定分隔符对数据进行拆分。每个数据片段需标注来源文档和章节,并进行摘要,以便后续使用。

注意:文本块重叠并没有太大效果,可根据实际情况灵活应用。

4. 数据向量化

数据向量化是非常关键的一步,选择合适的embedding模型至关重要。常见的embedding模型框架包括:

  • 北京智源人工智能研究院的FlagEmbedding:提供微调、密集检索、重排等一系列模型。
  • 网易有道的bcembedding:专为检索增强生成式应用(RAG)设计的模型框架,包含嵌入模型和重排模型。
  • 哈工大讯飞联合实验室的macBERT:优化中文文本处理,适用于文本分类、命名实体识别、问答系统等。
  • 其他模型:可在Hugging Face上选择排名靠前的中文embedding模型,并根据需要进行训练或微调。

数据动态变化时,可每月进行一次微调和评估。

5. 数据存储

将向量数据写入Milvus向量库,同时将规整后的文档内容写入Elasticsearch(ES)。为了提升中文搜索的准确率,可安装中文分词器IK,并整理公司常用词作为禁止分词的清单。可选项还包括Chroma用于文档问答。

6. 输入增强

  • 查询转换:使用Query2doc和HyDE生成伪文档,再利用其向量表示进行检索,提高准确性。
  • 数据增强:对查询进行润色,消除歧义,增强用户提问效果。

7. 数据检索

数据检索分为两种:

  • 稀疏检索器(BM25):用于粗召回。
  • 密集检索器:利用预训练的神经网络模型(如BERT)将查询转换为向量,使用余弦相似度选出最匹配的文档。

8. 数据重排

利用双路数据进行重排:

  1. 向量库搜索:将用户问题向量化后搜索,返回排名前5的数据。对排名前3的数据获取前后各一个段落的内容,合并后返回,以提高排名靠前数据的权重。
  2. ES搜索:通过IK分词器进行搜索,返回前5条数据。合并两路数据,共10条,进行重排。重排时需根据模型Token长度和数据长度来决定返回数据条数,避免超长。

若文本过长,可进行信息压缩和摘要处理。

9. 文本生成

将用户的问题和重排后的结果提交给大模型,设定好system Prompt。可参考OpenAI官网的提示语技巧,并调整温度等相关参数。

10. 结果集评估

评估时可简单选择知识库中的10个问题作为测试集,对召回和重排后的结果进行打分。可以使用RAG评估框架(RAGAS)来评估性能,关注以下指标:

  • 忠实度:答案与上下文的一致性。
  • 答案的相关性:生成的答案是否针对实际问题。
  • 上下文的相关性:检索到的上下文是否专注、包含尽量少的无关信息。

RAG 的前沿研究

第一篇RAG论文由Meta在2020年提出,随后,各大机构纷纷投入研究。以下为一些引起讨论的RAG研究:

  • Self-RAG(华盛顿大学,2023年):自我反思检索生成。该方法会判断是否需要检索,并对检索到的文档进行标记判断,提高生成效果。
  • 谷歌的桥接模型:在大语言模型与检索器之间搭建桥接模型,优化生成效果。
  • 东北大学的Active-RAG:引入积极学习机制,主动学习检索到的内容,无需微调。
  • 中科大的插拔式自我修正:引入轻量级的检索评估器,实时修正检索到的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值