向量数据库学习笔记(1) —— 基础概念

一、 嵌入模型 Embedding Models

       嵌入模型是将复杂数据(如文本、图像、音频等)转换为向量表示的机器学习模型

1. 核心概念

  • 嵌入(Embedding):将高维、非结构化的数据映射到低维、稠密的向量空间

  • 向量表示:输出固定长度的数值向量(如256维、768维等)

  • 语义保留:相似的数据在向量空间中距离相近

 

2. 嵌入模型案例

将狗向量化,每一个比较标准即是一个向量维度,例如下图是一个二维向量

当比较标准越多,对向量的比较(相似度、区分度)也就越高,例如下图是一个高维向量

 

3. 常见嵌入模型类型

       依此标准,万物皆可向量化,例如文字、图片、音频、视频、多模态数据,均可以有自己的标准实现向量化。

 

嵌入模型将万物向量化,而向量数据库就用于存储、比较这些向量数据。

 

4. 向量存储案例

 

二、 向量的比较方法

1. 与普通数据库的差异

与普通数据库的“精确”匹配不同,向量比的是“相似性”。

例如我想搜索“广州”

  • 普通数据库查询写法只能是 ='广州' 或者 like '%广州%'
  • 向量搜索 输入可以是 “早茶”、“白云山”、“羊城”,返回结果依然有广州

 

2. 暴力搜索(平坦搜索)

        即逐一比较,这是唯一能真正做到精确比较方法。

       如果我们要求精确返回最相似的 top k个值,专业术语叫做 k-最近邻搜索 (k-Nearest Neighbors Search, k-NN Search),然而,对于高维向量而言,这不现实也没必要。

       使用近似算法牺牲少量精度换取显著性能提升,是实际向量数据库中最常用的实现方式,专业术语叫做 近似最近邻搜索(Approximate Nearest Neighbors, ANN)。

 

3. 聚类搜索 IVFFlat

       IVFFlat 即 Inverted File with Flat Compression 是向量数据库中常用的 ANN算法,由Facebook的FAISS团队提出,专门用于高效处理大规模向量相似性搜索。

       其核心是将向量分为不同的群集,找到各个群集的中心点。这样,只需将向量与各中心点比较,即可大致找到与待查询向量最近的群集,然后在群集中搜索,大幅缩小查询范围

 

 

4. 图搜索

 

未完待续...

 

 

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

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

相关文章

[NO-WX179]基于springboot+微信小程序的在线选课系统

[NO-WX179]基于springboot微信小程序的在线选课系统 1、管理员角色(web端):2、教师角色(web端):3、用户角色(小程序或web端):4、部分运行截图管理端--教师管理管理端--学…

2025年渗透测试面试题总结-某 长亭(题目+回答)

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 长亭 一、Spring SpEL表达式注入漏洞 1. 技术原理 2. 利用条件 3. 攻击方法 4. 防御策略 二、Jav…

conda环境下解决gitk乱码模糊

关键词 conda、git、gitk、git gui、模糊、linux、乱码 现象 操作系统:ubuntu24.04 conda版本:25.1.1 正常的终端里gitk显示不会模糊 但是在conda创建的python虚拟环境中使用gitk,字体开始变得模糊不清 分析 根据deepseek的原因原因分析…

【C++项目实战】:基于正倒排索引的Boost搜索引擎(1)

1. 项目的相关背景与目标 针对boost网站没有搜索导航功能,为boost网站文档的查找提供搜索功能 站内搜索:搜索的数据更垂直,数据量小 类似于cplusplus.com的搜索 2.搜索引擎的相关宏观原理 3.技术栈和项目环境 技术栈:C/C&am…

汽车高级驾驶辅助系统应用存储MRAM

高级驾驶辅助系统和先进的互连航空电子技术等应用要求元件能够承受恶劣的环境条件,并具有较高的耐用性。闪存虽然在某些条件下性能可靠,但在耐用性方面存在局限性,因此无法满足这些严格的要求。 在实时传感器数据处理或高可靠性通信等对时间…

蓝桥-班级活动

问题描述 小明的老师准备组织一次班级活动。班上一共有 n 名 (n 为偶数) 同学,老师想把所有的同学进行分组,每两名同学一组。为了公平,老师给每名同学随机分配了一个 n 以内的正整数作为 id,第 i 名同学的 id 为 ai​。 老师希望…

MongoDB 的索引是提高查询性能的核心机制,类似于传统关系型数据库的索引。以下是对 MongoDB 索引的详细说明:

MongoDB 的索引是提高查询性能的核心机制,类似于传统关系型数据库的索引。以下是对 MongoDB 索引的详细说明: 一、索引基础 1. 索引的作用 加速查询:通过索引快速定位数据,避免全集合扫描(COLLSCAN)。 排…

深入理解指针(1)(C语言版)

文章目录 前言一、内存和地址1.1 内存1.2 究竟该如何理解编址 二、指针变量和地址2.1 取地址操作符&2.2 指针变量和解引用操作符*2.2.1 指针变量2.2.2 如何拆解指针类型2.2.3 解引用操作符 2.3 指针变量的大小 三、指针变量类型的意义3.1 指针的解引用3.2 指针-整数3.3 voi…

【视频】m3u8相关操作

【视频】郭老二博文之:图像视频汇总 1、视频文件转m3u8 1.1 常用命令 1)默认只保留 5 个ts文件 ffmpeg -i input.mp4 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls stream1.m3u82)去掉音频 -an,保留全部ts文件 ffmpeg -i input.mp4 -vf scale=640:480 -an -…

AWS CloudWatch 实战:构建智能监控与自动化运维体系

摘要:本文通过实际案例,详细讲解如何利用AWS CloudWatch实现云端资源的实时监控、日志分析与自动化运维,助力企业提升系统稳定性与运维效率 一、场景痛点分析 某电商平台迁移至AWS后面临三大挑战: 故障响应滞后:服务器…

第一天学爬虫

阅读提示:我今天才开始尝试爬虫,写的不好请见谅。 一、准备工具 requests库:发送HTTP请求并获取网页内容。BeautifulSoup库:解析HTML页面并提取数据。pandas库:保存抓取到的数据到CSV文件中。 二、爬取步骤 发送请求…

网络编程和计算机网络五层模型的关系

计算机网络的五层模型(应用层、传输层、网络层、链路层和物理层)为网络编程提供了基础框架和通信机制。网络编程就是在这些层次上实现应用程序之间的通信。 计算机网络五层模型 (1)应用层: 作用:应用层是…

知识篇 | Oracle的 TEMP表空间管理和优化

Oracle临时表空间(TEMP)是数据库中用于存储会话级临时数据的核心组件,主要用于支持需要中间结果集的操作(如排序、哈希连接)。其数据在事务结束或会话终止后自动释放,不持久化存储。 核心特点:…

重学Java基础篇—线程池参数优化指南

一、核心参数解析 线程池(ThreadPoolExecutor)的性能取决于以下关键参数: 参数说明corePoolSize核心线程数,即使空闲也不会被回收maximumPoolSize最大线程数,当队列满且核心线程忙时创建新线程workQueue任务队列&…

记一次线上环境JAR冲突导致程序报错org.springframework.web.util.NestedServletException

一、问题描述 有个文件导入功能,用到了Hutool 的加密解密功能,本地运行完全可以,但是线上报错:“org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFou…

怎么快速部署Sock5代理到ubuntu云服务器

使用 Dante (推荐) 1. 安装 Dante bash Copy sudo apt update sudo apt install dante-server -y 2. 配置 Dante 编辑配置文件 /etc/danted.conf: bash Copy sudo nano /etc/danted.conf 替换为以下内容(按需修改端口和认证)&#…

华为OD机试2025A卷 - 游戏分组/王者荣耀(Java Python JS C++ C )

最新华为OD机试 真题目录:点击查看目录 华为OD面试真题精选:点击立即查看 题目描述 2020年题: 英雄联盟是一款十分火热的对战类游戏。每一场对战有10位玩家参与,分为两组,每组5人。每位玩家都有一个战斗力,代表着这位玩家的厉害程度。为了对战尽可能精彩,我们需要…

OpenRAND可重复的随机数生成库

OpenRAND 是一个 C++ 库,旨在通过提供强大且可复制的随机数生成解决方案来促进可重复的科学研究。它是一个简单的仅头文件库,性能可移植,统计稳健,并且易于集成到任何 HPC 计算项目中。 特征 跨平台支持:OpenRAND 旨在跨各种平台无缝工作,包括 CPU 和 GPU。其仅标题库设计…

接口/UI自动化面试题

一、UI自动化 1.1、接口和UI自动化有多少用例? 回答策略:根据接口设定用例,100个接口,自动化case在1500-2000左右。结合自身的项目,回答覆盖的主功能流程。 示例: 接口自动化的测试case一般需要根据接口数…

使用Docker部署RabbitMQ

第一步:安装 RabbitMQ # 1. 拉取镜像 docker pull rabbitmq:3.12.0-management# 2. 启动容器(开放端口 数据持久化) docker run -d \--nameshare_rabbitmq \-p 5672:5672 \ # AMQP 协议端口-p 15672:15672 \ # 管理界面端口…