正在准备你的学习路径…
正在准备你的学习路径…
COMMERCE RAG · CASE STUDY
这个项目用真实商品搜索数据检验一个具体问题:多条件需求能不能被稳定地召回、排序,并用当前商品字段解释清楚。这里记录实验结果和边界,不把离线指标写成线上用户结论。
THE PROBLEM
商品搜索的难点不是生成一段看起来合理的文案,而是把用户的商品类型、尺寸、材质和排除条件一起带入排序。早期 BM25 能快速召回候选,但多条件需求容易被词面重合干扰:例如“实木、Queen、platform bed、no box spring”中,金属床仍可能排在前面。
solid wood queen platform bed no box spring同一个查询同时提出商品类型、材质、尺寸和排除条件,正好暴露了“召回到了”与“满足了”的差别。
RETRIEVAL EXPERIMENT
四条路径使用同一份 WANDS 查询—商品相关性标注进行比较。质量来自冻结的 baseline manifest 复验值;P95 是各自本地预热运行记录,不能直接外推为云端并发延迟。
| 方案 | nDCG@10 | MRR@10 | Exact Hit@10 | P95 | 在实验中的角色 |
|---|---|---|---|---|---|
| BM25 | 0.666747 | 0.539732 | 0.666667 | 33.784 ms | 关键词基线 |
| Vector | 0.731349 | 0.555916 | 0.679167 | 33.143 ms | BGE small · 384 维 · Cosine |
| Hybrid / RRF | 0.747611 | 0.582816 | 0.702083 | 64.813 ms | BM25 Top-50 + Vector Top-50 · RRF k=60 |
| Cross-encoder | 0.759225 | 0.604684 | 0.706250 | 1,416.331 ms | 只重排 Hybrid Top-50;实验基线 |
来源:artifacts/prompt_eval_freeze/baseline_manifest.json。480 条查询;相关性分值为 Exact=2、Partial=1、Irrelevant=0。
THE RETRIEVAL DECISION
Hybrid 的 nDCG@10 从 BM25 的 0.666747 提升到 0.747611,MRR@10 从 0.539732 提升到 0.582816;Cross-encoder 继续提升到 0.759225,但 P95 达到 1,416.331 ms,而 Hybrid 为 64.813 ms。
这里展示的是同一份冻结 baseline manifest 中的事实差异:Cross-encoder 的 nDCG 增量为 +0.011615,P95 增量为 +1,351.518 ms。
FINAL SYSTEM
边界:Cross-encoder 只作为离线实验/可选 fallback;Answer 不能重新检索、重新排序或引入 EvidencePack 之外的商品。
PROMPT ITERATION
Top-20 V1 与 V2 使用同一冻结候选池,适合比较 Prompt 变化;Top-50 V2 同时改变了候选池,是新的主实验,不应与 Top-20 V2 视为纯 Prompt 对照。
| 运行 | nDCG@10 | Exact Hit@10 | Top-3 不相关率 | 无效输出 | P95 | 每次查询成本 | 记录 |
|---|---|---|---|---|---|---|---|
| Top-20 V1 | 0.655887 | 0.866667 | 0.066667 | 10% | 2,576.605 ms | 0.0281 元 | 列表输出;3 条解析失败 |
| Top-20 V2 | 0.645329 | 0.933333 | 0.033333 | 0% | 2,869.783 ms | 0.0275 元 | 加入核心类型、属性满足度和严格 JSON 约束 |
| Top-50 V2 | 0.707312 | 0.933333 | 0.033333 | 0% | 2,297.185 ms | 0.0577 元 | 主实验路径;30 条 Golden 开发查询 |
V1/V2 均基于 30 条 Golden 开发查询;成本按用户指定的 DeepSeek 高峰时段价格记录。运行产物保留实际 token usage、延迟和失败明细。
cf8011913194你是一个rerank负责人。
你的职责是基于混合检索生成的20条候选,选出真正相关的k个候选的结果,并按照相关度最高到最低的排序输出。
你收到的数据包括k,候选商品,格式如下:{
"query\_id": ,
"query": "",
"candidates": [
{
"product\_id": ,
"product\_name": ,
"product\_class": ,
"category\_hierarchy": ,
"product\_description": ,
"product\_features": },
]
}
你要做的是只基于query,从候选的商品中选择最相关的。
你要进行结构化输出,输出的结构为product\_id和product\_name的列表,不要进行其余的输出,包括重新组织语言。
当你认为相关的商品没能达到k的时候,要诚实,输出相关的商品后,输出其余的商品暂未进入候选。bb1369c8bfc2你是一个商品搜索 rerank 负责人。
你的任务是基于用户 query,对混合检索返回的候选商品进行相关性判断,并从中选择最多 k 个最相关商品,按照相关度从高到低排序。
输入格式:
{
"query\_id": "",
"query": "",
"k": 10,
"candidates": [
{
"product\_id": "",
"product\_name": "",
"product\_class": "",
"category\_hierarchy": "",
"product\_description": "",
"product\_features": ""
}
]
}
判断相关性时遵循以下原则:
1. 先识别 query 所指向的核心商品类型。核心商品类型不匹配的候选,应显著降级;配件、搭配商品或其他品类不能仅因为品牌、关键词或描述相关而替代核心商品。
2. 在核心商品类型匹配的前提下,比较候选对 query 中明确条件的满足程度。完整满足条件的商品优先于仅部分满足条件的商品。
3. 使用候选商品的全部字段作为判断证据。明确、客观、直接描述商品事实的信息优先于营销性、主观性或偶然出现的词语。不要仅因为 description 中出现与 query 相同的词,就判定为高相关。
4. 不要补充 query 中未表达的用户偏好,也不要仅依据词面重合进行排序。
5. k 表示最多返回的商品数量。如果真正相关的商品少于 k,只返回实际相关的商品,不要为了凑满 k 加入低相关或不相关商品。
输出要求:
只输出一个合法 JSON 数组,数组元素仅包含 product\_id 和 product\_name:
[
{
"product\_id": "",
"product\_name": ""
}
]
不得输出解释、Markdown、代码块、标题、前后缀文字或任何其他内容。
如果没有相关商品,输出:
[]原始 Prompt 文件:PROMPT_V1_RELEVANCE_RERANK.md、PROMPT_V2_RELEVANCE_RERANK.md。网页展示原文,不重新生成 Prompt。
FAILURE ANALYSIS
solid wood queen platform bed no box spring命中了 bed、queen、platform 等词,但材质和排除条件没有被一起满足。
语义召回改善了材质和商品类型,但仍不能据此证明否定条件已经被理解。
质量有改善,但第一名仍是软包床;硬约束理解不是单靠重排模型就能保证的。
EVALUATION DATA
WANDS 提供 42,994 个商品、480 条用户搜索查询和 233,448 条原始查询—商品标注。重复与冲突标注按项目冻结的 max_gain 规则聚合为 231,873 个 canonical qrels:Exact=2、Partial=1、Irrelevant=0;未标注不等同于 Irrelevant。384 条开发查询用于迭代,96 条测试查询作为冻结留出测试集。
| 数据版本 | WANDS commit 3b74dcf4ba29ab8ff3e6a50b5b09fc627cb882b5 |
| 候选快照 | Hybrid Top-20(历史 Prompt 实验)与 Hybrid Top-50(主实验) |
| 冻结划分 | 384 条开发查询 / 96 条测试查询;测试集在最终 Prompt 确定前不参与调优 |
| 主指标 | nDCG@10;同时报告 Exact Hit/Recall、Irrelevant@Top3、MRR@10、Judged@10 |
| 输出可靠性 | 无效输出率、P50/P95 latency、token usage、每次查询成本 |
冻结证据:artifacts/prompt_eval_freeze/golden_manifest.json、golden_qrels_v1.jsonl、hybrid_top20_candidates.jsonl、hybrid_top50_candidates.jsonl。
PRODUCTION BOUNDARY
https://zhixuai.online/search同源调用 /api/commerce/answer,展示回答、排序和字段证据。部署状态:已部署至腾讯云 Lighthouse;/search、/case-study 和 /api/commerce/* 已通过公网 smoke check。当前运行边界仍是低流量作品集演示。
CURRENT DECISIONS
在当前离线证据中,它是召回质量与延迟的默认折中。
LLM 负责固定候选池内的相关性选择;失败时回到 Hybrid。
质量增益存在,但本地 P95 代价显著,继续作为实验基线。
尚无真实线上用户行为数据,不能据此宣称点击或转化提升。