当前位置: 首页 > news >正文

deepseek r1从零搭建本地知识库10:嵌入模型和知识库建设

一、嵌入模型(Embedding Model)是什么?

1. 定义
  • 嵌入模型是一种将文本、图像、音频等非结构化数据转化为**低维稠密向量(Dense Vector)**的算法模型,这些向量(通常几百到几千维)能够捕捉数据的语义信息。

  • 核心目标:将抽象内容转化为计算机可理解的数值形式,同时保留其语义关联性。

2. 关键特性
  • 语义保留:相似内容的向量在向量空间中距离相近(例如“猫”和“犬”的向量距离较近)。

  • 跨模态对齐:部分模型可对齐不同模态(如文本与图片)的向量空间(CLIP模型)。

  • 降维压缩:将高维稀疏数据(如One-Hot编码)压缩为低维稠密表示。

3. 常见类型
  • 词嵌入(Word Embedding):如Word2Vec、GloVe,为单个词生成向量。

  • 句嵌入(Sentence Embedding):如BERT、Sentence-BERT,为整句或段落生成向量。

  • 多语言嵌入:如LASER、mBERT,支持跨语言语义对齐。


二、嵌入模型在本地知识库建设中的作用

本地知识库通常指企业或组织内部构建的结构化/半结构化数据仓库(如文档、FAQ、产品资料),嵌入模型是其实现智能化的核心技术之一,作用如下:

1. 知识库数据预处理
  • 语义向量化:将知识库中的文档、段落、问答对转化为向量,构建向量数据库(如使用FAISS、Milvus存储)。

  • 示例
    一篇技术文档 → 分割为段落 → 每个段落生成向量 → 存入向量库。

2. 语义搜索与检索
  • 传统问题:关键词匹配无法处理同义词(如“笔记本” vs “笔记本电脑”)或语义泛化(如“如何开机” vs “启动设备的方法”)。

  • 嵌入模型方案

    • 用户输入查询语句 → 转化为查询向量 → 与知识库向量比对(余弦相似度)→ 返回最相关结果。

    • 优势:支持模糊语义匹配,提升搜索准确率。

3. 知识去重与聚类
  • 去重:计算文档向量相似度,合并重复或高度相似内容(如不同版本的合同)。

  • 聚类:将知识库内容按主题自动分组(如技术文档分类为“API指南”“故障排查”等)。

4. 问答系统与推荐
  • 问答匹配:将用户问题与知识库问答对向量匹配,实现智能客服。

  • 关联推荐:根据当前浏览内容推荐相关知识条目(如“阅读本产品文档的用户也查看了XXX”)。

5. 知识图谱补全
  • 实体链接:将非结构化文本中的实体(如人名、产品名)链接到知识图谱中的节点。

  • 关系推断:通过向量相似度推测实体间潜在关系。


三、本地知识库建设中嵌入模型的落地流程

1. 模型选型
  • 需求场景

    • 中文场景:选BGE中文版、M3E、Ernie-3.0。

    • 多语言场景:选mxbai-embed-large、E5。

    • 轻量级部署:选all-MiniLM-L6-v2(仅80MB)。

  • 开源 vs 商业API
    若数据敏感需本地化,选择开源模型(如Sentence Transformers);若追求效果且无隐私顾虑,可调用OpenAI/Cohere API。

2. 数据处理与向量化
  • 数据清洗:去除噪声(HTML标签、乱码)、标准化文本格式。

  • 分块策略

    • 短文本(QA对):直接整体向量化。

    • 长文本(文档):按段落或滑动窗口分块(如每512 tokens一段)。

  • 向量生成:调用嵌入模型批量处理文本,生成向量并存储。

3. 向量数据库构建
  • 工具选择

    • 轻量级:FAISS(Facebook开源的向量检索库)。

    • 分布式:Milvus、Elasticsearch(支持混合检索)。

  • 优化技巧

    • 索引类型:HNSW(兼顾速度与精度)。

    • 元数据关联:向量ID与原始文本路径绑定。

4. 检索与交互优化
  • 混合搜索:结合向量相似度(语义)与BM25(关键词)加权得分。

  • 重排序(Rerank):对初筛结果使用更精细的模型(如Cohere Rerank)二次排序。

  • 反馈学习:记录用户点击数据,持续优化模型或检索策略。


四、挑战与解决方案

挑战解决方案
长文本语义丢失使用支持长上下文的模型(Jina Embeddings)
多语言混合检索采用多语言嵌入模型(mxbai-embed-large)
高并发性能瓶颈部署向量缓存层(Redis)或分布式检索
领域适配性差微调嵌入模型(LoRA适配企业专有术语)

五、嵌入模型排行榜

六、相关章节

deepseek r1从零搭建本地知识库11:嵌入模型-跟着榜单去选型-CSDN博客

相关文章:

deepseek r1从零搭建本地知识库10:嵌入模型和知识库建设

一、嵌入模型(Embedding Model)是什么? 1. 定义 嵌入模型是一种将文本、图像、音频等非结构化数据转化为**低维稠密向量(Dense Vector)**的算法模型,这些向量(通常几百到几千维)能够…...

Linux-文件IO

1.open函数 【1】基本概念和使用 #include <fcntl.h> int open(const char *pathname&#xff0c;int flags); int open(const char *pathname&#xff0c;int flags&#xff0c;mode_t mode); 功能: 打开或创建文件 参数: pathname //打开的文件名 f…...

3d pose 学习笔记2025

目录 champ nlf 3dpose 2025 55个关键点 推理代码: 要设置环境变量: 依赖项metrabs 渲染代码: tram4d 脚也不是特别好 GVHMR脚对不齐 推理代码: multiperson 2023年 genhmr还没开源: champ https://zhuanlan.zhihu.com/p/700326554 nlf 3dpose 2025 55个关键点…...

LC-随机链表的复制、排序链表、合并K个升序链表、LRU缓存

随机链表的复制 为了在 O(n) 时间复杂度内解决这个问题&#xff0c;并且使用 O(1) 的额外空间&#xff0c;可以利用以下技巧&#xff1a; 将新节点插入到原节点后面&#xff1a;我们可以将复制节点插入到原节点后面。例如&#xff0c;如果链表是 A -> B -> C&#xff0c…...

静态页面在安卓端可以正常显示,但是在ios打开这个页面就需要刷新才能显示全图片

这个问题可能有几个原因导致,我来分析一下并给出解决方案: 首要问题是懒加载实现方式的兼容性问题。当前的懒加载实现可能在 iOS 上不够稳定。建议修改图片懒加载的实现方式: // 使用 Intersection Observer API 实现懒加载 function initLazyLoading() {const imageObserver…...

四元数如何用于 3D 旋转(代替欧拉角和旋转矩阵)【ESP32指向鼠标】

四元数如何用于 3D 旋转&#xff08;代替欧拉角和旋转矩阵&#xff09; 在三维空间中&#xff0c;物体的旋转可以用 欧拉角、旋转矩阵 或 四元数 来表示。 四元数相比于欧拉角和旋转矩阵有 计算更高效、避免万向锁、存储占用少 等优点&#xff0c;因此广泛用于 游戏开发、机器…...

JavaScript 内置对象-日期对象

在JavaScript中&#xff0c;处理日期和时间是一个常见的需求。无论是显示当前时间、计算两个日期之间的差异&#xff0c;还是格式化日期字符串&#xff0c;Date 对象都能提供强大的支持。本文将详细介绍 Date 对象的使用方法&#xff0c;包括创建日期实例、获取和设置日期值、以…...

本地大模型编程实战(19)RAG(Retrieval Augmented Generation,检索增强生成)(3)

文章目录 准备创建矢量数据库对象创建 LangGraph 链将检索步骤转化为工具定义节点构建图 见证效果qwen2.5llama3.1MFDoom/deepseek-r1-tool-calling:7b 总结代码参考 上一篇文章我们演练了一个 用 langgraph 实现的 RAG(Retrieval Augmented Generation,检索增强生成) 系统。本…...

DeepSeek与ChatGPT:AI语言模型的全面对决

DeepSeek与ChatGPT&#xff1a;AI语言模型的全面对决 引言&#xff1a;AI 语言模型的时代浪潮一、认识 DeepSeek 与 ChatGPT&#xff08;一&#xff09;DeepSeek&#xff1a;国产新星的崛起&#xff08;二&#xff09;ChatGPT&#xff1a;AI 界的开拓者 二、DeepSeek 与 ChatGP…...

2024年年终总结

2024年终于过去了&#xff0c;这绝对是我人生中最惨痛的一年&#xff01;被小人欺骗、被庸人耽误、被自己蠢到&#xff01;不由的让我想起了22年那次算命&#xff0c;算命先生说我十年低谷期&#xff0c;如果从15年进创业公司开始&#xff0c;24年是最后一年&#xff0c;果然应…...

利用 Valgrind 检测 C++ 内存泄露

Valgrind 是一款运行在 Linux 系统上的编程工具集&#xff0c;主要用于调试和分析程序的性能、内存使用等问题。其中最常用的工具是 Memcheck&#xff0c;它可以帮助检测 C 和 C 程序中的内存管理错误&#xff0c;如内存泄漏、使用未初始化的内存、越界访问等。 安装 这里我以…...

Python中的HTTP客户端库:httpx与request | python小知识

Python中的HTTP客户端库&#xff1a;httpx与request | python小知识 在Python中&#xff0c;发送HTTP请求和处理响应是网络编程的基础。requests和httpx是两个常用的HTTP库&#xff0c;它们都提供了简洁易用的API来发送HTTP请求。然而&#xff0c;httpx作为新一代的HTTP客户端…...

【Python】Python入门基础——环境搭建

学习Python&#xff0c;首先需要搭建一个本地开发环境&#xff0c;或是使用线上开发环境&#xff08;各类练习网站&#xff09;&#xff0c;这里主要记录本地开发环境的配置。 目录&#xff1a; 一、下载和安装python解释器 官网下载地址&#xff1a;Download Python | Pytho…...

2025 pwn_A_childs_dream

文章目录 fc/sfc mesen下载和使用推荐 fc/sfc https://www.mesen.ca/docs/ mesen2安装&#xff0c;vscode安装zg 任天堂yyds w d 左右移动 u结束游戏 i崩溃或者卡死了 L暂停 D658地方有个flag 发现DEEE会使用他。且只有这个地方&#xff0c;maybe会输出flag&#xff0c;应…...

面试题整理:操作系统

文章目录 操作系统操作系统基础1. 操作系统的功能&#xff1f;2. 什么是用户态和内核态&#xff1f; 进程和线程1. 是什么&#xff1f;区别&#xff1f;2. ⭐线程间的同步的方式有哪些&#xff1f;3. PCB 是什么&#xff1f;包含哪些信息&#xff1f;4. 进程的状态有哪些&#…...

构建未来教育的基石:智慧校园与信息的重要性

随着科技的迅猛发展&#xff0c;教育领域正经历一场深刻的变革。在这个过程中&#xff0c;“智慧校园”作为教育信息化的重要实践&#xff0c;扮演着不可或缺的角色。智慧校园不仅仅是硬件设施的升级&#xff0c;更是一种全新的教育理念&#xff0c;强调利用信息技术优化教育资…...

C# 控制台相关 API 与随机数API

C# 控制台相关 API 与随机数API 控制台输入输出 功能说明 Console.WriteLine(string): 输出字符串并换行Console.Write(string, string): 输出字符串不换行Console.ReadLine(): 等待用户输入并返回字符串Console.ReadKey(bool).KeyChar: 读取按键&#xff0c;指定是否显示输…...

【踩坑】⭐️MyBatis的Mapper接口中不建议使用重载方法

目录 &#x1f378;前言 &#x1f37b;一、背景 &#x1f379;二、问题处理 &#x1f49e;️三、处理方法 &#x1f378;前言 小伙伴们大家好&#xff0c;很久没有水..不是&#xff0c;写文章了&#xff0c;都收到系统的消息了&#xff1b;我算下时间&#xff0c;上周是单休…...

CSS Grid 网格布局,以及 Flexbox 弹性盒布局模型,它们的适用场景是什么?

CSS Grid网格布局和Flexbox弹性盒布局模型都是现代CSS布局的重要工具&#xff0c;它们各自具有独特的优势和适用场景。 作为前端开发工程师&#xff0c;理解这些布局模型的差异和适用场景对于编写高效、可维护的代码至关重要。 CSS Grid网格布局 适用场景&#xff1a; 复杂…...

HDFS体系结构

HDFS 支持主从结 构 &#xff0c; 主节 点 称为 NameNode &#xff0c;从节点称为 DataNode HDFS中还包含一个 SecondaryNameNode 进程&#xff0c;只要辅助主节点 公司BOSS&#xff1a;NameNode &#xff08;NN&#xff09; 秘书&#xff1a;SecondaryNameNode (2NN) 员工&a…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

【java面试】微服务篇

【java面试】微服务篇 一、总体框架二、Springcloud&#xff08;一&#xff09;Springcloud五大组件&#xff08;二&#xff09;服务注册和发现1、Eureka2、Nacos &#xff08;三&#xff09;负载均衡1、Ribbon负载均衡流程2、Ribbon负载均衡策略3、自定义负载均衡策略4、总结 …...

背包问题双雄:01 背包与完全背包详解(Java 实现)

一、背包问题概述 背包问题是动态规划领域的经典问题&#xff0c;其核心在于如何在有限容量的背包中选择物品&#xff0c;使得总价值最大化。根据物品选择规则的不同&#xff0c;主要分为两类&#xff1a; 01 背包&#xff1a;每件物品最多选 1 次&#xff08;选或不选&#…...

Easy Excel

Easy Excel 一、依赖引入二、基本使用1. 定义实体类&#xff08;导入/导出共用&#xff09;2. 写 Excel3. 读 Excel 三、常用注解说明&#xff08;完整列表&#xff09;四、进阶&#xff1a;自定义转换器&#xff08;Converter&#xff09; 其它自定义转换器没生效 Easy Excel在…...