Jean's Blog

一个专注软件测试开发技术的个人博客

0%

RAG组件--向量嵌入之嵌入技术的基本知识

大模型类比人脑获得知识

image-20250813170251234

  • 知识内核:向量嵌入技术是现代人工智能系统的核心,负责将非结构化数据转化为机器可理解的向量表示
  • 处理流程:在RAG系统中,嵌入技术是文档导入和分块后的第三个关键技术环节
  • 人脑类比:与人脑神经编码过程类似,都是将外界信息转化为内部表示(人类通过神经脉冲,AI通过数字向量)

嵌入向量的维度

image-20250813170420574

  • 维度定义:表示向量包含的数字个数,如BERT模型生成512维向量,OpenAI text-embedding-003生成1382维向量
  • 维度影响:
    • 优点:维度越大表达能力越强(可支持8000维的超大向量)
    • 缺点:计算复杂度呈指数级增长,需要更大存储空间
  • 模型差异:不同模型对同一文本生成的向量在数值和维度上都存在差异

向量相似度的计算

image-20250813171125905

  • 计算原理:通过数学空间中的距离度量实现语义匹配,是RAG系统的理论基础
  • 度量方式:
    • 欧式距离:直接计算向量间的直线距离,在文本相似度计算中较少使用
    • 曼哈顿距离:沿坐标轴方向的距离总和,在推荐系统中应用有限
    • 余弦相似度(文本语义相似度常用):最常用方法,专注向量方向而非绝对距离
    • 点积(内积):包含方向和强度信息,在归一化后与余弦相似度等价

以下是余弦相似度的计算公式:

1
2
3
4
5
6
7
8
9
10
import numpy as np

def cosine_similarity(vec1, vec2):
dot_product = np.dot(vec1, vec2)
norm_vec1 = np.linalg.norm(vec1)
norm_vec2 = np.linalg.norm(vec2)
return dot_product / (norm_vec1 *norm_vec2)

similarity =cosine_similarity(query_result,document_result)
print("Cosine Similarity:", similarity)

向量下游应用:两大方向

项目 判别式模型 检索式模型
核心目标 分类 / 预测标签 查找最相似的内容 / (聚类)
输入 向量 + 分类器(SVM / 神经网络) 查询向量 + 向量库(使用Faiss等)
输出 标签(如情感类别、意图类别) 匹配内容(段落、文档、回答)
技术特点 监督学习 ,需标注数据 无需标签,基于相似度计算
应用场景 情感分析、意图识别、推荐系统 知识问答、RAG应用、智能客服
响应速度 可优化至毫秒级
易用性/通用性 相对固定 更通用(可以处理开放问题)
  • 判别式模型:
    • 特点:监督学习,需要标注数据(如情感分类任务)
    • 流程:向量作为特征输入分类器(SVM/神经网络)
    • 局限:领域特定性,换领域需重新训练
  • 检索式模型:
    • 优势:通用性强,可处理开放问题(如RAG系统)
    • 性能:优化后可达毫秒级响应
    • 工作流程:直接检索相似内容,无需预定义标签
  • 应用选择:专业场景仍需要判别模型,通用场景推荐检索模型