检索调优¶
事实召回的排序参数、命名 profile 与弱监督评估。这里改的是召回排序的权重,不是 「召回多少条」的日常配置(那个在月璃设置的对话与记忆段)。评估的 重放实现与指标口径见记忆系统与 core-memory 模块。
当前生效与参数表¶
「当前生效」显示生效中的 profile 名与覆盖了几项参数;应用新 profile 后立即生效, 无需重启。
「可调的参数」逐行列出白名单内的参数:中文含义在前、参数名在其下方,然后是现在的 值、可填范围,末列「草稿」填新值。白名单之外的名字进不了这套流程。表内参数按作用 分三组:
- 排序权重:词面相关度权重
bm25_weight、留存度权重下限retention_weight_floor、 PPR 回迁概率ppr_alpha、联想扩散跳数ppr_hops(0 为关闭,回想默认不做联想)、候选池分数百分位pool_score_percentile。 - 条数上限:进提示词的事实条数、情节召回条数、近期情节条数——显示「跟随月璃设置」 的项表示当前值来自配置文件,评估时可以在可填范围内临时覆盖着试。
- 重排相关度下限
rerank_min_score:只在配置了重排模型时生效,回想与查知识的候选 重排分数低于它的不返回。下方的评估重演的是每轮自动带上的记忆,不经过重排, 评估结果不反映这一项,改了之后看实际对话里「检索结果按重排分数过滤」的记录。
参数扫描与效果对照¶
扫描就是「改草稿 → 对比 → 再改」的循环:
- 在参数表草稿列里填想试的值,可以只填一两个,留空的项沿用当前生效覆盖。
- 点对比草稿与现行:先用现行参数、再用草稿参数,把同一批历史回合各重演一遍, 按回合配对后给出结论。草稿与现行完全一样时不会发起评估,会提示先改几个值。
- 满意后把草稿存下来:「新 profile 名」输入名字,点保存草稿为 profile。
只想看现行参数自己的读数时,点只看现行参数。
评估不改动生效中的参数覆盖:草稿参数只用于重放,评估进行时到达的聊天仍按生效中的 profile 检索;重放只读,不写库、不建边。
「已保存的 profile」列出全部命名参数集:生效中的标「生效中」且「应用」置灰,其余 可应用或导出(导出为 JSON,便于备份或搬到另一台机器)。
评估结果¶
评估把最近的对话回合重演一遍:用她当时实际用的检索词,按给定参数重新挑记忆,再和 她当时实际用的记忆比对(来源见下文「留痕重放」)。界面上的几个读数:
- 吻合度(nDCG@k):重新挑出的记忆和她当时实际用的有多接近,0 到 1;1 表示 完全一样、顺序也一样。只在她回了话、当时也有记忆进了提示词的回合上统计。
- 漏挑的记忆:当时用上了、重演时没挑上的条数,所有回合加起来。
- 重演的回合 / 每回合挑出:参与打分的回合数(括注共重演多少回合)与每回合挑出 的条数。样本量取决于事件记录保留了多久。
- 跟当时对不上:按当时的检索词重新找一遍候选记忆、和当时留下的记录逐条比,顺序 或条目有出入的回合数。
对比时,结果区顶部是一句话结论:草稿挑出的记忆和她实际用过的更接近、差得 更远,或差不多(平均吻合度变化不到 0.02 判为差不多)。下面列出草稿改了哪些 参数、吻合度从多少变到多少、更接近 / 更远 / 没变的回合各有几个、漏挑条数的变化, 以及按变化幅度排列的「有变化的回合」折叠表。两次评估只比较共同的回合。
读数时注意:
- 吻合度单看没有意义。重演用的是当时的检索词,但记忆强度在那之后又变过,在场者 也只能按聊天记录估,即使参数不变分数也到不了 1,只拿两组参数对比。「跟当时对不上」 越多,吻合度的绝对值越要打折看。
- 「更接近」只说明和她以往的挑法更像,不说明挑得更对:她以往用的记忆本来就是现行 参数挑出来的,评估真正衡量的是换参数后挑选结果的变化幅度。
- 真要换参数,还要看换上以后她聊天的实际表现。
留痕重放¶
页面上的评估全部来自留痕重放。生产中每轮事实召回都会留一条留痕事件,无损记录当时 的检索词(本轮消息与会话印象)、候选池与实际进提示词的事实。评估按留痕里的两份检索 词各召回一次、取并集,在场者按事件时刻前的消息记录近似,再用待评估参数排序。重放池 与留痕池对不上的回合单独计数,就是上面的「跟当时对不上」。
被纠正过的记忆(见 features.toml 的反馈纠错)当时就没进 候选,重演按留痕里的记录同样排除。两条记忆说法冲突时,提示词会把对立的那条一并带上, 那条不是挑出来的,不算进比对。
评估不调用任何模型。留痕里记下的「实际进提示词的事实」取自决策那一次的提示词,
那份提示词按词面排序、不经过按意思的重新排序,所以重演也不需要查询向量。如果把
[conversation_agent] split_replyer 关掉(行动决策与回复生成合成一次调用,见
bot.toml),那一次的提示词会经过按意思的重新排序,这时
吻合度会系统性偏低。
样本量受事件记录的保留时长限制,不受提示词存档数量限制;没有留痕的回合不参与评估。
空态¶
还没跑过评估时,结果区提示先在草稿列改几个参数再点「对比草稿与现行」。没有任何已存 profile 时列表只有内置的 default 一行,覆盖 0 项参数。