LLM中的提示词

记得ChatGPT 刚火的的时候,「提示词 」这个陌生的词也随之走进了大众视野,甚至很快就出现了「提示词工程师」的高薪岗位,那么什么是「提示词 」呢?

提示词和提示词工程

提示词(prompt),是输入给大预言模型的一段文本,本质上只是一段 token 序列。如果用大白话说就是:我们向大模型(LLM)输入的文字。

提示词工程(prompt engineering)是不断设计和优化提示词的过程,经过数次迭代最终可以满足用户的需求。用大白话说就是:如何高效的和 LLM 交流的方法和技巧

举个例子,一般的提示词

image-20240412171943197

经过提示词工程优化之后

image-20240412172242246

我的经验

我写提示词的一般框架:
1.先交代背景,告诉大模型在此次问答中是一个什么身份
2.交代要做的具体任务,以动词开头,比如“请总结。。。/请帮忙生成。。。/请概括。。。”
3.交代任务的约束条件,比如展示形式、是否排除一些特殊情况

为了更好的优化提示词,还可以使用以下技巧

  • 少样本提示,就是在问题后面追加几个实例
  • 思维链,把大的问题拆解成具体细节的步骤告诉 LLM
  • 从少到多,和思维链类似,只是拆解问题的过程教给 LLM 来回答
  • 外部知识的补充,可以通过{{变量名}}的形式向 LLM 提问,具体的变量名由本地的知识补充,这种方式也可以通过上传附件的形式来实现
  • 再三确认,在 LLM 给出答案后,可以让 LLM 再次确认,比如当 LLM 生成了一段代码,我们可以追问:请给出上面代码 3 处可以优化的地方并给出解释,或者直接问:上面的代码还有可以改进的地方吗

最后,由于特定的一个 LLM 不能保证 100% 的可靠,我们自己也要时刻保持质疑的精神,同一个问题可以既问一下 ChatGPT,又问一下 Microsoft Copilot。