给开发者的ChatGPT提示词工程指南

ChatGPT Prompt Engineering for Development

基本大语言模型和指令精调大语言模型的区别:
给开发者的ChatGPT提示词工程指南_第1张图片
指令精调大语言模型经过遵从指令的训练,即通过RLHF(基于人类反馈的强化学习)方式在指令上精调过,因而更加有帮助,更加真诚,更不可能产生有害输出。

Two principle

  1. Write clear and specific instructions
  2. give the model time to think

编写清晰且明确的指令

clear不等于short,比较长的指令有可能时更加清晰的。

Tactic 1: Use delimiters(使用分隔符)

Triple quotes: “”"
Triple backtick ```
Triple dashes: —
Angle brackets: <>
XML tags:

使用分隔符可以防止指令注入,即误把目标文本中的指令识别为指令,下图为例:
给开发者的ChatGPT提示词工程指南_第2张图片

Tactic 2: Ask for structure output (寻求格式化输出)

HTML, JSON
给开发者的ChatGPT提示词工程指南_第3张图片

Tactic 3: Check Whether conditions are satisfied(检查必要条件是否满足)

Check assumptions required to do the task
给开发者的ChatGPT提示词工程指南_第4张图片
必要条件无法满足时,可指令模型提前终止,这样可以避免无效输出,并可以节省计算资源。

Tactic 4: Few-shot prompting (少样本提示)

Given successful examples of completing tasks. Then ask model to perform the task.
给模型成功执行任务的示例,让模型照做。
给开发者的ChatGPT提示词工程指南_第5张图片

give the model time to think(给与模型足够时间思考)

Tactic 1: Specify the steps to complete a task(指定完成任务的详细步骤)

Step1: …
Step2: …

Step N: …

Tactic 2: Intruct the model to work out its own solution before rushing to a conclusion (判别任务可以让模型先思考解决方案再以解决方案为依据进行判别)

判定学生回答是否正确场景下,先让模型自己回答问题,进而让模型比较学生回答和自己回答是否一致,以推断学生回答是否正确

Model Limitations

Hallucination (幻觉现象)
Makes statements that sound plausible but are not true.
做出看上去合理的回复但是不是真实的。

Reducing Hallucinations:
First find relevant information, then answer the question based on th relevant information.
通过首先寻找相关信息,再做出解答,有助于减轻幻觉现象

提示词迭代开发流程

给开发者的ChatGPT提示词工程指南_第6张图片
提示词指引:

  • 清晰明确
  • 分析导致没有拿到预期输出的原因
  • 优化思路和提示词
  • 重复迭代

通过限定字数让模型输出更加简短,如下:
给开发者的ChatGPT提示词工程指南_第7张图片
也可以替换为Use at most 3 sentence、Use at most 280 characters。

通过指定场景让模型切换视角,提示模型在文本末尾加上一些特殊说明,如下:
给开发者的ChatGPT提示词工程指南_第8张图片

提示模型输出HTML代码(这个有点秀)
给开发者的ChatGPT提示词工程指南_第9张图片
给开发者的ChatGPT提示词工程指南_第10张图片

给开发者的ChatGPT提示词工程指南_第11张图片
提示词工程师要具备一个良好的迭代流程来产出更好的提示词。

摘要

给开发者的ChatGPT提示词工程指南_第12张图片
在这里插入图片描述
可以指定摘要的用途使得它强调某一部分信息:
给开发者的ChatGPT提示词工程指南_第13张图片
可以提示模型提取部分信息,而不是生成全文摘要:
给开发者的ChatGPT提示词工程指南_第14张图片
可以使用for循环调用批量处理:
给开发者的ChatGPT提示词工程指南_第15张图片

推理

大语言模型的一个优势是端到端应用,而不是pipeline流程应用,后者将一个任务拆分为几个子任务完成,比较繁琐,而且存在错误传播现象。

情感分类

给开发者的ChatGPT提示词工程指南_第16张图片
可以通过限定模型输出来指定标签,相当于是做分类了:
给开发者的ChatGPT提示词工程指南_第17张图片

提取评论者的情感倾向关键词(这个有点厉害,传统的情感分类很难做到):
给开发者的ChatGPT提示词工程指南_第18张图片
判别评论者是否存在某种情绪:
给开发者的ChatGPT提示词工程指南_第19张图片
提取关键信息,直接输出JSON(这才是真正的自然语言处理,有比较现实的应用场景),
给开发者的ChatGPT提示词工程指南_第20张图片
一个提示词获取多维度信息:
给开发者的ChatGPT提示词工程指南_第21张图片
通过提示词提取topic:
给开发者的ChatGPT提示词工程指南_第22张图片
检测特定topic触发事件,是一个实际应用场景示例:
给开发者的ChatGPT提示词工程指南_第23张图片

待更新。。。

你可能感兴趣的:(大语言模型,chatgpt,提示词,提示词工程,LLM)