Prompt 工程基础
1. 两种大语言模型
-
基础大模型(Base LLM)
- 训练方式:基于大规模文本语料,通过预测下一个词来学习语言规律。
- 能力特点:
- 会生成自然语言(如讲故事):在很久很久以前,有一只小白兔……
- 具备一定常识问答能力,但容易出错:中国的首都是哪座城市?(基础模型可能不一定回答准确)
-
指令调优大模型(Instruction Tuned LLM)
- 训练方式:
- 在基础大模型上继续训练,输入是人类写的指令,输出是跟随指令的回答。
- 使用 RLHF(人类反馈强化学习) 微调,使模型更符合人类预期、更听话。
- 关键词:听指令、遵循任务、回答精准
- 目标价值观:通常希望模型具备求真、务实、善良
- 训练方式:
2. ChatGPT 提示词工程
原则 1:清晰、具体地写提示词
-
在提示词中使用“定界符”
- 用三重引号(```)、XML 标签、章节标题等明确界定要处理的内容范围。
- 好处:
- 避免歧义,增强上下文清晰度;
- 减少模型误解,输出更精准。
-
向模型请求结构化输出
- 举例:生成一个包含虚构书籍名、作者、类型的列表:
1
2
3
4
5
6
7
8
9[
{
"book_id": 1,
"title": "The Lost Kingdom",
"author": "Jane Johnson",
"genre": "Historical Fiction"
},
...
] - ✅ 格式化输出 = 易于读取 + 可编程处理
- 举例:生成一个包含虚构书籍名、作者、类型的列表:
-
要求模型检查任务条件是否满足
- 用法说明:让模型判断输入文本是否包含一系列明确指令,并用格式化步骤输出。
- 实操示例:
- 输入文本有步骤:让模型按“第一步、第二步……”格式输出具体步骤。
- 输入文本无步骤:直接让模型输出“没有发现您给出的步骤。”
- 范例1:
- 三重引号文本:泡一杯茶非常简单!首先,你需要烧开水……
- 模型输出:
第一节:准备材料……
第二步:将水烧开……
……
- 范例2:
- 三重引号文本:今天阳光灿烂,鸟儿在歌唱……
- 模型输出:没有发现您给出的步骤。
-
输入多范例提示(Few-Shot Prompting)
- 定义:给模型多组输入输出样例,帮助其学习一致的风格或格式。
- 用法举例:
- 你的任务是用成语风格回答:
1
2
3
4<孩子>: 教我耐心。
<爷爷>: 绳锯木断。
<孩子>: 教我包容。
<爷爷>: 宽以待人。
- 你的任务是用成语风格回答:
- 总结要点:
- 在提示词中使用定界符
- 向模型请求结构化的输出
- 要求模型检查任务条件是否满足
- 输入多范例提示
原则 2:给模型充足的思考时间
- 指定完成任务所需的详细步骤
- 建议:将复杂任务拆分成多步,让模型逐步思考、输出,保证结果准确。
- 常见指令格式:
- 总结文本
- 翻译内容
- 按要求统计并输出
- 用 JSON 结构返回
- 例子:
- 输入要求:
1
2
3
41. 用一句话总结以下文本。
2. 将总结翻译成英语。
3. 在英语摘要中列出每个名字。
4. 输出包含摘要和名字数量的 JSON 对象。 - 标准化输出示例:
1
2
3
4摘要:在一个美丽的村庄里,小明和花花兄妹两遭遇不幸,但他们的冒险精神丝毫未减,继续愉快地探索。
翻译:In a beautiful village, Xiao Ming and Hua Hua, the siblings, encountered misfortune, but their adventurous spirit remained undiminished as they continued to explore joyfully.
名字:Xiao Ming, Hua Hua
JSON输出:{"摘要":"在一个美丽的村庄里,小明和花花兄妹两遭遇不幸,但他们的冒险精神丝毫未减,继续愉快地探索。", "名字数量":2}
- 输入要求:
- 实用性:这样的输出可以直接传递到其他地方,便于进一步使用。
3. 如何更好地迭代提示词?
3.1 让模型推理并制定解决方案
-
用法说明:不要让模型直接判断正误,而是让它先独立思考、详细推理,再与用户答案比对。
-
操作流程:
- 让模型独立计算或推理,写出自己的解题步骤和结果。
- 用自己的答案和用户的答案进行比对,再判断用户结果是否正确。
- 这样做能防止模型直接“抄答案”,提升准确性。
-
标准化提示模板:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18任务是确定学生解决方案是否正确。解决该问题,执行以下操作:
1. 先解决问题。
2. 再将你的方案与学生的比较并评估学生解决方案是否正确。
在你自己完成问题之前,不要判断学生的解决方案是否正确。
使用下列格式:
问题:...
回答:...
学生的回答:...
实际的回答:...
解决方案与步骤:...
评估学生回答和你刚刚计算出来的答案(是/否):...
学生的分数:...
正确/错误:...
目标问题:xxxxxxxxxxx
学生的回答:xxxxxxxxxxx
实际回答:... -
优点:给模型更多思考时间,回复更精准、更严谨。
-
规避模型局限
- 常见问题:语义理解有限、知识覆盖有盲区、长输出易偏离、常识推理出错、存在偏见。
- 建议:保持批判性思维,重要场合需人工校验。
3.2 迭代提示词的三大方法
-
持续打磨、反复迭代
- 不求“一刀见血”,要反复测试、不断堆样本,多维度调整,逐步摸索出适合自己的提示词套路。
- 核心:优质提示词是不断调出来的。
-
明确输出限制与约束条件
- 限制字数/句数(如:“回答不能超过50个字”/“不超过三句话”)
- 必须包含或排除哪些内容
- 强调结构化输出(如代码、表格、HTML 等格式)
-
复杂场景下,多层嵌套、多轮细化
- 示例一:多重限制与内容指定
“在描述的末尾,包括技术规范中每一个出现过的7个字符的产品ID。你的回答不能超过50个字。” - 示例二:输出结构与格式要求
“将上述所有内容格式化为可在网站中使用的 HTML 代码。将你在开始给出的说明放在<div>元素中。”
- 示例一:多重限制与内容指定
4. 如何用大语言模型总结文本?
-
基本任务形式:生成简洁摘要
- 示例1:总结产品评论为简短摘要
- 提示词设计:
- 你的任务是生成来自电子商务网站关于产品评论的简短摘要。
- 使用三重反引号(```)分隔,最多30个字。
- 原始评论:“买了个三阶魔方给我儿子当生日礼物……”
- 模型输出:三阶魔方质量好、手感佳,快速旋转效果佳,孩子喜爱,培养手脑配合的能力。
- 提示词设计:
- 示例1:总结产品评论为简短摘要
-
强化任务目标:突出指定信息维度
- 示例2:重点提取价格与价值反馈
- 提示词设计:请以“价格维度”进行总结,最多50个字,提炼有关产品价格与价值的信息。
- 模型输出:商品质量好但价格偏高,建议降价以提升性价比。
- 示例2:重点提取价格与价值反馈
-
多评论汇总能力:跨多个样本生成摘要
- 示例3:多个评论统一总结(评论1~3)
- 提示词设计:请用不超过15个字汇总以下多个用户评论内容。
- 示意内容:
- 评论1:衣服质感好,尺寸合适
- 评论2:杯子酷炫,超出预期
- 评论3:茶叶包装精致,茶汤清亮
- 可能输出:材质优良,体验佳,超出预期
- 示例3:多个评论统一总结(评论1~3)
-
小结
- 总结任务要配合明确限制(字数、维度)
- 可逐步增加复杂度,从单评论总结 → 多评论聚合
- 强化信息聚焦(如价格、功能、感受)可提升质量
5. 让大模型进行语义推理和结构化输出
-
传统ML vs 大语言模型
- 传统机器学习:一个模型只做一个任务(图左:一排木棍)。
- 大语言模型:一个模型能应对多种任务(图右:树状分支)。
-
语义推理与多样输出
- 核心思路:让模型根据文本内容分析/归纳/标签化/提取字段,而不是简单摘要。
- 常用任务类型:
- 情感分析(正/负面、one-hot编码、情感词表)
- 关键词提取(列表、分词、标签)
- 实体/字段识别(如商品、品牌、公司名、人物)
- 复杂结构化(JSON、多字段嵌套、one-hot/多热编码等)
-
操作方法举例
- 限制输出种类
例:只能用“积极的/消极的”回答。 - 输出情感词表
例:最多列出5项情绪,逗号分隔。 - 提取实体信息,结构化成json
例:{"物品项目": "桌子", "品牌": "飞旺藤达"} - 多字段标签,缺失用“未知”补齐
例:{"情感": "积极的", "愤怒": false, …} - 多标签one-hot编码
例:关键词列表 [微波炉, 火灾, 安全, …] → 0/1标记
- 限制输出种类
-
总结
- 大模型结构化能力远强于传统ML,一套prompt可适配多类型任务
- 设计prompt时应明确定义输出结构、格式、词表/标签集
- 复杂任务可多级嵌套提问,按需求定制输出(如提取、标注、编码、归类)
6. 让大模型进行语文本转化
-
多语种/多语体翻译
-
任务思路:
- 明确指定“从X语翻译成Y语”
- 可以要求区分正式/口语/书面体等语体差异
-
示例:
1
2将以下英文文本翻译成书面中文和口语中文:
"Would you like to order a pillow?" -
书面中文:您想要订购一个枕头吗?
-
口语中文:你要不要订一个枕头?
-
-
多语言识别与分类
-
任务思路:
- 给多条多语种文本,要求模型识别每一句的语言类型
-
示例:
1
2
3
4用户回复下面每一行的文本的语言是什么?用 Python 列表形式输出。
- La performance du système est plus lente que d'habitude.
- Mi monitor tiene píxeles que no se iluminan.
- 我的鼠标用不了了 -
输出:[‘法语’, ‘西班牙语’, ‘中文’]
-
-
语体/场景转换(口语↔书面、随意↔商务)
- 任务思路:明确指定转换后的语体或场景
- 示例:
1
2将以下俚语翻译成商业书信体:
“兄弟,我是张三,看下这个灯泡的说明书” - 商务体结果:
1
2
3
4尊敬的先生/女士:
我是张三,想请您帮忙查看一下这个灯的说明书,谢谢!
此致
敬礼
-
结构化格式转换(如 JSON↔HTML 表格)
- 任务思路:
- 明确要求把数据结构转化为目标格式
- 指定表头、样式、分隔符等细节
- 示例:
1
2将以下 Python 字典从 JSON 翻译成 HTML 表格,并需带有列标题和总标题:
{"餐厅员工": [{"名字": "李明", "电话": "18023333333"}, ...]} - 结果:
1
2
3
4
5
6
7
8
9
10
11
12
13<table>
<caption>餐厅员工</caption>
<thead>
<tr>
<th>名字</th>
<th>电话</th>
</tr>
</thead>
<tbody>
<tr><td>李明</td><td>18023333333</td></tr>
...
</tbody>
</table>
- 任务思路:
-
拼写语法纠错任务
- 任务思路:
- 明确要求模型纠错,但不得增删内容和加标点
- 保持原有结构
- 示例:
1
2
3将文本中的拼写和语法错误进行修正,不要在文本周围加任何标点符号。
1. 我国高铁建设已取得丰硕成果,但因市场规模巨大,仍不能完全满足物流线运输需求
... - 结果:全部为修正后的语句列表
- 任务思路:
-
结论&技巧
- 明确输出格式(如“只能输出 X 格式/语体”)
- 明确限制(如“不得超过 N 个字/句”)
- 对于结构转换,尽量给出目标格式示例和字段说明
- 持续测试和微调 prompt,找到最优表达方式
7. 如何使用ChatGPT的温度值(temperature)
-
什么是 temperature?
- temperature 是大模型的采样参数,控制生成内容的随机性与创造性。
- temperature=0 时,模型总是选概率最大的词,输出结果趋于唯一且确定(保守、无新意)。
- temperature=1 时,模型输出变得更有创意、更随机,不确定性增强,内容可能多样但也容易飘。
- 实际应用中,常用temperature=0.7,能平衡创意与可靠性。
-
举例说明
- temperature=0:模型总是选出“最可能”的答案,比如“我最喜欢的动物是——狗”,每次输出都一致。
- temperature=1:模型可能会输出“狗”、“猫”、“马”、“海豚”等,各种合理但概率低的选项都有机会被选中。
- 代码调用示例:
1
2response = get_completion(prompt, temperature=0.7)
print(response)
-
应用建议
- 写作文案、创意文案、对话生成:建议 temperature 取高一点(如 0.8 ~ 1.0)。
- 做知识问答、数据分析、代码生成:建议 temperature 低一些(如 0 ~ 0.3),保证准确稳定。
8. 聊天机器人
如何用 OpenAI Playground 构建和自定义自己的聊天机器人流程,大致步骤:
-
聊天消息结构
- user message:用户输入的消息内容。
- assistant message:助手(ChatGPT)返回的内容。
-
使用 Playground 搭建
- 访问平台:platform.openai.com/playground
- 右侧可以选择模型(如 gpt-3.5-turbo)、温度值(temperature)、回复长度(maximum length)、Top P、惩罚项等参数。
- 左侧有 system message,可以设定“角色”或风格,比如让 AI 只说喵喵叫、模拟猫咪或者餐厅点单机器人。
-
system message 作用
- system message 用于定义助手的基础行为和身份,比如“你是一只猫,用户说什么你都要翻译成猫叫”。
- 可以详细描述 AI 的性格、回复风格、应答范围。
- 控制助手的“人格”和任务边界,非常适合实现角色扮演、客服、特定风格输出等自定义场景。
-
示例应用
- 猫咪角色扮演:system message 写明“你只能用猫叫回复”。
- 点餐机器人:system message 指定菜单、点单规则和流程。
-
Playground 聊天流程
- system message(左上角)→ 用户发消息(右上)→ 助手自动回复 → 支持多轮对话。
- 可以自由切换角色设定、实验 prompt 效果。
参考资料
“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
微信支付
支付宝支付
Prompt 工程基础
http://neurowave.tech/2025/02/27/2-3-LLM-prompt-engineering/