TSCE框架如何减少LLM幻觉并提升答案保真度?(附GPT-4/Llama-3实测)
AIAI Summary (BLUF)
TSCE(两阶段上下文增强)是一种机制框架,通过首先生成嵌入空间控制提示以压缩语义空间,再进行聚焦生成,从而减少大语言模型幻觉并提升答案保真度。在GPT-3.5/4及Llama-3 8B上验证,无需额外训练即可实现高达30个百分点的性能提升。
引言
在许多现实世界的任务中,大语言模型(LLMs)要么会产生幻觉,要么在被迫一次性回答时,会迷失在复杂的指令中。两步上下文增强(Two-Step Contextual Enrichment, TSCE)通过首先生成一个“嵌入空间控制提示”,然后引导第二次聚焦生成来解决这个问题——无需额外训练即可提供更忠实可靠的答案。
一个用于获得更可靠LLM答案的两阶段*机制框架——已在OpenAI GPT-3.5/4和开源模型Llama-3 8B上得到验证。*
目录
什么是TSCE?
直觉理解:想象你要求一个模型“总结这份1000字的法律简报”。在单次处理中,它可能会遗漏关键条款或陷入幻觉,因为它正在从广泛分布的可能向量中进行采样。相反,TSCE的第一阶段通过“嵌入空间控制提示”压缩了潜在的向量空间,然后第二阶段能更好地准备以生成摘要。
TSCE框架包含两个核心阶段:
| 阶段 | 目的 | 温度 (Temp) | 输出 |
|---|---|---|---|
| 阶段 1 — 嵌入空间控制提示 | 将整个提示压缩成一个密集的潜在支架(ESCP)。 | ↑ ≈ 1.0 | 不透明的令牌块 |
| 阶段 2 — 聚焦生成 | 重新读取系统提示 + 用户输入 + ESCP,并在更窄的语义流形内生成答案。 | ↓ ≤ 0.1 | 最终答案 |
结果:幻觉、指令偏离和格式错误显著减少——无需微调,仅需一次额外的API调用。
项目亮点
本演示仓库提供了完整的实现和评估工具集。
| 文件/目录 | 用途 |
|---|---|
tsce_agent_demo/ |
产生下述结果的测试框架与任务集。 |
tsce_agent_demo/tsce_agent_test.py |
基线模型与TSCE的对比测试,打印两种答案,生成report.json。 |
tsce_agent_demo/tsce_chat.py |
TSCE核心实现模块。 |
tsce_agent_demo/results/ |
熵、KL散度、余弦相似度小提琴图等可视化结果。 |
.env.example |
配置文件模板,复制为.env并填入你的密钥。 |
prompts/phase1.txt, prompts/phase2.txt |
每个阶段的默认提示模板。 |
支持 OpenAI Cloud、Azure OpenAI 或任何 Ollama / vLLM 端点。
✨ 新特性:现在可以从 prompts/phase1.txt 和 prompts/phase2.txt 加载第一和第二阶段提示,便于轻松替换为你自己的提示模板。
工作原理
TSCE的工作流程可以概括为两个明确的步骤:
- 阶段 1 – 嵌入空间控制提示构建:压缩嵌入空间,并根据用户输入生成一个嵌入空间控制提示。
- 阶段 2 – 引导式回答:结合控制提示和你的原始提示来生成最终响应。
权衡考量
压缩自然语言总是存在丢失细微差别的风险,但我们的基准测试表明,在多步推理任务上,TSCE仍然能在GPT-3.5上获得**+30个百分点的提升,并在Llama-3上实现76%** 的成功率(基线为69%)——因此ESCP带来的聚焦优势超过了压缩损失。
基准测试与结果
以下结果基于超过10,000个提示/响应对的测试,趋势保持一致。
| 模型 | 任务套件 | 单次生成 (One-Shot) | TSCE | 令牌倍数 (Token ×) |
|---|---|---|---|---|
| GPT-3.5-turbo | 数学 ∙ 日历 ∙ 格式 | 49 % | 79 % | 1.9× |
| GPT-4.1 | 破折号 & 策略测试 | 50 % 违规率 | 6 % 违规率 | 2.0× |
| Llama-3 8B | 混合推理包 | 69 % | 76 % | 1.4× |
注意:TSCE使用两次生成,因此原始能耗/令牌成本约为单次生成的2倍;我们与零温度、单次生成的理想基线进行比较。
关键图表(见 figures/ 目录):
entropy_bar.png— 熵值降低6倍kl_per_position.png— 第20个令牌后KL散度 > 10 natscosine_violin.png— 使用嵌入空间控制提示后,答案聚类更紧密
快速开始
先决条件
- Python 3.8+
- OpenAI API密钥 或 Azure OpenAI部署密钥
- Git (虚拟环境可选)
安装
git clone https://github.com/<your-username>/tsce_demo.git
cd tsce_demo
cd tsce_agent_demo
python -m venv venv && source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # 然后编辑 .env 文件填入你的凭据
运行基础测试:
python tsce_agent_test.py
运行交互式UI(Streamlit)以比较基线和TSCE答案:
streamlit run streamlit_chat.py
配置
根据你的使用环境,配置相应的环境变量。
OpenAI Cloud
在 .env 文件中设置:
OPENAI_API_KEY=sk-********************************
# 可选
OPENAI_ENDPOINT=https://api.openai.com/v1/chat/completions
MODEL_NAME=gpt-3.5-turbo
Azure OpenAI
在 .env 文件中设置:
OPENAI_API_TYPE=azure
AZURE_OPENAI_ENDPOINT=https://<your-resource>.openai.azure.com
AZURE_OPENAI_DEPLOYMENT=gpt-4o # 你的部署名称
AZURE_OPENAI_API_VERSION=2024-02-15-preview
AZURE_OPENAI_KEY=<your-azure-key> # 或复用 OPENAI_API_KEY
未使用的密钥留空即可。
故障排除
| 症状 | 解决方法 |
|---|---|
401 Unauthorized |
密钥错误或已过期;确保密钥与端点类型匹配。 |
| 挂起 > 2 分钟 | 模型响应慢;调整 _chat() 中的 timeout 参数或降低温度。 |
ValueError: model not found |
正确设置 MODEL_NAME (OpenAI) 或 AZURE_OPENAI_DEPLOYMENT (Azure)。 |
扩展与贡献
扩展思路
- 批量运行器 — 循环处理提示列表,保存汇总的CSV文件。
- 可视化 — 集成白皮书中的t‑SNE绘图代码(凸包、箭头)。
- 安全护栏 — 为高风险领域添加自我批判的第三阶段。
- Streamlit UI — 即插即用的交互式演示平台(提问 → ESCP → 答案)。
待探索问题与后续步骤
- 递归ESCP? 在自身的ESCP上运行第一阶段是会改善效果还是累积错误?
- 自动化提示调优:探索集成dspy以自动优化你的提示模板。
- 基准测试策略:我们欢迎新的任务集——请在
benchmark/tasks/下提交你的建议。
贡献指南
- Fork 本仓库
git checkout -b feature/my-feature- 提交更改并推送
- 发起 Pull Request
请确保新代码遵循MIT许可证,如果扩展了功能,请在 README.md 中添加说明。
许可证
本项目采用 MIT 许可证 —— 可免费用于商业或私人用途。完整文本请参见 LICENSE。
常见问题(FAQ)
TSCE框架如何减少大语言模型的幻觉问题?
TSCE通过两阶段机制:首先生成嵌入空间控制提示(ESCP)压缩语义空间,然后进行聚焦生成,从而在更窄的语义流形内生成答案,显著减少幻觉和指令偏离。
TSCE框架需要额外训练模型吗?
不需要额外训练。TSCE是一个无需微调的机制框架,仅通过一次额外的API调用即可实现,已在GPT-3.5/4和Llama-3 8B上验证有效。
TSCE在实际应用中能带来多大改进?
基准测试显示,TSCE在多步推理任务上可使GPT-3.5提升高达30个百分点,在Llama-3上实现76%的成功率(基线69%),显著提高答案保真度。
版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。
文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。
若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。



