Anthropic Claude 100k Token 上下文窗口提示工程指南
TL;DR
Anthropic 证明了两种提示工程技术——将相关的引用内容提取到 scratchpad(草稿本)中以及提供多个回答正确的示例——可以显著提升 Claude 在 70k–95k token 上下文中的特定事实召回能力。
背景:Claude 的 100,000-Token 上下文窗口
Claude 现在支持 100k-token 上下文窗口,使其能够摄取数百页的技术材料或整本书籍。随着 API 的规模扩大,用户需要具体的指导,了解如何构建提示词以充分利用这一容量。
实验设计
目标
测量不同的提示策略如何影响 Claude 在回答需要从非常长的文档中召回单一个事实的选择题时,其准确率的表现。
数据源
选择了一份公开可用的美国政府每日发布记录(2023 年 7 月 13 日),因为它晚于 Claude 的训练截止日期,从而最大限度地减少了先验知识的影响。
问题生成(随机拼贴)
- 将文档拆分为多个章节。
- 提示 Claude 为每个章节编写 five 个选择题,每个题目包含三个干扰项和 하나 correct answer。
- 随机地将章节拼接在一起,创建长度约为 75k 和 90k token 的长“拼贴”文档。
测试的提示策略
| 策略 | 描述 |
|---|---|
| Base | 没有任何示例的简单提问。 |
| Nongov examples | 两个与政府文本无关的固定通用知识选择题示例。 |
| Two examples | 从同一拼贴文档的其他章节中随机抽取两个上下文内示例。 |
| Five examples | 与上述相同,但提供五个示例。 |
每种策略都在使用 with 和 without <scratchpad> 指令的情况下进行了评估,该指令告诉 Claude 在回答之前先提取相关的引用内容。答案所在的段落被放置在输入的开头、中间或结尾,以测试位置效应。
关键发现
基准性能
- Claude Instant 1.2 在回答其自身的短上下文问题时,正确率约为 90%。
- 当答案段落被替换为随机无关的章节时,Claude 的正确猜测率仅为 34%(高于 25% 的随机基准线)。
Scratchpad 和示例的影响
- 对于 70k 和 95k token 文档,添加 scratchpad and 示例可以获得最高的准确率。
- 通用、无关的示例(“nongov”集)无法提供可衡量的提升。
- 更多示例可以单调地提高性能:五个示例的表现优于两个示例。
- Scratchpad 会带来轻微的延迟增加,但对于已经很快的 Claude Instant 来说,这种增加是可以忽略不计的。
位置效应
- 当相关段落位于提示词的 very end(非常末尾)且同时存在示例时,准确率会下降,这可能是因为示例增加了答案与模型最终推理步骤之间的距离。
- 对于 Claude Instant,性能随着问题与答案之间的距离增加而下降;Claude 2 显示出较小的下降,在 95k token 输入的中间部分会出现轻微下降。
Claude 2 vs. Claude Instant
- Claude 2 的基准准确率已经很高(≈0.939)。通过提示工程可以将其提升至 0.961,尽管绝对增益很小,但实现了 36% 的错误率降低。
实用提示工程建议
- 使用 scratchpad – 指令 Claude 在回答之前先收集并展示相关的引用内容;这能持续地提高准确率。
- 提供多个上下文内示例 – 优先选择从同一份长文档中抽取的五个示例,而非通用示例。
- 将指令放置在接近末尾的位置 – 将 scratchpad 和示例块保持在答案位置附近,以最小化距离效应。
- 避免模糊的引用 – 确保问题明确指名段落(例如,“the notice about additional in-season actions for fisheries”),因为在拼贴文档中,“this document”会变得模糊。
- 在文档末尾处预期收益递减 – 如果答案位于文档的最末尾,请考虑重新构建提示词,使答案相关的内容出现得更早,或者让指令块紧随其后。
可复现性:Anthropic Cookbook
所有在研究中使用过的代码、notebooks 和提示模板都是公开可用的,可以在 Anthropic Cookbook 中找到:
- 完整实验仓库 – 包括数据生成、评估脚本和提示词 PDF。
- 额外食谱:一个 Wikipedia 搜索与检索演示,以及一个模拟 PDF 上传/摘要指南。
对开发者的意义
- 100k token 窗口开启了诸如全文档 QA、书籍长度的摘要生成以及大规模政策分析等用例。
- 有效的提示工程是至关重要的;如果没有 scratchpad 或相关的上下文内示例,对于埋藏在上下文深处的知识,准确率可能会降至接近随机猜测的水平。
- 所描述的技术是轻量级的(仅限提示词),不需要外部检索系统,因此很容易集成到现有 Claude API 工作流中。
局限性与未来工作\n* 本研究重点关注 Claude Instant 1.2;虽然 Claude 2 显示出类似的趋势,但未来模型版本的结果可能会有所不同。
- 研究仅测试了事实性召回,而非开放式生成或推理任务;开放式生成或推理任务可能需要额外的策略。
- 对于位于极长提示词末尾的信息,位置偏差仍然是一个挑战;未来工作可以探索动态提示词截断或分层检索。
结论
Anthropic 的定量研究案例分析确认了,extract-quote scratchpads(提取引用 scratchpad)和 multiple in-context examples(多个上下文内示例)是提高 Claude 在 70k–95k token 上下文中事实召回能力的简单且强大的手段。通过应用这些提示工程模式,pattern,开发者可以可靠地利用 Claude 的 100k token 窗口进行复杂的、文档规模的应用场景。
Sources
相关
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch