Files
context-gatekeeper/SUMMARY.md

96 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 上下文门控器 · 未完成的灵感
> 这是一个被暂时搁置的项目,记录在此作为未来工作的起点。
---
## 灵感来源
大语言模型在多轮对话中面临两个核心问题:
1. **上下文污染**:历史话题干扰当前话题,导致回答偏离
2. **上下文膨胀**:历史长度线性增长,计算成本上升,容易超出 context window
现有方案多依赖 embedding 模型或向量检索,在资源受限环境下难以部署。
---
## 核心想法
设计一个**无需额外模型**的轻量级上下文选择器:
- 用**话题门控**判断继续还是切换(基于锚点 overlap
- 用**稀疏检索**BM25/IDF替代向量检索
- 用**最小覆盖贪心**选择最相关的历史片段
---
## 已完成的部分
- [x] 完整代码实现(纯 Python无第三方模型依赖
- [x] 四阶段流程:锚点提取 → 话题门控 → 稀疏召回 → 最小覆盖选择
- [x] 单元测试 9/9 通过
- [x] 与 Qwen/Qwen3-8BSiliconFlow的端到端联调
- [x] 50轮对话对照实验Token 节省 96%
- [x] 两轮子代理代码评审,发现并修复了 2 个严重 bug
- [x] 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蒸馏稀疏检索 | 需要训练,本文无需训练 |
---
## 启动建议
```bash
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