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

Embedding和向量数据库

向量 把信息统一编码成可计算的数字让机器能用数学理解语义、关系和相似度越相近则越匹配向量 信息的数字表示相似度 数字之间的距离AI 智能 大规模向量匹配向量表征在人工智能领域向量表征(Vector Representation)是核心概念之一。通过将文本、图像、声音、行为甚至复杂关系转化为高维向量(Embedding)AI系统能够以数学方式理解和处理现实世界中的复杂信息。这种表征方式为机器学习模型提供了统一的“语言”。向量表征的本质向量表征的本质:万物皆可数学化核心思想降维抽象:将复杂对象(如一段文字、一张图片)映射到低维稠密向量空间保留关键语义或特征相似性度量:向量空间中的距离(如余弦相似度)反映对象之间的语义关联(如“猫”和“狗”的向量距离小于“猫”和“汽车”)数学意义:特征工程自动化:传统机器学习依赖人工设计特征(如文本的TF-IDF)而向量表征通过深度学习自动提取高阶抽象特征跨模态统一:文本、图像、视频等不同模态数据可映射到同一向量空间实现跨模态检索(如“用文字搜图片”)应用场景自然语言处理(NLP)词向量(Word2Vec、GloVe)单词映射为向量解决“一词多义”问题(如“苹果”在“水果”和“公司”上下文中的不同向量)。句向量(BERT、Sentence-BERT)整句语义编码用于文本相似度计算、聚类(如客服问答匹配)。知识图谱嵌入(TransE、RotatE)将实体和关系表示为向量支持推理(如预测“巴黎-首都-法国”的三元组可信度)。计算机视觉(CV)图像特征向量(CNN特征)ResNet、ViT等模型提取图像语义用于以图搜图、图像分类。跨模态对齐(CLIP)将图像和文本映射到同一空间实现“描述文字生成图片”或反向搜索。推荐系统-用户/物品向量用户行为序列(点击、购买)编码为用户向量商品属性编码为物品向量通过向量内积预测兴趣匹配度(如YouTube推荐算法)。复杂系统建模图神经网络(GNN)社交网络中的用户、商品、交互事件均表示为向量捕捉网络结构信息(如社区发现、欺诈检测)。时间序列向量化将股票价格、传感器数据编码为向量预测未来趋势(如LSTM、Transformer编码)。向量表征技术实现1.经典方法无监督学习Word2Vec通过上下文预测(Skip-Gram)或矩阵分解(GloVe)生成词向量。有监督学习微调预训练模型(如BERT)适应具体任务提取任务相关向量。2.前沿方向对比学习(Contrastive Learning)通过构造正负样本对(如“同一图片的不同裁剪”为正样本)拉近正样本向量距离推开负样本(SimCLR、MoCo)。多模态融合将文本、图像、语音等多模态信息融合为统一向量(如Google的MUM模型)。动态向量根据上下文动态调整向量(如Transformer的注意力机制)解决静态词向量无法适应多义性的问题向量文本向量向量间的相似度计算余弦相似度是通过计算两个向量夹角的余弦值来衡量相似性等于两个向量的点积除以两个向量长度的乘积Embedding Models 嵌入模型嵌入(Embedding)是指非结构化数据转换为向量的过程通过神经网络模型或相关大模型将真实世界的离散数据投影到高维数据空间上根据数据在空间中的不同距离反映数据在物理世界的相似度。嵌入模型的本质嵌入模型(Embedding Model)是一种将离散数据(如文本、图像)映射到连续向量空间的技术。通过高维向量表示(如 768 维或 3072 维)模型可捕捉数据的语义信息使得语义相似的文本在向量空间中距离更近。例如“忘记密码” 和 “账号锁定” 会被编码为相近的向量从而支持语义检索而非仅关键词匹配核心作用语义编码将文本、图像等转换为向量保留上下文信息(如 BERT 的 CLS Token 或均值池化)。相似度计算通过余弦相似度、欧氏距离等度量向量关联性支撑检索增强生成(RAG)、推荐系统等应用。信息降维压缩复杂数据为低维稠密向量提升存储与计算效率关键技术原理上下文依赖现代模型(如 BGE-M3)动态调整向量捕捉多义词在不同语境中的含义。训练方法对比学习(如 Word2Vec 的 Skip-gram/CBOW)、预训练 微调(如 BERT)主流嵌入模型和选型指南Embedding 模型将文本转换为数值向量捕捉语义信息使计算机能够理解和比较内容的 意义。选择 Embedding 模型的考虑因素因素说明任务性质匹配任务需求 (问答、搜索、聚类等)领域特性通用 vs 专业领域 (医学、法律等)多语言支持需处理多语言内容时考虑维度权衡信息丰富度与计算成本许可条款开源 vs 专有服务最大 Tokens适合的上下文窗口大小最佳实践为特定应用测试多个 Embedding 模型评估在实际数据上的性能而非仅依赖通用基准。通用全能型BGE-M3北京智源研究院开发支持多语言、混合检索(稠密 稀疏向量)处理 8K 上下文适合企业级知识库。NV-Embed-v2基于 Mistral-7B检索精度高(MTEB 得分 62.65)但需较高计算资源。垂直领域特化型中文场景BGE-large-zh-v1.5(合同 / 政策文件)、M3E-base(社交媒体分析)。多模态场景BGE-VL(图文跨模态检索)联合编码 OCR 文本与图像特征。轻量化部署型nomic-embed-text768 维向量推理速度比 OpenAI 快 3 倍适合边缘设备。gte-qwen2-1.5b-instruct1.5B 参数16GB 显存即可运行适合初创团队原型验证。选型决策树中文为主 → BGE 系列 M3E多语言需求 → BGE-M3 multilingual-e5预算有限 → 开源模型(如 Nomic Embed)。嵌入模型调用import os from openai import OpenAI client OpenAI( api_keyos.getenv(DASHSCOPE_API_KEY), base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1 ) completion client.embeddings.create( modeltext-embedding-v4, inputa7, dimensions1024, encoding_formatfloat ) print(completion.model_dump_json())向量数据库向量数据库是专门为向量检索设计的中间件高效存储、快速检索和管理高纬度向量数据的系统称为向量数据库一种专门用于存储和检索高维向量数据的数据库。它将数据(如文本、图像、音频等)通过嵌入模型转换为向量形式并通过高效的索引和搜索算法实现快速检索。向量数据库的核心作用是实现相似性搜索即通过计算向量之间的距离(如欧几里得距离、余弦相似度等)来找到与目标向量最相似的其他向量。它特别适合处理非结构化数据支持语义搜索、内容推荐等场景。核心功能向量存储相似性度量相似性搜索如何检索和存储向量存储向量数据库将嵌入向量存储为高维空间中的点并为每个向量分配唯一标识符(ID)同时支持存储元数据。检索通过近似最近邻(ANN)算法(如PQ等)对向量进行索引和快速搜索。比如FAISS和Milvus等数据库通过高效的索引结构加速检索。向量数据库与传统数据库对比数据类型传统数据库存储结构化数据(如表格、行、列)。向量数据库存储高维向量数据适合非结构化数据。查询方式传统数据库依赖精确匹配(如、、)。向量数据库基于相似度或距离度量(如欧几里得距离、余弦相似度)。应用场景传统数据库适合事务记录和结构化信息管理。向量数据库适合语义搜索、内容推荐等需要相似性计算的场景。向量数据库的意义是快速的检索向量数据库本身不生成向量向量是由 Embedding 模型产生的向量数据库与传统的关系型数据库是互补的不是替代关系在实际应用中根据实际需求经常同时使用。FAISS: Meta 开源的向量检索引擎 https://github.com/facebookresearch/faissPinecone: 商用向量数据库只有云服务 https://www.pinecone.io/Milvus: 开源向量数据库同时有云服务 https://milvus.io/Weaviate: 开源向量数据库同时有云服务 https://weaviate.io/Qdrant: 开源向量数据库同时有云服务 https://qdrant.tech/PGVector: Postgres 的开源向量检索引擎 https://github.com/pgvector/pgvectorRediSearch: Redis 的开源向量检索引擎 https://github.com/RediSearch/RediSearchElasticSearch 也支持向量检索 https://www.elastic.co/enterprise-search/vector-searchChroma向量数据库官方文档https://docs.trychroma.com/docs/overview/introduction什么是 ChromaChroma 是一款开源的向量数据库专为高效存储和检索高维向量数据设计。其核心能力在于语义相似性搜索支持文本、图像等嵌入向量的快速匹配广泛应用于大模型上下文增强(RAG)、推荐系统、多模态检索等场景。与传统数据库不同Chroma 基于向量距离(如余弦相似度、欧氏距离)衡量数据关联性而非关键词匹配。核心优势轻量易用以 Python/JS 包形式嵌入代码无需独立部署适合快速原型开发。灵活集成支持自定义嵌入模型(如 OpenAI、HuggingFace)兼容 LangChain 等框架。高性能检索采用 HNSW 算法优化索引支持百万级向量毫秒级响应。多模式存储内存模式用于开发调试持久化模式支持生产环境数据落地。ChromaDB安装与配置和使用安装# 安装 pip install chromadb初始化客户端import chromadb # 1.内存模式一般不建议使用 # 内存客户端的所有数据(向量、元数据、集合)都存储在内存中程序退出、进程崩溃、服务器重启后所有数据会全部丢失 # 内存客户端是和进程绑定的无法单独部署、扩展且不支持生产机特性 client chromadb.EphemeralClient() # 2. 本地持久化客户端, 数据持久化到本地文件夹 client chromadb.PersistentClient(path./chroma)增删改查集合是 Chroma 中管理数据的基本单元类似关系数据库的表创建向量模型client chromadb.PersistentClient(path./chroma) # 1. 默认模型默认使用DefaultEmbeddingFunctions是基于Sentence Transformers 的 MiniLM-L6-v2 模型 default_ef embedding_functions.DefaultEmbeddingFunction() # 2. 使用 OpenAI 的嵌入模型默认使用 text-embedding-ada-002 模型 openai_ef embedding_functions.OpenAIEmbeddingFunction( api_key, model_name ) # 3.使用自定义模型 # 自定义 Embedding 函数类(继承 ChromaDB 的 EmbeddingFunction 接口) class MyEmbeddingFunction(EmbeddingFunction): def __init__(self): # 初始化自定义模型(这里用 Sentence-BERT 为例) self.model SentenceTransformer(all-MiniLM-L6-v2) def __call__(self, texts: Documents) - Embeddings: 核心方法将文本列表转换为向量列表 :param texts: 输入的文本列表(Documents 本质是 List[str]) :return: 向量列表(Embeddings 本质是 List[List[float]]) # 1. 处理空文本(避免模型报错) texts [text if text.strip() else for text in texts] # 2. 调用自定义模型生成向量 embeddings self.model.encode( texts, convert_to_numpyTrue, # 输出 numpy 数组(方便后续处理) normalize_embeddingsTrue # 归一化向量(提升检索效果) ) # 3. 转换为 List[List[float]] 格式(ChromaDB 要求的格式) embeddings embeddings.tolist() # 4. 校验输出格式 if len(embeddings) ! len(texts): raise ValueError(f生成的向量数量({len(embeddings)})与文本数量({len(texts)})不匹配) return embeddings2.集合操作# 创建集合 collection(类似数据库表) collection client.get_or_create_collection( namemy_collection, configuration{ # HNSW 索引算法基于图的近似最近邻搜索算法( hnsw: { space: cosine, # 指定余弦相似度计算 ef_search: 100, # 用于搜索的优化参数值越大搜索精度越高但速度越慢 ef_construction: 100, # 用于构建索引的优化参数值越大索引质量越高构建时间越长 max_neighbors: 16, # 每个节点的最大邻居数 num_threads: 4 # 用于搜索和构建索引的线程数 }, # 指定向量模型 embedding_function: default_ef } ) # 查询集合 collection client.get_collection(namemy_collection) # 删除集合 client.delete_collection(namemy_collection) # 返回集合中数据的条数 print(collection.count()) # 返回集合中的数据默认10条可以使用limit指定数量 print(collection.peek())3.数据操作 添加数据 # 方式1集合添加数据自动生成向量(使用集合指定的嵌入模型) collection.add( # 文档的集合 documents [RAG是一种检索增强生成技术, 向量数据库存储文档的嵌入表示, 在机器学习领域智能体(Agent)通常指能够感知环境、做出决策并采取行动以实现特定目标的实体], # 文档元数据信息 metadatas [{source: RAG}, {source: 向量数据库}, {source: Agent}], # id ids [id1, id2, id3] ) # 方式2集合添加数据吗手动传入预计算向量(实际开发中推荐使用) collection.add( # 使用现有的向量模型生成好向量传入 embeddings get_embeddings(向量方法), documents [文本1, 文本2], ids [id3, id4] )查询数据 result collection.query( query_texts [RAG是什么], #要检索的内容 n_results2, # 要求返回的的数据条数默认是10如果指定了一定会返回对应的条数 ) result collection.query( query_texts [RAG是什么], #要检索的内容 n_results2, # 要求返回的的数据条数默认是10如果指定了一定会返回对应的条数 where{source:RAG} # 根据源数据过滤优先级大于n_results ) result collection.query( query_texts [RAG是什么], #要检索的内容 n_results2, # 要求返回的的数据条数默认是10如果指定了一定会返回对应的条数 where_document{$contains:检索增强生成技术} # 按文档内容过滤 ) result collection.query( query_embeddings [[0.5,0.6]], #根据向量进行查询 n_results 2 ) print(result)更新数据 collection.update(ids[id1],documents[RAG真牛逼])删除数据 collection.delete(ids[id1])CS模式# 启动服务端 chroma run --path /db_path# 客户端连接 chroma_client chromadb.HttpClient(hostlocalhost, port8000)

相关文章:

Embedding和向量数据库

向量 把信息统一编码成可计算的数字,让机器能用数学理解语义、关系和相似度,越相近则越匹配 向量 信息的数字表示 相似度 数字之间的距离 AI 智能 大规模向量匹配 向量表征 在人工智能领域,向量表征(Vector Representation)是核心概念之一…...

Claude生成式UI的逆向与利用

Anthropic 在几个小时前宣布为 Claude 提供生成式 UI。交互式小部件 - 滑块、图表、动画 - 在 claude.ai 对话中内联渲染。不是图像。不是代码块。是在聊天中运行的 JavaScript 的实时 HTML 应用程序。 这并不令人惊讶。Vercel 和其他公司已经推广生成式 UI 有一段时间了&…...

看不见的飓风:电动汽车如何重塑全球经济版图

当第一批电动汽车悄然驶上街头时,很少有人预料到,这不仅仅是一场动力系统的更换,而是一场席卷全球产业链、就业市场和能源秩序的“经济飓风”。这场飓风正在以三种方式重塑我们的经济世界。传统汽车工业带陷入“静默地震”。德国斯图加特&…...

运维实战---多种方式在Linux中部署并初始化MySQL

运维实战—多种方式在Linux中部署并初始化MySQL 前言实验环境介绍一、源码包安装MySQL 1、配置MySQL&编译安装2、初始化数据库3、配置环境变量 二、yum安装MySQL三、rpm安装MySQL 前言 MySQL是常用的关系型数据库,具有以下特点: 1、开源&#xff…...

轻松上手Nginx Proxy Manager:安装、配置与实战

轻松上手Nginx Proxy Manager:安装、配置与实战 安装部署 概述安装Docker和Docker Compose创建项目目录创建Docker Compose文件启动数据存储方式说明 Web管理控制台 访问Web界面登录 基本使用 域名与IP绑定添加代理主机配置说明保存并应用配置一键申请SSL证书 申请…...

【2026年最新600套毕设项目分享】springboot数字博物馆系统(14128)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...

【2026年最新600套毕设项目分享】springboot“校园淘”二手交易平台(14127)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...

(五)Spring Cloud Alibaba 2023.x:Seata 分布式事务配置与实现

目录 前言 准备 安装seata 下载seata 配置seata数据库 创建undo_log表 seata配置文件 启动seata服务 项目集成 引入seata依赖 yml文件配置seata 模拟下单 生产者提供扣减库存 消费者进行下单 模拟下单 前言 在微服务架构中,分布式事务是确保多个服务…...

(七)Spring Cloud Alibaba 2023.x:RocketMQ 消息队列配置与实现

目录 前言 准备 安装RocketMq服务 下载rocketmq服务 下载rocketmq 控制台 项目集成 引入依赖 生产者服务配置 消费者服务配置 发送队列消息 前言 在微服务架构中,异步消息通信是实现系统解耦、提高性能和增强系统可靠性的重要手段。在 Spring Cloud Alib…...

(CICD)自动化构建打包、部署(Jenkins + maven+ gitlab+tomcat)

一、平滑发布与灰度发布 **什么叫平滑:**在发布的过程中不影响用户的使用,系统不会因发布而暂停对外服务,不会造成用户短暂性无法访问; **什么叫灰度:**发布后让部分用户使用新版本,其它用户使用旧版本&am…...

企业碳排放权交易会计信息处理规范 免费下载

企业碳排放权交易会计信息处理规范(T/GDES 1—2016) 一、团体官方承诺 广东省节能减排标准化促进会发布的T/GDES 1—2016《企业碳排放权交易会计信息处理规范》团体标准遵循开放、公平、透明、协商一致和促进贸易和交流的原则,按照在本平台…...

鸿蒙原生应用开发进阶之路:Flutter工程师的鸿蒙转型与金融/保险应用实战

引言 随着鸿蒙系统(HarmonyOS)的持续演进和生态扩张,其“一次开发,多端部署”的理念吸引了众多开发者的目光。对于拥有Flutter开发经验的工程师而言,鸿蒙原生开发既是新的机遇,也是技术升级的挑战。特别是…...

什么是 OpenClaw

OpenClaw(曾用名 Clawdbot、Moltbot)是一款开源的个人 AI 助手平台,于 2026 年初在GitHub 上迅速走红,成为近年来增长最快的开源项目之一。它能够在用户自己的设备上本地运行,通过 WhatsApp、Telegram、Discord、飞书、…...

端侧AI 的定义与发展背景

大模型技术经历了参数竞赛与生成能力的突破后,行业焦点已从纯粹的“模型能力”转向“落地能力”。回顾人工智能近年来的发展,其主战场正经历一次深刻的转移。随着技术逐渐趋于同质化,AI 的下一步竞争,不再是“谁的模型更强”&…...

OmoFun 1.1.4 | 追番神器官方APP下载.官网入口

OmoFun动漫(又称“动漫共和国”)是一个深受二次元爱好者喜爱的高品质动漫聚合平台,致力于为用户提供全方位、无广告的沉浸式追番体验。该平台由专业团队运营,拥有庞大的内容储备,涵盖日本新番、国产原创动画、欧美热门…...

打卡信奥刷题(2949)用C++实现信奥题 P5878 奖品

P5878 奖品 题目描述 学校刚开完运动会,准备为尽可能多的同学评奖,并为每个人颁发一份奖品。一份奖品包括 NNN 个物品,如:555 支铅笔、101010 本练习薄等。每份奖品完全一样。虽然学校的保管室里还有一些办去年运动会后剩余的物品…...

某奢侈品品牌虚拟零售AI架构案例:用AI驱动的高端服务提升品牌价值

某奢侈品品牌虚拟零售AI架构案例:用AI驱动的高端服务提升品牌价值 引言:当奢侈品遇上AI,重新定义“高端服务” 凌晨1点,巴黎近郊的LuxuryX虚拟私域门店里,用户Elsa(一位连续3年的VVIP)正对着屏幕…...

Python基于flask-django考研学习系统的设计与实现

目录系统需求分析技术选型系统模块设计开发流程关键问题解决参考资源项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作系统需求分析 明确考研学习系统的核心功能需求,包括用户管理、学习资源…...

关于keil中编译器版本,也就是库不兼容问题的解决办法

问题现象:Error: C9511E: Unable to determine the current toolkit. Check that ARM_TOOL_VARIANT is set correctly. Check that your license details are correct in the License Management dialog of MDK. Additional information is available at:http://www…...

【最全】2026年OpenClaw(Clawdbot)本地6分钟部署及使用喂饭级流程

【最全】2026年OpenClaw(Clawdbot)本地6分钟部署及使用喂饭级流程。OpenClaw(前身为Clawdbot/Moltbot)作为开源、本地优先的AI助理框架,凭借724小时在线响应、多任务自动化执行、跨平台协同等核心能力,成为…...

【有参考文献】事件触发模型 可实现倒立摆控制仿真实验 simulink模型可直接运行

【有参考文献】事件触发模型 可实现倒立摆控制仿真实验 simulink模型可直接运行 含详细参考文献倒立摆这个玩具般的控制对象,总能让工程师们玩得停不下来。它那摇摇欲坠的姿态就像在挑衅:"有本事就来稳住我啊!"传统控制方法像永不停…...

电脑端制作泳道图超便捷 零基础快速做出专业业务流程图

在企业管理、软件开发、流程梳理等工作场景中,泳道图作为一种清晰呈现多角色、多部门协作流程的可视化图表,被广泛应用于需求分析、业务流程优化、系统设计等环节。对于职场从业者和开发者而言,快速绘制出规范、专业的泳道图,能够…...

数据中心U位管理与DCIM、ITAM/CMDB系统的协同机制及实践路径

摘要:在数据中心数字化、集约化运维趋势下,机柜U位作为物理资源的核心计量单元,其精细化管理水平直接影响数据中心资产利用率、运维效率及业务连续性。本文从数据中心运维架构出发,系统剖析U位管理的核心价值,明确其与…...

LLM的可信度边界--人类思考的可信边界

本文为个人想法分享,是一种幻觉创作,只图一乐。作者自愿放弃全部内容的一切权利,不作任何原创确权;内容由 AI 辅助生成,未参考任何特定文章,仅使用公有科学公式 / 概念,非商用,尊重所…...

ssm+java2026年毕设社区外来人员【源码+论文】

本系统(程序源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于社区警务管理问题的研究,现有研究主要以传统纸质档案管理和单一功能的信息化系统为主,专门针对社区…...

MySQL迁移中的兼容性实践难点复盘:从语法一致到行为对齐

MySQL迁移中的兼容性实践难点复盘:从语法一致到行为对齐 在当前信创项目加速落地的背景下,金仓数据库(KingbaseES)因其对MySQL生态的深度适配能力,正被大量金融、政务及央国企单位纳入核心系统替换评估范围。然而&…...

在pyCharm 中命令打包生成exe文件方法

在 PyCharm 中打包 Python 文件,最常用、最可靠的方法是结合使用 PyInstaller 工具。针对你之前编写的生成 UFF 文件的脚本,下面我会介绍两种在 PyCharm 中操作的方式,并重点说明如何确保依赖项(如 numpy, pyuff)和可能…...

gorm底层框架解析

我来为您解析 GORM 底层框架的核心原理和架构设计。这是一个深度技术话题,让我系统性地拆解:GORM 架构全景 ┌─────────────────────────────────────────┐ │ Application Layer │ │…...

leijmdas的godi注入方式先进性

leijmdas 的 godi 框架具体的依赖注入实现方式,给你准确的技术细节。 我来详细介绍 leijmdas 的 godi 框架的依赖注入方式。这是一个基于 代码生成 的工业级 DI 框架,设计非常独特。godi 的核心注入方式1. 结构体标签驱动注入(Tag-Based Inje…...

基于单片机的超声波水塔液位测量系统protues仿真 本设计基于单片机的超声波水塔液位测量和智...

基于单片机的超声波水塔液位测量系统protues仿真 本设计基于单片机的超声波水塔液位测量和智能控制系统主要由硬件与软件两部分组成,硬件是基于AT89C51芯片为核心的超声波水塔液位测量,采用AT89C51单片机进行控制及数据处理,给出了超声波发射…...