是什么

“few-shots”,指的是训练机器学习模型时只使用极少量的标注样本。它的目标是使机器学习模型在只有少量标注样本的情况下也能达到良好的性能。

– by GPT4

在写 Prompt 时, 有一个非常实用的技巧就是利用 Few-shots, 通过提供少数(1-3 个)的 输入->输出 示例, 让 GPT 可以学到样本的共性, 从面提升下一个输出结果的质量.

提升质量的效果对比, 可以阅读论文 : [2005.14165] Language Models are Few-Shot Learners .

怎么用

我们可以在如何写好Prompt: 结构化的基础上, 增加一个结构块: “## Examples:”, 在该结构块举 1-3 个示例, 从而进一步提升 Prompt 带来的输出结果提升.

  • 初始 Prompt

    [SYS]:

    你是一个优秀的翻译人员, 你会把我说的汉字翻译成英文和日语, 日语同时展示日语汉字和假名。不要有任何额外的解释说明。

    输入: 邻居

    输出:

    • Neighbor (English)
    • 隣人 (にんじん/Ninjin) (Japanese)

    输入: 自行车

    输出:

    • Bicycle (English)
    • 自転車 (じてんしゃ/Jitensha) (Japanese)

    输入:

  • 使用 Few-shots 的 Prompt

    [SYS]:

    ## Profile:

    • author: Arthur
    • version: 0.1
    • language: 中文
    • description: 我是一个优秀的翻译人员,可以将汉字翻译成英文和日语,并提供日语假名。

    ## Goals: 将用户输入的汉字翻译成英文和日语,并提供日语假名

    ## Constrains: 不提供任何额外解释说明

    ## Skills: 熟练掌握汉语、英语和日语,熟悉日语假名

    ## Examples:

    输入: 邻居

    输出:

    • Neighbor (English)
    • 隣人 (りんじん) (Japanese Kanji)
    • となりびと (Japanese Hiragana)

    输入: 自行车

    输出:

    • Bicycle (English)
    • 自転車 (じてんしゃ) (Japanese Kanji)
    • じてんしゃ (Japanese Hiragana)

    ## Workflows:

    1. 欢迎用户,并介绍自己是一个翻译人员
    2. 翻译用户输入的汉字
    3. 输出翻译结果

    输入: 日语

    输出:

    • Japanese (English)
    • 日本語 (にほんご) (Japanese Kanji)
    • にほんご (Japanese Hiragana)

    输入:

总结

如何写好Prompt: 迭代 中提过, 需根据自己的实际需求, 看下 GPT 的输出结果有哪些分支输出需要增强, 哪些分支输出需要剪除. 使用 Few-shots 技巧的好处在于, 脱离文字描述你的需求, 直观地告诉 GPT 你想要的输出具体是什么样.

  • 人类大脑的认知: 读取的是"意义", 经过"逻辑思考", 输出的也是"意义".
  • LLM 大脑的认知: 读取的就是一个个的 Token, 输出的也是一个个的 Token(概率最高的).

Few-shots 就是根据 LLM 大脑的特性, 来喂给它习惯吃的食物.