趋近智
现在我们已了解了向量嵌入是什么,下一步自然就是了解它们是如何创建的。虽然理论上你可以从零开始训练自己的嵌入模型,但绝大多数应用都依赖于强大的预训练模型。这些模型已在海量文本数据上进行过训练,使它们能够有效捕捉词语和句子之间复杂的语义关联,从而大大节省时间和计算资源。
目标是找到那些擅长生成嵌入的模型,使得语义相似的句子在向量空间中对应的向量距离相近(例如,具有高余弦相似度,cos(θ))。这正是 RAG 中检索步骤所需要的。
当今许多最成功且应用广泛的嵌入模型都基于Transformer 架构,它彻底改变了自然语言处理 (NLP)。然而,直接使用 BERT 等标准 Transformer 模型的原始输出进行句子相似度任务,通常会产生不理想的结果。这些模型主要针对遮蔽语言建模等任务进行预训练,不一定直接用于生成即用型、可比较的句子级嵌入。
为了解决这个问题,已发展出专门的架构和微调策略。一个专门为生成高质量句子嵌入而设计的知名模型系列是 Sentence-BERT (SBERT) 及其众多变体。
SBERT 通过使用孪生网络结构修改了标准 BERT 架构。在这种设置下,两个相同的预训练 Transformer 网络并行处理两个输入句子。输出(通常是池化后的句子嵌入)随后使用相似度指标进行比较。SBERT 在大量标注了相似度(例如,语义文本相似度 (STS) 基准)的句子对数据集上进行微调。此训练过程专门优化模型,使其生成的嵌入中,相似句子具有高余弦相似度分数。
基于 SBERT 的模型的主要优势包括:
sentence-transformers 库建立在 PyTorch 和 TensorFlow 等框架之上,提供了对各种预训练 SBERT 和其他句子嵌入模型的便捷访问。一些你将遇到的常见例子包括:
all-MiniLM-L6-v2:一个流行且均衡的模型,性能良好,体积相对较小,推理速度快。它是许多通用任务的良好起点。multi-qa-mpnet-base-dot-v1:此模型专门为语义搜索任务进行微调,特别适用于问答场景,即根据查询(问题)查找相关段落(答案)。它在非对称搜索任务(查询和文档形式不同)中通常表现良好。paraphrase-multilingual-mpnet-base-v2:这是一个多语言模型的例子,能够跨不同语言生成可比较的嵌入。如果你的知识库包含多语言文档,这很有价值。这些模型通过 Hugging Face Hub 等平台易于获取,并且通常直接集成到 RAG 框架中。
选择合适的嵌入模型是构建 RAG 系统的重要一步。请考虑以下因素:
all-MiniLM-L6-v2 这样的模型在许多用例中能取得良好平衡。通常需要进行实验。你可以从通用模型开始,并评估它在你特定任务和数据上的表现。如果检索质量不佳,你可以再尝试更专业或更大的模型。
这些预训练模型为将你的文本文档和用户查询转换为有意义的向量表示提供了支撑,这些向量表示是接下来将讨论的相似度搜索机制所必需的。它们是现代 RAG 系统中有效信息检索的重要组成部分。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
sentence-transformers库的官方文档,提供了实用指南、模型示例和实现细节。© 2026 ApX Machine Learning用心打造