大模型 RAG 基础:信息检索、文本向量化及 BGE-M3 embedding 实践(2024)

💡 原文中文,约8800字,阅读约需21分钟。
📝

内容提要

本文介绍了RAG技术的基础,包括文本向量化和信息检索。BERT是一种基于transformer的预训练语言模型,能够生成dense embedding。BGE-M3是一种结合了传统sparse embedding和dense embedding优点的学习型embedding。文章还介绍了BGE-M3的工作原理和实战应用。

🔎

延伸解读

从关键词到语义:信息检索的三阶段演进

文章将信息检索技术划分为三个阶段:基于统计的关键词匹配(如TF-IDF、BM25)、基于深度学习的上下文语义理解(如Word2Vec、BERT),以及学习型稀疏嵌入(如BGE-M3)。这一演进反映了检索系统从单纯依赖词频统计,逐步转向兼顾语义与精确匹配的过程。理解这一脉络,有助于读者把握不同技术的适用场景与局限。

BERT的领域外短板与稀疏嵌入的互补价值

文章指出,BERT生成的稠密嵌入严重依赖预训练数据的领域知识,在领域外检索中表现不佳,而传统稀疏嵌入因基于匹配而非学习,在领域外反而更优。学习型稀疏嵌入(如BGE-M3)结合了深度学习的语义理解与稀疏表示的可解释性和低计算复杂度,在领域外场景展现出更强的泛化能力。这一对比提醒读者,技术选型需权衡语义精度与领域适应性。

BGE-M3精调实践:数据格式与参数要点

文章详细介绍了BGE-M3的精调流程,强调训练数据需为jsonl格式,每行一个样本,且负样本字段不能为空(需写为[""])。精调时需注意query_max_len和passage_max_len最大支持8192,batch_size影响显存占用和速度,save_steps默认500可能因checkpoint过大(约7GB)导致磁盘打爆。这些实操细节对希望复现或应用BGE-M3的读者具有直接参考价值。

CPU推理优化:ONNX转换的潜力与不确定性

文章提到,若在CPU上运行BGE-M3,转为ONNX格式可能带来数倍速度提升,尤其在Intel CPU上。但官方并未提供转换文档,需借助第三方库并修改代码从本地加载模型,且效果尚待验证。这提示读者,ONNX优化虽具潜力,但需自行承担技术风险,建议在测试环境中先行验证。

❓

Q&A

RAG技术的基本概念是什么?

RAG(检索增强生成)是一种利用信息检索技术增强大模型生成效果的技术。

BGE-M3模型的主要特点是什么?

BGE-M3是基于BERT的学习型稀疏嵌入模型,具有多功能性、多语言性和多粒度特性。

信息检索技术的发展阶段有哪些?

信息检索技术发展分为三个阶段:基于统计信息的关键字匹配、基于深度学习的上下文和语义理解、学习型稀疏嵌入。

BERT模型是如何生成dense embedding的?

BERT通过多层encoder和self-attention机制,将输入文本转化为dense embedding,捕捉上下文语义。

学习型稀疏嵌入的优势是什么?

学习型稀疏嵌入结合了传统稀疏嵌入和深度学习的优点,具备精确匹配和语义理解能力,适应性强。

如何优化BGE-M3模型在CPU上的运行速度?

将BGE-M3模型转为onnx格式可以优化CPU运行速度,尤其是在Intel CPU上效果显著。

🏷️

标签

➡️

继续阅读