趋近智
为了使用Recall@k或Precision@k等指标定量评估向量 (vector)搜索系统的性能,您首先需要一个基准来比较系统的输出。这个基准就是真实标准:一组查询与每项查询的真正相关文档或条目集合配对。依赖于这种基准的全面评估,对于调整参数 (parameter)和确保系统达到目标是必不可少的。构建高质量的真实标准数据集通常是此评估过程中最具挑战性,但也最重要的一部分。
在构建真实标准数据集之前,您必须面对“相关性”固有的主观性。一个用户认为相关的,另一个用户可能不这么认为。相关性高度依赖于查询的意图、用户的上下文 (context)以及特定任务(例如,为RAG找到一个精确答案,或是为了语义搜索了解相关概念)。
挑战包括:
尽管存在这些挑战,但建立一个可用的相关性定义并构建相应的真实标准数据集对于系统化评估来说必不可少。
“存在多种构建真实标准的方法,每种方法在成本、可扩展性和与相关性的符合程度上都有其自身的权衡。”
这通常被认为是最可靠的方法,因为它直接涉及人工判断来评估相关性。
流程:
标注者间一致性 (IAA): 衡量标注者之间的一致性对于评估标注质量和指南清晰度很重要。常用指标包括科恩 Kappa(适用于两名标注者)或克里彭多夫 Alpha(适用于多名标注者)。低IAA分数通常表示指南模糊或任务主观。
工具: 此过程可以使用电子表格、自定义标注工具或Amazon SageMaker Ground Truth、Labelbox等专用平台,或doccano等开源选项来管理。
虽然人工标注能提供高质量标注,但它通常成本高、速度慢,且需要仔细管理。
除了直接的人工判断,您还可以从应用程序记录的用户交互中推断相关性。
隐式信号具有可扩展性,并反映真实用户行为,但需要仔细的清洗、过滤和解读。它们通常更适合相对比较(例如,A/B测试),而不是为召回率等指标建立绝对真实标准。
这涉及通过编程方式创建查询-文档对,其中相关性是根据生成过程假定的。
“合成数据对于初始系统检查或当其他方法不可行时很有用,但需根据性能进行验证。”
对于网络搜索或问答等常见任务,存在标准化数据集。
使用基准对于学术比较或验证组件很有价值,但可能无法完全代表您特定应用场景中的性能。
收集后,真实标准数据需要进行结构化,以便在评估脚本中使用。一种常用格式是将查询标识符映射到相关文档标识符列表,可能带有相关性分数。
JSON结构示例:
[
{
"query_id": "q_001",
"query_text": "如何调整HNSW参数",
"relevant_docs": [
{"doc_id": "doc_abc", "relevance": 3},
{"doc_id": "doc_xyz", "relevance": 2},
{"doc_id": "doc_pqr", "relevance": 3}
]
},
{
"query_id": "q_002",
"query_text": "标量量化与乘积量化对比",
"relevant_docs": [
{"doc_id": "doc_lmn", "relevance": 3},
{"doc_id": "doc_def", "relevance": 1}
]
}
]
这个精心构建的数据集构成了计算相关性指标的基础。例如,要计算特定查询的Recall@k:
设 为真实标准中查询 的相关文档ID集合, 为搜索系统为查询 返回的前 个文档ID集合。则:
同样地,Precision@k、平均倒数排名 (MRR) 和归一化 (normalization)折现累积增益 (nDCG) 都依赖于将系统输出与真实标准进行比较,通常会包含分级相关性分数(如果可用)。
构建真实标准数据集并非易事但不可或缺的投入。它提供了衡量进展、比较不同算法或参数 (parameter)设置所需的客观依据,并最终确保您的向量搜索系统有效满足用户的信息需求。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•