🔍 检索算法(Retrieval Algorithms)
作用: 从大量文本中找到与用户问题最相关的内容,常用于知识库问答、RAG(Retrieval-Augmented Generation)等场景。
具体包括以下几种:
-
BAAI/LLM-Embedder
- 🔧 原理: 把文本转换成密集向量(Dense Vector),通过计算这些向量之间的相似度(通常是余弦相似度)来找出相关文本。
- 🎯 优化目标: 针对“基于相似度”的语义搜索任务进行了特别优化,例如用户输入一句话,模型能找到“意思接近”的回答,而不要求词完全匹配。
- ✅ 适用场景: 语义检索、向量数据库(如FAISS、Weaviate)等。
-
BAAI/BGE-Reranker-base
- 🔧 原理: 是一个“重排序器”,对初步检索到的候选答案进行精确打分。
- 🎯 技术特点: 使用交叉熵损失函数(cross-entropy loss),这种训练方式能更精准地判断“哪个结果更相关”。
- 🛠️ 作用: 在初步检索后,提升最终排序的质量。
- ✅ 适用场景: FAQ系统、RAG中的 rerank 阶段。
-
Sentence-Transformer (all-mpnet-base-v2)
- 🔧 原理: 把句子编码成嵌入向量,然后计算它们之间的余弦相似度。
- ✅ 适用场景: 高效的语义搜索、匹配问答对、聚类。
-
BM25
- 🔧 原理: 是一种基于词频的传统检索算法,核心思想是:
- 出现次数多的词更重要(词频 TF)
- 出现在很多文档的词 权重 要降下来(逆文档频率 IDF)
- 长文档会被适当“惩罚”以防过度匹配。
- 📚 优点: 快速、无需训练、对英文等效果仍然强大。
- ✅ 适用场景: 基于关键词的检索、传统搜索引擎、倒排索引系统。
- 🔧 原理: 是一种基于词频的传统检索算法,核心思想是:
🧠 生成模型(Generation Models)
作用: 根据用户输入生成自然语言文本,常用于问答、对话、写作助手等场景。
包括:
-
LLaMA-2
- 🏗️ 类型: 因果语言模型(Causal Language Model)
- 🎯 功能: 给定一个开头,预测下一个词,直到生成完整句子。
- ✅ 适用场景: 对话系统、代码补全、内容生成。
- 🌍 由 Meta 发布,支持开源。
-
Mistral-7B
- ⚙️ 特点: 7B 参数的中小型模型,资源占用低、运行效率高。
- ✅ 适用场景: 较小算力条件下的实时应用,如本地问答、浏览器插件等。
- 📦 支持高效推理和多线程部署。
-
Starling-7B Alpha
- 🧠 技术亮点: 采用 AI 反馈强化学习(RLAIF, Reinforcement Learning from AI Feedback)
- 🎯 目标: 让模型更贴合用户意图,而不仅仅是生成“看起来对”的回答。
- ✅ 适用场景: 用户意图识别要求高的对话系统、反馈驱动优化任务。
-
Zephyr-7B Beta
- 🛠️ 技术特点:
- 实现了 蒸馏的直接偏好优化(Distilled Direct Preference Optimization, dDPO)
- 支持通过人类反馈对模型进行指令微调(fine-tuning)
- 🎯 目标: 让模型更好地“听指令”,比如问它“用 50 字总结下面这段话”就准确执行。
- ✅ 适用场景: 指令式交互、自动化流程、企业智能客服。
- 🛠️ 技术特点:
📌 总结:
模块 | 内容 |
---|---|
检索算法 | 介绍了4种不同的检索策略:基于向量的(如 BAAI/LLM-Embedder)、基于传统词频的(如 BM25)、以及精排(如 Reranker) |
生成模型 | 介绍了几种文本生成模型,重点在于不同训练技术(RLAIF、dDPO)如何提高对用户输入的理解和响应能力 |
如果你正在做一个 RAG 系统,这些模型可以这样组合使用:
- 先用 LLM-Embedder + BM25 检索候选内容,
- 再用 BGE-Reranker-base 精排提取最相关段落,
- 最后用 LLaMA-2 或 Zephyr-7B 生成回答。