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

企业知识库:RAG技术实现流程总览(一)

文章目录

  • 0.引言
  • 1. 技术实现路径
    • 1.1嵌入模型(向量模型)
    • 1.2 文本切分
    • 1.3 向量数据库
    • 1.4 重排序模型
    • 1.5 总结模型
  • 2.总结

0.引言

随着大模型技术普及,越来越多企业开始注重模型应用于业务服务。更多的企业开始进入到垂直模型的赛道,但模型训练成本巨大,同时垂直领域知识命中精准度有限,于是“企业知识库”和检索增强生成 RAG技术应运而生。

检索增强生成模型结合了语言模型和信息检索技术。简单来讲,就是在向模型检索信息之前,会先想一个知识库数据集中搜索出相关的信息,然后结合这些信息再向模型进行询问,以此提高模型回答的质量和准确性。

1. 技术实现路径

RAG技术,主要包含3个核心技术:检索、增强和生成,其中官方定义如下:

  • 检索:根据用户的查询内容,从外部知识库获取相关信息。具体而言,将用户的查询通过嵌入模型转换为向量,以便与向量数据库中存储的相关知识进行比对。通过相似性搜索,找出与查询最匹配的前 K 个数据。
  • 增强:将用户的查询内容和检索到的相关知识一起嵌入到一个预设的提示词模板中
  • 生成:将经过检索增强的提示词内容输入到大型语言模型中,以生成所需的输出

结合上述官方定义,整体实现分为两个主要流程:
一是将相关知识文档通过嵌入模型(向量模型)转换为向量数据和原文本数据,一一对应存储到特殊数据库中,后续搜索时会根据向量值进行搜索

二是将搜索时同样将问题转换为向量,先去数据库中根据向量搜索相关知识,然后结合重排序模型将搜索出的知识重新归纳排序,将最相关、最有用的内容排在最前,以给后续总结模型参考时提供更加精准的知识内容。

在这里插入图片描述
这其中比较关键的几个概念,我们一一讲解:

1.1嵌入模型(向量模型)

是将高维数据(如文本、图像、音频等)映射为低维稠密向量(嵌入向量)的算法,用于捕捉数据的语义或特征关联。而这个低维稠密向量就是我们说的向量值,实际上就是一个数值数组,如下我调用自部署的嵌入模型生成的“向量模型RAG”文本的向量值
在这里插入图片描述

在ollama官网可以看到当前热度较高的嵌入模型包含nomic-embed-text,mxbai-embed-large,bge-m3,其中专门针对中文的嵌入模型主要以bg3-m3为主
在这里插入图片描述

1.2 文本切分

一般我们生产企业知识库时,会将企业内的各种文档上传用于形成知识库,而各种文档中的内容不可能原原本本的存储,就需要根据一定的规则进行切分,切分形成的每个段落再去通过向量模型转换为向量值存到向量数据库中,这里的难点就是通过一定的规则进行切分,比较简单的规则就是按照段落进行切分,但是某些情况下前后几段之间又是有上下文联系的,这时就需要根据语义切分;

同时文档可能也存在各种格式的,比如txt,xlsx,doc,pdf,png等,其中最难处理的就是pdf类型的,因为pdf中可能包含文字和图片,高精度识别pdf内容本身也是目前的技术瓶颈之一,同时图片中的文字就要结合OCR技术来实现,所以我们说文本切分是RAG技术的一个难点,文本切分得当,将大大提高搜索的准确性。

1.3 向量数据库

向量数据库专为高维向量设计,支持相似性搜索,擅长处理非结构化数据,基于欧氏距离、余弦相似度等算法执行相似性搜索,支持返回TOP K近似结果;传统数据库基于关系模型,面向结构化数据,依赖精确查询。向量数据库的本质就是将文本原文和其向量值都存储到数据库表中,搜索时通过向量值来计算相似度,然后将相似度高的原本和其他自定义字段返回。

常用的向量数据库包括Milvus, Elasticsearch, Redis, Chroma‌, Qdrant‌等,后文我们将重点以Milvus为例进行演示讲解,其他数据库大家可自己拓展学习,下图为milvus数据库的示例
在这里插入图片描述

1.4 重排序模型

初步的检索虽然能够返回大量潜在相关文档,但真正符合用户需求的高质量结果往往被淹没在海量数据中,可能分布在返回结果的任意位置,为了解决这个问题,就需要通过重排序模型对初步检索结果进行精确的相关性重新评估和排序。
我们在使用向量数据库时也可以通过向量数据库待的相似度进行排序返回结果。当向量数据库的排序不理想或者获取的文档本身没有基于相似度排序时,就可以考虑引入重排序模型。

1.5 总结模型

总结模型包括千问、deepseek,chatgpt这之类的,算是我们平时用的最多的模型,这类模型具备总结推理能力。当我们通过向量数据库搜索到相似度高的知识库内容后,就可以通过结合提示词来让模型总结内容。比如:根据以下知识库内容回答问题,如果知识库不包含问题相关内容正常回答即可: [知识库内容],问题:[问题内容]

2.总结

如上,我们针对RAG技术的各个具体技术点进行了讲解,下文我们将具体带大家来实现一个基础版的企业知识库

http://www.dtcms.com/a/317347.html

相关文章:

  • 【motion】标签体系设计与检索 1:HumanML3D 和 KIT Motion-Language(KITML)
  • 河南萌新联赛2025第(四)场【补题】
  • 键帽(dp)
  • 分布式光伏气象站:安装与维护
  • 【运维进阶】DHCP服务配置和DNS域名解析
  • 最长公共子序列-动态规划
  • 如何在linux中使用Makefile构建一个C++工程?
  • 中科米堆CASAIM机加工件来料尺寸自动化三维测量方案
  • 第十八天:C++进制之间的转换
  • 机器学习算法篇(六)贝叶斯算法
  • 基于php的个人健康管理系统设计与实现/vue/php开发
  • Leetcode题解:739每日温度,用单调栈解决问题!
  • LeetCode 91~110题解
  • Java 大视界 -- 基于 Java 的大数据实时流处理在工业物联网设备故障预测与智能运维中的应用(384)
  • 自动驾驶系统的网络安全风险分析
  • 力扣经典算法篇-45-回文数(数字处理:求余+整除,字符串处理:左右指针)
  • 【2025.08.06最新版】Android Studio下载、安装及配置记录(自动下载sdk)
  • Java 使用动态代理和反射实现字段变更跟踪
  • 一种基于潜在表征的轻量级无人机热成像超分辨率网络
  • Linux systemd 系统管理:systemctl 控制服务与守护进程
  • Redis集群核心原理与实战解析
  • Pytest项目_day04(Python做接口请求)
  • PyTorch生成式人工智能(26)——使用PyTorch构建GPT模型
  • 语言模型的多个agent
  • Java学习第一百一十部分——CI/CD
  • 输电线路防外破声光预警装置 | 防山火/防钓鱼/防施工安全警示系统
  • vue中reactive()和ref()的用法
  • FluentUI的介绍与使用案列
  • 组合期权:股票担保策略
  • Suno API V5模型 python源码 —— 使用灵感模式进行出创作