4、示例格式设计:输入输出对的结构、分隔符的使用、格式一致性要求。

好,咱们接着聊少样本提示里一个特别容易被忽视的细节——示例格式。

说实话,我见过太多人,明明选对了示例,模型就是不给好结果。为什么?格式乱了。模型对格式的敏感程度,远超你的想象。你想想看,它每天处理海量文本,格式就是它的「阅读习惯」。你打乱了格式,它就读不懂。

4.1 输入输出对的结构:让模型看懂「因果关系」

少样本提示的核心,就是给模型看几个「输入→输出」的例子。这个结构必须清晰、稳定。

我个人习惯用这样的模板:

输入:{用户问题}
输出:{模型回答}

或者更具体一点:

用户:今天天气怎么样?
助手:今天晴,22-28度,适合出门。

为什么这样写?因为模型在训练时,大量接触过「用户/助手」这种对话格式。你给它看这个,它就知道:哦,这是在模拟对话。

核心原则:每个示例必须包含完整的「输入」和「输出」两部分。缺一不可。

我在项目中遇到过一个问题:有人只写「输出」,不写「输入」。模型就懵了,它不知道你要它回答什么。嗯,这就像你只给答案,不给题目,别人怎么知道你问的是啥?

4.2 分隔符的使用:给模型划重点

分隔符是什么?说白了,就是告诉模型「这里是一个示例的结束,下一个示例要开始了」。

常用的分隔符有:

  • ---===:简单明了,适合快速分隔
  • ###:Markdown风格,适合长文本
  • 示例 1:示例 2::带编号,适合多个示例

举个例子:

示例 1:
输入:翻译成英文:你好
输出:Hello

---

示例 2:
输入:翻译成英文:谢谢
输出:Thank you

---

输入:翻译成英文:再见
输出:

你看,我用 --- 把两个示例隔开。模型看到这个结构,就知道前面是参考,最后一行才是它要回答的问题。

小技巧:分隔符最好和示例内容不重复。比如你的示例里本来就有很多横线,那就别用 ---,改用 ===###

我曾经犯过一个错:用 --- 做分隔符,但示例内容里也有 ---。结果模型把内容当成了分隔符,整个输出全乱了。从那以后,我习惯用 ###===== 这种不太常见的符号。

4.3 格式一致性要求:别让模型猜

这是最容易被忽略的一点。格式一致性,指的是所有示例的写法必须完全统一。

具体来说:

  • 标点符号统一:要么全用中文标点,要么全用英文标点
  • 空格使用统一:要么每行都加空格,要么都不加
  • 大小写统一:英文内容要么全大写,要么全小写
  • 换行方式统一:要么每行都换行,要么都不换

我举个例子,错误的写法:

示例1:
输入: 你好
输出:Hello

示例2:
输入:谢谢
输出:Thank you

看出来了吗?第一个示例的冒号是英文的,第二个是中文的。输出后面有的有空格,有的没有。模型看到这种不一致,就会困惑:到底该用哪种格式?

正确的写法:

示例1:
输入:你好
输出:Hello

示例2:
输入:谢谢
输出:Thank you

所有冒号统一用中文,所有输出前面统一加一个空格。模型一看就懂。

注意:格式不一致会导致模型「学偏」。它可能学会了你示例里的格式,但用在了错误的地方。比如,它可能把中文标点用在了英文内容里。

我记得有一次做情感分析任务,我给了三个示例,前两个用「正面/负面」做标签,第三个不小心写成了「积极/消极」。结果模型输出时,一会儿用「正面」,一会儿用「积极」,完全乱套了。嗯,从那以后,我每次写完示例都会检查一遍,确保所有标签、格式完全一致。

4.4 实战建议:如何设计你的示例格式

说了这么多,我总结一下我的个人经验:

  1. 先定模板:确定输入输出的结构,比如「输入:xxx\n输出:xxx」
  2. 选好分隔符:用 ---###,确保不与内容冲突
  3. 统一格式:标点、空格、大小写、换行,全部统一
  4. 测试一下:给模型一个简单输入,看它输出格式是否和你预期一致

你想想看,模型就像一个特别较真的学生。你给它看什么格式,它就学什么格式。你给它看整齐的,它就输出整齐的。你给它看乱的,它就输出乱的。

一句话总结:示例格式设计,就是给模型立规矩。规矩立好了,模型自然听话。

好,这一节就到这里。下一节咱们聊聊「示例数量与质量」的平衡问题——到底给几个示例最合适?多了会不会反而不好?到时候见。