PromptEngineering 认识

所谓提示、指令(Prompt),就是指用户的输入,良好的 prompt 能让大模型产生更准确的输出,prompt 就像钥匙,可以打开大模型强大的能力。另一种影响模型输出的方式是微调,但是相比较调整 prompt,这种方式成功更高,操作更难

提示工程(Prompt Engineering)是一门较新的学科,关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域。

提示词组成

以文本类提示词为例,基本结构为:角色 + 指令 + 上下文 + 输入问题 + 约束 + 例子 + 输出格式

组成描述
角色AI 执行任务时的关键,它决定了 AI 将以何种身份或视角来生成内容。通过设定角色,如 “历史学者”、“小说作家” 或 “市场分析师”,AI 能更准确地把握任务的背景,并以相应的方式产出内容
指令对 AI 的具体行动要求,它需要明确无误地指出 AI 的任务,如 “撰写一篇文章”、“制作一份报告” 或 “分析一组数据”,以确保 AI 明确其工作目标
上下文为 AI 提供了执行任务所需的背景信息,包括时间、地点、人物和事件等,这有助于 AI 在特定情境下生成更加贴切和精确的内容
输入问题AI 在创作过程中需要考虑的具体信息,如数据、问题、观点等,这些问题帮助 AI 聚焦于生成内容的具体方向
约束对 AI 输出的限制,包括内容的长度、风格、语气和词汇的复杂度等,这些约束确保 AI 的输出符合用户的特定期望和标准
例子用户给出的示范,展示了期望 AI 生成内容的风格或格式,可以是文本、图像、视频等,通过例子,用户可以更直观地指导 AI 的创作
输出格式规定了 AI 内容的呈现形式,包括文本、图像、音频、视频等,以及内容的布局和排版方式,确保最终输出符合用户的需求

提示词设计原则

使用分隔符表示 Prompt 不同部分

告诉 llms 在 prompt 的指令部分、上下文部分,如使用 "",等分隔符分割上下文及提问,一方面是区分上下文及提问,另一方面是防止注入

1
2
3
4
### 指令 ###
将以下文本翻译成西班牙语:

文本:“hello!”

具体些

明确地说明需要执行的指令,提示越具体详细,结果越符合,但是要注意提示词有长度限制,同时提示词越长生成过程越慢。可以多次迭代修改,找到适合应用的提示

1
2
3
4
5
6
提取以下文本中的地名。

所需格式:
地点:<逗号分隔的公司名称列表>

输入:“虽然这些发展对研究人员来说是令人鼓舞的,但仍有许多谜团。里斯本未知的香帕利莫德中心的神经免疫学家 Henrique Veiga-Fernandes 说:“我们经常在大脑和我们在周围看到的效果之间有一个黑匣子。”“如果我们想在治疗背景下使用它,我们实际上需要了解机制。””

避免不明确

详细具体不一定越好,还要 prompt 更加集中明确,这里的类比非常类似于有效沟通 —— 越直接,信息传达得越有效

1
2
3
解释提示工程的概念。保持解释简短,只有几句话,不要过于描述。  (不明确)

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

做什么还是不做什么?

设计提示时的另一个常见技巧是避免说不要做什么,而应该说要做什么。这样(说要做什么)更加的具体,并且聚焦于(有利于模型生成良好回复的)细节上

提示词llm 输出
以下是向客户推荐电影的代理程序。不要询问兴趣。不要询问个人信息。

客户:请根据我的兴趣推荐电影。
代理:
当然,我可以根据你的兴趣推荐电影。你想看什么类型的电影?你喜欢动作片、喜剧片、爱情片还是其他类型的电影?
以下是向客户推荐电影的代理程序。代理负责从全球热门电影中推荐电影。它应该避免询问用户的偏好并避免询问个人信息。如果代理没有电影推荐,它应该回答 “抱歉,今天找不到电影推荐。”。
``` 顾客:请根据我的兴趣推荐一部电影。
客服:
抱歉,我没有关于你兴趣的任何信息。不过,这是目前全球热门的电影列表:[电影列表]。希望你能找到喜欢的电影!

在实际 LLM 开发时,一次找到合适 prompt 有点困难,实际上它是一个根据 LLM 输出不断优化的过程

提示词示例

以下列举一些优秀的提示词

主题提示词Llm 输出
文本摘要Antibiotics are a type of medication used to treat bacterial infections. They work by either killing the bacteria or preventing them from reproducing, allowing the body’s immune system to fight off the infection. Antibiotics are usually taken orally in the form of pills, capsules, or liquid solutions, or sometimes administered intravenously. They are not effective against viral infections, and using them inappropriately can lead to antibiotic resistance. Explain the above in one sentence:

Antibiotics are medications used to treat bacterial infections by either killing the bacteria or stopping them from reproducing, but they are not effective against viruses and overuse can lead to antibiotic resistance.
信息提取Author-contribution statements and acknowledgements in research papers should state clearly and specifically whether, and to what extent, the authors used AI technologies such as ChatGPT in the preparation of their manuscript and analysis. They should also indicate which LLMs were used. This will alert editors and reviewers to scrutinize manuscripts more carefully for potential biases, inaccuracies and improper source crediting. Likewise, scientific journals should be transparent about their use of LLMs, for example when selecting submitted manuscripts. Mention the large language model based product mentioned in the paragraph above:The large language model based product mentioned in the paragraph above is ChatGPT.
问答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: Teplizumab traces its roots to a New Jersey drug company called Ortho Pharmaceutical. There, scientists generated an early version of the antibody, dubbed OKT 3. Originally sourced from mice, the molecule was able to bind to the surface of T cells and limit their cell-killing potential. In 1986, it was approved to help prevent organ rejection after kidney transplants, making it the first therapeutic antibody allowed for human use.

Question: What was OKT 3 originally sourced from?

Answer:
Mice.
文本分类Classify the text into neutral, negative or positive.

Text: I think the vacation is okay.
Sentiment: neutral

Text: I think the food was okay.
Sentiment:
Neutral
对话The following is a conversation with an AI research assistant. The assistant answers should be easy to understand even by primary school students.

Human: Hello, who are you?
AI: Greeting! I am an AI research assistant. How can I help you today?
Human: Can you tell me about the creation of black holes?
AI:
Sure! Black holes are created when a very massive star runs out of fuel and collapses in on itself. The gravity of the star is so strong that nothing, not even light, can escape its pull. This creates a point in space-time with an intense gravitational force called a black hole.
代码生成/
Ask the user for their name and say “Hello”
/
Let name = prompt (“What is your name?”);
console. Log (Hello, ${name}!);
推理The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.

Solve by breaking the problem into steps. First, identify the odd numbers, add them, and indicate whether the result is odd or even.
Odd numbers: 15, 5, 13, 7, 1
Sum: 41
41 is an odd number.

以下是某些场景下使用提示词例子

主题提示词Llm 输出
生成读后感你是一位产品新闻稿撰写人,现在要为一款最新科技产品撰写一篇新闻稿。在深入了解了这款产品的创新特性、市场定位和用户反馈后,你感到非常兴奋,并希望将这些信息以及产品的独特卖点以新闻稿的形式传达给公众。新闻稿应包括产品的主要特性、技术创新点、市场反响、用户评价摘要,以及你对该产品在未来市场潜力的分析和预测。-
写论文角色:一位专业的学术研究人员。
指令:撰写一篇学术论文。
上下文:在当代医学研究中,精准医疗的概念逐渐成为主流,它通过分析个体的遗传信息、生活方式和环境因素来定制个性化的治疗方案。
输入问题:分析精准医疗的核心原理,探讨其在不同疾病治疗中的应用,以及这一新兴领域如何推动医疗行业的变革。
约束:论文应包括摘要、引言、文献综述、方法论、结果分析、讨论和结论七个部分,总字数控制在 5000 字左右。正文部分应深入分析精准医疗的科学基础、临床试验案例和潜在的伦理问题。
例子:在摘要部分,可以概述精准医疗的定义、发展历程以及在特定疾病治疗中的关键进展,为读者提供论文的总体框架和研究重点。
写小说角色:一位富有想象力和深刻洞察力的科幻小说家。
指令:创作一部探讨人工智能(AI)在医疗领域应用的科幻小说。
上下文:设定在一个高度发达的未来世界,人工智能(AI)已经成为医疗系统的核心。在这个未来社会中,AI 不仅能够进行精确的疾病诊断,还能制定个性化的治疗方案,甚至在伦理和情感层面与患者进行互动。然而,这种技术的进步也带来了一系列道德和社会问题,包括隐私泄露、人机关系模糊以及对人类医生角色的重新定义。
输入问题:小说需要围绕以下几个核心问题展开:
1. AI 在医疗诊断和治疗中的具体应用,以及这些技术如何改变患者的治疗体验。
2. AI 与人类医生之间的合作与冲突,以及这种关系如何影响医疗决策。
3. 患者在 AI 医疗系统下的隐私权和自主权问题。
4. AI 在医疗领域的应用如何引发社会对生命、死亡和人性的新思考。
约束:小说应包含以下结构:
开头(Setup):介绍主角(一位患者或医生),设定故事背景,引入 AI 医疗系统的基本运作方式。
发展(Development):详细描述 AI 医疗技术的应用案例,展现 AI 与主角之间的互动,以及这些互动如何影响主角的生活和决策。
高潮(Climax):描述一个关键事件,如 AI 做出的争议性医疗决策,或主角对 AI 系统的反抗,这个事件应推动故事走向高潮。
结局(Resolution):展示故事的解决方式,包括主角如何面对 AI 医疗系统带来的挑战,以及社会对这些问题的反思和可能的解决方案。
例子:在开头部分,可以通过主角的视角描述他们第一次进入 AI 医院的经历。可以描述一个场景,如主角在接受 AI 医生的诊断时,感受到的混合情绪 —— 对 AI 技术的好奇、对即将到来的治疗的希望,以及对失去人类接触的微妙失落感。这个场景可以为读者提供一个关于 AI 医疗系统如何运作的直观感受,并为后续的故事发展奠定基础。
-

注意在实际使用中,输入 llm 时,根据角色对文本的不同部分进行划分,比如划分为:系统消息、用户消息、助手消息

PromptEngineering-20250115205315

  1. 系统消息(System Message):系统消息是向语言模型传达指令的语句,用于设置模型的行为和限制。它就像是给模型的 “上帝提示”,告诉模型它应该扮演的角色或者遵循的规则。例如,系统消息可以是 “你是一个助理,将以 Seuss 博士的风格回答问题”,这样的消息帮助模型了解其在对话中的角色和应遵循的特定风格。system 不是必需的
  2. 用户消息(User Message):用户消息代表实际的最终用户提出的问题或指令。在 LLM 的输入中,用户消息模拟用户的询问,是触发模型生成回复的直接原因。例如,用户可能会问 “太阳系有哪些行星?”,这是一个用户消息。
  3. 助手消息(Assistant Message):助手消息代表模型的响应,即模型以助手的角色回答用户的问题。在对话中,助手消息用于保持对话的连贯性,并且可以用于在当前请求中设置模型的先前响应。

PromptEngineering-20250115205315-1

预训练微调提示词工程是大型语言模型(LLM)生成质量优化的三种关键手段,各自具有不同的特点和优势。

  • 预训练是 LLM 发展的基石,通过在大规模无标注语料库上进行自监督学习,赋予模型通用的语言理解和生成能力。这种自然语言的通用知识为后续的微调和提示词工程奠定了坚实基础。
  • 微调则是利用有标注的任务数据,对预训练模型进行进一步调整和优化,使其更好地适应特定的下游任务。微调的优势在于可以充分利用监督信号,提高模型在特定领域的生成质量。但同时也存在过度微调导致过拟合、灾难性遗忘等潜在风险。
  • 提示词工程无需对模型参数进行更新,而是通过设计合理的提示,激发预训练模型中蕴含的知识,从而在下游任务中获得良好的生成质量。这种方式更加高效灵活,避免了微调可能带来的问题。但提示词的设计质量对模型表现影响重大,需要更多研究来探索通用有效的提示设计范式

除了自己设计 prompt,还可以利用 LLM 为你设计 prompt,比如以下网站提供这些功能:

参考:

  1. Prompt Engineering Guide | Prompt Engineering Guide<!-- –>
  2. 充分释放大模型的潜力 —— 提示词工程的 16 种方式 | 亚马逊 AWS 官方博客