BGE 嵌入模型快速教程:5 分钟用 FlagEmbedding 跑通第一次文本检索
BGE 嵌入模型快速教程5 分钟用 FlagEmbedding 跑通第一次文本检索【免费下载链接】FlagEmbeddingRetrieval and Retrieval-augmented LLMs项目地址: https://gitcode.com/GitHub_Trending/fl/FlagEmbedding给大模型搭 RAG检索增强生成先搜资料再让模型作答知识库时卡点往往不在模型而在检索用户问请假怎么申请向量搜索却捞回一段关于考勤制度的文字模型拿着错误的上下文只能一本正经地胡说。FlagEmbedding 就是为解决这类检索不准问题而生的开源工具包它的 BGE 系列嵌入模型BAAI General Embedding把文本转成高精度语义向量召回、重排、微调、评测的代码都在同一个仓库里。这篇指南按它是什么 → 硬指标 → 适用场景 → 动手跑通 → 选模型的顺序走一遍全程不需要 GPU。项目一句话定位FlagEmbedding 是 MIT 协议可免费商用的检索与 RAG 全链路工具包嵌入模型负责召回——把文本变成数值向量向量越接近代表语义越相似交叉编码器重排模型负责精排——把问题和候选文档放在一起逐对打分比单独看向量更准。代码层面只需一个FlagAutoModel入口根据模型名自动选择正确的加载类且内置映射不仅覆盖 BGE 全系还兼容 E5、GTE、Qwen3-Embedding 等第三方嵌入模型换模型不用重写推理代码。用数字说话 指标BAAI/bge-m3bge-*-v1.5 系列支持语言数100单语言中文、英文分开最大输入长度8192 tokens512 tokens向量维度1024384 / 768 / 1024small/base/large检索方式密集 稀疏 多向量ColBERT三合一密集2023 年发布的 bge-large 系列曾同时位列 MTEB 与 C-MTEB 榜首C-MTEB 是智源自建的中文嵌入基准含 31 个测试集。BGE-M3 是首个同时支持密集、稀疏BM25 类词项匹配和多向量检索三种方式的嵌入模型官方推荐的 RAG 配方混合检索 重排用它一次前向就能同时产出稠密向量和稀疏权重不用额外部署 BM25。重排家族从轻量的 bge-reranker-v2-m3 到 LLM 化的 bge-reranker-v2.5-gemma2-lightweight支持自由选层、token 压缩以加速推理都有。包版本 1.4.0核心依赖只有 torch、transformers、sentence-transformers 等常见库。哪些场景用得上中文知识库问答。你在公司内网给 HR 制度、产品文档搭问答机器人用户提问措辞和文档表述对不上请假vs休假申请流程。v1.5 中文模型默认就带查询指令为这个句子生成表示以用于检索相关文章专为弥合这种措辞差异训练。跨语言搜索。客服系统要处理 100 多种语言的用户提问或者拿中文问题去搜英文文档。BGE-M3 在 MIRACL多语言检索基准和 MKQA跨语言问答基准上是为此设计的主力一套模型覆盖多语种不用为每种语言各训一个。长文档检索。法律合同、技术手册、论文动辄上万词512 token 截断会直接丢信息。BGE-M3 支持 8192 token 输入官方还配套发布了覆盖 13 种语言的长文档检索数据集 MLDR 作为验证基准。5 分钟亲手体验 克隆仓库并安装需要微调时把最后一行换成pip install -e .[finetune]会额外带上 deepspeed 和 flash-attngit clone https://gitcode.com/GitHub_Trending/fl/FlagEmbedding cd FlagEmbedding pip install -e .然后用仓库 README 同款的最小示例生成第一份相似度矩阵首次运行会自动下载模型from FlagEmbedding import FlagAutoModel model FlagAutoModel.from_finetuned(BAAI/bge-small-en-v1.5, query_instruction_for_retrievalRepresent this sentence for searching relevant passages:) q, p What is the capital of France?, Paris is the capital of France. print(model.encode([q]) model.encode([p]).T)预期输出一个相似度数值相关句对约 0.79 量级若把 p 换成不相关句子仓库示例中为 I love machine learning分数会掉到 0.45 左右——正确的排序信号就体现在这个差距里。CPU 即可运行FlagModel还支持devicescuda:0指定 GPU。三种场景的模型选择你的情况推荐模型中/英单语文档 ≤512 tokens想先快速验证BAAI/bge-small-en-v1.5 或 bge-base-zh-v1.5要更高召回精度用 large多语言、长文档8192 tokens、要混合检索BAAI/bge-m3召回之后想再提精度加 BAAI/bge-reranker-v2-m3轻量多语或 bge-reranker-large更准但更慢想用 LLM 做嵌入BAAI/bge-multilingual-gemma2多语或 bge-en-icl英文支持喂入示例做上下文学习判断顺序很简单先看语言数和文档长度定嵌入模型召回质量不够再叠一个重排器最后都不满足再考虑微调。下一步可以做什么 微调自己的领域模型examples/finetune/embedder/ 提供 encoder/decoder 两类脚本和 jsonl 示例数据scripts/hn_mine.py 用于挖掘难负例与正例很像但错误的干扰文档是提升召回的关键数据工程。跑标准评测examples/evaluation/ 覆盖 MS MARCO、MTEB、BEIR、MIRACL、MLDR 等基准可直接对比你的模型与 BGE 默认模型。系统性教程Tutorials/ 按 7 个模块组织嵌入 → 相似度指标 → Faiss 索引 → 评测 → 重排 → RAG → 微调路线图如下深入研究方向research/ 收录了 BGE-M3、LLaRA、Visual-BGE、LM-Cocktail 等实验项目的完整代码。如果你在找开箱即用、中英文/多语言检索都有现成模型、不够准时还有完整微调链路的嵌入方案FlagEmbedding 是最省事的选择之一。建议现在就跑一遍上面的 5 分钟示例然后给自己的文档库测一次召回再看要不要加重排器。【免费下载链接】FlagEmbeddingRetrieval and Retrieval-augmented LLMs项目地址: https://gitcode.com/GitHub_Trending/fl/FlagEmbedding创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考