Reading Guide
先问一个问题
一份能让结果稳定下来的输入,应当由哪些部分组成?
- 适合读者
- 已经能用 AI 完成简单任务、但结果时好时坏的读者
- 阅读基础
- context-and-memory
Key Points
先记住这些
- 输入的四个部分是任务定义、背景材料、示例与约束,缺一则结果随机性上升。
- 任务定义要回答做什么、对谁做、做到什么程度,而不是只说一个动词。
- 验收标准必须在动手前写定,否则事后评判会滑向印象与自我说服。
- 示例的作用是划定边界,因此反例往往比正例更有信息量。
- 约束要写成可判定的形式,「简洁一些」不可判定,「每条不超过四十字」可判定。
- 不必追求万能提示词;应当为每一类反复出现的任务各留一份可修订的任务说明。
Terms
几个必要概念
- 验收标准
在开始之前写定的、逐条可判定的合格条件。
它把「我觉得还行」变成「这一条过了、那一条没过」,是一切复核与迭代的前提。- 少样本示例
在输入中给出若干「这样的输入应当得到这样的输出」的成对例子。
对体例、格式、语气这类难以言说的要求,示例往往比描述有效。- 分步作答
要求模型先列出中间步骤或依据,再给出结论。
它使推理链条外显,便于人复核,也常改善需要多步推理的任务的表现。
四个部分各管什么
任务定义说明做什么。这里的常见失误是只给动词:整理、润色、总结。这类词各自涵盖十几种做法,模型只能从中挑一种最常见的。可用的写法是把对象、动作、粒度、受众四件事都写出来:把这批书目条目按著者、书名、版本、年份四栏归并,同一著作的不同印次合为一条,供他人核对使用。
背景材料提供依据。要点在于只放与本次任务相关的部分,并明确标出每段的来源。前面讨论上下文时已经说过,无关材料不是无害的,它会稀释注意力并诱发张冠李戴。S1
示例划定边界。研究早已表明,在输入中给出少量成对示例能显著改变模型在新任务上的表现。对本站这类工作,示例的真正价值在于传达那些说不清楚的体例习惯:破折号怎么用、书名号内的朝代要不要写、待考条目怎样标记。给两三个正例,再给一两个反例并注明为什么不合格,效果通常好过写半页规则。S2
约束限定输出。凡是你会在验收时检查的,都应当在这里写成可判定的形式:输出多少条,每条多长,用什么字段,遇到不确定的情形该怎么标注,哪些内容一律不要生成。「不要编造」这类要求过于抽象,改写成「凡无法在所给材料中找到依据的条目,一律写入待考清单并注明缺什么」才可执行。S3
验收标准要写在动手之前
这是整篇文章里唯一真正重要的一条。人在看到一段流畅的输出之后,判断力会不自觉地向它靠拢:本来想要 A,看到写得不错的 B,就说服自己 B 也可以。事先写定标准是对这种漂移的唯一防御。标准不必复杂,五到八条、每条能用是或否回答就够。S3
- 覆盖:所给材料中的每一条都被处理了吗,有没有被静默丢弃的。
- 依据:每一条结论能否指出所依据的原文片段。
- 体例:字段、标点、称谓、纪年是否符合既定体例。
- 存疑:不确定之处是否被显式标出,而不是抹平。
- 越界:有没有生成材料中不存在的内容。
- 可复核:他人拿到这份输出,能否独立核对其中任意一条。
不满意时改哪里
结果不合格时,多数人的反应是重新说一遍或者换个说法。更有效的做法是按四个部分逐一定位:内容跑题,改任务定义;细节出错,查背景材料是否给全、是否混入了无关内容;格式不对,加示例;输出太长太短或该标的没标,改约束。若属于需要多步推理才能做对的任务,可以要求模型先列出中间步骤再给结论,这一做法在需要连续推理的任务上被观察到有明显帮助,同时也让人更容易看出它错在哪一步。S4
一份任务说明的骨架
把前面四个部分落成文字,可以有一个固定骨架,每次照着填即可,不必每回从头构思。骨架的价值不在于它写得多好,而在于它把容易漏掉的项目固定下来,使遗漏成为可见的空白而不是无声的缺失。以下顺序经过多次调整,把最关键的内容放在最前和最后,中间是材料,这正是前一栏讲过的位置原则的应用。S1
- 一、任务:一句话说清对象、动作、粒度、受众。
- 二、成功标准:五到八条,每条可用是或否回答。
- 三、体例与术语:指向已有的体例文件与术语表,只贴相关部分。
- 四、示例:两三个正例,一两个反例,反例注明为何不合格。
- 五、材料:每段标明来源与位置,与其余部分用清晰标记隔开。
- 六、输出格式:字段、条数、长度、缺失与存疑如何表示。
- 七、遇到下列情形怎么办:材料不足、材料互相冲突、超出范围、无法判定。
- 八、复述要求:先复述一遍你对任务的理解,再动手。
第七项和第八项最容易被省略,也最值得保留。第七项把例外情形的处置事先约定下来,否则模型只能自行发挥,而它的发挥通常是抹平问题而非暴露问题。第八项则是一个廉价的检查:让它先复述理解再动手,若复述与你的本意不合,此时纠正只花一句话;若等它做完两百条再发现理解偏了,返工的代价完全不同。这两项加起来不过几十个字,却常常是整份说明中回报最高的部分。
验收标准应当另存一份,不与任务说明混在一起。理由有二:其一,它需要被反复使用,包括你自己复核、日后重做、他人接手;其二,把标准与说明分开,可以在不改动任务定义的前提下逐步收紧标准,从而看出成果质量随时间的变化。若两者写在一起,每次微调都会牵动全文,久之便无人愿意维护。S3
Conclusion
结语
一份好的输入,读起来更像工作交接单,而不像请求。交接单写清楚了,谁来做都差不多;写不清楚,换多强的模型也只是换一种失败方式。
仍可追问
- 示例数量与效果的关系随任务差异很大,本文只给出经验性建议,未引用针对文献整理任务的实测数据。
- 分步作答在多大程度上真正改善事实准确性,而非仅改善格式与可读性,学界尚有争论。
参考资料
- S1
Nelson F. Liu, Kevin Lin, John Hewitt, Ashwin Paranjape, Michele Bevilacqua, Fabio Petroni, Percy Liang.Lost in the Middle: How Language Models Use Long Contexts.2024
DOI / ISBN:arXiv:2307.03172查看来源 - S2
Tom B. Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, Prafulla Dhariwal, 等.Language Models are Few-Shot Learners.2020
DOI / ISBN:arXiv:2005.14165查看来源 - S3
National Institute of Standards and Technology.Artificial Intelligence Risk Management Framework (AI RMF 1.0), NIST AI 100-1.2023
DOI / ISBN:10.6028/NIST.AI.100-1查看来源 - S4
Jason Wei, Xuezhi Wang, Dale Schuurmans, Maarten Bosma, Brian Ichter, Fei Xia, Ed H. Chi, Quoc V. Le, Denny Zhou.Chain-of-Thought Prompting Elicits Reasoning in Large Language Models.2022
DOI / ISBN:arXiv:2201.11903查看来源