文章目录
- ChatGPT Prompt Engineering for Developers(吴恩达)
- 引言
- 指南
- Principle
- principle 1 - Use delimiters
- principle 1 - Ask for structured output
- principle 1 - Check whether conditions are satisfied
- principle 1 - Few-shot prompting
- principle 2 - 指定完成任务所需的步骤
- principle 2 - 明确指示模型在做出结论之前推理出自己的解决方案
- Model Limitations
- 迭代
- 摘要
- 推理
- 转换
- 扩展
- ChatGPT Prompt提示词工程 基础>少样本>思维链
- 资源
ChatGPT Prompt Engineering for Developers(吴恩达)
引言
base llm : predicts next word based on text training data.
instruction-tuned llm : finetune on instructions and good attempts at following those instructions. often use RLHF to finetune. easy to use.
指南
Principle
- 编写明确和具体的指令;
- 给模型思考的时间 : 模型因为急于作出结论而出现推理错误/给出过于少的提示以及过于复杂的问题, 模型瞎猜一个答案.
principle 1 - Use delimiters
使用分隔符清楚地指示输入的不同部分:'''
,"""
,---
,<>
,<tag>,<\tag>
上图用三引号让模型知道这是一个单独的部分, 避免提示词冲突.
principle 1 - Ask for structured output
可以请求使用HTML或者JSON等结构化的输出.
或者手工编写 format
principle 1 - Check whether conditions are satisfied
在不同文本下测试prompt.
principle 1 - Few-shot prompting
给予一些成功的示例.然后再要求模型去执行任务.
principle 2 - 指定完成任务所需的步骤
principle 2 - 明确指示模型在做出结论之前推理出自己的解决方案
Model Limitations
- Hallucination : 发表一些听起来晦涩难懂且虚假的言论. 解决策略是: 要求模型找到一些相关的信息再基于这些信息回答问题.
迭代
不断根据需求修改prompt.
摘要
添加文本的来源, 添加提取的要求.
推理
比如: 情感, 主题, 实体…
分析情感:
格式化输出:
提取更多的情感关键词并进行其他角度的推理:
实体识别与格式化输出:
将情感识别, 情感判断, 实体识别统一到一个prompt之中, 并格式化输出:
主题判断:
转换
比如: 翻译, 格式, 语法…
单语言翻译, 语言判断, 多语言翻译
对目标语言, 可以有更细粒度的展示, 比如翻译成不同场合下的文本.
格式转换:
语法校正
扩展
将短文本转化为长文本.
Temperature控制文本的随机性, 值越高, 随机性越强.
ChatGPT Prompt提示词工程 基础>少样本>思维链
视频参考
在LLM中, Prompt指的是用于引导模型生成文本的输入文本.
Prompt的选择和设计影响输出的质量和性能.
不能做什么:
- 无法获取外部信息(offline);
- 数学计算;
- 代码执行.
一个规范的prompt应该包含的要素:
- Instruction, 指示模型去执行某一任务, 比如:翻译, 总结, 扩展等;
- Context, 提供外部信息或额外的上下文, 引导模型更好地响应, 比如:例子, 角色扮演;
- Input Data, 使用分隔符号以突出输入内容;
- Output Data, 说明输出的格式.
在Prompt中提供几个样本, 启用模型的In-Context Learning的能力.
思维链: 给出步骤/ “Let’s think step by step”
资源
promptingguide.ai
https://github.com/f/awesome-chatgpt-prompts
https://github.com/PlexPt/awesome-chatgpt-prompts-zh
https://github.com/openai/openai-cookbook