【LLM应用开发】一文搞懂:LLM应用核心之向量数据库和向量查询

一、前言

  • 向量数据库和向量查询是大语言模型(LLM)应用的核心之一

二、什么是向量数据库?

1.🧠 一句话解释
  • 向量数据库就是用来存放「文本、图片等非结构化数据」的“数学表达(向量)”的数据库;
  • 支持模糊语义搜索,而不是精确匹配
2.✅ 关键概念:向量(Vector)
  • 向量是一个数字数组,比如:
[0.23, -0.91, 0.15, ..., 0.07]
  • 这些数字表示一段文本的语义特征,是用大模型(如 BERT, OpenAI embedding)生成的。
3.拓展:❓ “同一个问题,每次生成的向量表示会一样吗?”

简短回答通常是一致的,只要你使用的是确定性(非随机)的 embedding 模型
🧠 详细解释
✅ 如果你用的是常见的嵌入模型,例如:

  • OpenAI text-embedding-ada-002
  • HuggingFace 的 sentence-transformers
  • Cohere、百度 ERNIE、阿里 AliceMind 等
  • 这些模型都是 确定性模型(deterministic):【同一个输入 → 得到的向量始终相同

⚠️ 有例外吗?:有,以下情况会导致向量不一致:

情况原因
模型内部用了随机性(少见)某些训练中的 embedding 可能存在 Dropout 等
输入前处理不一致比如去没去掉空格、换行、大小写
你使用了多个模型版本模型参数或训练数据不同
使用了 ChatGPT 直接嵌入生成GPT 模型不是 embedding 模型,非稳定输出

✅ 如何保证一致性?

  • ✅ 使用专门的嵌入模型(如 text-embedding-ada-002)
  • ✅ 保证输入文本一致(大小写、空格、标点)
  • ✅ 控制版本和参数不变

🧪 示例验证(用 OpenAI)

from openai import OpenAIEmbeddings

emb = OpenAIEmbeddings()
v1 = emb.embed_query("What is vector search?")
v2 = emb.embed_query("What is vector search?")

print(v1 == v2)  # ✅ True(完全一致)

三、向量数据库能做什么?

  • 传统数据库只能问:“这个名字等于 Alice 的记录在哪里?” ✅ 支持精确搜索!
  • 向量数据库可以问:“哪些内容的意思跟 ‘如何学 AI’ 类似?” ✅ 支持语义搜索!

四、类比 / 举例

类比:图书馆 vs 图书推荐机器人

系统功能说明
传统数据库 📚像图书馆按编号精确查找一本书
向量数据库 🤖像智能机器人按“你说的话”推荐相关书籍

举个具体例子

  • 1.假设你有 3 段知识内容:
    • a.“大模型是如何工作的?”
    • b.“向量数据库用于保存嵌入向量。”
    • c.“北京的天气很好。”
  • 2.现在你问了一个问题:“什么是向量搜索?”
  • 3.👇 系统怎么做
  • a.把你的问题用 OpenAI 的嵌入模型转成向量:
[0.12, -0.88, ..., 0.01]
  • b.把这个向量在数据库中“找最近的”:
    • 发现 #2 “向量数据库…” 和它最相近 ✅
  • 对 [步骤b] 的拓展:怎么理解或者衡量“最接近”?
    • 在向量数据库中,“最接近”通常指:两个向量之间的距离最短,或者方向最相似。
    • 常用的两种衡量方法
      • 欧氏距离(L2):看两个点之间的“直线距离”
      • 余弦相似度(cos):看两个向量夹角有多小(方向是否一致)
    • 图像理解:
      • 余弦相似度 = 1:两个向量方向完全一致 → 高相似度
      • 距离越短:内容语义越接近
  • c.返回这条相关知识作为答案参考!

图示理解(简化版)

          你提问:“向量搜索是啥?”
                     ↓
       → [0.12, 0.85, ..., -0.33]  ← 向量表示
                     ↓
         在向量数据库中找“最接近”的向量
                     ↓
     匹配结果 → “向量数据库用于保存嵌入向量。”


五、常用的向量数据库工具

工具特点
FAISSFacebook 开源,超快
Milvus商用级向量数据库
Weaviate自带 REST/GraphQL 接口
ChromaPython 原生,轻量

六、总结类比表

概念类比或说明
向量把文本转成数学坐标,表示“含义”
向量数据库存这些向量,并支持模糊语义查询
向量查询查“意思最接近”的内容,不是精确关键词匹配
应用场景知识问答、语义搜索、推荐系统、RAG 模型等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
OSZAR »