最权威的提示词教程,莫过于ChatGPT官方文档里的6个写提示词的建议,如下对文档做了总结。
一、指令清晰、详细
首先,指令要清晰。要准确表达你的需求,避免让GPT去猜测你的意图。如果你要生成较短的内容,就要求GPT简短回答;如果不想结果太简单,就用专业标准;不满意格式时,示例你期望的格式;总之减少GPT的猜测,我们可以得到更准确的响应。如何做到指令清晰呢?6个建议如下:
1. 问题里包含更多细节
在向ChatGPT提问时,应包含相关且重要细节,否则,GPT可能会胡乱猜测。例:
2. 让模型角色扮演
指定模型在回复中扮演特定角色。
GitHub人设大全: https://github.com/f/awesome-chatgpt-prompts
例:
3. 使用分隔符
使用三重引号、XML标签、章节标题等分隔符,帮助划分文本的不同部分,便于大模型更好地理解。
对于简单的内容,有分隔符和没有分隔符,得到的结果,可能差别不大。但是,任务越复杂,消除任务的歧义就越重要。大模型是为我们生成内容的,不要把它的算力,浪费在了理解我们输入的内容上。
例:
4. 指定完成任务所需的步骤
详细写出任务所需的步骤,可使模型更容易按步骤执行。
例:
5. 提供示例
通过示例让模型理解你的需求,多用于难以描述的任务或特殊风格中。
例:
6. 设定回答的长度
要求大模型根据单词/字数、段落数量、要点数量生成回答,这样大模型生成的答案更有条理。
例:
二、提供参考文本
给模型提供可信的信息来编写答案,或者引用参考文本编写答案,避免胡乱回答。
例:
三、将复杂任务拆分
将复杂任务分解成简单步骤,方便模型操作,提高准确性。
1. 问题分类
先把这些任务按类型分类,然后给每一种类型的任务都制定一套相应的步骤或者指令。使用这种方法的好处就是,每一次我们只需要关注当前的任务和相应的步骤或者指令,这样就可以降低出错的几率,而且也能节省成本。因为处理大任务需要的电脑运行费用,通常会比处理小任务的费用要高。
例:
2. 分段总结长文/长对话
分段总结,再汇总,即总结前一部分的时候,带上之前的内容。多轮对话中,这样更利于后面回答的准确生成。
例:
四、给大模型时间“思考”
1. 生成自己的答案再下结论
让模型先自行解决问题,之后比较并评估学生答案的正确性,让模型回答更有条理,也可提高准确性。
例:
2. 隐藏推理过程
在给用户答案前,模型先在内部思考,不展示部分思考过程,即一个"内心独白(inner monologue)"的技巧。这样同样让模型回答更有条理,提高准确性,也不会干扰用户期望的输出。
例:
3. 让模型反思回答
让大模型再去找找看有没有之前漏掉的内容,往往能让模型的输出结果,变得更好。
例:
五、使用外部工具
1. 嵌入(embedding)
使用基于嵌入的搜索来实现高效的知识检索,利用外部信息作为其输入的一部分,有助于模型生成更加明智和最新的回答,即RAG(Retrieval-Augmented Generation)。
例:
2. 调用API
提供文档与代码示例,指导模型使用API,使用代码或者调用外部的API,产生的输出一起输入给模型使用,来进行更精确推理。
例:
注:执行模型生成的代码或API可能本身并不安全,需要一个沙盒代码执行环境来限制不受信任的代码可能造成的危害。
六、系统地测试更改
有时候很难判断新的指令或设计是让你的系统变得更好还是更糟。对于小样本量来说,很难区分真正的改进还是偶然运气。也许这种变化可以提高某些输入的性能,但却损害了其他方面的性能,所以建立一个系统测试流程更有必要。
1. 指标评估
以img2code指标对比,需要从页面整体布局、细节、字体等方面,详细评估code生成的好坏
例:
2. 模型评估
把模型输出的结果,统一输入模型进行打分评估。
例:
3. 人工评估
有些美观、简洁等任务较主观,需要人工筛选,根据选定的baseline,给出评价。举例如下: