提示词工程:方向性刺激提示 (Directional Stimulus Prompting)

方向性刺激提示 (Directional Stimulus Prompting)

这是一种非常强大、直接且高效的提示技术,旨在精确控制大型语言模型(LLM)的输出格式、结构、风格或思考路径

核心定义

方向性刺激提示 ,简单来说,就是在你的指令(Prompt)的末尾,直接给出期望输出的"开头部分"。这个"开头部分"就像一个强有力的"刺激"或"引子",引导模型沿着你指定的"方向"继续生成内容。

它利用了 LLM 强大的模式匹配和文本补全能力。当你给出一个开头,模型会认为它的任务就是"完成这个句子/段落/代码块",从而极大地减少了它自由发挥导致格式错误的概率。

一个简单的比喻

想象一下,你正在和一个小朋友玩"词语接龙"或"故事接龙"的游戏。

  • 不使用方向性刺激提示: 你说:"给我讲一个关于龙的故事。"

    • 小朋友可能会从任何角度开始:"从前有一座山..."、"龙是一种神奇的生物..."、"小明很喜欢龙..."。故事的开头是不可预测的。
  • 使用方向性刺激提示: 你说:"我们来编一个关于龙的故事,故事的开头是:'在深夜的暴风雨中,一声古老的龙吟划破天际...'"

    • 小朋友几乎肯定会接着这个场景往下编,比如"...一道闪电照亮了它巨大的鳞片。" 你已经为故事设定了基调、场景和方向

这个"故事的开头"就是方向性刺激。

核心目标与作用

  1. 强制格式化输出: 这是最常见的用途。你可以确保模型返回的是特定格式的文本,如 JSON、Markdown、XML 等。
  2. 引导思考过程: 在进行链式思考(Chain-of-Thought)时,你可以引导模型从特定的第一步开始分析问题。
  3. 设定语气和风格: 通过给出一个特定风格的开头,可以确保整个回答都保持这种风格。
  4. 提高输出的稳定性和一致性: 每次都使用相同的刺激,可以使模型的输出结果更加可预测和可靠。

实际应用案例

下面通过几个例子,你可以清晰地看到它的威力。


案例1:强制输出 JSON 格式(最经典用法)

❌ 不使用方向性刺激的提示:

请从以下文本中提取关键信息,并以 JSON 格式返回:

文本:"张三,男,35岁,是复旦大学的软件工程师,他的邮箱是 zhangsan@fudan.edu.cn。"

可能的输出 (格式不稳定):

复制代码
好的,这是提取的信息:
{
  "name": "张三",
  "gender": "男",
  "age": 35,
  "occupation": "软件工程师",
  "organization": "复旦大学",
  "email": "zhangsan@fudan.edu.cn"
}

问题:模型可能会添加额外的解释性文字,如"好的,这是...",导致程序解析 JSON 失败。

✅ 使用方向性刺激的提示:

请从以下文本中提取关键信息,并以 JSON 格式返回:

文本:"张三,男,35岁,是复旦大学的软件工程师,他的邮箱是 zhangsan@fudan.edu.cn。"

输出:
```json
{

几乎确定的输出 (格式稳定):

json 复制代码
{
  "name": "张三",
  "gender": "男",
  "age": 35,
  "occupation": "软件工程师",
  "organization": "复旦大学",
  "email": "zhangsan@fudan.edu.cn"
}

这里的 ````json\n{` 就是方向性刺激。它强烈地暗示模型:"直接开始写 JSON 内容,不要有任何多余的废话。"


案例2:引导链式思考 (Chain-of-Thought)

任务: 计算一个篮球场的周长,篮球场长28米,宽15米。

❌ 普通的 CoT 提示:

一个标准篮球场的长度是28米,宽度是15米。请计算它的周长。请一步一步思考。

✅ 使用方向性刺激的 CoT 提示:

一个标准篮球场的长度是28米,宽度是15米。请计算它的周长。请一步一步思考。

思考过程:
第一步:确定计算周长需要用到的公式。

模型的续写:

第二步:周长的公式是 (长 + 宽) * 2。

第三步:将已知的长度和宽度代入公式。即 (28 + 15) * 2。

第四步:计算括号内的和:28 + 15 = 43。

第五步:计算最终结果:43 * 2 = 86。

最终答案: 篮球场的周长是86米。

通过给出思考的第一步,你为模型的整个分析过程搭建了框架,使其更有条理。


案例3:控制代码生成

任务: 写一个 Python 函数,计算斐波那契数列的第 n 项。

✅ 使用方向性刺激的提示:

请用 Python 编写一个函数,用于计算斐波那契数列的第 n 项。请包含文档字符串。

代码:
```python
def fibonacci(n):

** """**

模型的续写:

python 复制代码
def fibonacci(n):
    """
    计算斐波那契数列的第 n 项。

    参数:
    n (int): 要计算的项数 (n > 0)。

    返回:
    int: 斐波那契数列的第 n 项。
    """
    if n <= 0:
        raise ValueError("项数必须是正整数")
    elif n == 1:
        return 0
    elif n == 2:
        return 1
    else:
        a, b = 0, 1
        for _ in range(n - 2):
            a, b = b, a + b
        return b

通过给出函数签名和文档字符串的开头,模型会自然地完成剩下的部分,并且格式非常规范。

总结

方向性刺激提示 是一种简单却极其有效的技术。它将"指令"和"范例"无缝地结合在一起,通过提供一个输出的"引子",强制模型遵循你期望的路径。在需要结构化数据输出、稳定格式和可预测行为的场景中,这几乎是必用的技巧。就是方向性刺激。它强烈地暗示模型:"直接开始写 JSON 内容,不要有任何多余的废话。"*


案例2:引导链式思考 (Chain-of-Thought)

任务: 计算一个篮球场的周长,篮球场长28米,宽15米。

❌ 普通的 CoT 提示:

一个标准篮球场的长度是28米,宽度是15米。请计算它的周长。请一步一步思考。

✅ 使用方向性刺激的 CoT 提示:

一个标准篮球场的长度是28米,宽度是15米。请计算它的周长。请一步一步思考。

思考过程:
第一步:确定计算周长需要用到的公式。

模型的续写:

第二步:周长的公式是 (长 + 宽) * 2。

第三步:将已知的长度和宽度代入公式。即 (28 + 15) * 2。

第四步:计算括号内的和:28 + 15 = 43。

第五步:计算最终结果:43 * 2 = 86。

最终答案: 篮球场的周长是86米。

通过给出思考的第一步,你为模型的整个分析过程搭建了框架,使其更有条理。


案例3:控制代码生成

任务: 写一个 Python 函数,计算斐波那契数列的第 n 项。

✅ 使用方向性刺激的提示:

请用 Python 编写一个函数,用于计算斐波那契数列的第 n 项。请包含文档字符串。

代码:
```python
def fibonacci(n):

** """**

模型的续写:

python 复制代码
def fibonacci(n):
    """
    计算斐波那契数列的第 n 项。

    参数:
    n (int): 要计算的项数 (n > 0)。

    返回:
    int: 斐波那契数列的第 n 项。
    """
    if n <= 0:
        raise ValueError("项数必须是正整数")
    elif n == 1:
        return 0
    elif n == 2:
        return 1
    else:
        a, b = 0, 1
        for _ in range(n - 2):
            a, b = b, a + b
        return b

通过给出函数签名和文档字符串的开头,模型会自然地完成剩下的部分,并且格式非常规范。

这张图片清晰地展示了两种不同提示词(Prompt)策略对大语言模型(LLM)输出结果的影响:

标准提示 (Standard Prompting):

问题: 直接要求模型"简要地用2-3句话总结上述文章"。

结果: 模型给出了一个比较泛化的摘要,提到了核心人物和事件,但缺少一些关键细节。其 ROUGE-1 得分(一种衡量文本相似度的指标)为 34.48。

方向性刺激提示 (Directional Stimulus Prompting):

问题: 同样是要求总结,但增加了一个关键部分------"根据提示"(based on the hint)。

提示 (Hint): 提供了一系列关键词,如 Bob Barker; TV; April 1; "The Price Is Right"; 2007; 91。这些都是文章中的核心实体和信息点。

结果: 模型生成的摘要几乎完美地融入了所有提示词,内容更具体、信息量更丰富。其 ROUGE-1 得分显著提高到了 48.39。

结论: 图片的核心思想是,通过在提示词中加入明确的、方向性的"刺激"(即关键词或指令),可以引导模型生成更符合我们预期的、更精确、更详尽的内容。

总结

方向性刺激提示 是一种简单却极其有效的技术。它将"指令"和"范例"无缝地结合在一起,通过提供一个输出的"引子",强制模型遵循你期望的路径。在需要结构化数据输出、稳定格式和可预测行为的场景中,这几乎是必用的技巧。

相关推荐
非晓为骁2 天前
AI-Native 能力反思(三):Prompt Engineering 自我提升神器
人工智能·ai·prompt·ai-native·提示词工程
realhuizhu6 天前
分享一个知乎高赞回答生成AI指令:让技术人也能写出有深度的回答
知乎·ai工具·提示词工程·deepseek·内容创作
喜欢吃豆8 天前
从指令到智能:大型语言模型提示词工程与上下文工程的综合分析
人工智能·语言模型·自然语言处理·大模型·提示词工程·上下文工程
cxr82812 天前
AI智能体赋能文化传承与创新领域:社群身份认同的数字空间重构与文化融合策略
大数据·人工智能·重构·提示词工程·ai赋能
nju_spy14 天前
大模型面经(一) Prompt + RAG + 微调
人工智能·面试·lora·大模型·rag·提示词工程·peft微调
cxr82815 天前
Prompt Programming - 用文字重构AI智能体系
人工智能·提示词工程
cxr82819 天前
分享一个知识工程师单体智能体的简单提示词
人工智能·智能体·提示词工程·ai赋能·上下文工程
Nukepayload223 天前
基于洞察的智能编程法——从直觉到代码的原型炼成术
ai·提示词工程
丁学文武25 天前
大模型提示词Prompt工程:2-全攻略+最佳实践框架+原理解析+实战案例库+七招要诀
人工智能·prompt·agent·提示词工程·大模型应用·提示词技巧·提示词案例库
小阿鑫1 个月前
如何让AI真正理解你的需求
prompt·提示词工程·ai落地·promptpilot·promptpilot测评