Yandori 系统通过神经压缩架构实现实时新闻流的低内存追踪,核心在于将海量 RSS/Atom 源的文章批次聚合为固定维度的“世界状态”嵌入序列,从而隐式构建新闻扩散图。该方法避免了传统图数据库的内存爆炸,支持传播路径回溯与多尺度预测。
核心流程:从爬取到世界状态聚合
系统以 1 分钟为更新周期,首先通过 RSS 发现爬虫枚举域名下的 feed 端点(如 /rss、/feed/atom),优先使用 HTML 自动发现链接。爬虫规格严格合规:User-Agent 为 YandoriBot/1.0,请求率 Poisson(λ=1.0)/域名,间隔 Uniform(500ms-1200ms),并发 100 workers,超时 10s+10s,LRU 缓存 robots.txt (TTL=24h)。这确保覆盖 20 万级网站链接的同时,低延迟处理每分钟 0-100+ 文章。
文章批次经 3 层 Transformer 编码器(d_model=256,8 heads,瓶颈 d=32/256)转为嵌入 e_i。随后,聚合器使用自监督重要性权重 w_i = softmax(MLP(e_i)) 计算世界状态 z_t = Σ w_i · e_i。重要性信号融合梯度范数(∂L_pred / ∂e_i)、偏差(||e_i - μ||)与惊喜(||z_t - EMA||),通过 KL 散度训练,无需标注。该步常量时间 O(N·d),N 为批次大小。
“Yandori 系统实现常量 ~14 MB 内存,无论部署时长。” 此嵌入序列即新闻扩散的压缩表示,支持路径追踪:历史 z 序列通过时间注意力回溯因果传播。
分层内存与时间注意力:低延迟扩散追踪
为追踪实时扩散,系统维护分层缓冲:
- 近期缓冲:24h × 1min = 1440 状态,1.5 MB。
- 周缓冲:7 天 × 1h = 168 状态,0.17 MB。
- EMA 基线:5 尺度(1min α=0.67、1h=0.033、1day=0.014、1week=0.002、1month=0.0005),总 5 KB。
时间注意力采用单头设计:q = W_q · LN(z_current),K = W_k · LN([z_1..z_H]),分数 = (q·K_i)/√d + log(exp(-Δt_i / τ)),上下文 = softmax(α) · z_i。残差连接 + Xavier(gain=0.1) + LayerNorm 确保梯度稳定,计算 O(1600 d) <100ms/GPU。
此机制可视化查询传播路径:给定 z_t,注意力权重回溯上游文章贡献;惊喜信号高时,放大异常扩散检测。
多尺度预测:前瞻性扩散监控
预测器输出 pred_{1min,1h,1day} = MLP([z_t, context]),context 融合偏差 (0.6·(z_t - EMA_1h) + 0.4·(z_t - EMA_1day))。损失 L_pred = 0.1 MSE_1min + 0.3 MSE_1h + 0.6 MSE_1day,长时程权重最高,强制保留因果信息。
总损失 L_total = 0.30 L_recon + 0.50 L_pred + 0.20 L_importance。训练超参:AdamW lr=1e-4,wd=1e-5,clip=0.5,禁用 fused attention 用 math_sdp。
可落地部署参数与清单
1. 爬虫配置(覆盖 200k 站点)
- 域名池:优先新闻/RSS 目录,respect robots.txt (前缀树解析)。
- 限速:token bucket burst=5,refill=1/s/域名;backoff: 404=24h, 5xx=48h, 429=72h。
- 并发:semaphore=100,circuit breaker 于 10% 失败率。
- 监控:QPS <1/域名,错误率<1%,feed 有效率>95%。
2. 内存与缓冲阈值
| 组件 |
大小 |
更新阈值 |
驱逐策略 |
| 近期缓冲 |
1440×256×4B=1.47MB |
Δt=1min |
FIFO |
| 周缓冲 |
168×256×4B=0.17MB |
Δt=1h |
下采样 |
| EMA |
5×256×4B=5KB |
实时 |
α 衰减 |
| 总计 |
~14MB |
- |
O(1) |
3. 预测与异常阈值
- 惊喜阈值:sigmoid(||z_t - EMA|| > μ_dev + 2σ_dev),触发警报。
- 预测 MSE 阈值:1min<0.01, 1h<0.03, 1day<0.06,回滚至纯近期缓冲。
- 重要性 KL >0.1 时,重训聚合 MLP。
4. 生产监控清单
- 延迟:端到端 <100ms/min,警报 >200ms。
- 内存:>12MB 扩容 d=128→64。
- 准确:离线 CC-News 验证 L_pred <0.0356。
- 可视化:Grafana 仪表盘,z_t TSNE 投影追踪扩散簇;路径查询 API 返回 top-5 注意力文章。
5. 回滚与扩展策略
- 降级:惊喜高 → 仅 recon 模式,禁用 pred。
- 扩展:d=512 GPU,worker=500 覆盖 500k 源。
- 集成:Kafka 注入外部流,Prometheus 指标。
此配置已在生产验证,支持低延迟更新与传播可视化。实际部署时,从小域池(1k 站点)起步,渐扩监控。
资料来源:https://yandori.io