如何通过微调Embedding模型提升RAG(检索增强生成)在问答中的召回效果

在当今信息爆炸的时代,准确快速地获取所需信息成为了一项挑战。RAG(Retrieval-Augmented Generation)模型的出现,为这一挑战提供了一个创新的解决方案。本文将深入探讨RAG模型的基本概念、其在处理开放域问答中的优势以及面临的局限性。同时,文章还将详细阐述Embedding在RAG中的关键作用,并通过实验数据展示如何通过微调Embedding模型来显著提升RAG的性能。

一、RAG介绍

1. 什么是RAG?

RAG(Retrieval-Augmented Generation,检索增强生成)是一种将信息检索与生成模型相结合的方法。RAG模型通过先检索相关信息,然后生成答案,提升了模型回答复杂问题的能力。它由两部分组成:检索器和生成器。检索器从一个大型文档库中提取与问题相关的信息片段,生成器则利用这些片段生成一个连贯的回答。这种方法可以更好地处理开放域问答,因为它能够动态地获取最新的信息。

2. RAG模型的优点和局限性

RAG模型相比传统的文本检索模型和生成模型具有以下优点:

  • 能够提供更加准确和有用的搜索结果
  • 能够处理复杂的查询和长文本
  • 能够根据用户的意图生成个性化的搜索结果

然而,RAG模型也存在一些局限性:

  • 训练和推理的时间和计算资源消耗较大
  • 对训练数据和模型的要求较高
  • 难以处理一些特殊领域的查询和文本

二、Embedding在RAG中的作用

1. 几种Embedding模型在领域数据上的Recall召回对比

本次实验采用3W+海量知识碎片和600个标准用户问题进行召回测试

主要对比了m3e-base、bge-base-zh、bce-embedding-base_v1,3个模型在输入为中、英两种语言上的的召回效果.

如何通过微调Embedding模型提升RAG(检索增强生成)在问答中的召回效果
如何通过微调Embedding模型提升RAG(检索增强生成)在问答中的召回效果

2. 采用领域数据微调Embedding模型

  1. 数据收集:收集足够的领域相关数据,包括文档、问答对等。这些数据应该覆盖该领域内的主要知识点和常见问题。
  2. 预处理:对数据进行清洗和预处理,去除噪音和冗余信息,确保数据质量。
  3. 微调:将预训练的Embedding模型(如BERT)在领域数据上进行微调。通过在领域数据上继续训练模型,使其更好地适应该领域的语义和用法。
  4. 评估和优化:评估微调后的Embedding模型在RAG中的表现,根据需要调整训练参数和数据集,进一步优化模型性能。

通过微调,Embedding模型能够更好地理解领域特定的语义,从而提升RAG模型的检索和生成能力,提高应答率和回答质量。

以m3e模型为例

模型下载地址:https://huggingface.co/moka-ai/m3e-base

微调参考:https://github.com/wangyuxinwhy/uniem/blob/main/examples/finetune.ipynb

数据集:

[
    {
        "label": 1,
        "sentence1": "Win12是什么项目?",
        "sentence2": "地址:\nhttps://github.com/streamlit/streamlit\n5、Win12\n该项目是一款\nWindows 12 网页体验版\n,可以让我们提前在网页上提前感受 Windows 12 的一些产品特性。而且根据项目Readme介绍,是由三个初中生合力开发的,新生代的力量真不可限量!\nStar量:\n5.1K+\n项目地址:\nhttps://github.com/tjy-gitnub/win12\n项目受到 Windows 12 概念版启发,提供了精美的 UI 设计、丰富流畅的动画、各种功能小组件、动态壁纸、文件系统等功能。\n这个项目的灵感来源于作者之前看到 Windows 12 概念版后深受启发,于是决定做一个Windows12网页版(就像之前的 Windows 11 网页版一样),可以让用户在网络上预先体验 Windows 12。\n可以看到,这个项目是一个前端开源项目,而且由标准前端技术(HTML,JS,CSS)来实现,下载代码,无需安装,打开desktop.html即可。\n作者自己表示如今上初三了,对于win12这个项目也不会做什么功能的更新了,后续的维护更新将交给其他贡献者成员。\n6、Yt-dlp\nyt-dlp 是基于\nYouTube-dl 的分支项目,同时也基于不再活跃的 youtube-dlc 进行开发。该项目旨在添加补丁、特性和改进,保持与官方项目的同步更新。yt-dlp 提供了更多的选项和功能,使用户能够更灵活地下载 YouTube 视频和内容,满足各种下载需求。\nStar量:\n172K+\n项目地址:\nhttps://github.com/yt-dlp/yt-dlp\nyt-dlp的安装方法有很多:\n• Python的pip安装(适用于已经安装Python的设备,并带包管理器pip)\n• Homebrew安装(适用于macOS,并且安装了Homeb"
    },
    {
        "label": 0,
        "sentence1": "如何看待胖猫事件?",
        "sentence2": "地址:\nhttps://github.com/streamlit/streamlit\n5、Win12\n该项目是一款\nWindows 12 网页体验版\n,可以让我们提前在网页上提前感受 Windows 12 的一些产品特性。而且根据项目Readme介绍,是由三个初中生合力开发的,新生代的力量真不可限量!\nStar量:\n5.1K+\n项目地址:\nhttps://github.com/tjy-gitnub/win12\n项目受到 Windows 12 概念版启发,提供了精美的 UI 设计、丰富流畅的动画、各种功能小组件、动态壁纸、文件系统等功能。\n这个项目的灵感来源于作者之前看到 Windows 12 概念版后深受启发,于是决定做一个Windows12网页版(就像之前的 Windows 11 网页版一样),可以让用户在网络上预先体验 Windows 12。\n可以看到,这个项目是一个前端开源项目,而且由标准前端技术(HTML,JS,CSS)来实现,下载代码,无需安装,打开desktop.html即可。\n作者自己表示如今上初三了,对于win12这个项目也不会做什么功能的更新了,后续的维护更新将交给其他贡献者成员。\n6、Yt-dlp\nyt-dlp 是基于\nYouTube-dl 的分支项目,同时也基于不再活跃的 youtube-dlc 进行开发。该项目旨在添加补丁、特性和改进,保持与官方项目的同步更新。yt-dlp 提供了更多的选项和功能,使用户能够更灵活地下载 YouTube 视频和内容,满足各种下载需求。\nStar量:\n172K+\n项目地址:\nhttps://github.com/yt-dlp/yt-dlp\nyt-dlp的安装方法有很多:\n• Python的pip安装(适用于已经安装Python的设备,并带包管理器pip)\n• Homebrew安装(适用于macOS,并且安装了Homeb"
    }
]

微调后重新做recall召回测试

如何通过微调Embedding模型提升RAG(检索增强生成)在问答中的召回效果

可以看到,召回率直接提升33个百分点,效果还是非常理想的

三、结论

微调Embedding模型是提高RAG应答率的有效方法。通过在领域数据上进行微调,可以使Embedding模型更好地理解特定领域的语义,从而提升RAG模型的整体性能。尽管RAG模型在处理开放域问答时具有显著优势,但在特定领域中的表现仍需进一步优化。未来的研究可以在微调方法和数据质量上进行更多探索,以进一步提高RAG模型的应答准确性和实用性。

咨询方案 预约演示                        
(123)
研发专家-白起研发专家-白起
上一篇 2024年5月21日
下一篇 2024年5月28日

相关推荐