优雅谈大模型:白话向量数据库
向量数据库,简单来说,是一种把信息存成高维向量的新式数据存储手段。这个“高维向量”到底是什么?其实就是通过Embedding Model对数据特征或属性进行捕捉后得到的数学表达。维度跨度可以从几十到几千,完全取决于具体应用对数据精细度的要求。
它能处理文本、图像、音频、视频等各种原始数据——只要通过Embedding Model完成转换就行。而Embedding Model的技术路线也很丰富,机器学习模型、词嵌入、特征提取算法都行得通。
向量数据库最大的亮点,在于它可以通过比较向量的矢量距离,实现又快又准的相似性搜索。传统数据库做查询,靠的是精确匹配或者预定规则;向量数据库不一样,它擅长找出上下文或语义上相似的数据。举个例子: “我不是很饿,但是还能够吃点” 和 “我才吃得七分饱” 这两句话,放到传统数据库里,根本不会被认为是相近的意思。但经过Embedding Model这根“魔法棒”一处理,它们变成了两串数字——比如[1.4, 6.7, ……, 9.1]和[9.8, 2.5, ……, 1.9]。只要EM模型足够好,这两个向量在高维空间里就会离得非常近。

上面的示意图展示了写入流程和查询流程,向量就是连接一切的桥梁。回到实际业务场景:你可以事先把大量私域资料录入向量数据库,这些内容会被提炼成索引(向量)一起存起来;当用户发出查询请求时,EM把查询内容也做Embedding,然后用这个查询向量去库里检索相似内容,返回相关的片段;最后借助Prompt技术,把原始查询和检索出来的片段拼接在一起,喂给大模型,从而得到更精准的回答。这就是RAG。
到这应该能看出来,向量数据库里有一个核心组件——EM模型。正因为有它,向量数据库才能在图像检索、自然语言理解、推荐系统等任务上大放异彩,而这些恰恰是传统数据库做不到的。
高质量的数据和嵌入,对于向量数据库的准确性和有效性至关重要。嵌入的质量(也就是数据的向量表示)直接影响相似性搜索的效果。质量差的嵌入会带来不准确甚至无关的结果,让系统变得没什么用。要保证数据质量,就得做好预处理:归一化、清洗、转换,把噪声和不一致性剔除。在多样且有代表性的数据集上训练的模型,通常能产出更可靠的嵌入。
向量检索一般采用近似最近邻(ANN)搜索。Embedding和ANN搜索都是计算密集型的过程。Embedding需要把原始数据跑过复杂的机器学习模型,对处理能力、内存和存储要求很高,尤其是数据集很大或者模型参数很多的时候。ANN搜索虽然为了速度做了优化,但在高维向量空间里高效遍历并保持性能,同样需要大量计算资源。这些操作依赖并行处理能力和高性能计算环境,比如GPU和分布式计算集群。
使用技巧1:如何选择生成向量嵌入的机器学习模型
以下几条准则可以参考:
- :文本数据通常用BERT、GPT、Word2Vec这类模型;图像用ResNet或VGG等卷积神经网络;音频可以用Wa v2Vec或MFCC;表格数据则CatBoost或TabNet更合适。
数据类型
- :如果应用需要理解细腻的语言上下文,基于Transformer的模型(如BERT、GPT)是首选;涉及到图像识别或分类,ResNet等深度学习模型表现更好。
应用需求
- :更复杂的模型通常嵌入效果更好,但需要更多算力。要在模型复杂度和可用计算能力之间找到平衡点。
性能与资源限制
- :预训练模型省时省资源,对通用场景有效;特定领域应用可能需要微调预训练模型,或者干脆训练一个自定义模型。
预训练模型 vs 自定义模型
使用技巧2:常见预处理步骤,确保数据质量
- :把数据统一到通用比例,尤其是数值型数据,避免某个特征过度影响嵌入。
归一化
- :去掉噪音——不相关或错误的数据、重复项、异常值,保证数据的质量和一致性。
清洗
- (文本数据):把句子拆分成单词或子词,让嵌入模型能处理。
分词
- :把文本统一转成小写,删掉标点符号,减少数据中的可变性。
小写化、去标点
- :通过插补或直接删除缺失数据,防止不完整的信息扭曲嵌入。
处理缺失值
- :图像涉及调整大小、归一化、增强;音频则可能要做降噪、归一化、分割。
图像和音频处理
- :从原始数据中识别并提取相关特征,能进一步提高嵌入质量,尤其是复杂数据类型。
特征提取
很多RAG变种都是在这个基础上进行迭代创新。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名