MaxKB中如何选择向量模型?


飞致云 发布于 2025-03-30 / 234 阅读 / 0 评论 /
目前 MaxKB 内置的向量模型 为maxkb-embedding,即 text2vec-base-Chinese,它是一个针对中文语义匹配任务优化的向量模型,特别适用于中文句子级别的语义匹配任务,早期在多个领域表现出了优秀的性能。从目前的应用的实际效果反馈来看,存在如下不足: 长文本处理能力:该模

目前 MaxKB 内置的向量模型 为maxkb-embedding,即 text2vec-base-Chinese,它是一个针对中文语义匹配任务优化的向量模型,特别适用于中文句子级别的语义匹配任务,早期在多个领域表现出了优秀的性能。从目前的应用的实际效果反馈来看,存在如下不足:

  1. 长文本处理能力:该模型默认输入文本长度超过256个词片段时会自动截断,这可能导致长文本中的部分语义信息丢失,影响对整体语义的准确捕捉。在处理长文本时,可能无法有效搜索到相关结果,在长文本处理方面可能存在一定的局限性。

  2. 向量模型“坍缩”现象:这text2vec-base-chinese 是基于 BERT 架构的模型,而BERT架构的模型存在“坍缩”现象,即对所有的句子都倾向于编码到一个较小的空间区域内,这使得大多数的句子对都具有较高的相似度分数。虽然text2vec-base-chinese 通过 CoSENT 方法进行了优化,但这一问题可能仍存在一定程度的影响

  3. 模型实时性问题:至目前为主,text2vec-base-Chinese官方库最新一次更新时间为[2023/09/20] v1.2.9版本,也就是一年半的时间没有更新了,目前在一些评测中,text2vec-base-chinese 的准确率略低于其他更先进的模型。

  4. 对词序和上下文的敏感性:由于模型基于 BERT 架构,对词序和上下文的敏感性较高。在某些情况下,这可能导致对语义的判断不够准确。

向量模型的种类大概分为六大类,向量模型的数量基本也有上百种以上。

  1. BERT (Bidirectional Encoder Representations from Transformers):这是一种基于 Transformer 架构的预训练语言表示模型,它通过深度双向训练来理解语言的上下文信息。BERT 在自然语言处理(NLP)领域取得了显著的性能提升,被广泛应用于各种任务,如情感分析、问答系统、命名实体识别等。

  2. M3E (Massive Mixed Embedding):M3E 在私有部署和大规模文本处理方面表现出色,适用于需要私有化和资源节约的场景。它通过大规模混合嵌入技术提高了词向量的表达能力和泛化能力,适用于各种文本处理任务。

  3. BGE (Baidu General Embedding):BGE 系列模型在全球下载量超过1500万,位居国内开源 AI 模型首位,表明其资源使用高效且受欢迎。BGE 在多语言支持、文本处理能力和检索精度方面表现优异,尤其适合需要高精度和高效率的场景。

  4. Sentence Transformers:基于孪生 BERT 网络预训练得到的模型,对句子的嵌入效果比较好。

  5. OpenAI Embedding (text-embedding-ada-002): OpenAI 提供的模型,嵌入效果表现不错,且可以处理最大 8191 标记长度的文本。

  6. Instructor Embedding:这是一个经过指令微调的文本嵌入模型,可以根据任务(例如分类、检索、聚类、文本评估等)和领域(例如科学、金融等),提供任务指令而生成相对定制化的文本嵌入向量,无需进行任何微调。

向量模型的选择可以参考 huggingface、魔塔社区等平台的榜单以及详细说明。比如 huggingface 的MTEB 榜单(Massive Multilingual Text Embedding Benchmark):https://huggingface.co/spaces/mteb/leaderboard,它评估和比较不同文本嵌入模型的基准测试性能,涵盖了多种语言和任务类型,包括法语英语中文等112种语言,涉及检索排序句子相似度推理分类聚类等任务。通过这些任务,MTEB能够评估模型在不同场景下的表现,为用户提供选择依据‌

魔塔社区(https://modelscope.cn/) 成立于2022年6月,是一个模型开源社区及创新平台,由阿里巴巴达摩院联合CCF开源发展委员会,共同作为项目发起方。魔塔社区汇集了超过300个模型,覆盖视觉、语音、自然语言处理、多模态等AI主要领域,模型数量超4万个,这些模型均经过专家筛选和效果验证。

具体在MaxKB中替换向量模型时选择哪一种?这个就需要结合上述六大分类的向量模型,并综合以下几个方面进行考量:

  1. 语义理解能力:需要能够理解句子或段落级别的语义,而不仅仅是词汇级别的相似度。处理长文本选支持 8192 tokens 的模型,短文本选轻量模型。

  2. 语言支持:仅支持中文还是需要多种语言?中文可以优先选 BGE 系列,多语言可以选OpenAI。

  3. 性能与延迟:大模型精度高但耗资源,小模型速度快。针对大规模语料的检索需要考虑计算效率和相似度检索时间。

  4. 领域适配性:有些模型对特定任务或领域(如法律、医学)需要采用专业领域模型(微调或者现有的)以提供最佳性能。

  5. 部署成本:开源模型可本地部署,如 BGE,闭源模型需API调用,如OpenAI。

根据 Hugging Face 的 MTEB 榜单中,以下是对中文效果比较好的通用型向量模型。

  • 上海合合信息的 acge_text_embedding

特点:该模型专门针对中文语言进行了优化,能够有效处理中文文本的语义特征。在 C-MTEB(Chinese Massive Text Embedding Benchmark)评测中,acge_text_embedding 获得了第一的成绩,展示了其在文本向量化和检索增强生成(RAG)中的强大性能。

适用场景:适用于需要高精度中文文本向量化的任务,如信息检索、文本分类等。

  • 阿里巴巴达摩院的 gte-large-zh

特点:基于大型语言模型,具有较强的语义理解能力。在中文文本嵌入任务中表现优异,尤其是在一些需要理解文本深层语义的场景中。

适用场景:适合需要高精度语义匹配的任务,如问答系统、文本相似度计算等。

  • 北京智源人工智能研究院的 bge-large-zh-v1.5

特点:该模型在中英文语义检索精度与整体语义表征能力上均表现出色。在中文任务中,能够较好地处理文本的语义信息。

适用场景:适用于跨语言检索、多语言文本处理等任务。

  • moka 的 m3e-base

特点:模型在多语言文本嵌入方面表现良好,对中文也有较好的支持。其特点是模型较小,适合在资源受限的环境中使用。

适用场景:适用于需要在多种语言之间进行文本嵌入和相似度计算的场景

在一些特殊领域也可以使用以下场景模型,比如面向电商、医疗等,可以按照实际场景进行选择:



是否对你有帮助?