Files
context-gatekeeper/SUMMARY.md

2.6 KiB
Raw Permalink Blame History

上下文门控器 · 未完成的灵感

这是一个被暂时搁置的项目,记录在此作为未来工作的起点。


灵感来源

大语言模型在多轮对话中面临两个核心问题:

  1. 上下文污染:历史话题干扰当前话题,导致回答偏离
  2. 上下文膨胀:历史长度线性增长,计算成本上升,容易超出 context window

现有方案多依赖 embedding 模型或向量检索,在资源受限环境下难以部署。


核心想法

设计一个无需额外模型的轻量级上下文选择器:

  • 话题门控判断继续还是切换(基于锚点 overlap
  • 稀疏检索BM25/IDF替代向量检索
  • 最小覆盖贪心选择最相关的历史片段

已完成的部分

  • 完整代码实现(纯 Python无第三方模型依赖
  • 四阶段流程:锚点提取 → 话题门控 → 稀疏召回 → 最小覆盖选择
  • 单元测试 9/9 通过
  • 与 Qwen/Qwen3-8BSiliconFlow的端到端联调
  • 50轮对话对照实验Token 节省 96%
  • 两轮子代理代码评审,发现并修复了 2 个严重 bug
  • README.md 完整文档

未完成的部分

  • 在标准数据集QuAC/CoQA上与 Attentive History (BERT) 做对照实验
  • 与 last-N 基线的量化对比
  • 论文撰写(在标准学术数据集上验证后才写)
  • 消融实验(各模块贡献度分析)
  • 中文停用词表(提升锚点质量)
  • 句级裁剪(目前最小粒度是整个 block
  • tiktoken 精确 token 估算

关键发现

对照实验50轮对话

指标 无门控完整50轮 有门控
召回范围 全部50轮 仅相关轮次
Token节省 96%
回答质量 正确 正确

发现的 bug

  1. _active_topic 在话题切换后不更新(已修复)
  2. TopicGate 实例状态与 _active_topic 不同步(已修复)

相关工作(待深入)

论文 方法 与本文的关系
Attentive History Selection (2019) BERT + 注意力软选择 需要GPU本文纯规则
The Complexity Trap (2025) 简单丢弃旧observation 证明了简单选择≈复杂压缩
DiSCo (2024) LLM蒸馏稀疏检索 需要训练,本文无需训练

启动建议

cd context-gatekeeper
pip install -e .

# 运行测试
pytest tests/test_gatekeeper.py -v

# 对照实验(需要 SiliconFlow API key
python test_comparison.py

仓库地址

https://gitea.ephron.ren/elaina/context-gatekeeper