向量嵌入语义搜索的 5 个常见错误及修正方法
很多人用了向量嵌入语义搜索却觉得效果一般,问题往往出在几个常见错误上。先回顾一下:语义搜索是用向量嵌入(Embedding)把文本转换成能表示含义的数值向量,再按含义的相似程度查找内容。下面逐个拆解 5 个最常见的错误。
错误 1:只用语义搜索
问题在哪:只用语义搜索。这是最常见也最容易忽略的情况。
怎么改:结合关键词搜索,对专有名词、编号类查询更准确。
错误 2:文档切分不合理
问题在哪:文档切分不合理。很多人第一次使用时都会这样写。
怎么改:先做好切分,向量化质量取决于片段质量。
错误 3:不评估检索效果
问题在哪:不评估检索效果。这样做的结果通常是输出偏离预期,还得花时间返工。
怎么改:准备测试集,用命中率等指标衡量。
错误 4:更换嵌入模型后不重建向量
问题在哪:更换嵌入模型后不重建向量。很多人第一次使用时都会这样写。
怎么改:不同模型的向量不能混用,更换模型需要重新生成。
错误 5:忽视数据安全
问题在哪:忽视数据安全。很多人第一次使用时都会这样写。
怎么改:向量和原文同样包含信息,要做好访问控制。
这些错误的共同根源
语义搜索并不是关键词搜索的替代品,而是补充。语义搜索擅长理解“意思”,但对产品型号、人名、编号这类精确信息反而可能不如关键词搜索。实际应用中,混合搜索往往是更稳妥的选择:语义负责找到相关的范围,关键词负责保证精确的命中。
顺带回答一个常见疑问——嵌入模型可以本地运行吗?有可以本地部署的开源嵌入模型,适合对数据安全有要求的场景。
修正后的标准写法
把上面的修正综合起来,以测试工程师的场景为例,一个更可靠的写法是:
请帮我设计一个语义搜索方案,用于测试工程师团队检索内部的测试报告资料:
- 资料规模:约 [数量] 份文档,以中文为主
- 用户:团队成员,提问方式多样
- 要求:返回最相关的 3 个片段,并附上文档名称和位置
请说明:
1. 整体流程(切分、向量化、存储、检索、展示);
2. 选择嵌入模型时需要考虑的因素(语言、成本、是否可本地部署);
3. 为什么建议同时使用关键词搜索;
4. 如何用测试问题评估检索效果。
不确定的具体产品和参数请不要编造。
如果你是测试工程师,还要额外注意一点:让 AI 补充“容易被忽略的场景”,再由你按业务判断取舍。
最后一个建议
对中文资料选择中文能力较好的嵌入模型。记住语义搜索的原理——嵌入模型把语义相近的文本映射到相近的向量位置,计算向量之间的相似度就能找到意思相关的内容,这是很多知识库和推荐功能的基础——遇到新情况时就能自己判断怎么写。
一个简单的自查方法
把你的提示词发给一位不了解背景的同事看,如果对方需要追问才能动手,AI 多半也会理解偏差。把同事会问的问题提前写进提示词,效果往往立刻改善。