4、Prompt Engineering基础:什么是Prompt、硬提示与软提示、Few-shot与Zero-shot学习、Prompt模板设计原则、常见Prompt技巧(Chain-of-Thought)

聊到大模型微调,很多人第一反应就是改模型参数。但说实话,我做了这么多年AI工程,发现一个残酷的事实——很多时候,你根本不需要微调。把Prompt写好,效果就能提升一大截。

这一章,我们就来聊聊Prompt Engineering。这是大模型应用的入门功夫,也是性价比最高的技能。

4.1 什么是Prompt?

Prompt,说白了就是你给模型的一段输入文本。它就像你跟模型说的「开场白」。你问什么、怎么问,直接决定了模型答什么、答得怎么样。

举个例子:

# 不好的Prompt
"写一段话。"

# 好的Prompt
"你是一位资深金融分析师。请用200字以内,分析2024年新能源车市场的三大趋势,要求数据支撑、逻辑清晰。"

看出区别了吗?好的Prompt就像给了一个明确的任务说明书。模型不需要猜你要什么,直接干活就行。

核心观点:Prompt是人与模型之间的「翻译器」。你翻译得越准确,模型输出就越靠谱。

4.2 硬提示 vs 软提示

这里有个概念,很多人容易搞混——硬提示和软提示。

硬提示(Hard Prompt),就是人类可读的文本。比如上面那个例子,就是硬提示。它的优点是直观、可解释、容易调整。缺点嘛,就是需要你手动去试,挺费人的。

软提示(Soft Prompt),则是模型内部的可学习向量。你看不到它,它也不像人话。但它能更精准地引导模型行为。

我个人的习惯是:

  • 日常使用:先用硬提示快速验证想法
  • 生产环境:如果硬提示效果不稳定,再考虑软提示微调

小技巧:软提示通常需要配合微调使用。如果你只是调用API,那基本只用硬提示就够了。

4.3 Few-shot vs Zero-shot 学习

这两个概念,其实就是在说「你给了模型多少例子」。

Zero-shot:不给例子,直接问。

Prompt: "将以下句子翻译成英文:今天天气真好。"
输出: "The weather is nice today."

Few-shot:给几个例子,让模型照着学。

Prompt: 
"将以下句子翻译成英文:
例子1:我喜欢猫 -> I like cats.
例子2:他在跑步 -> He is running.
现在翻译:今天天气真好。"

输出: "The weather is nice today."

我在项目中遇到过这样的情况:Zero-shot效果差得离谱,但加了3个例子后,准确率直接从40%飙到85%。你想想看,这差距有多大。

注意:Few-shot不是越多越好。我试过给20个例子,结果模型反而被带偏了。一般来说,3-5个高质量例子就够了。

4.4 Prompt模板设计原则

写Prompt模板,其实跟写代码一样,有套路可循。我总结了几个原则:

  1. 明确角色:告诉模型「你是谁」。比如「你是一位资深律师」、「你是一名小学老师」。
  2. 限定范围:别让模型自由发挥。比如「只回答是或否」、「控制在50字以内」。
  3. 给出格式:想要JSON输出?想要Markdown表格?直接告诉模型。
  4. 提供上下文:模型没有记忆,每次对话都是独立的。把关键信息写进Prompt里。

举个例子,这是我常用的一个模板:

你是一位[角色]。
请根据以下内容,完成[任务]。
内容:[输入文本]
要求:
1. 输出格式为JSON
2. 只包含关键信息
3. 字数不超过100字

输出:

避坑指南:我曾经犯过一个错误——把模板写得太复杂。结果模型要么忽略部分指令,要么输出混乱。后来我学乖了:模板越简单,效果越稳定

4.5 常见Prompt技巧:Chain-of-Thought

Chain-of-Thought(CoT),中文叫「思维链」。这招是我最常用的技巧之一。

它的核心思想很简单:让模型把思考过程写出来。而不是直接给答案。

看个对比:

# 普通Prompt
"小明有5个苹果,小红给了小明3个,小明又给了小华2个。小明现在有几个苹果?"

# CoT Prompt
"小明有5个苹果,小红给了小明3个,小明又给了小华2个。小明现在有几个苹果?
让我们一步一步思考:
1. 小明最初有5个苹果。
2. 小红给了小明3个,所以小明现在有5+3=8个。
3. 小明给了小华2个,所以小明现在有8-2=6个。
所以答案是:6个。"

为什么会这样?因为模型在生成「思考过程」时,会激活更多的推理能力。直接给答案,模型容易「偷懒」——它可能只匹配了表面模式,而不是真正理解问题。

我个人的经验是:

  • 数学题、逻辑题:CoT效果提升明显,有时能翻倍
  • 简单问答:CoT反而可能画蛇添足
  • 长文本分析:CoT可以帮助模型保持思路清晰

进阶技巧:CoT还可以配合Few-shot使用。给模型一个带思考过程的例子,它就能学会「边想边答」的模式。

4.6 总结一下

Prompt Engineering,说白了就是「怎么跟模型说话」。这门功夫不需要改代码、不需要训练模型,但效果立竿见影。

我建议你:

  • 先从Zero-shot开始,快速验证想法
  • 效果不好,加Few-shot例子
  • 复杂任务,用CoT让模型「想清楚再说」
  • 生产环境,设计好模板,保持一致性

嗯,这一章就到这里。下一章我们聊聊更进阶的内容——如何用Prompt做数据增强。到时候见。