嵌入模型与Chroma向量数据库 - Qwen3嵌入模型使用 - AI大模型应用开发必备知识
大家好我是小锋老师最近更新《2027版 1天学会 嵌入模型与Chroma向量数据库 AI大模型应用开发必备知识 视频教程》专辑感谢大家支持。本课程主要介绍和讲解嵌入模型与向量数据库简介Qwen3嵌入模型使用Chroma向量数据库使用Chroma安装Client-Server模式集合添加修改删除查询操作以及自定义Embedding Functions。视频教程课件源码打包下载链接https://pan.baidu.com/s/1Oo7dtFf_Zt7hJyl6aYX6TA?pwd1234提取码1234嵌入模型与Chroma向量数据库 - Qwen3嵌入模型使用 - AI大模型应用开发必备知识嵌入模型有很多我们这里选用国内用得比较多的通义千问qwen嵌入模型。我们选一个参数小一点的方便跑。Qwen3-VL-Embedding-2B。https://huggingface.co/Qwen/Qwen3-VL-Embedding-2B/tree/mainQwen3-VL-Embedding-2B简介Qwen3-VL-Embedding-2B 是阿里Qwen团队推出的一款多模态向量表示模型旨在将文本、图像、视频等多种模态的数据映射到统一的语义空间为高精度多模态检索提供第一阶段的召回能力。 核心规格项目说明模型类型多模态向量Embedding模型参数量20亿 (2B)最大上下文32K tokens适合长文档或多图/视频输入嵌入维度最高2048维支持通过MRL技术自定义裁剪如128维、512维支持模态文本、图像、视频、截图及混合模态多语言能力支持30 种语言开源协议Apache 2.0可免费商用✨ 主要技术特点统一多模态表示将文本、图像、视频等不同模态的数据映射到同一个向量空间支持“以文搜图”、“图文搜视频”等跨模态检索。支持长上下文凭借32K的上下文长度能够处理长篇文档、多张图片组合或较长的视频片段。灵活的嵌入维度 (MRL)引入“俄罗斯套娃”表示学习技术无需重新编码即可直接截取向量前缀如只取前128维用于平衡存储成本、检索速度和效果。指令感知 (Instruction Aware)允许在输入时添加自定义指令明确检索任务意图使生成的向量更贴合业务场景定义的“相关性”。️ 架构与训练模型架构基于Qwen3-VL视觉语言模型构建采用双编码器 (Bi-encoder)架构通过取输入末尾特殊token\|endoftext\|的隐藏状态作为输出向量训练方法采用多阶段训练对比预训练→多任务微调→重排器蒸馏并融合了大规模合成数据与高质量数据以保证模型性能。 性能表现在权威的多模态检索基准MMEB-V2上2B模型取得了73.2的优异成绩在同量级模型中表现突出。在包含图像分类、视频问答、文档检索等78个数据集的综合评测中总分为75.0。 典型应用场景该模型非常适合作为多模态RAG检索增强生成系统的第一阶段的向量召回模型。具体应用包括多模态搜索引擎图文、视频的相似度计算与聚类基于自然语言的零样本视频/图像分类企业级多模态知识库的构建Qwen3-VL-Embedding-2B使用首先把这个模型下载到本地然后我们用qwen嵌入模型来实现文本转成嵌入向量然后进行余弦和欧式距离计算。余弦计算结果越小越相似欧式距离也是越小越相似。我们新建项目ChromaPro然后安装下torchtransformers以及数据计算scipy库pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126 ​ pip install transformers -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com ​ pip install scipy -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn下面是示例代码import torch from transformers import AutoTokenizer, AutoModel from scipy.spatial.distance import cosine, euclidean ​ # 加载模型和tokenizer model_name Qwen3-VL-Embedding-2B # 替换为模型的本地路径 tokenizer AutoTokenizer.from_pretrained(model_name) model AutoModel.from_pretrained(model_name) ​ # 设置模型到评估模式 model.eval() ​ def get_embedding(text): 将文本转换为嵌入向量 inputs tokenizer(text, return_tensorspt, paddingTrue, truncationTrue) with torch.no_grad(): outputs model(**inputs) # 通常我们使用[CLS] token的输出或平均pooling 对模型输出的隐藏状态进行全局平均池化将序列维度压缩为单个向量表示。 具体解释 outputs.last_hidden_state获取Transformer模型最后一层的所有token隐藏状态 .mean(dim1)在序列维度dim1上计算平均值将形状从(batch_size, sequence_length, hidden_size)变为(batch_size, hidden_size) embeddings outputs.last_hidden_state.mean(dim1) # 平均所有token的embedding return embeddings ​ def calculate_distances(text1, text2): 计算两个文本之间的余弦和欧式距离 embedding1 get_embedding(text1).squeeze() embedding2 get_embedding(text2).squeeze() print(embedding1:, embedding1,len(embedding1)) print(embedding2:, embedding2,len(embedding2)) # 转换为numpy数组以进行距离计算 embedding1 embedding1.float().numpy() embedding2 embedding2.float().numpy() ​ cos_distance cosine(embedding1, embedding2) euc_distance euclidean(embedding1, embedding2) ​ return cos_distance, euc_distance ​ ​ # 计算距离 cosine_distance, euclidean_distance calculate_distances(我喜欢小狗, 我喜欢小猫) ​ print(f余弦距离: {cosine_distance}) print(f欧式距离: {euclidean_distance}) ​ # 计算距离 cosine_distance, euclidean_distance calculate_distances(我喜欢小狗, python是个好技术) print(f余弦距离: {cosine_distance}) print(f欧式距离: {euclidean_distance})运行结果embedding1: tensor([ 1.4688, 0.5000, -1.1484, ..., -0.1543, 2.0000, -2.2188], dtypetorch.bfloat16) 2048 embedding2: tensor([ 1.2891, 0.6953, 0.3984, ..., 1.7266, -0.0188, -1.0469], dtypetorch.bfloat16) 2048 余弦距离: 0.396905779838562 欧式距离: 53.95702362060547 embedding1: tensor([ 1.4688, 0.5000, -1.1484, ..., -0.1543, 2.0000, -2.2188], dtypetorch.bfloat16) 2048 embedding2: tensor([-0.1270, -0.2930, -1.0781, ..., -0.0542, 0.1348, -0.4844], dtypetorch.bfloat16) 2048 余弦距离: 0.6521354913711548 欧式距离: 71.54246520996094我们会看到余弦计算结果越小越相似欧式距离也是越小越相似。

相关新闻

ChatTTS 注册全流程指南:从零开始到 API 调用实战

ChatTTS 注册全流程指南:从零开始到 API 调用实战

作为一名刚接触语音合成服务的开发者,我最初面对 ChatTTS 时,感觉有点无从下手。官方文档虽然全面,但信息比较分散,特别是注册和首次调用的流程,对于新手来说不够直观。认证步骤、API Key 的获取位置、以及如何安全地集…

2026/7/6 23:18:52 阅读更多 →
智能客服产品设计:从架构到实现的技术避坑指南

智能客服产品设计:从架构到实现的技术避坑指南

最近在做一个智能客服项目,从零到一踩了不少坑。今天就来聊聊智能客服产品设计背后的技术实现,特别是那些容易掉进去的“坑”,以及我们是怎么爬出来的。希望能给正在或即将开发类似系统的朋友一些参考。 智能客服听起来高大上,但落…

2026/7/7 0:02:12 阅读更多 →
基于Python的旅游景点推荐系统毕设:AI辅助开发实战与架构避坑指南

基于Python的旅游景点推荐系统毕设:AI辅助开发实战与架构避坑指南

最近在帮学弟学妹们看旅游推荐系统的毕业设计,发现大家普遍卡在几个地方:要么数据太少模型跑不起来,要么代码写得乱自己都看不懂,要么就是功能做出来了但不知道怎么包装成能演示的样子。正好结合我自己的经验和现在流行的AI编程助…

2026/7/7 0:00:24 阅读更多 →

最新新闻

Ubuntu 22.04 实时监控:htop 与 top 的 5 项关键指标深度解析与实战

Ubuntu 22.04 实时监控:htop 与 top 的 5 项关键指标深度解析与实战

Ubuntu 22.04 实时监控:htop 与 top 的 5 项关键指标深度解析与实战当服务器负载突然飙升,或是应用程序响应变慢时,系统管理员的第一反应往往是打开终端查看资源占用情况。在 Ubuntu 22.04 中,top和htop这两个经典工具仍然是诊断性…

2026/7/6 23:59:07 阅读更多 →
msconfig 处理器个数设置详解:从1核到N核的3种应用场景与风险

msconfig 处理器个数设置详解:从1核到N核的3种应用场景与风险

msconfig处理器个数设置深度解析:从原理到实战的完整指南引言:揭开处理器个数设置的神秘面纱在Windows系统的众多隐藏功能中,msconfig中的"处理器个数"设置可能是最常被误解的一个。许多用户误以为这个选项能"开启"更多处…

2026/7/6 23:59:07 阅读更多 →
Java应用红蓝对抗实战:从反序列化漏洞到内存马注入的攻防剖析

Java应用红蓝对抗实战:从反序列化漏洞到内存马注入的攻防剖析

1. 项目概述:为什么Java安全是红蓝对抗的焦点在当前的网络安全攻防演练,也就是我们常说的红蓝对抗中,Java应用一直是双方交锋的核心战场。这不仅仅是因为Java在企业级应用、金融系统和大型互联网后台中无处不在,更因为其技术栈的复…

2026/7/6 23:59:07 阅读更多 →
RHEL 8.10 ISO 镜像下载与验证:3步完成官方订阅账户注册与SHA-256校验

RHEL 8.10 ISO 镜像下载与验证:3步完成官方订阅账户注册与SHA-256校验

RHEL 8.10官方镜像获取与安全验证全流程指南 1. 为什么选择官方渠道获取RHEL镜像? 在企业级Linux发行版中,Red Hat Enterprise Linux(RHEL)因其卓越的稳定性和长期支持而备受青睐。然而,许多技术人员在获取安装镜像时…

2026/7/6 23:57:01 阅读更多 →
Android进程监控攻防实战:从行为分析到恶意软件检测

Android进程监控攻防实战:从行为分析到恶意软件检测

1. 项目概述:当恶意软件开始“偷窥”你的进程在移动安全领域,Android进程(AndroidProcesses)的管理与监控一直是攻防双方的核心战场。对于普通开发者而言,/proc目录下的进程列表或许只是调试应用性能的工具&#xff1b…

2026/7/6 23:54:56 阅读更多 →
Node.js SQLite数据库加密实战:SQLCipher集成与安全存储指南

Node.js SQLite数据库加密实战:SQLCipher集成与安全存储指南

1. 项目概述:为什么我们需要加密的本地数据库?在开发桌面应用、移动端应用,甚至是某些需要离线存储敏感数据的服务端应用时,SQLite 几乎是默认的轻量级数据库选择。它简单、快速、零配置,一个文件就是一个数据库&#…

2026/7/6 23:50:52 阅读更多 →

日新闻

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻