跳到主要内容

Embedding 常见问题

基础问题

Q1: Embedding 和词向量(Word2Vec)有什么区别?

A: 词向量针对词级别;Embedding 通常指句/段级别的语义向量,适合检索、聚类等。现代 Embedding 多为 Transformer 模型,上下文感知更强。

Q2: 维度越高越好吗?

A: 不一定。维度高表达力强,但计算与存储成本增加。768–1024 在多数场景已够用,可根据评估结果选择。

Q3: 必须归一化吗?

A: 若用余弦相似度,理论上应归一化;很多实现内部已处理。点积在归一化后与余弦等价,可简化计算。

使用问题

Q4: BGE 为什么要在查询前加指令?

A: BGE 训练时对查询和文档做了不对称处理,查询加指令可提升检索效果。详见官方说明。

Q5: 索引和查询能用不同模型吗?

A: 不推荐。不同模型向量空间不同,相似度失去意义。迁移模型时需重建索引。

Q6: 如何评估 Embedding 质量?

A: 用 MTEB 做通用评测;用业务数据做检索准确率、召回率、RAG 端到端效果评估。

技术问题

Q7: 批量处理时 OOM 怎么办?

A: 减小 batch_size、使用梯度累积、或分批写入向量库。

Q8: 与向量数据库的维度不匹配怎么办?

A: 重建索引时使用与当前 Embedding 模型一致的维度;或换用支持多维度的库与模型。


最后更新: 2025 年 3 月