如何向 LLM 高效提问

posts/how-to-ask-llms

本文核心观点摘录自 Prompt Engineering Guide,并结合个人使用 AI 经验进行总结。

在经典著作《提问的艺术》中,作者强调了好问题对于获取高效解答的重要性。这一逻辑在 AI 时代依然适用,只不过你的问题变成了发给 AI 的提示词。

本文将侧重于从日常提问的角度,讨论一下如何设计出能让 AI 精准理解的提示词。

设计提示词的四个步骤

1. 明确意图

设计提示词的第一步,是清晰地表明你的意图。这通常对应一个具体的动作,如写代码、翻译、总结、推荐等。

模糊的意图

关于提示词的书

这时 AI 会困惑:是要买书?写书?还是找书?

清晰的意图

请帮我找一本有关提示词工程的书。

2. 缩小范围

表达意图只是开始。为了避免 AI 返回过于宽泛的结果(例如返回了 10 本书),我们需要通过限定条件来需求。

仅有意图

请帮我找一本有关提示词工程的书。

增加限定

请帮我找一本有关提示词工程的书,书名中包含 "Guide",且由 OpenAI 相关的研究人员编写。

3. 拒绝歧义

这里面有一个最大的问题,那就是你的简单和 AI 的简单是一样的吗?

我们平常说出的语言过于主观性,而 AI 倾向于字面理解或概率预测。我们需要将“主观感受”转化为“客观描述”。

场景坏的提问 (主观)好的提问 (客观)
易读性我希望它能简单易懂。请帮我找一本外行人(无计算机背景)也能看懂的入门书。
风格写得专业一点。请使用学术论文的风格,包含引用和致谢。

4. 设定约束

不仅要告诉 AI 做什么,还要明确告诉它怎么做以及限制条件。相比于告诉 AI 不要做什么,告诉它要做什么往往效果更好。

负面约束(AI 容易忽略“不”字)

帮我生成摘要,不要太长,不要口语化,不要用复杂的词...

正面引导(更精准)

帮我生成这本提示词书的摘要,要求:
1. 长度控制在 100-200 字之间。
2. 语气使用文档风格,保留“思维链”、“零样本”等专业术语。

进阶技巧

掌握了基础结构后,通过一些特定的模式,可以显著提升 AI 处理复杂任务的能力。虽然学术界提出了思维树 (ToT)、自动推理 (ART) 等众多概念,但在日常实战中,以下 5 种方式足够应付大多数场景了。

1. 少样本提示 (Few-Shot Prompting)

当 AI 无法精确把握你的风格、格式或逻辑要求时,与其反复解释,不如直接提供 1-3 个理想的“输入 - 输出”示例(Demo)。这能让 AI 快速进行模式识别。

只有指令 (Zero-Shot)

把这句话改成讽刺风格:今天天气真好。

加上样本 (Few-Shot)

任务:将普通话转换为阴阳怪气的讽刺风格。

示例1:
输入:这一顿饭真好吃。
输出:也就是比起猪食稍微强那么一点点吧,真是难为你了。

示例2:
输入:你真聪明。
输出:爱因斯坦见了你都得拜师学艺,这智商简直突破人类极限了。

输入:今天天气真好。
输出:

2. 链式思考 (Chain-of-Thought, CoT)

对于数学计算、逻辑推理或复杂编程任务,大模型容易出现幻觉。强制它展示思考过程,可以大幅提高准确率。

可在提示词末尾加上这段话(让模型展开思考过程):

请一步步进行思考,并展示你的推理过程,最后给出结论。

3. 未知知识检索 (Retrieval-augmented generation, RAG)

不要尝试问AI可能不知道的信息,因为大概率会导致模型幻觉。你可以把已知数据喂给他,因为 AI 擅长处理大量文本的任务。

这种方式在分析大量数据(日志、代码片段、文章等)有奇效。

【背景资料】
"""
在此处粘贴你的 财报数据、API文档、会议记录 或 搜索到的新闻

如果对话的模型支持联网搜索的话可以把浏览器连接直接丢给他
"""
    
【问题】
根据上述背景资料,总结核心观点,不要包含资料以外的信息。

4. 提示链 (Prompt Chaining)

当一个任务过于复杂(例如写一个贪吃蛇游戏或写一篇万字长文),问 AI 一次往往效果欠佳。更好的方法是将任务拆解为流水线。

  1. Prompt A: " 请为贪吃蛇游戏设计核心类结构和伪代码。" -> 获得设计稿
  2. Prompt B: " 根据这个设计稿,请编写 Snake 类的 Python 代码。" -> 获得第一部分代码
  3. Prompt C: " 现在请编写 GameLoop 逻辑,并整合之前的代码。" -> 获得完整代码

5. 自我反思与一致性 (Self-Consistency & Reflection)

AI 第一次生成的答案往往不是最优的。你可以要求它扮演审稿人或者重新思考。

你刚刚生成的文案虽然通顺,但稍显枯燥。请作为一名顶级广告创意总监,批判上述文案的缺点,并提供一个更具吸引力的修改版本。

总结

综上,到这里使用上述的方法已经可以解决大部分 AI 对话问题了。如果你使用的模型支持系统提示词 (System Prompt),你也可以为你的 AI 增加系统提示词,这样模型会更好用。