Prompt Engineering (Chapter 1)

前言

随着大语言模型(LLM)的不断退出和突破,提示工程的重要性也在不断凸显。我简单总结分析了一下Prompt Engineering,初略聊一聊。 针对不同的领域不同的需求,Prompt Engineering有不同的实践方法,实践出真知,大家可以在这篇文章的基础上,多多实践,挖掘最适合自己的Prompt Engineering。

提示工程简介

模型设置

playground 参数介绍

  • 响应严谨性/创造性
    1. Temperaturetemperature参数的值将控制大模型对于搜索结果token的权重。通俗地讲,就是temperature越大,大模型输出的结果越确定。所以我们可以根据自己工作需求来进行动态调整:如果是相关严谨性要求高的工作,就调小temperature;如果是创造性要求高的工作,就调大temperature
    2. Top_p:与temperature参数同理,如果需要确定性,就调低;如果需要创造性,就调高。 tips:使用 top_ptemperature被称为核采样(nucleus sampling)一般建议是改变 TemperatureTop P其中一个参数就行,不用两个都调整。
  • 响应文本长度、结构
    1. Max Lengthmax length 控制大模型生成的 token 数。指定 Max Length 有助于防止大模型生成冗长或不相关的响应并控制成本。
    2. Stop Sequences:指定 stop sequences 是控制大模型响应长度和结构的另一种方法。例如,您可以通过添加 “11” 作为 stop sequence 来告诉模型生成不超过 10 个项的列表。
  • 响应文本重复性
    1. Frequency Penaltyfrequency penalty 是对下一个生成的 token 进行惩罚,这个惩罚和 token 在响应和提示中已出现的次数成比例, frequency penalty 参数可以控制某个词地重复出现次数。越高,某个词再次出现的可能性就越小。
    2. Presence Penaltypresence penalty 也是对重复的 token 施加惩罚,但不同的是,惩罚对于所有重复 token 都是相同的。。 如果您希望模型生成多样化或创造性的文本,您可以设置更高的 presence penalty,如果您希望模型生成更专注的内容,您可以设置更低的 presence penaltytips:一般建议是改变 frequency penaltypresence penalty 其中一个参数就行,不用两个都调整。

提示词要素

提示词主要包括四大要素:指令上下文输入数据输出指令

  • 指令:想要模型执行的特定任务或指令
  • 上下文:包含外部信息或额外的上下文信息
  • 输入数据:用户输入的内容或问题
  • 输出指令:指定输出的类型或格式

设计提示地通用技巧

拆分

将复杂的任务拆分为多个简单的小任务,从简明性、具体性、简洁性入手

指令

指令需要清楚具体

可以将指令放在提示的开头或者像“###”这样清晰的分隔符去隔开指令和上下文

具体性

要在控制提示长度的同时,做到具体并且精准。提示越具描述性和详细,结果越好。并且提示文本中不要包含太多不必要的信息

避免不明确

不要传达不明确的描述——越直接,信息传达得越有效

比如

解释提示工程的概念。保持解释简短,只有几句话,不要过于描述

改为

使用 2-3 句话向高中学生解释提示工程的概念

会得到更好的响应

避免说不要做什么,而应该说要做什么

Best practices for prompt engineering with the OpenAI API

提示词实例

我们会分为七个主题来举例说明,大家可以直接照搬套用

分别为文本概括信息提取问答文本分类对话代码生成推理

文本概括

Test paragraph
A

A可以为Explain the above in one sentence,翻译汉语为用一句话解释上面的信息:

信息提取

Test paragraph
A

A可以为Mention xxx mentioned in the paragraph above:,翻译汉语为说明上段提到的xxx:

问答

Answer the question based on the context below. Keep the answer short and concise. Respond "Unsure about answer" if not sure about the answer.

Context:

Question:

Answer:

文本分类

对于文本分类,建议给出示例

对话

对于对话领域的提示词,建议使用

角色提示(Role Prompting):为模型分配特定的角色或身份来引导其生成更符合预期的文本输出

代码生成

同上述技巧与实例

推理

当今大型语言模型(LLM)面临的最困难任务之一是需要某种形式的推理的任务。

对于具体的推理任务,我们需要向LLM说明具体步骤,进行具体的拆分指令

Prompt-Engineering-Guide

发表评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.