通过RAG技术,金融行业人员的需求和问题得以被大语言模型更好地理解,并得到更加准确和有用的答案,推动智能问答等多场景服务的升级。

RAG的概念

RAG(Retrieval Augmented Generation,检索增强生成)架构,是目前解决大模型获取最新外部知识、同时解决生成幻觉问题的主流技术框架,并已在相当多的应用场景中得到实际应用。开发人员可以利用这项技术,经济高效地构建人工智能驱动的客户服务机器人、企业知识库、人工智能搜索引擎等。这些系统通过自然语言输入与各种形式的有组织知识进行交互。

图  RAG 应用示意图

在图中,当用户提出问题“公开发行新股,需要财务会计报告吗?”时,并不会直接将问题传递给大型模型进行处理。相反,系统首先进行向量分析,以获取答案。它会在知识库中进行搜索,然后通过语义相似性匹配找到相关内容,例如搜索到《中华人民共和国证券法(2019修订)》“公司首次公开发行新股,应当符合下列条件……”。接着,系统将用户的问题和找到的相关知识一起提供给大型模型。这样,模型就会有足够和完整的知识来回答问题,从而提供更可靠的答案。

为什么需要这样做?

大模型可以类比为一位博学的专家,他们对熟悉众多领域的知识,但即便如此,也仍然存在一定的局限性。比如他并不知道你的个人情况,因为这些信息都是私人的,不会在互联网上公开。因此,他也没有机会提前了解这些信息。

当你考虑聘请这位超级专家作为你的家庭理财顾问时,你需要允许他查看你的投资记录、家庭开支和其他相关数据,然后才能给你提供咨询。这样,他才能根据你的个人情况提供专业建议。

这就是RAG系统的作用:帮助大型模型暂时性地获取它所不具备的外部知识,使其能够在回答问题之前先搜索答案。

从上述例子中可以清楚地看出,RAG系统的核心在于外部知识的检索环节。专家是否能够提供专业的财务建议取决于他们是否能够准确地找到必要的信息。如果专家检索到的是与金融投资无关的信息,比如家庭健康计划,那么即使是最有能力的专家也会束手无策。

但是 如果RAG 简单归纳为基于 Embedding 的向量检索技术与大模型生成技术的结合,将应用部署到生产环境时,仅仅依靠向量检索技术构建 RAG 应用是远远不够的。

Hybrid Search 混合检索

为什么需要混合搜索? 

RAG 检索阶段的主流方法是基于语义相关性匹配的向量搜索(Vector Search)。其技术原理是先将外部知识库中的文档划分为语义完整的段落或句子,然后通过一种称为嵌入的过程将其转换为计算机能够理解的一系列数字表达式(多维向量)。

用户的查询也要经过类似的转换。计算机可以检测用户查询和句子之间微妙的语义关联。例如,”用户购买基金”和 “用户认购基金”之间的语义相关性要高于 “用户购买基金”和 “用户点赞”之间的相关性。在识别出相关性最高的文本后,RAG 系统会将其作为用户查询的上下文一并提供给大型模型,从而帮助回答问题。

除了能够实现复杂语义的文本查找,向量检索还具有其他的优势:

  • 相近语义理解(如金融投资/资金管理/资产组合、涨停/熔断/封板)
  • 多语言理解(跨语言理解,如输入中文匹配英文)
  • 多模态理解(支持文本、图像、音视频等的相似匹配)
  • 容错性(处理拼写错误、模糊的描述)

虽然向量检索在以上情景中具有明显优势,但在某些情况中效果不佳。比如:

  • 搜索一个人或物体的名字(例如巴菲特、股票)
  • 搜索缩写词或短语(例如 RAG、RLHF)
  • 搜索 ID(例如 gpt-4.0-turbo、bge-large-zh-v1.5)

而上述缺点正好是传统关键词搜索的优势所在。传统关键词搜索擅长:

  • 精确匹配(如产品名称、姓名、产品编号)
  • 少量字符的匹配(通过少量字符进行向量检索时效果非常不好,但很多用户恰恰习惯于只输入几个关键词)
  • 倾向低频词汇的匹配(低频词汇往往承载了语言中的重要意义,比如“你想跟我去买基金吗?”这句话中的分词,“买”“基金”会比“你”“吗”在句子中承载更重要的含义)

在大多数文本搜索场景中,确保候选结果中出现最相关的结果至关重要。在搜索领域,向量搜索和关键词搜索各有所长。混合搜索结合了这两种技术的优点,同时弥补了它们各自的不足。

图 关键检索与混合检索对比[1]

在混合搜索中,数据库中预先建立了矢量和关键词索引。用户输入查询后,系统会使用这两种搜索方法搜索文档中最相关的文本。

图 混合检索流程

“混合搜索”没有明确的定义,本文将其定义为向量搜索和关键词搜索的组合。不过,该术语也可用于搜索算法的其他组合。例如,我们可以将用于检索实体关系的知识图谱技术与矢量搜索相结合。

不同的搜索系统都擅长发现文本(段落、句子、单词)中的各种微妙联系,包括精确关系、语义关系、主题关系、结构关系、实体关系、时间关系和事件关系。可以说,没有一种搜索模式适用于所有情况。混合搜索通过整合多种搜索系统,实现了各种搜索技术之间的互补。

另外,基于距离的向量数据库检索将query嵌入在高维空间中,并基于“距离”寻找相似的嵌入文档。但是,如果query表述有细微变化,或者embedding不能很好地捕捉语义,检索可能会产生不同的结果。

对用户的输入query用LLM从多个视角生成多个query。对于用户的输入将检索到许多相关文档,将这些文档取并集会得到一组更大的潜在相关文档的候选集。通过对同一问题产生多个视角,可能能够克服基于距离的检索的一些限制并获得更丰富的结果集。

Rerank 评分系统模型

为什么需要重新排序?

混合搜索结合了各种搜索技术的优势,可以获得更好的召回结果。然而,不同搜索模式的结果需要合并和归一化(将数据转换成统一的标准范围或分布,以便更好地进行比较、分析和处理),然后才能共同提供给大型模型。这就需要引入评分系统:Rerank 模型

Rerank 模型的工作原理是根据候选文档与用户问题的语义匹配程度对其重新排序,从而改善语义排序的结果。它通过计算用户问题与每个候选文档之间的相关性得分,返回一个按相关性从高到低排序的文档列表。常见的 Rerank 模型包括 Cohere rerank、bge-reranker 等。

图  混合检索 + 重排序

在大多数情况下,由于计算一个查询和数百万个文档之间的相关性得分效率极低,因此在进行 rerank 之前需要先进行初始搜索。因此,rerank 通常被放在搜索过程的最后,非常适合对来自不同搜索系统的结果进行合并和排序。

然而,rerank 不仅适用于合并来自不同搜索系统的结果。即使在单一搜索模式下,引入 rerank 步骤也能有效提高文档的召回率,例如在关键词搜索后添加语义 rerank。

在实践中,除了对来自多个查询的结果进行归一化处理外,我们通常会在提供相关文本块(即 TopK,可在 rerank 模型参数中设置)之前限制传递给大型模型的文本块数量。这样做是因为大型模型的输入窗口有大小限制(一般为 4K、8K、16K、128K 标记数),因此需要根据所选模型输入窗口的大小限制来选择合适的分割策略和 TopK 值。需要注意的是,即使模型的上下文窗口足够大,过多的召回块也可能会引入相关性较低的内容,从而降低答案的质量。因此,reerank 的 TopK 参数并不一定越大越好。

Rerank 不是搜索技术的替代品,而是增强现有搜索系统的辅助工具。它的最大优势在于,它不仅提供了一种简单、低复杂度的方法来改进搜索结果,还允许用户将语义相关性整合到现有搜索系统中,而无需对基础设施进行重大修改。

Azure AI 实验数据评估

Azure AI[2]对RAG中几种常用的检索模式进行了实验数据测试,包括关键词检索、向量检索、混合检索以及混合检索与重排序的组合。实验结果表明,混合检索与重排序的组合被视为提高文档召回相关性的有效方法,在使用RAG架构的生成式AI场景中尤为适用。

针对不同数据集类型的测试结果显示,在各个测试集下,混合检索与重排序的组合都在一定程度上提升了召回质量。

图 针对不同数据集类型的测试结果

对于不同查询情景的评估结果显示,在各个用例情景下,混合检索与重排序在不同程度上提升了文档召回的质量。

图 针对不同查询场景的评估结果

数据实验

针对《今金乐道-vol.12-2023Q4》的数据实验中,我们设计了下列问题:

序号提问
1财富管理平台有哪些内容生产模式
2财富管理平台主要有什么内容
3请介绍金融机构入驻运营渠道的情况,如数量、账号内容、发布数量等
4具体讲讲金融机构运营微信公众号的情况
5请用数据说明金融机构的抖音运营和微信视频号运营现状
6有哪些金融机构用上了数字人
7AI对金融内容生产有什么用?
8AI可以解决金融行业的什么问题
9请介绍蚂蚁财富的内容生态
10帮我统计各家基金公司在蚂蚁平台分别运营了几个基金经理账号
11资管机构如何借势蚂蚁内容生态
12有哪些基金公司上架了定投小程序
13基金公司在蚂蚁财富上的定投小程序都有哪些功能

测试A:采用单纯向量检索

测试B:采用混合检索和语义重排序(混合检索中引入MultiQueryRetriever、BM25Retriever,重排序使用BAAI/bge-reranker-large)

然后具体看一个例子:

首次我们做好知识库的上传、识别和切块存入向量数据库的工作。

针对“财富管理平台主要有什么内容”提问,我们目标是找到下列文本块并进行回答。

· 测试A ·

采用单纯向量检索,搜索出来的文本块为:

最终语言模型得出下列回答:

财富管理平台主要的内容生产模式包括:

OGC(官方生成内容):这指的是由官方机构或专业团队,如财经媒体平台(如财联社)和财富管理平台的运营团队生产的内容。

PGC(专业生成内容):通常由金融机构、财经KOL以及具备理财专业知识的个人生产的内容,例如蚂蚁平台推出的鸿鹄计划和FICI分,以及天天基金激励财经KOL输出的各类专业分析。

UGC(用户生成内容):由普通投资者在平台上发布的内容,如实盘讨论、经验分享等,常见于讨论区、问答和帖子。

为了提升平台的活跃度和用户粘性,财富管理平台还会采取各种激励措施,如流量、奖金激励,以及各种福利吸引用户参与内容生产。在内容形式上,平台趋向于引导短平快、互动性强的产品解读和实盘交流类内容,如短视频、问答、讨论区帖子等。

此外,随着技术的发展,平台在内容分发机制上也更加精准,利用大数据和人工智能技术,提升内容的分发效率。在运营阵地上,各个平台之间的互动互联增多,形成了以基金详情页、财富号、讨论区、持仓页、文章详情页、社群、智能助理等多元化内容透出的格局。

这显然不是我们希望得到的结果。那么接下来看看测试B的过程。

· 测试B ·

采用混合检索和语义重排序

首先,我们通过语言模型,针对“财富管理平台主要有什么内容”从不同视觉扩充检索可能Query,得出下列结果:

然后同时对3个Query进行BM25 Search 和 Vector Search,并去重。

可以看到检索结果比之前扩充得更多,但是当然结果并不是越多越好,那么接下来,我们进行重排序。

我们采用BAAI/bge-reranker-large模型,对结果相关指数打分,筛选出正相关的文本块,并重新排序。

而得分排名第一,第三的两个Document正是我们想获取的文本。

最终结果,与我们期望的结果是比较接近的。

“财富管理平台主要包括以下四大类内容:
1. 资讯及行情解读:由财经媒体、资管机构等提供,内容包括财经快讯、行情走势等,时效性强,内容短平快。
2. 基础投教知识:由资管机构、财经KOL等提供,如基金入门课程等,专业性较强。
3. 产品解读:通常由平台资管机构提供,包括基金月报、产品异动讨论区帖子、问答等,形式上可能采用图文加直播的方式。
4. 实盘交流:由投资者、财经KOL等在讨论区、社群等地方进行互动交流,内容互动性强。
这些内容通过不同的分发渠道,如信息流页面、理财直播、财富号、大V号讨论区等,进行分发,并且在运营上越来越注重短平快、互动性强的内容,以及智能化的分发机制,以提升用户体验和满足个性化需求。”

· 最终 ·

对13个问题,分别进行5次实验后,使用BLEU评价指标对测评结果进行打分。

实验结果显示,测试B得出的BLEU评分整体比测试A的BLEU评分高10~15%。

总结

RAG系统引入混合检索和语义重排序明显有助于改善文档召回质量,但这仅仅是RAG检索管道设计中的一环。要提升RAG应用的效果,不能仅仅依赖于单个独立的优化点,而应具备系统性的工程设计思维。必须深入理解用户的使用场景,将复杂的开放域问答问题归纳为可收敛的情景策略。只有在此基础上,才能更加合理地选择索引、分段、检索、重排序等一系列技术组合。


[1]https://qdrant.tech/articles/hybrid-search/

[2]https://techcommunity.microsoft.com/t5/ai-azure-ai-services-blog/azure-ai-search-outperforming-vector-search-with-hybrid/ba-p/3929167

0

道乐研究院