如何向 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 一次往往效果欠佳。更好的方法是将任务拆解为流水线。
- Prompt A: " 请为贪吃蛇游戏设计核心类结构和伪代码。" -> 获得设计稿
- Prompt B: " 根据这个设计稿,请编写
Snake类的 Python 代码。" -> 获得第一部分代码 - Prompt C: " 现在请编写
GameLoop逻辑,并整合之前的代码。" -> 获得完整代码
5. 自我反思与一致性 (Self-Consistency & Reflection)
AI 第一次生成的答案往往不是最优的。你可以要求它扮演审稿人或者重新思考。
你刚刚生成的文案虽然通顺,但稍显枯燥。请作为一名顶级广告创意总监,批判上述文案的缺点,并提供一个更具吸引力的修改版本。
总结
综上,到这里使用上述的方法已经可以解决大部分 AI 对话问题了。如果你使用的模型支持系统提示词 (System Prompt),你也可以为你的 AI 增加系统提示词,这样模型会更好用。