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

大模型(7)——向量模型(向量化存储)

文章目录

      • 一、核心概念
      • 二、Embedding模型分类
        • 1. 文本Embedding模型
        • 2. 多模态Embedding模型
        • 3. 领域专用模型
      • 三、Embedding模型的核心技术
        • 1. 训练方法
        • 2. 损失函数
        • 3. 向量归一化
      • 四、实现步骤(以文本Embedding为例)
        • 1. 使用预训练模型(推荐)
        • 2. 自定义训练(需数据)
      • 五、应用场景
      • 六、优化技巧
      • 七、评估指标
      • 八、挑战与解决方案
      • 九、工具与库推荐
      • 十、未来方向

向量模型(Embedding Model)是将离散数据(如文本、图像、音频等)转化为连续向量表示(即嵌入向量/Embeddings)的机器学习模型。这些向量能够捕捉数据的语义信息,并用于相似性计算、检索、聚类等任务。以下是关于Embedding模型的详细解析:


一、核心概念

  1. 什么是Embedding?

    • 将高维离散数据(如单词、句子、图片)映射到低维连续向量空间(通常几十到几千维)。
    • 示例:单词"猫" → [0.2, -0.5, 0.7, …],句子"我喜欢编程" → [1.1, -0.3, 0.9, …]。
  2. 关键特性

    • 语义保留:相似内容在向量空间中距离相近(如"狗"和"猫"的向量余弦相似度高)。
    • 可计算性:支持向量运算(如“国王 - 男 + 女 ≈ 女王”)。
    • 降维稠密表示:相比One-Hot编码更高效。

二、Embedding模型分类

1. 文本Embedding模型
  • 词级别(Word Embedding)
    • Word2Vec:Skip-gram/CBOW模型,通过上下文预测学习词向量。
    • GloVe:基于全局词共现矩阵的统计方法。
  • 句/文档级别(Sentence/Document Embedding)
    • BERT/SimCSE:基于Transformer的上下文相关嵌入。
    • Sentence-BERT:优化句子对相似性计算。
    • 最新模型:OpenAI的text-embedding-3、Cohere的Embed、BGE(BAAI通用嵌入)。
2. 多模态Embedding模型
  • CLIP(OpenAI):对齐图像和文本的共享向量空间。
  • ResNet/ViT:纯视觉模型的图像嵌入。
3. 领域专用模型
  • BioBERT:生物医学文本嵌入。
  • CodeBERT:代码语义嵌入。

三、Embedding模型的核心技术

1. 训练方法
  • 自监督学习
    • 对比学习(如SimCLR):拉近正样本对(相似数据),推开负样本对。
    • 掩码语言建模(如BERT):预测被遮蔽的单词。
  • 监督微调:在特定任务(如问答、分类)上微调嵌入模型。
2. 损失函数
  • 对比损失(Contrastive Loss):最小化正样本对距离,最大化负样本对距离。
  • Triplet Loss:锚样本与正样本的距离应小于锚样本与负样本的距离加边际。
  • 余弦相似度损失:直接优化嵌入向量的余弦相似度。
3. 向量归一化
  • 对输出向量做L2归一化,使相似度计算仅依赖向量角度(余弦相似度)。

四、实现步骤(以文本Embedding为例)

1. 使用预训练模型(推荐)
from sentence_transformers import SentenceTransformer# 加载模型(如BGE中文模型)
model = SentenceTransformer('BAAI/bge-small-zh')# 生成Embedding
sentences = ["深度学习模型", "神经网络"]
embeddings = model.encode(sentences, normalize_embeddings=True)print(embeddings.shape)  # 输出:(2, 384)
2. 自定义训练(需数据)
import torch
from transformers import AutoModel, AutoTokenizer# 定义对比学习模型
class MyEmbeddingModel(torch.nn.Module):def __init__(self, model_name="bert-base-uncased"):super().__init__()self.bert = AutoModel.from_pretrained(model_name)self.head = torch.nn.Linear(768, 256)  # 降维def forward(self, input_ids, attention_mask):outputs = self.bert(input_ids, attention_mask=attention_mask)embeddings = self.head(outputs.last_hidden_state[:, 0])  # 取[CLS]向量return torch.nn.functional.normalize(embeddings, p=2, dim=1)# 训练代码略(需准备正负样本对)

五、应用场景

  1. 语义搜索
    • 将查询和文档向量化,用余弦相似度排序结果。
  2. 推荐系统
    • 用户历史行为向量与内容向量匹配(如新闻推荐)。
  3. 聚类与分类
    • 对嵌入向量进行K-Means聚类或SVM分类。
  4. 大模型增强
    • RAG(检索增强生成):用向量检索相关知识输入LLM。
  5. 异常检测
    • 低相似度向量视为异常(如欺诈交易识别)。

六、优化技巧

  1. 数据预处理
    • 文本清洗(去停用词、标准化)、长文本分块。
  2. 模型选择
    • 英文:text-embedding-3-large(OpenAI)、all-mpnet-base-v2(Sentence-BERT)。
    • 中文:bge-base-zhm3e-base
  3. 混合检索
    • 结合向量搜索与关键词搜索(BM25)提升召回率。
  4. 量化与压缩
    • 将FP32向量转为INT8,减少存储和计算开销。

七、评估指标

  1. 内在评估
    • 词类比任务(如“巴黎:法国 ≈ 东京:?”的准确率)。
    • 语义相似度(与人工标注的Spearman相关系数)。
  2. 外在评估
    • 下游任务表现(如分类F1分数、检索命中率)。

八、挑战与解决方案

挑战解决方案
领域迁移能力差在领域数据上继续预训练或微调(Domain Adaptation)
多语言支持不足使用多语言模型(如paraphrase-multilingual-MiniLM)
长文本语义丢失分块嵌入后融合(如Max-Pooling)或使用长文本模型(Longformer)
计算资源消耗大蒸馏小模型(如TinyBERT)、量化推理

九、工具与库推荐

  • HuggingFace Transformers:提供主流Embedding模型。
  • Sentence-Transformers:简化句子嵌入训练和推理。
  • FAISS(Facebook):高效的向量相似度搜索库。
  • Milvus/Pinecone:向量数据库,支持大规模存储与检索。

十、未来方向

  1. 动态Embedding:根据查询上下文调整向量表示(如Cohere的动态嵌入)。
  2. 多模态统一:文本、图像、视频共享同一嵌入空间。
  3. 可解释性:可视化或分析向量维度的语义含义。

Embedding模型是AI系统的“语义理解引擎”,将离散数据转化为机器可计算的数学表示,为搜索、推荐、生成等任务提供基础支持。选择合适的模型和优化方法,能显著提升应用效果。

相关文章:

  • 第三章、运动学逆解(双足轮根据腿高求舵机角度)
  • 跨境快消品市场迎来爆发拐点:解码亚马逊“超级快消周“首日战报
  • 5G 网络中的寻呼流程
  • 聚焦北京央美备考画室:探寻实力之巅
  • java的vscode扩展插件
  • 实验设计与分析(第6版,Montgomery)第3章单因子实验:方差分析3.11思考题3.6 R语言解题
  • 【会员专享数据】1980—2022年中国0.1°分辨率逐日、逐月、逐年风速栅格数据
  • 数据库表添加索引
  • 天大《电视原理》背诵考点整理+计算/框图/作业题 (个人整理)
  • gbase8s统计更新(UPDATE STATISTICS)介绍
  • 【详细记录】我的第一次裸片硬件尝试:stm32f103c8t6最小核心板一板成
  • Linux--CentOs 8配置及基础命令
  • 以鸿道工业操作系统为核心,打造工业智能机器人新生态
  • 《富有的习惯》
  • 前端Vue3列表滑动无限加载实现
  • Day128 | 灵神 | 二叉树 | 反转二叉树的奇数层
  • 深入理解Java中的BigDecimal:高精度计算的核心工具
  • 投影机三色光源和单色光源实拍对比:一场视觉体验的终极较量
  • 将Windows11下的Ubuntu应用移动到其他盘
  • 华为FreeArc能和其他华为产品共用充电线吗?
  • 网站建设要求/在线发外链工具
  • 广告公司网站首页设计页面/百度竞价排名正确解释
  • 个人网站简单/夫唯seo视频教程
  • 吉林省延边州建设局网站/免费观看短视频的app软件推荐
  • 关于推进网站集约化建设的讲话/私密浏览器免费版
  • 做网站3年/sem是什么职业岗位