Skip to main content

Module learn

Module learn 

Source
Expand description

按站点自学习从哪个浏览器内核开始渲染。

每个站、每个内核记一份“这个内核渲染出来就够用“的 Beta 计数。开始渲染时对内核链按顺序做 Thompson 采样(Thompson 1933;Chapelle & Li 2011):从后验里抽一个“够用“的概率,抽到的值 大于 1/2 就从这个内核开始,否则看下一个。探索来自后验的不确定性本身,不再需要 0.81 的 “连续 3 次回退才换起点、每 16 次探索一次”。

  • 先验包 v0:每个内核 PRIOR_SUFFICIENT 个“够用“的伪观测、没有“不够用“的伪观测。还没见过 某个内核不够用时一定从它开始(和 0.81 一样,冷启动不变);见过 3 次不够用,后验均值正好 降到 1/2,对应 0.81 连续 3 次换起点的规则。
  • 遗忘:每次观测前旧计数乘 1−δ,有效样本数不超过 1/δ,站点改版后能重新学回来。
  • “开浏览器有没有用“不在这里学:0.87 起由 engine/planner.rs 按路径族的后验决定。

表按主机哈希分片(分片只为减少锁争用),总容量 MAX_HOSTS;某片满了时淘汰这一片里证据量 较少的一半,而不是整表清空:只是少一次优化,不影响结果。

Structs§

HostLearner

Constants§

MAX_HOSTS
[策略] 先验包 v0:0.81 的现值。每条约 50 字节,满了约 5 MiB。
PRIOR_SUFFICIENT
[策略] 先验包 v0:0.81 的现值(连续 3 次回退才换起点内核)。

Type Aliases§

EngineObserver
每次记录一个内核的结果时调用:(站点, 内核序号, 结果是否足够)。多服务器时工人用它把观测报给网关。