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

公司名称域名网站八戒网站建设

公司名称域名网站,八戒网站建设,佛山 品牌设计,有服务器和域名怎么做网站向量数据库基础入门:RAG 与向量检索基础认知构建 📌 一、什么是 RAG? **RAG(Retrieval-Augmented Generation)**是一种结合“信息检索”和“文本生成”的技术机制,核心目标是: 🔎 检…

向量数据库基础入门:RAG 与向量检索基础认知构建

📌 一、什么是 RAG?

**RAG(Retrieval-Augmented Generation)**是一种结合“信息检索”和“文本生成”的技术机制,核心目标是:

🔎 检索外部知识来增强大语言模型(LLM)的生成质量、上下文关联性与事实准确性。

换句话说,就是让 ChatGPT 这类大模型“不再闭门造车”,而是“先查资料,再回答问题”。

📍 传统大模型的局限:

问题描述
✅ 信息闭塞训练数据静态,无法获取最新内容
❌ 容易幻觉编出不存在的内容(hallucination)
🧱 私有知识注入难企业/个人文档无法嵌入模型权重
💰 模型训练成本高想更新知识只能再训练/微调

✅ RAG 的优势:

模块功能
检索模块(Retriever)从知识库找出与提问最相关的信息
生成模块(LLM)利用检索结果 + 问题生成答案
整体效果保留 LLM 语言能力 + 增加知识精度与更新能力

🧱 二、RAG 的结构框架与标准工作流程

向量数据库的结构

如图所示
在这里插入图片描述
这张图展示的是:

如何将经过深度学习模型编码的向量(向量化后的 chunk)写入 Qdrant,并如何支持多种查询方式(点积、欧几里得距离、余弦相似度)进行高效语义检索。

用户输入
Embedding模型
Qdrant向量库
向量相似度检索
拼接上下文 + PromptTemplate
生成回答

🧱 图中模块分解讲解
我们来按结构顺序,从左至右、从下至上拆解讲解:

  1. 底部:深度学习模型 + 数据来源
    数据来源:

.py files 表示 ML 工程师使用 Python 写的嵌入模型代码
Data 表示用来训练或推理的文本、图像、标签等

深度学习模型:

模型可以是嵌入模型(如 BERT、bge、E5)
输入的是文字或图像(如猫图、狗图)
输出的是一个固定长度的向量(比如 768维)

💡你可以理解为:这是将 chunk 转为向量的过程。

🟢 2. 中间:Points + Payload 存储结构
这一块是整个图的核心结构,构成了 Qdrant 中的“点集存储结构”(Points)。

每个向量点由三部分组成:

成员含义示例
idx向量的唯一索引"doc_001_chunk_01"
vector实际的嵌入向量[0.012, -0.293, ..., 0.087]
p / Payload该向量的元信息(非向量内容){"url":..., "color":"white"}

📘 Payload 是什么?
Payload 是非向量数据,但与向量关联:
类似于“标签 / 源信息 / 分类属性”
在 RAG 中经常用于:
来源文档 URL
文档类型(pdf/markdown)
主题类别(如“金融” / “医疗”)

🟢 3. 上方:多种相似度计算方式
Qdrant 支持三种检索方式:

距离计算方式含义应用场景
Euclidean Distance(欧几里得距离)基于直线距离距离越小越相似
Dot Product(点积)两个向量方向一致性高阶匹配任务
Cosine Similarity(余弦相似度)✅看向量夹角是否接近最常用于文本匹配

🟩 4. 右上角:Collections
Qdrant 允许你创建多个“集合”(collections):

每个 collection 可以理解为一个独立的向量表

比如:

collection_1: 产品知识库
collection_2: 技术手册库
collection_3: 用户反馈数据
你可以在 RAG 系统中根据业务拆分多个知识集合,提高检索效率。

🧑‍💻 5. 左侧:客户端调用方式
开发者可以用多种语言来操作 Qdrant 接口:

Python:最常见,用于 RAG 项目中配合 LangChain/LlamaIndex
Rust:Qdrant 原生语言
Go、TypeScript:也可用于服务端/前端集成
→ 在 RAG 系统中,通常是用 Python SDK 操作 Qdrant。

🧠 总结:这张图在 RAG 系统中的意义

功能对应图中内容作用
文档嵌入Deep Learning Model 输出 vector将 chunk 向量化
知识存储Qdrant 的 Points存储向量 + metadata
检索能力Cosine / Dot / Euclidean支持多方式相似度计算
数据管理Collections + Payload多集合 + 精细过滤
开发集成Python 等客户端用于构建 RAG 应用接口

RAG的工作流程

RAG 的核心目标是:

让大语言模型(LLM)具备“查资料再回答”的能力。

它结构上是两大部分协同:

模块功能常见工具
用户输入提供查询意图输入界面 / API
嵌入模型(Embedder)将用户输入转为向量(语义表示)OpenAI、bge、E5
向量数据库(Vector Store)存储所有文档向量,支持相似度检索FAISS、Qdrant
检索器(Retriever)从向量库中取 Top-k 最相关内容LangChain Retriever / LlamaIndex Retriever
Prompt 构建器把用户问题 + 检索内容拼成 LLM 的输入PromptTemplate
LLM(生成器)用 LLM 生成文本回答GPT-4、Claude、Moonshot
答案输出传给用户,支持附带来源UI、API 响应

📌 小提示:
有时候 RAG 也会加入一个 Reranker:对 Top-K 检索结果进行再排序,以提升精准度。

Chunk(文档切块)大小、检索 Top-K 个数、拼接上下文长度,这些都会影响最终效果。

三、向量检索机制详解(RAG 的底层引擎)

1️⃣ 什么是文本向量化(Embedding)?

嵌入模型将一段文本变成一个固定长度的高维向量:
“图神经网络是一种处理图结构数据的模型”-> [1,2,3]
🛠 常用嵌入模型:

模型优势是否开源
text-embedding-ada-002OpenAI 出品,泛用性强
bge-base-zh, bge-m3中文效果非常好
E5, GTE, Cohere-embed英文任务性能优

文本是如何被向量化的?(向量检索底层机制)

文本嵌入就是:将自然语言文本编码为一个向量(向量表示其语义特征)。

举例说明:
输入句子:“图神经网络可以用于社交网络分析”
输出向量:一个 768 维的浮点数组,比如:
[0.0231, -0.0452, 0.3164, …, -0.0017] # len = 768 or 1536

是句子还是词?——取决于模型类型

嵌入模型输入粒度输出向量代表
OpenAI text-embedding-ada-002整段文本(几句话也行)整体句向量
bge-base支持句子级句向量
E5支持问答分开训练(Query/Passage)Query 向量 + 文档向量匹配
Word2Vec、GloVe词级嵌入(token)每个词一个向量(过时)

💡 在 RAG 中:

一般是 对一个段落 / chunk 进行整体嵌入,输出一个句向量或段落向量,用来做语义检索匹配。

嵌入模型内部是如何做的?
虽然不同模型实现不同,但基本结构如下

文本 → 分词(Tokenizer)→ 转ID → 送入 Transformer → Pooling(平均/首位)→ 得到整体向量

详细流程(以 BERT 为例):
文本分词(tokenize):

“图神经网络可以用于社交网络分析”

→ [“图”, “神经”, “网络”, “可以”, “用于”, “社交”, “网络”, “分析”]

编码为 token ids,输入模型

输出多个 token 向量 → 做 Pooling:

[CLS] 向量(句首代表)或平均所有 token 向量

得到整句的语义向量:用于表示整个 chunk 的“意思”

RAG 中 embedding 应该如何做?

Chunk嵌入粒度推荐做法
一句话可以嵌入,但语义太少,不稳定
一段话(300~600字)✅ 最佳嵌入单元
一个页面太大,丢失重点,模型输入也受限

→ 所以常见做法是:

文档 → 按段切分成 chunk → 每个 chunk 嵌入 → 存入向量库

🔍 一个完整例子:embedding 到检索
文档片段(chunk):
“图神经网络是一种对图结构数据建模的方法,能用于社交网络中用户关系的表示与预测。”

用 bge-m3 模型对它做 embedding → 得到一个 1024维向量

用户输入问题:“怎么用 GNN 分析用户关系?”

把问题也做 embedding → 得一个 query 向量

然后计算 query 向量与所有 chunk 向量的相似度 → 取最相似的 Top-K 段作为 LLM 输入上下文

2️⃣ 什么是 Chunk?为什么要切分文档?

一个 100 页的 PDF 不能直接嵌入 → 要拆成小块(chunk)
每个 chunk 生成一个向量,存进向量数据库
检索时才好比对语义相似度

📐 Chunk 切分的关键点:

策略说明
固定长度切分每 500 字分一块,容易实现但有时割裂语义
滑动窗口有重叠区域,避免信息割裂(例如 500 长度 + 100 overlap)
按标题/段落切分更智能,适合结构化文本,如 Markdown、PDF

3️⃣ 什么是向量数据库?有什么用?

向量数据库(Vector Database)是用来存储所有向量化的 chunk,并能快速返回“与某个查询向量最相近的几个结果”。

📦 常见向量数据库:

名称优点部署方式
FAISS本地运行、轻量级、无依赖
Qdrant支持 Metadata 检索、API 友好
Milvus海量向量支持、企业级
Weaviate多模态扩展性好
PineconeSaaS 服务,免部署❌(收费)

4️⃣ 如何检索 Top-K 相似内容?
核心方法是:相似度计算(通常是余弦相似度
vec(q): 用户问题的向量
vec(v): 向量库中每个 chunk 的向量
Top-K:选出最相似的前 K 个 chunk 作为“候选知识”

四、从输入到输出:一次完整的 RAG 流程拆解(举例)

用户输入:“请解释图神经网络在社交网络分析中的作用”

✅ 系统执行过程:

🔍 嵌入模型将问题转为向量 q

📚 检索向量库,找到如下几个 chunk(知识段):

“图神经网络能在节点之间建模信息传播”

“在社交网络中,GNN 可用于推荐好友关系”

🧩 Prompt 拼接(简化示意):

【知识支持】

  1. 图神经网络能在节点之间建模信息传播。
  2. 在社交网络中,GNN 可用于推荐好友关系。

【用户问题】
请解释图神经网络在社交网络分析中的作用。

🤖 LLM 根据内容生成答案:

图神经网络(GNN)在社交网络分析中可建模用户之间的关系并进行推荐,如好友预测、群组划分等…

特征传统 IR + QA纯LLM✅ RAG
精度高,但模板化语言自然,但常幻觉高精度 + 高语言自然度
更新能力强,可换文档差,需要重训强,可更新文档库
灵活性较差
应用难度中高(但最值得)
http://www.dtcms.com/a/523236.html

相关文章:

  • wordpress去掉页眉东营网站优化
  • 运城网站制作公司网站搬家图片怎么做
  • 网站编程培训公司手机参数查询网站
  • 十堰市茅箭区建设局网站海南网站推广
  • 合肥做核酸最新通知淄博网站制作建设优化
  • tk域名网站系统开发定制
  • 网站不收录排名会降吗wordpress文章分组授权
  • 营销型品牌网站建设财务管理咨询
  • .asp 网站shopify建站公司
  • 深圳网站建设公司收费服务器运维
  • 做刷票的网站网站建设案例 杭州远大
  • 完成网站建设的心得体会翻译公司网站建设多少钱
  • 装饰网站卧室做炕百度介绍做ppt高大上图表的网站
  • 网站建设行业如何wordpress缩略图和文章摘要
  • 长沙做网站咨询公司自己制作一个网站需要多少钱
  • 资源网站建设简述电子商务网站建设的基本要求
  • 大理市城乡建设局网站在线crm
  • o2o 网站wordpress的主题下载地址
  • 做100个网站挂广告联盟住小帮装修案例
  • 盘锦威旺做网站建设科技型中小企业服务平台
  • 升腾d9116 做网站wordpress安装说明seo工具好用
  • 青岛网站seo诊断大理中小企业网站建设
  • 苏州相城做网站的建设公司网站需要准备什么
  • 脉脉用的什么技术做网站精品无人区高清不用下载
  • 做美食网站的模板wordpress首页新闻显示数量
  • 免费建站网站 百度一下建设个电商平台网站需要多少钱
  • 网站建设属于那个科目网站设计培训班
  • 网站论坛 备案淘宝电商运营
  • 网站建设推广新业务wordpress模板查询
  • 石家庄市工程建设造价管理站网站网站生成移动版