Embedding是什么?从文本转向量

向量的作用

在了解embedding之前,我们先要知道向量是做什么的,为什么需要向量,我们使用中文好好的不行吗,es模糊匹配一样可以解决问题。

但是假如我们有以下这个场景,知识库内的内容是:打卡截止时间为9:00。用户提问:我8:30进行打卡可以吗?

以上这种场景我们使用文字的匹配几乎不可能匹配上,所以我们引入了向量。

那向量是什么呢,这里的向量可以理解为对文本语意的多维度展现,举个例子加入"苹果"的向量是[0.213, 0.554],第一个向量代表的是苹果的大种类,属于水果,那"香蕉"的向量就可能是[0.213, 0.76942], 也是属于水果这个大种类。大概可以这么理解向量,当然具体的例子肯定复杂的多,但一通百通,原理都差不多。实际应用中,向量维度可能高达数百甚至数千,这里仅用二维简化示意

好的,那知道了向量的作用,我们还得知道向量的匹配机制,两个向量之间你怎么知道他的相似度呢?

向量相似度

余弦相似度是比较向量相似度中最常用的方式。每个向量都可以看成是从原点出发的一个箭头,余弦相似度就是两个箭头的方向有多么接近。余弦相似度越接近1,表示两个向量方向越一致(语义越相似);越接近0,表示越无关;越接近-1,表示越相反

正常来说我们如果要找相似度差不多的大概在0.7以上就行了。取相似度最高的几个,然后过滤掉0.7以下的向量。

Embedding

所以将文本转为向量的技术就是embedding,只要我们输入一串文本,embedding就会将这串文本的向量数据返回回来。

不同的embedding模型所对应的向量维度,最大文本长度都不太一样,维度越高,表达能力就越强,分析的越细致,但是存储和计算的成本也会变得更高。

最大输入长度也决定了你的chunk能有多长。

不同模型对于中文的识别效果也不太一样,整体国内的阿里通义 text-embedding-v3 对于中文的效果最好,api也更加稳定,国外的openAi的embedding模型对于英文的效果更好。

这里也要提一点,不同的embedding模型输出的向量是不太一致的,如果使用了一个模型进行chunk内容的向量化,那么进行输入匹配的向量化也得使用这个embedding模型,不然可能匹配出问题。

总结

所以我们的RAG流程是

上传文件 → 文件Tika提取文本 → 文件内容chunk拆分 → 不同chunk向量化处理 embedding

再往后就是对向量进行存储,以及后续用户输入内容匹配再交给大模型识别。

相关推荐
lee_curry35 分钟前
第四章 jvm中的垃圾回收器
java·jvm·垃圾收集器
码途漫谈1 小时前
Easy-Vibe开发篇阅读笔记(四)——前端开发之结合 Agent Skills 美化界面
人工智能·笔记·ai·开源·ai编程
九转成圣2 小时前
Java 性能优化实战:如何将海量扁平数据高效转化为类目字典树?
java·开发语言·json
AI技术增长2 小时前
Pytorch图像去噪实战(六):CBDNet真实噪声去噪实战,解决合成噪声模型落地效果差的问题
pytorch·深度学习·机器学习
Mr_sst2 小时前
Claude Code 部署与使用保姆级教程(2026 最新)
python·ai
直奔標竿2 小时前
Java开发者AI转型第二十七课!Spring AI 个人知识库实战(六)——全栈闭环收官,解锁前端流式渲染终极技巧
java·开发语言·前端·人工智能·后端·spring
金銀銅鐵3 小时前
[java] 编译之后的记录类(Record Classes)长什么样子(上)
java·jvm·后端
@PHARAOH3 小时前
WHAT - cursor cli 开发范式
前端·ai·ai编程
博.闻广见4 小时前
AI_概率统计-2.常见分布
人工智能·机器学习
企业架构师老王4 小时前
2026制造业安全生产隐患识别AI方案:从主流产品对比看企业级AI Agent的非侵入式落地路径
人工智能·安全·ai