传统RAG流程;密集检索器,稀疏检索器:中文的M3E

292 阅读10分钟

目录

传统RAG流程

相似性搜索中:神经网络的密集检索器,稀疏检索器

密集检索器

BGE系列模型

text-embedding-ada-002模型

M3E模型

稀疏检索器

示例一:基于TF-IDF的稀疏检索器

示例二:基于BM25的稀疏检索器

稀疏检索器的特点与优势


传统RAG流程

​编辑

相似性搜索中:神经网络的密集检索器,稀疏检索器

密集检索器

BGE系列模型、text-embedding-ada-002模型、M3E模型确实是现今流行的模型,以下是对这三个模型的详细介绍:

BGE系列模型

  • 研发背景与意义:检索增强(RAG)是自然语言处理与人工智能领域的一项重要技术,通过借助搜索引擎等信息检索工具,语言模型得以与外部数据库连通,从而实现推理能力与世界知识的整合。向量检索因其使用的便捷性而广受开发者欢迎,借助向量模型(embedding model)与向量数据库,用户可以构建本地化的搜索服务,从而便捷地支撑包括RAG在内的诸多下游应用。然而,传统的向量模型多是针对特定的使用场景、以点对点的方式开发得到的,在面对RAG复杂多样的任务诉求时,这些专属的向量模型由于缺乏足够的泛化能力,检索质量往往差强人意。此外,传统向量模型的研发多围绕英文场景,包括中文在内的非英文社区更加缺乏合适的向量模型以及必要的训练资源。针对上述问题,北京智源人工智能研究院研发了BGE系列模型。

  • 模型简介:BGE,全称BAAI General Embedding,是开源通用向量模型,该系列模型专为各类信息检索及大语言模型检索增强应用而打造。BGE系列模型一经推出,便在开源社区广受好评,被众多RAG开发者比作信息检索的“瑞士军刀”。

  • 模型特点

    • 2023年8月发布首款模型BGE v1以来,BGE历经数次迭代,已发展为全面支持“多场景”“多语言”“多功能”“多模态”的技术生态体系。
    • BGE不仅性能综合卓越,多次大幅刷新BEIR、MTEB、C-MTEB等领域内主流评测榜单,而且始终秉持彻底的开源开放的精神,模型、代码、数据均向社区完全公开。
    • BGE系列模型遵循开放的MIT许可协议,社区用户可以对其自由地使用、修改,并进一步分发。
  • 模型应用:BGE模型被国内外各主流云服务和AI厂商普遍集成,形成了很高的社会商业价值。此外,BGE系列模型的累计下载量已超过数亿次,成为下载量最多的国产开源AI模型。

text-embedding-ada-002模型

  • 研发机构:该模型属于OpenAI大型语言模型系列的一部分

  • 模型功能:该嵌入模型是为了将文本(如单词、短语或整段文本)转换为数值形式的向量,使得计算机能够处理和理解自然语言。

  • 模型特点

    • 理解文本的意义:这个模型不仅仅关注文本的字面意思,还能把握文本的深层含义。比如,它能理解同义词或上下文中词语的具体含义,使得生成的嵌入向量能反映这些语义特征。
    • 高维数据压缩:它把复杂的文本信息压缩成较为简单的数值向量。
    • 多用途:这种嵌入方式非常通用,适用于多种不同的自然语言处理任务,比如文本分类、情感分析、机器翻译等等。
    • 基于深度学习:这个模型是基于深度学习技术构建的,意味着它在大量文本数据上进行过训练,学会了如何有效地表示和理解语言。
    • 转换为数值向量:将文本转换为数值向量的过程有助于计算机执行各种算法,因为计算机更擅长处理数字而不是文字。
    • 可用于后续任务:一旦文本被转换成数值向量,这些向量就可以被用来训练机器学习模型,或者用于各种数据分析和自然语言处理任务。
    • 预训练模型:text-embedding-ada-002是一个预先训练好的模型,这意味着它已经在大量的文本数据上被训练过,所以可以直接使用它而不需要从头开始训练。
  • 模型优势

    • text-embedding-ada-002在文本搜索、代码搜索和句子相似性任务上超越了所有旧的嵌入模型,并在文本分类上获得了可比的性能。
    • 作为OpenAI目前主打的新模型,text-embedding-ada-002取代了五个不同的模型,用于文本搜索、文本相似度和代码搜索,并且在大多数任务中超越了之前最强大的模型达芬奇,同时价格比达芬奇低了99.8%。

M3E模型

  • 模型名称含义:M3E,即Moka Massive Mixed Embedding的缩写。

  • 模型特点

    • M3E是一个开源的中文Embedding模型,采用了先进的训练方法和大规模语料库,以生成高质量的词向量。
    • 在训练过程中,M3E使用了大规模的中文语料库,这使得它能够覆盖更广泛的词汇和表达方式,提高模型的泛化能力。
    • M3E采用了先进的训练方法,如负采样、层次softmax等,以加速训练过程并提高模型的性能。
    • M3E生成的词向量具有高质量的语义信息,能够捕捉到词汇之间的细微差别和复杂关系。
    • M3E在训练过程中同时考虑了多个任务,如文本分类、检索等,这使得模型能够更好地适应不同的应用场景。
  • 模型优势

    • M3E在实际应用中具有广泛的潜力,可以用于各种NLP任务,如文本分类、情感分析、问答系统等。
    • 通过将这些任务转化为向量计算,M3E可以高效地处理和理解大量的文本数据。
    • M3E还可以与其他模型(如深度学习模型)结合使用,以提高整体性能。
    • 在多个任务中,M3E的表现已经超越了其他模型,成为了新的SOTA。例如,在T2Ranking 1W中文数据集上,M3E在ndcg@10指标上达到了0.8004,超过了OpenAI的Ada-002模型的0.7786;在6种文本分类数据集上,M3E在准确率指标上达到了0.6157,也超过了Ada-002的0.5956。

稀疏检索器

稀疏检索器是一种使用稀疏表示来进行文本匹配的信息检索技术。在稀疏检索器中,文本被转换为一个向量,向量的维度大小通常为语料的词典大小。如果词典非常大,向量表示中会包含大量的0值,这表示文本在很多维度上没有对应的特征,只有在特定的维度(对应词典中的某些词)上有非零值,这些非零值表示该词在文本中出现。

以下是一些关于稀疏检索器的具体举例说明:

示例一:基于TF-IDF的稀疏检索器

  1. 文本预处理

    • 对文本进行分词、去除停用词等预处理操作。
    • 构建一个包含所有可能词汇的词典。
  2. 特征提取

    • 使用TF-IDF算法计算每个词在文档中的词频(TF)以及在整个语料库中的逆文档频率(IDF)。
    • 将文档表示为一个向量,向量的每个维度对应词典中的一个词,该维度的值即为该词在文档中的TF-IDF值。
  3. 文本匹配

    • 对于一个查询文本,同样将其表示为向量形式。
    • 计算查询向量与文档向量之间的相似度(如余弦相似度)。
    • 根据相似度排序,返回最相关的文档。

示例二:基于BM25的稀疏检索器

BM25(Best Matching 25)是一种基于词频的检索算法,与TF-IDF类似,但考虑了词频的饱和效应和文档长度对词频的影响。

  1. 文本预处理与特征提取

    • 对文本进行分词、去除停用词等预处理操作。
    • 计算每个词在文档中的词频(TF)。
    • 根据BM25公式计算每个词的权重。
  2. 文本匹配

    • 将文档和查询文本都表示为基于BM25权重的向量。
    • 计算查询向量与文档向量之间的相似度(如余弦相似度)。
    • 根据相似度排序,返回最相关的文档。

稀疏检索器的特点与优势

  1. 稀疏性:由于词典通常很大,因此向量表示中会包含大量的0值,这使得向量在存储和计算上更加高效。
  2. 解释性:稀疏表示使得检索结果更容易解释,因为非零值对应的词往往是文档中的关键词。
  3. 灵活性:可以与其他算法(如深度学习模型)结合使用,以提高检索性能。

然而,稀疏检索器也存在一些局限性,例如无法解决术语不匹配问题。在问题与文档相似但不存在重复术语的情况下,稀疏检索器可能会失去效果。因此,在实际应用中,需要根据具体需求和场景选择合适的检索算法。