Prompt

定义

用于指导生成式人工智能模型执行特定任务的输入指令。

组成

  • 任务说明(具体的任务要求)
  • 上下文(任务的相关背景,包括知识前提、受众、任务示例或有助于模型理解任务的信息)
  • 问题
  • 输出格式

prompt分词向量化

token是承载语义的最小单元,将prompt提示词拆分成token,进行向量化表示,拆词颇具挑战性,依赖于分词算法(分词器)——BBPE、BPE、WordPiece等。

每个大语言模型都有自己的分词器,分词器维护一个词表,它的质量对模型的性能有直接的影响。不同的分词粒度导致不同大小的词表。

分词器作用:识别文本中的关键词和短语,分词器的效率直接影响到模型的训练和推理速度,高效分词器可以对文本token优化压缩,缩短模型在处理数据时所需的时间。

prompt工程

定义

设计与优化prompt的技术,称为prompt工程。

核心

将新任务通过prompt构建为模型在预训练阶段已经熟悉的形式,利用模型固有的泛化能力来执行新的任务,而无需在额外的特定任务上进行训练。

意义

模型无需微调,通过prompt特征工程完成既定任务,使得模型在多个领域发挥出不错的性能。

规范prompt编写

  1. 任务说明
    清晰表达动词——判断、分类、生成等
    使用具体名词定义任务的输出
    简洁直接抓住任务的核心要求
    结构化布局,任务说明放置在开头或结尾

  2. 上下文
    丰富:内容的多样性与相关性,包括背景信息、演示示例、对话的连续性内容
    清晰:避免不必要的信息、直指任务核心

  3. 输出格式
    结构化:JSON、XML、HTML、Markdown、CSV

  • 在prompt中明确指出希望模型使用的输出格式
  • 在prompt中提供一个输出格式的具体示例
  1. 排版
    使用合适的分隔符(#…)和格式化技巧(空白或缩进、添加标题和子标题)

prompt编写技巧

  1. 合理归纳提问,将复杂问题拆解
  2. 适时使用CoT(将完备的思考逻辑给到模型,任务通常为算术、常识和符号推理)
  3. 角色扮演:在指令中包含具体属性、职责、知识和技能
  4. 情景代入:将模型置于特定情境或环境。
  5. 迭代:不断优化指令(根据思路→尝试实践→得到结果→分析bad case→循环)
  6. 避免负向指令,告诉模型应该输出什么

上下文学习 In-Context Learning,ICL

定义

通过构造特定的prompt,使得语言模型理解并学习下游任务的范式

分类

  • zero-shot:无需提供任何示例
  • one-shot:一个示例
  • Few-show:几个-十几个示例,示例的增加会显著增加大语言模型推理时的计算成本,多类别样本最好是1:1:1

性能影响因素(影响上下文学习)

  1. 预训练数据:
  • 丰富的跨领域语料库进行预训练,模型具备更稳定的上下文学习能力
  • 多样化任务有助于模型学习技能,增强任务泛化能力。
  • 训练数据存在突发性分布和罕见类别时,会增强模型的上下文学习能力。
  1. 预训练模型
    模型参数规模越大,上下文学习能力越强