提示词工程(Prompt Engineering)

注:本文部分内容由AI生成,由于篇幅限制,很多AI真实返回结果无法直接展示,仅大概描述效果

简介

提示词工程(Prompt Engineering),简单来说就是组织有规律的关键词抽取有用的信息。

核心定义:提示词工程是通过系统化设计输入指令(prompt),引导生成式AI模型输出预期结果的技术策略。在人工智能领域,这相当于为神经语言模型设计「对话触发器」,其本质是对模型注意力的引导技术

提示词编写原则

I 明确且具体的指令

这个原则就是要求我们的输入尽量的清晰、具体,避免那些有歧义的描述,避免使用过于技术性或者不常用的术语。

针对这个原则我们有四个相关优化策略:

  • 使用分隔符清晰地表示输入的不同部分,分隔符可以是:```、""、<> 等等,这样可以让大模型清晰的知道哪些是指令,哪些是输入的上下文。
  • 根据一个结构化的输出的要求来输出对应的内容,比如:告诉大模型,以markdown源码的形式输出结果
  • 要求大模型检查是否满足某些条件,比如:要求输出的内容要在100字以内
  • 使用少样本提示(Few-shot Prompting)

下面我们就让大模型来举例解释一下这个原则以及其对应的策略:

makefile 复制代码
问:
请告诉我如何写好LLM大语言模型的提示词,按照明确且具体的指令的要求,针对下面四个反引号包裹的策略,挨个给我举正反例各1例。
```
使用分隔符清晰地表示输入的不同部分,分隔符可以是:```、""、<> 等等,这样可以让大模型清晰的知道哪些是指令,哪些是输入的上下文。
根据一个结构化的输出的要求来输出对应的内容,比如:告诉大模型,以markdown源码的形式输出结果
要求大模型检查是否满足某些条件,比如:要求输出的内容要在100字以内
使用少样本提示(Few-shot Prompting)
```

答:
根据您的要求,我将针对每个策略分别给出正例(✅有效)和反例(❌无效),用===分隔不同策略的示例:

策略1: 使用分隔符
✅ 有效示例:

请用<括号>内的内容辅助解释术语:
"迁移学习(Transfer Learning)"是一种机器学习技术,<参考维基百科:将从一个任务中学到的知识应用到另一个相关任务中>。
要求用中文简洁解释,不超过50字。
📍 效果:模型能清晰区分需要解释的术语与背景说明

❌ 无效示例:
请解释迁移学习:
迁移学习是一种机器学习技术,参考维基百科:将从一个任务中学到的知识应用到另一个相关任务中。用中文解释但要简短

📍 问题:没有分隔符会导致模型混淆「需要解释的内容」和「引用资料」

===

策略2: 结构化输出
✅ 有效示例:

请分析《百年孤独》的叙事结构,用下方markdown源码格式输出:
# 书名
## 叙事特点
- 特点1(环形结构)
- 特点2(魔幻现实主义)
## 时间跨度 
- 具体年数
❌ 无效示例:
请分析百年孤独的叙事结构,需要有章节划分和要点列示

📍 问题:缺少明确的格式指令,输出可能混杂自然语言描述

===

策略3: 条件检查
✅ 有效示例:

请生成三条环保宣传口号,检查是否符合:
1. 每条不超过15字 
2. 包含动词 
3. 使用感叹号结尾
如不满足请重新生成
❌ 无效示例:
给我写几个环保宣传标语,要简短有力

📍 问题:未声明具体审查标准,可能产出过长或无标点的内容

===

策略4: 输出示例
✅ 有效示例:

生成会议纪要模板,参考示例格式:
【时间】2023-01-01 
【议题】① X项目进度 ② Q4预算 
【决议】- 通过A方案 - 延后B计划
❌ 无效示例:
我需要一个会议纪要模板,包含时间、议题和决议

📍 问题:缺少具体示例可能导致错位格式(如使用*而不是-列表)

II 给模型时间去思考

针对这个原则我们有两个相关优化策略:

  • 明确说明完成任务所需的步骤。
  • 提示模型不要匆忙得出结论,而是要找出自己的解决方案。

大语言模型容易受到模糊目标的影响,尤其在处理需要多步推理的任务时,直接提问可能导致模型跳过关键中间步骤,直接输出错误答案。通过显式定义步骤,帮助模型分配更多注意力资源到问题分析的每个子环节,降低一次性生成完整答案的难度(类似数学中的"分步解题")。

模型在默认模式下倾向于直接生成表面结论,但是许多任务的正确性依赖中间推理,像数据计算、逻辑推导或矛盾分析,直接输出答案容易产生"幻觉"。提示模型去思考解决方案能激活大模型的链式推理能力(Chain-of-Thought),这样得出答案就会更靠谱。

下面是一个糟糕提示词:

我想买一辆近三年最畅销且性价比最高的摩托车

实测 deepseek-r1:7b 已读乱回,即便是满血版给出的回答也和我的实际需求相去甚远。

这一句话看似简单,但是其实根本无法回答,AI 强行回答就只能是已读乱回,我们试图拆解一下这句话:

  • 近三年最畅销,这意味着我们要先查询到近三年的摩托车销售数据
  • 性价比高,这个也是一个相对概念,不同的人对性价比的标准是不一样的
  • 买摩托车主要用途是什么
  • 摩托车的驾驶技术如何,推荐的摩托车能不能驾驭得了
  • 车型外观有什么要求

下面是完整的推荐摩托车的分步提示词(基于deepseek-r1 满血版):

  1. 我是一个新手摩托车司机,我平时骑摩托车主要是通勤用,通勤距离10到15公里左右,平时也没什么长途或者跑山的需求,预算1到2万之间,请问什么样的摩托车比较适合我呢?(AI给我推荐了车型,还分析了不同车型的优缺点,还有提到之前没有想到的外观和安全性设计
  2. 我驾驶技术不太好,不想骑挡车,且偏好复古外观。(AI又重新推荐了一批摩托车,这次推荐的都是复古踏板,更接近我的需求了,又再次强调了一下安全性设计)
  3. 必须要带ABS,安全性是非常重要的,另外,我想买近三年最畅销的,畅销款一般售后更有保障,零配件也好买。(AI这次推荐的车车比前一轮对话的更加符合我的需求了,差不多可以根据这个推荐去试车、买车了

其实到第三步的时候基本上就能选出来了,除非你还有更多要求,比如:抖动、续航、引擎声浪、性价比等等,我们还可以继续追问。在这个过程中,大模型的回答确实是越来越接近我的需求的,而且我在引导他的同时,他其实也在引导我。比如:安全性设计、外观偏好、车型这些都是他在引导着我去考虑这些因素。

在解决一个复杂任务的时候,往往要我们考虑的因素非常非常多,很难一次性就想得很完善,一把就全喂给大模型,所以拆解任务,不仅仅是给大模型更多思考空间,也是开阔和完善我们自己的思路的一个过程。

当然,如果你是一个摩托车小白的话,也可以让大模型帮忙拆解:

我想买一辆近三年最畅销且性价比最高的摩托车,但是我对摩托车并不了解,我还需要提供哪些信息才能让你更好地给我推荐最适合我的摩托车呢

实测 deepseek-r1:7b 回答得居然像模像样,满血版更是考虑得面面俱到。

提示词编写技巧

其实提示词的编写技巧就是围绕着提示词的编写原则来整理的一些实战中的案例,助力我们更好地实战。

避免使用有歧义或者有多种理解的提示词

使用 deepseek-r1:7b 测试,671b太强大效果不明显。

vbscript 复制代码
❌ 不好示例:请给我讲一下918
直接给我说"对不起"了。

✅ 好的示例:请给我讲一下历史事件918
回答正确

❌ 不好示例:给我解释一下什么是PR
PR 一词中文意为"公关",全称是Public Relations,意为"公共关系"......完全不是我期望的答案

✅ 好的示例:给我解释一下github上经常看到的"PR"是什么意思
Pull Request(拉取请求)......回答正确

提示词结构公式

指令 + 输入数据 + 背景 + 输出要求。

构成名称 描述 示例
指令(必填) 告诉模型要做的核心事情 解释、翻译、简述、总结、润色、写一段代码
输入数据(必填) 给模型描述具体问题或者具体内容 需要总结时,提供的文本;需要编写代码时,提供的要求、语言、代码风格等;
背景(非必填) 与任务相关的其他信息,帮助模型更好地理解需求 解释一个词汇的时候,是解释给专业人事听,还是解释给非专业人士听;出一套面试题目,是去面试实习生的,还是去面试10年经验的老司机的;
输出要求(非必填) 期望模型按照某种指定的格式或者结构等输出内容 请用markdown源代码输出;请用表格形式输出;字数不超过200个字;分别举三个例子;

给模型设定一个角色

设定角色被认为是一个非常有效的收窄问题域、减少二义性的手段。

既可以设定大模型扮演的角色,也可以设定自己扮演的角色。

比如:你是一位前端工程师;你是一位人工智能专家,而我是这方面的小白;你是一名专业的小红书爆款标题专家 等等。

使用 deepseek-r1 满血版 测试。

erlang 复制代码
未设定角色:我写了一篇AI提示词工程相关的文章,请帮我写一个标题,20字以内。
答:《AI提示词工程:高效技巧实战指南》、《AI提示词设计核心技法解析》、《智能交互:提示词编写全攻略》......总之平平无奇

设定角色:你是一名专业的小红书爆款标题专家,我写了一篇AI提示词工程相关的文章,请帮我写一个标题,20字以内。
答:《✨超实用干货!AI工程师绝不外传の技巧》、《打工人都要看!职场必备AI提示模板》、《🔥AI对话质量暴涨200%の神秘咒语合集》......你就说那味儿冲不冲吧

使用 deepseek-r1:7b 测试。

复制代码
未设定角色:给我制定一个减肥计划吧,我想一个月瘦20斤
答:为了在一个月内减掉20斤,你需要:
每日摄入热量比所需热量减少约1000-1500大卡。
每周进行至少15,000分钟的中等强度运动。
调整饮食结构,增加蛋白质和全谷物的摄入。

节选了他的总结,有点离谱,自行体会吧。

设定角色:你是一名专业的健身教练,给我制定一个减肥计划吧,我想一个月瘦20斤
答:这次的回答对做了充分的计算,也给出饮食和运动计划,相对来说还是比较合理的。

提示词工具网站

AI Short------简单易用的 AI 快捷指令表

提示精灵

相关推荐
Icoolkj4 分钟前
探秘 Canva AI 图像生成器:重塑设计创作新范式
人工智能
魔障阿Q21 分钟前
windows使用bat脚本激活conda环境
人工智能·windows·python·深度学习·conda
Wnq1007225 分钟前
巡检机器人数据处理技术的创新与实践
网络·数据库·人工智能·机器人·巡检机器人
Eric.Lee202144 分钟前
数据集-目标检测系列- 冥想 检测数据集 close_eye>> DataBall
人工智能·目标检测·计算机视觉·yolo检测·眼睛开闭状态检测识别
胡乱儿起个名2 小时前
Relay算子注册(在pytorch.py端调用)
c++·人工智能·tvm·编译器·ai编译器
嘉图明2 小时前
《从数据殖民到算法正义:破解AI垄断的伦理与技术路径》
人工智能·算法
shadowtalon2 小时前
基于CNN的猫狗图像分类系统
人工智能·深度学习·神经网络·机器学习·计算机视觉·分类·cnn
蹦蹦跳跳真可爱5892 小时前
Python----神经网络(《Deep Residual Learning for Image Recognition》论文和ResNet网络结构)
人工智能·python·深度学习·神经网络
极术社区2 小时前
【“星睿O6”评测】Armv9.2a、KLEIDIAI及vulkan加速llamacpp部署本地AI
大数据·人工智能
森哥的歌2 小时前
2024年AI发展趋势全面解析:从多模态到AGI的突破
人工智能·agi