---
title: "掌握 ChatGPT 和 LLM 的提示词工程技巧"
date: 2023-09-10T22:07:22.000Z
author: Z.SHINCHVEN
tags: [Prompt Engineering, ChatGPT, LLM]
canonical: https://atlassc.net/2023/09/11/prompt-engineering-mastering
---
## 语言模型的简史

旅程始于 20 世纪 60 年代的 ELIZA，这是一个早期的自然语言处理程序，设计成模仿罗杰斯式心理治疗师。这种程序可以解析人类的输入，然后生成相应的响应。快进到 2018 年，OpenAI 推出了在大量文本数据上训练的 GPT-1。这之后是 2019 年更先进的 GPT-2 和 2020 年的 GPT-3，它们具有生成极其类人的文本的能力。每一次 GPT 的迭代都是向前的一大步，展示了机器学习和大数据集在创建越来越复杂的语言模型方面的力量。

## 什么是 Prompt 工程？

Prompt 工程涉及到精心构造给 ChatGPT 等大型语言模型（LLM）的 prompts 或指令，以优化它们的响应。它严重依赖于语言学，即研究语言及其结构的学问。例如，如果你要求 ChatGPT 写一个故事，一个精心设计的 prompt 可能是这样的："写一个关于一个名叫 Captain Silver 的海盗，他的会说话的鹦鹉，以及他们寻找失落宝藏的故事。"这个 prompt 具体，给出了上下文，并设定了 AI 的响应方向。Prompt 工程师将不断地改进 prompts，并监视它们的效果，因为底层的 AI 在不断发展。目标是完善人工智能的交互。

## 为什么令牌很重要

像 GPT-3 这样的 LLM 通过将文本分解为令牌来处理文本，这些令牌是需要收费的。令牌可以理解为语言模型解析文本的最小单位，例如，"ChatGPT is a language model developed by OpenAI"这句话会被分解为8个令牌。深思熟虑的 Prompt 工程可以节省令牌和金钱，因为每个令牌都会消耗计算资源和时间。

## Prompt 工程的思维方式

将 Prompt 工程视为设计有效的 Google 搜索查询。有更好和更差的方式来表述你的请求。例如，不是问"谁赢了比赛？"这样含糊的问题，你可能会问"谁赢了 2023 年的 NBA 总决赛？"这样具体的问题，更可能得到更准确的回答。因为具体的问题可以提供更多的上下文信息，帮助 AI 更准确地理解你的需求。

## Prompt 工程的最佳实践

以下是编写有效 prompts 的一些关键提示：

- 提供清晰、详细的指示。不要假设背景知识。例如，不是要求 AI "总结一本书，"你可能会要求它 "总结乔治·奥威尔的 '1984' 的主要主题和情节要点。"
- 采用一种角色，或者指定你希望 AI 使用的声音。例如，你可以指示 AI "以莎士比亚的风格写一个回应。"
- 设置期望的格式（例如，摘要，要点）。例如，"按时间顺序列出二战的主要事件。"
- 使用迭代 prompt 来指导 AI。如果初始响应不足，提出后续问题。这就像进行一场对话，每一个问题都建立在前一个回应的基础上。
- 避免引导性的问题，偏斜回应。例如，不是问 "不是真的吗，X?" 你可能会问 "对于 X 有什么证据和反对的证据？"
- 分解宽泛的主题以限制范围。不是问 "世界的历史是什么？"你可能会问 "20 世纪世界的主要事件是什么？"

## 高级 Prompt 工程

### Zero-shot，One-shot，Few-shot

在与像 ChatGPT 这样的大型语言模型交互时，用户可以利用 "zero-shot"、"one-shot" 和 "few-shot" 的概念来引导模型的回应。每种技术都可以被视为 "提示工程" 的不同方法 - 这是一门编写有效提示以引导模型产生期望回应的艺术。

"Zero-shot" 是指你向 ChatGPT 提供一个提示，而不提供任何具体的例子，期望它能基于现有的知识理解并有效地回应。例如，你可以问一个复杂的问题或请求解释一个概念，ChatGPT 应该能够基于其训练数据提供有意义的回应。当你想要直接的答案而不提供任何上下文时，这是非常有用的。

"One-shot" 涉及到提供一个单一的例子以及你的提示。这个例子用来引导模型的回应。例如，如果你要求 ChatGPT 写一首诗，你可以先提供一个你想要的诗的例子："ChatGPT，你能写一首像这样的诗吗：'玫瑰是红色的，紫罗兰是蓝色的...'。"模型使用这个单一的例子来理解你请求的风格和格式。

"Few-shot" 的操作原理与 "one-shot" 相同，但涉及提供几个例子，而不仅仅是一个。当你希望模型在多个实例中识别出一个模式或风格时，这可以很有帮助。例如，如果你希望 ChatGPT 继续一系列的历史事件，你可以在要求它生成下一个事件之前提供几个系列的例子。

请记住，所有这些技术的关键是提供清晰、简洁的提示。你的提示越具体、详细，ChatGPT 提供你正在寻找的回应的可能性就越大。尝试不同的方法，看看哪种最适合你的特定需求。

### AI 幻觉

在人工智能领域，尤其是在 OpenAI 的 ChatGPT 这样的大型语言模型中，有一种被称为 "AI 幻觉" 的现象可能会发生。这指的是 AI 模型生成的输出与事实现实或提供的提示无关，从而导致错误或误导性的信息。导致这些幻觉的因素可以从不足或过时的训练数据，过度拟合，对某些习语或俚语的不熟悉，到针对混淆 AI 的对抗性攻击。

ChatGPT 中的 AI 幻觉可能导致一系列的错误信息，从小的不准确到重大的虚假。这可能会误导用户，延续偏见，甚至导致虚假信息的传播。因此，采取策略来减少这些情况的发生至关重要。

如我们之前在博客中讨论的，提示工程是我们的重要工具之一，可以引导 ChatGPT 生成更准确和可靠的回应。但是除了精心制作提示，还有其他技术可以进一步增强这种策略的效果。

其中一种技术涉及调整 ChatGPT 回应的 "温度"。在 ChatGPT 这样的 AI 模型中，温度参数控制了回应的随机性。较低的值会导致更确定和集中的输出，而较高的值会导致更多样和创造性的输出。通过微调这个参数，我们可以对模型的输出进行更多的控制，降低 AI 幻觉的可能性。

此外，给 ChatGPT 分配特定的角色也有帮助。例如，要求它扮演中立的观察者或事实核查者的角色，可以增加对它生成的回应的控制层次。

然而，重要的是要记住，即使有了这些策略，也应该始终验证 AI 输出的准确性。虽然提示工程和其他技术可以帮助减少 AI 幻觉的可能性，但它们不能完全消除。因此，人类的监督和验证在确保像 ChatGPT 这样的 AI 模型生成的内容的可靠性和准确性方面仍然至关重要。

### 向量和文本嵌入 

- 用数字表示文本以捕捉语义意义和关系。这是一种将文本转化为数值向量的方法，使得我们可以在数学上比较不同的词或句子。例如，"国王"和"女王"这两个词可能有类似的向量表示，因为它们都是皇家头衔。

## 不要忘记新兴的模型

Prompt 工程技术也适用于新兴的 AI 系统，如文本转语音和文本转音频生成器。例如，当使用文本转语音 AI 时，你可能会提供指定你希望在语音输出中的音调或情感的 prompts，如 "以快乐、兴奋的音调阅读以下文本。"

掌握 Prompt 工程需要实践，但它让我们能够最大化利用像 ChatGPT 这样强大的 LLM 的潜力。通过深思熟虑的 prompting，我们可以进行更有效的人工智能合作。
