关于embedding向量模型的知识

环境:

embedding

问题描述:

关于embedding向量模型的知识

在这里插入图片描述

解决方案:

向量模型基础

定义与本质:embedding向量模型是一种将离散数据(如文本、图像、用户行为等)映射到连续向量空间的技术。其核心思想是通过低维稠密向量捕捉数据的内在特征和语义关系,使语义相似的数据在向量空间中位置相近,从而让机器更好地理解和处理数据


向量维度影响:向量维度的选择对模型性能有重要影响。低维度(小于100)的向量表示虽然计算资源需求小,但易出现幻觉和词语混淆,语义分辨能力弱;而高维度(大于100)的向量表示区分能力强,能更精细地捕捉数据特征,但需要更多的计算资源。例如,BGE模型维度为1024,GA模型为768

模型原理与向量化方法

向量化方法:独热编码:是一种简单的词向量化方法,为每个词分配一个唯一的二进制向量,但存在向量过长、语义关联难等问题


词嵌入:如Word2Vec、GloVe等模型,通过预测词的上下文或基于全局词共现统计来学习词向量,能体现词与词之间的语义关系

句子向量化:有简单平均、加权平均、递归神经网络(RNN)、卷积神经网络(CNN)、Transformer等方法。其中,Transformer能捕捉复杂语义关系且可并行处理,适用于处理长文本和复杂语义

文档向量化:与句子向量化类似,还可通过主题模型分类和层次化模型(如doc2vec)体现文档整体信息及相似性

距离计算与检索策略:常用余弦相似度、点积相似度等计算向量间距离,以衡量数据之间的相似性。混合检索策略先进行语义检索,再结合关键词检索,最后进行重排序,可提高检索效果

向量模型在本地知识库的应用
在本地知识库的构建和使用中,embedding向量模型主要负责以下任务:

数据向量化存储:将本地知识库中的文档(如PDF、Word、Excel、笔记等)转化为向量表示,并与原文关联存储,方便后续的检索和查询


用户输入问题向量化检索:当用户输入问题时,将问题转化为向量表示,然后在向量数据库中找到与之最相似的本地数据,并将对应的原文反馈给用户,实现快速准确的知识检索

提高本地知识库准确性的策略

数据收集与预处理:数据收集后要进行清洗,去除重复、错误和无关信息,以保证数据的质量。同时,对数据进行结构化处理,使数据在向量空间合理分布,便于检索


数据标注:全面的数据标注有助于提高检索的准确性。例如,在食谱数据中,除了标注食材和步骤外,还可以涵盖烹饪时间、热量等多方面信息,以便用户能更精准地找到所需内容

向量模型选择依据
选择合适的embedding向量模型是关键,应根据具体的应用场景和需求来确定:

通用场景:对于通用的文本处理任务,可选择轻量级模型(如text2vec、m3e-base),这些模型适合本地运行,对计算资源要求较低


专业场景:在特定领域(如法律、医学等),应使用领域微调模型(如Law-Embedding、BioBERT),这些模型经过在专业领域数据上的微调,能更好地理解和处理领域内的数据

多语言支持:如果需要处理多国语言,金纳模型等相对更合适,它能更好地捕捉不同语言之间的语义关系和特征

一些常用的向量化模型

按不同维度进行分类:

基于词频统计的模型

  • 词袋模型(Bag of Words):将文本表示为词频向量,忽略词序和语法,仅关注词的出现次数。适用于简单的文本分类和主题建模。
  • TF-IDF(Term Frequency-Inverse Document Frequency):在词袋模型基础上,对词频进行加权,强调在文档中重要但在语料库中不常见的词。适用于关键词提取和信息检索。

基于词嵌入的模型

  • Word2Vec:通过连续词袋(CBOW)或连续跳元(Skip-Gram)模型,将单词映射到低维向量空间,捕捉词与词之间的语义关系。适用于词相似性计算和词性标注。
  • GloVe(Global Vectors for Word Representation):利用全局词共现统计信息训练词向量,能更好地捕捉语义关系和线性子结构。适用于词向量表示和语义分析。
  • FastText:在Word2Vec基础上,考虑单词的子结构(如n-gram),对低频词和拼写错误有较好的鲁棒性。适用于文本分类和词向量表示。

基于上下文的模型

  • ELMO(Embeddings from Language Model):基于双向LSTM的语言模型,生成上下文相关的词向量。适用于需要理解单词在不同上下文中的不同含义的场景,如问答系统和命名实体识别。
  • BERT(Bidirectional Encoder Representations from Transformers):基于Transformer的预训练语言模型,通过掩码语言模型和下一句预测任务,学习丰富的上下文信息。适用于多种NLP任务,如情感分析、问答和文本生成。
  • RoBERTa(Robustly Optimized BERT Pretraining Approach):对BERT的预训练方法进行了优化,去除了下一句预测任务,使用更大的小批量数据和学习率。在多个NLP任务中表现优于BERT。
  • ALBERT(A Lite BERT for Self-supervised Learning of Language Representations):通过参数缩减技术降低内存消耗,提高训练速度。适用于资源受限的环境和大规模文本处理。

基于检索的模型

  • BM25:一种基于TF-IDF的改进算法,用于关键词匹配任务。适用于搜索引擎和信息检索。
  • ColBERT:通过多向量检索,对每个文本使用多个向量进行表示,提高检索精度。适用于细粒度的检索和重排。

基于对比学习的模型

  • SimCSE(Simple Contrastive Estimation):通过对比学习生成高质量的句子嵌入,适用于句子相似性计算和文本匹配。

基于多模态的模型

  • CLIP(Contrastive Language-Image Pre-training):同时处理文本和图像,学习跨模态的语义表示。适用于图像-文本匹配和多模态检索。

基于知识图谱的模型

  • TransE:通过将知识图谱中的实体和关系嵌入到向量空间,捕捉实体之间的语义关系。适用于知识图谱补全和链接预测。
  • DistMult:在TransE基础上,使用多线性映射代替翻译操作,更好地处理多对多关系。适用于知识图谱嵌入和关系预测。

基于自监督学习的模型

  • GPT(Generative Pre-trained Transformer):通过自回归语言模型,生成连贯的文本。适用于文本生成和对话系统。
  • XLNet:结合自回归和自监督学习,通过排列语言建模目标,提高模型的预训练效果。适用于多种NLP任务。

基于多任务学习的模型

  • MT-DNN(Multi-Task Deep Neural Network):在多个NLP任务上进行联合训练,提高模型的泛化能力和鲁棒性。适用于多种NLP任务。

基于轻量级架构的模型

  • MobileBERT:对BERT进行架构优化,减少参数量和计算复杂度,适用于移动设备和边缘计算。
  • TinyBERT:通过知识蒸馏技术,将BERT的参数和计算量大幅压缩,同时保持较高的性能。适用于资源受限的环境。

基于领域适配的模型

  • BioBERT:在BERT基础上,使用生物医学领域的语料进行微调,适用于生物医学文本处理。
  • LegalBERT:针对法律文本进行微调,适用于法律领域的文本分析和信息检索。

基于中文和多语言的模型

  • M3E(Moka Massive Mixed Embedding):专注于中文文本处理,同时支持中英双语的同质文本相似度计算和异质文本检索。适用于私有化部署和资源受限的环境。
  • BGE(Beijing General Embedding):支持超过100种语言,能够高效实现不同粒度的检索任务。在中英文语义检索精度和整体语义表征能力方面表现优异。适用于多语言场景和需要高精度检索的场景。

这些向量化模型在不同的应用场景中各有优势,选择合适的模型需要根据具体任务和数据特点进行权衡。

M3E 和 BGE 模型的训练情况

M3E 模型

训练数据:中文训练集:包含中文百科、金融、医疗、法律、新闻、学术等多个领域共计2200万句对样本


英文训练集:使用MEDI 145W英文三元组数据集进行训练

指令数据集:使用了300W+的指令微调数据集,这使得M3E对文本编码时可以遵从指令

训练方法:使用in-batch负采样的对比学习方式在句对数据集上进行训练

训练脚本:训练脚本使用uniem

模型架构:基于hfl实验室的Roberta系列模型进行训练,目前提供small、base和large三个版本

BGE 模型

训练数据:无监督数据:从大量多语言语料库中提取未经标记的文本数据,包括Wikipedia、S2ORC、xP3、mC4和CC-News等,规模达到了1.2亿文本对,覆盖了194种语言和2655种跨语言对应关系


微调数据:来自标记语料库的高质量数据,包括英语、中文和其他语言的数据集,如HotpotQA、TriviaQA、NQ、MS MARCO、DuReader、T2-Ranking、NLI-zh等

合成数据:为了解决长文档检索任务中数据不足的问题,生成了额外的多语言微调数据(称为MultiLongDoc),通过从Wikipedia和MC4数据集中随机选择长文章,并从中随机选择段落,然后使用GPT-3.5生成基于这些段落的问题,生成的问题和所选文章构成新的文本对

训练方式:

RetroMAE预训练:在105种语言的网页数据和wiki数据上进行,提供一个可以支持8192长度和面向表示任务的基座模型


无监督对比学习:在194种单语言和1390种翻译对数据共1.1B的文本对上进行的大规模对比学习

多检索方式统一优化:在高质量多样化的数据上进行多功能检索优化,使模型具备多种检索能力

模型架构:基于Transformer架构,支持稠密和稀疏向量的生成

总结
M3E和BGE模型都支持多语言,且在训练过程中已经考虑了多种语言的支持。M3E主要针对中文文本进行向量化处理,但也有一定的双语处理能力;BGE支持超过100种语言,能够高效实现不同粒度的检索任务

关于BGE-M3模型微调及使用的知识

微调前准备

安装所需SDK:首先需要确保你的开发环境已经安装了必要的软件开发工具包(SDK),如PyTorch、Transformers等。下载官方代码:可以从GitHub或其他开源平台获取BGE-M3的源码,并切换到embedding模型微调的具体路径下。准备训练数据:对于BGE-M3的微调,通常需要准备包含查询文本(query)、正样本(positive sample)和负样本(negative sample)的三元组数据集。这些数据是用于对比学习的关键。下载预训练模型:如果本地没有BGE-M3模型,可以从Hugging Face或ModelScope这样的社区下载。

微调参数设置

硬件配置:单卡或多卡GPU的选择取决于可用资源。如果有多个GPU,可以调整相关参数来利用多GPU并行加速训练过程。文件路径与长度限制:指定微调所用的数据文件路径,并根据显存大小限制输入文本的最大长度以避免内存溢出问题。学习率与Batch Size:合理设置学习率对训练效果至关重要,而Batch size则需考虑显存容量,过大的batch size可能导致显存不足。精度选项:若硬件支持,可启用FP16混合精度训练以节省显存并可能加快训练速度。
日志记录与保存策略:可以根据实际需求调整日志级别以及模型检查点的保存频率。

微调后模型使用

加载微调后的模型:完成微调流程后,可以通过相应的API接口加载微调好的模型进行测试或部署。多种文本表征方式:COLBERT:一种基于列向量的检索方法,适用于多向量文本表示,能提供较好的搜索性能。Sparse Embedding (sports):侧重于词汇级别的稀疏嵌入,适合关键词匹配场景。Dense Embedding (dance):常见的密集嵌入方式,适用于语义相似度计算。
综合评分机制:通过加权组合不同表征方式得到的结果,可以获得更加鲁棒的检索结果。

模型评价

中文领域的表现:尽管BGE-M3可能没有在公开排行榜上取得最高排名,但在中文处理任务中表现优异,尤其擅长跨语言检索任务。
持续改进:随着更多研究者参与到BGE-M3的优化工作中,该模型有望在未来版本中进一步提升其性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/42995.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker远程访问与加密配置指南

实验目的 基础功能验证: 验证Docker远程访问的基础配置方法 测试未加密(2375端口)和TLS加密(2376端口)两种连接方式的可用性安全性对比: 对比防火墙开启/关闭状态下系统的暴露风险 分析未加密通信的数据传输安全性 验证TLS证书认证机制的有效性操作实践…

基于 Python 深度学习 lstm 算法的电影评论情感分析可视化系统(2.0 系统全新升级,已获高分通过)

大家好,欢迎来到我的技术专栏!今天我将和大家聊聊如何利用 Python 的深度学习技术,打造一个集电影评论情感分析与可视化展示于一体的系统。这个系统不仅能自动采集和解析海量影评,还能实时生成直观的情感趋势图表,对于…

pytorch中dataloader自定义数据集

前言 在深度学习中我们需要使用自己的数据集做训练,因此需要将自定义的数据和标签加载到pytorch里面的dataloader里,也就是自实现一个dataloader。 数据集处理 以花卉识别项目为例,我们分别做出图片的训练集和测试集,训练集的标…

业之峰与宏图智能战略携手,开启家装数字化新篇章

3月8日,业之峰装饰集团董事长张钧携高管团队与宏图智能董事长庭治宏及核心团队,在业之峰总部隆重举行了战略合作签约仪式,标志着双方将携手探索业之峰的数字化转型之路,共同推动家装行业的变革与发展。 近年来,家装行业…

区块链赋能,为木材货场 “智” 造未来

区块链赋能,为木材货场 “智” 造未来 在当今数字化浪潮席卷的时代,软件开发公司不断探索创新,为各行业带来高效、智能的解决方案。今天,让我们聚焦于一家软件开发公司的杰出成果 —— 区块链木材货场服务平台,深入了…

Suricata 检测日志中的时间戳不正确

参考连接 Incorrect Timestamp in Suricata Detection Logs - Help - Suricata 问题现象: 使用 Suricata 时遇到一个问题,即检测日志 (eve.json) 中的 and 字段间歇性地显示 2106 年。这似乎偶尔发生,并影响其中一个…

【第34节】windows原理:PE文件的导出表和导入表

目录 一、导出表 1.1 导出表概述 1.2 说明与使用 二、导入表 2.1 导入表概述 2.2 说明与使用 一、导出表 1.1 导出表概述 (1)导出行为和导出表用途:PE文件能把自身的函数、变量或者类,提供给其他PE文件使用,这…

【计算机网络】深入解析TCP/IP参考模型:从四层架构到数据封装,全面对比OSI

TCP/IP参考模型 导读一、历史背景二、分层结构2.1 网络接口层(Network Interface Layer)2.2 网络层(Internet Layer)2.3 传输层(Transport Layer)2.4 应用层(Application Layer) 三、…

项目实战-角色列表

抄上一次写过的代码: import React, { useState, useEffect } from "react"; import axios from axios; import { Button, Table, Modal } from antd; import { BarsOutlined, DeleteOutlined, ExclamationCircleOutlined } from ant-design/icons;const…

LeetCode1两数之和

**思路:**懒得写了,如代码所示 /*** Note: The returned array must be malloced, assume caller calls free().*/ struct hashTable {int key;//存值int val;//存索引UT_hash_handle hh; }; int* twoSum(int* nums, int numsSize, int target, int* re…

去噪算法大比拼

目录 效果图: 实现代码: 密集抖动 pip install pykalman 效果图: 实现代码: import numpy as np import cv2 import matplotlib.pyplot as plt from scipy.ndimage import gaussian_filter1d from scipy.signal import butter, filtfilt, savgol_filter from pykalma…

STM32_HAL开发环境搭建【Keil(MDK-ARM)、STM32F1xx_DFP、 ST-Link、STM32CubeMX】

安装Keil(MDK-ARM)【集成开发环境IDE】 我们会在Keil(MDK-ARM)上去编写代码、编译代码、烧写代码、调试代码。 Keil(MDK-ARM)的安装方法: 教学视频的第02分03秒开始看。 安装过程中请修改一下下面两个路径,避免占用C盘空间。 Core就是Keil(MDK-ARM)的…

深入理解MySQL聚集索引与非聚集索引

在数据库管理系统中,索引是提升查询性能的关键。MySQL支持多种类型的索引,其中最基础也是最重要的两种是聚集索引和非聚集索引。本文将深入探讨这两种索引的区别,并通过实例、UML图以及Java代码示例来帮助您更好地理解和应用它们。 一、概念…

【leetcode】拆解与整合:分治并归的算法逻辑

前言 🌟🌟本期讲解关于力扣的几篇题解的详细介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废话不…

wx162基于springboot+vue+uniapp的在线办公小程序

开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…

陈宛汮签约2025火凤凰风赏大典全球形象大使

原标题:陈宛汮签约2025火凤凰风赏大典全球形象大使 共工新闻社香港3月29日电 陈宛汮,华语原创女歌手。“星宝在闪耀”公益活动联合发起人,自闭症儿童康复推广大使。代表作:《荣耀火凤凰》《爱在醉千年》。 从2025年1月1日至2025年12月31日&a…

【深度学习入门_机器学习理论】极致梯度提升原理(XGBoost)

XGBoost(eXtreme Gradient Boosting)是一种高效、灵活且广泛应用的机器学习算法,属于梯度提升决策树(Gradient Boosting Decision Tree, GBDT) 的优化实现。它在分类、回归、排序等结构化/表格数据的预测任务中表现尤为…

Oracle初识:登录方法、导入dmp文件

目录 一、登录方法 以sys系统管理员的身份登录 ,无需账户和密码 以账户密码的用户身份登录 二、导入dmp文件 方法一:PLSQL导入dmp文件 一、登录方法 Oracle的登录方法有两种。 以sys系统管理员的身份登录 ,无需账户和密码 sqlplus / a…

STM32F103_LL库+寄存器学习笔记01 - 梳理CubeMX生成的LL库最小的裸机系统框架

《STM32 - 在机器人领域,LL库相比HAL优势明显》在机器人、自动化设备领域使用MCU开发项目,必须用LL库。 本系列笔记记录使用LL库的开发过程,首先通过CubeMX生成LL库代码,梳理LL库源码。通过学习LL库源码,弄清楚寄存器的…

Vue3当中el-tree树形控件使用

tree悬停tooltip效果 文本过长超出展示省略号 如果文本超出悬停显示tooltip效果 反之不显示 这里直接控制固定宽度限制 试了监听宽度没效果<template><el-treeshow-checkbox:check-strictly"true":data"data"node-key"id":props"…