跳到主要内容

(六)提示词的输出要求

输出控制

我们编写提示词的目的就是希望更加准确的表达我们的要求,让大模型“看得懂”我们描述的任务,并且给出准确的回答。因此,我们在提示词中设置角色,描述任务,明确输入信息等这些都是为了能够更准确的控制对大模型的输出结果。

其中,角色的描述是为了提升输出内容的专业性和文字表达的相关性,大家可以回顾下我们提示词的角色使用 中的内容,包括对角色的描述,角色的技能的描述都是在以一种拟人的方式来告诉大模型,让他扮演此角色站在此角色的专业性上来回答问题。

在提示词的任务的描述上,则更进一步的明确了执行的输出结果。是翻译内容,还是对内容进行总结,核心任务的不一样返回的输出结果肯定是大相径庭。有时相同的任务,由于提示词中的描述差异,结构差异,任务的执行步骤不同,产生的输出结果差异也十分巨大。针对任务的执行流程执行步骤,我们在提示词的执行流程中详细给大家讲解。

在提示词的输入内容的结构设计上,则是为了让大模型的输出内容表达聚焦在我们希望大模型进行阅读理解的内容上。特别针对大文本的数据,一个良好的输入内容结构可以更加方便的帮助到大模型理解输入内容间的关系,以达到更加准确的回答。

接下来我们将要讲解如何更加细粒度的、更加明确的控制输出的内容,包括输出格式的定义,格式化输出内容。

输出控制的技巧

在大模型的输出控制上,我们介绍几个常用的技巧,这些技巧不需要在提示词中全部使用,按照要求能够达到我们预期的输出结果即可,以最小的输出控制和输出描述,达到最优的输出为目标。

  • 明确输出内容要求:输出文字的表达方式,文字风格,文字语言,精简或细节等。

  • 明确负向的输出描述:输出字数限制,明确哪些内容和风格不可以输出。例如,不提供分析过程,不展示个人信息,禁止暴力黄色内容等。这些我们曾在角色的限制中提到,角色的能力限制也就是对输出内容的约束控制。

  • 定义输出格式模板:设计一个格式模板,规定输出的结构和顺序。例如,对于产品介绍,模板可以是:“产品名称 - 功能1;功能2;关键优势”。

  • 结构化输出:指定生成数据的结构要求,如JSON 结构,XML 结构,csv结构等。

  • 举个例子:提供一个或多个例子,展示你期望的输出样式。例如,可以提供一个优秀的报告样本,让模型参考其结构和风格。

  • 给出输出步骤:提供一个步骤清单,指导模型如何逐步构建输出。例如,可以要求模型首先总结问题,然后分点列出解决方案,最后给出结论。

明确的输出要求

我们需要确保大模型在输出文本内容精确契合用户的实际需求。这一部分通常会详细规定回答应涵盖的主题、细节层次、信息类型、情感色彩以及特定视角等方面。以下是一些具体的明确输出内容要求的要素:

  1. 主题或问题焦点

    • 明确指出要探讨的主题或要解答的问题,确保模型集中精力于核心议题,避免偏离主题。也就是我们常说的一篇文章的核心主题。
  2. 内容详略程度

    • 这部分要求生成的内容描述的精细度。指定回答应提供概览、详细解释、深入分析还是具体实例,以控制输出的深度和广度。例如,要求模型提供“简短总结”、“全面综述”或“具体案例研究”。
  3. 信息类型

    • 指示模型应包含哪些类型的信息,如统计数据、历史背景、专家观点、最新研究成果、法律法规条文等,确保输出内容的丰富性和权威性。
  4. 情感色彩或语气

    • 如果适用,要求模型采用某种特定的情感色彩(如积极、中性、批判性)或语气(如正式、友好、幽默、同情等),以适应不同的沟通场景和目标受众。
  5. 视角或立场

    • 规定回答应从哪个角度或立场出发,比如第一人称经验分享、第三方客观分析、特定学科理论框架下的解读等。
  6. 特定知识点或关键点覆盖

    • 列出必须包含的特定知识点、关键概念或论点,确保回答不会遗漏重要信息。
  7. 特别需要包含的内容

    • 明确强调需要特别关注或包含的特定细节。例如,在趋势分析报告中需要涉及技术发展创新,竞争格局,政策支持,未来发展趋势,市场挑战和机遇等等,要求从不同的层面来进行分析。
  8. 引用或参考要求

    • 如果需要,规定模型引用特定来源(如学术论文、官方网站、行业报告等)以支持其回答,确保内容的可信度和可追溯性。这部分内容不同的大模型的“认知度”会不同,引用内容将有差异。

假设用户希望大模型撰写一篇关于“电动汽车市场发展趋势”的报告,明确输出内容要求可能如下:

## 任务:
撰写一篇关于“电动汽车市场发展趋势”的报告

## 内容要求:
1. **主题聚焦**:全球电动汽车市场的发展趋势,重点关注近五年及未来五年的情况。
2. **详尽分析**:提供详细的市场规模数据、增长率统计,以及市场份额变化情况的深度分析。
3. **技术创新**:探讨推动市场发展的关键技术进步,包括电池技术、充电基础设施、智能驾驶技术等,并引用相关专利或科研成果作为支撑。
4. **政策环境**:概述主要国家和地区对电动汽车产业的支持政策、法规变化及其对市场发展的影响。
5. **竞争格局**:分析主要厂商的竞争态势,包括市场份额、产品线、战略动向等,并突出具有创新力和增长潜力的企业案例。
6. **市场挑战与机遇**:识别当前市场面临的挑战(如续航里程焦虑、充电设施不足等)以及未来可能的机遇(如技术突破、政策利好等),并给出应对策略建议。
7. **专业且客观**:采用商务报告的正式语气,保持内容客观、数据准确,避免过度乐观或悲观的主观判断。
请确保报告内容全面、数据详实、逻辑清晰,所有数据和观点均需有可靠来源。

明确负向的限制描述

所谓的负向提示词描述就是在使用提示词与大型语言模型交互时,为了引导模型生成符合特定要求或遵循特定规范的文本输出,以及防止模型产生不适当、不安全或与任务目标不符的内容,所施加的一系列约束,限制要求。这类描述旨在对模型的输出施加一种“抑制”或“排除”的作用,确保生成结果不会包含指定的负面属性。负向提示词在不同场景下的应用可包括但不限于:

  1. 内容过滤

    • 避免特定话题:诸如“不涉及政治”、“不含宗教争议”、“不讨论敏感事件”等,指示模型绕开可能引发争议或不适的话题。
    • 排除特定类型信息:如“不包含成人内容”、“不使用亵渎语言”、“不涉及个人隐私”等,确保输出符合内容安全和隐私保护标准。
  2. 风格与情绪调控

    • 避免消极情绪:如“保持积极乐观”、“不带悲观色彩”、“不表达沮丧情绪”,要求模型在生成文本时维持正面情感基调。
    • 规避激进立场:如“保持中立观点”、“不偏向任何一方”、“避免极端言论”,确保内容不偏激、不煽动。
  3. 写作规范限制

    • 去除冗余或低质量内容:如“避免重复信息”、“不使用陈词滥调”,促进文本的简洁性和高质量。
    • 纠正潜在错误:如“无语法错误”、“无拼写错误”、“无逻辑矛盾”,确保输出的正确性和连贯性。
  4. 特定任务的约束

    • AI绘画中的负向提示词:如之前提到的“不模糊”、“不失真”、“不单调”、“不真实”、“缺乏创造力”等,用于指导AI绘画模型避免生成具有这些负面视觉特征的作品。
  5. 技术性限制

    • 编程相关:如在代码生成场景中,可能使用“无bug”、“无内存泄漏”、“无安全漏洞”等负向提示词,要求模型生成的代码满足特定的质量和技术标准。

负向提示词的使用方式可以是直接在提示词中明确指出,也可以通过更复杂的提示结构(如使用否定句、条件句等)来传达。这些负向的表达要求帮助模型理解哪些方向是不受欢迎的,从而优化生成结果的质量。

## 输出约束限制

- **避免**:用于指出模型应避免的某些行为或内容。例如:"避免使用专业术语,除非它们对理解内容至关重要。"
- **不要**:直接告诉模型不要采取某种行动或生成某种内容。例如:"不要生成任何形式的歧视性言论。"
- **排除**:指示模型排除某些信息或选项。例如:"排除所有与主题无关的信息。"
- ****:用于否定某个特定的属性或行为。例如:"不使用任何过时或不准确的数据。"
- **禁止**:强调某些内容或行为是严格禁止的。例如:"禁止生成任何形式的暴力或仇恨言论。"
- ****:用于描述某个概念的反面或替代选项。例如:"提供非侵入性的解决方案。"
- ****:表示缺乏或不存在某种特征或条件。例如:"确保生成的内容无版权争议。"
- **并非**:用于纠正可能的误解或错误假设。例如:"这个观点并非普遍接受的事实。"
- **拒绝**:用于表达对某些请求或要求的不认同或不接受。例如:"拒绝任何形式的不实信息传播。"
- ****:提醒模型在处理某些敏感或复杂问题时要格外小心。例如:"慎重处理所有涉及个人隐私的内容。"

通过使用这些负向提示词,可以有效地引导模型生成更加符合预期、负责任且高质量的内容。在设计提示词时,应确保它们清晰、具体,以便于模型理解和执行。值得注意的是,负向提示词的使用并非总是能完美保证模型完全避免生成相关负面内容,因为模型理解和执行提示的能力受限于其训练数据、架构和当前技术水平。在实际应用中,负向提示词常与正向提示词、内容审核机制、用户反馈等手段结合使用,形成多层保障,以最大限度地确保模型输出符合预期。

输出格式模板

在设计提示词时,使用特定的输出格式模板可以帮助确保信息的清晰性和一致性,同时也能够指导模型按照预期的结构生成内容。以下是一些常见的输出格式模板,它们可以根据不同的场景和需求进行调整和使用:

1. 列表式模板

## 输出格式模板

- 项目1:描述/详细信息
- 项目2:描述/详细信息
- 项目3:描述/详细信息

示例:

## 输出格式模板

- 技术要求:支持多线程处理
- 开发语言:首选Python和C++
- 性能指标:响应时间不超过200ms

2. 问答式模板

## 输出格式模板:

问题:[问题描述]
答案:[答案内容]

示例:

## 输出格式模板:

问题:如何优化数据库查询速度?
答案:使用索引、避免全表扫描、合理设计数据库结构。

3. 标题和内容模板

## 输出格式模板:
----------
## 标题
[内容描述]
----------

示例:

## 输出格式模板:
--------------
## 最佳编程实践
- 遵循PEP 8编码规范
- 编写可读性强的代码
- 定期进行代码审查
----------------

4. 步骤式模板

## 输出格式模板:

步骤1:[第一步操作]
步骤2:[第二步操作]
步骤3:[第三步操作]

示例:

## 输出格式模板:

步骤1:需求分析和文档编写
步骤2:环境搭建和依赖管理
步骤3:核心功能开发和单元测试

5. 比较式模板

## 输出格式模板:

[项目/概念A] vs [项目/概念B]
- 特点1:[A的描述] vs [B的描述]
- 特点2:[A的描述] vs [B的描述]

示例:

## 输出格式模板:

Python vs Java
- 语法简洁性:Python胜出
- 性能效率:Java更优

6. 文章报告式模板

## 输出格式模板
-------------------
# [新闻标题]

## 导语
[一句话概括新闻要点,吸引读者注意]

## 主体部分
### 一、事件概述
[详细描述新闻事件的发生时间、地点、涉及人物、起因等基本信息]

### 二、事件详情
[深入剖析事件经过,按时间顺序或逻辑关系展开叙述]

### 三、影响与反响
- **直接影响**:
- **社会反响**:
- **官方或专家评论**:

## 结尾段落
[对事件进行简短总结,或展望未来可能的发展趋势]

## 相关链接/图片/视频
[如有相关多媒体资源或延伸阅读材料,此处提供]

---------------

使用这些模板可以提高信息的组织性和可读性,同时也有助于模型更好地理解预期的输出结构。在实际应用中,可以根据具体需求选择合适的模板或结合多个模板来设计提示词。格式化模板的使用大家可以理解一篇文章的结构,可以根据我们需要定义调整这样的结构模板。

结构化的输出

当您提到“提示词以格式化的形式输出”,这可能是指希望将一系列提示词按照某种特定的结构或规则整理成规范化的文本,以便于后续使用或处理。以下是一些可能的格式化方式:

示例一:列表格式

## 输出结构:
以 markdown 列表结构输出

- 提示词1
- 提示词2
- 提示词3
- ...

示例二:表格格式

## 输出结构:
以 markdown 表格形式输出

| 列标题1 | 列标题2 | 列标题3 |
|----------|----------|----------|
| 行1项1 | 行1项2 | 行1项3 |
| 行2项1 | 行2项2 | 行2项3 |

示例三:JSON格式(适合程序处理)

## 输出结构:
以 JSON 数组结构输出

[
{
"id": 1,
"keyword": "提示词1"
},
{
"id": 2,
"keyword": "提示词2"
},
{
"id": 3,
"keyword": "提示词3"
},
...
]

示例四:YAML格式(适合配置文件或脚本)

## 输出结构:
以 YAML 结构输出

keywords:
- keyword: 提示词1
- keyword: 提示词2
- keyword: 提示词3
...

示例五:XML格式(适合数据交换)

## 输出结构:
以 XML 结构输出

<keywords>
<keyword>提示词1</keyword>
<keyword>提示词2</keyword>
<keyword>提示词3</keyword>
...
</keywords>

这里我们结构化输出和格式模板输出分开来介绍。结构化和格式模板的区别在于,结构化的输出的结构标准统一,例如我们上面提到 JSON,XML,CSV 等,这样结构化的输出好处是生成的结果可直接发送给其他系统或程序,或者作为大模型的输入使用。

举个例子

如果我们希望大模型按照特定的示例来输出,我们可以在提示词中提供一个或多个示例,然后指示模型遵循这些示例的格式或内容来生成回答。以下是一些示例,展示了如何使用示例来指导模型的输出:

  • 文本摘要示例:
## 任务:
请参考以下示例,用相同格式总结这篇文章

## 输出示例参考:
文章标题:《环保的重要性》
概要:环保对于保护地球资源和生物多样性至关重要。

## 输出要求:
文章标题:《可再生能源的未来》
概要:[请在此处填写摘要]'"
  • 对话系统示例:避免回答的方式与预期不同
## 任务:
请参考以下示例,用相同格式回答用户的问题

## 输出示例参考:
示例问题:今天晚餐吃什么?
回答:今天晚餐推荐尝试意大利面。

## 输出要求:
问题:明天早餐推荐吃什么?
回答:[请在此处填写回答]

问答系统示例:以示例的方式约束输出的内容精简程度

## 任务:
请参考以下示例,用相同格式回答问题:

## 输出示例参考:
示例Q: 最大的哺乳动物是什么? A: 蓝鲸。

## 输出要求:
'Q: 最小的鸟类是什么? A:[请在此处填写答案]

通过提供这些示例,大模型可以更好地理解我们期望的输出格式,并据此生成符合要求的回答。这种方法特别适用于需要特定结构或风格的输出任务。

给出输出步骤

设计提示词以要求输出按步骤的形式进行,主要目标是清晰、有序地引导回答者按照特定的顺序和结构来呈现信息。按步骤输出还有一个好处,就是可以“激活”大模型的“思维链”,通过步骤的方式,引导大模型如何计算和推理出正确的结果,这里我们现只讨论输出的形式,有关“思维链”的内容我们后续详细讲解。

以下是一些建议和策略,可以帮助到大家设计有效的步骤式提示词:

  • 明确指示序列:使用诸如“步骤一”、“步骤二”、“步骤三”等明确的序数词来标识每个步骤。这不仅有助于回答者理解需要分步解答,还能确保输出内容的逻辑性和连贯性。

    ## 输出要求:
    请详细描述完成此任务的步骤,如下所示:

    - **步骤一:**
    - **步骤二:**
    - **步骤三:**
  • 使用动宾结构表述操作:每一步的提示词应以动词开头,精确描述需要执行的操作或达成的目标。这样的表述方式简洁明了,易于理解,并有助于回答者快速定位每一步的核心动作。

    ## 输出要求:
    为制作一杯拿铁咖啡,请按以下步骤操作:

    - **准备所需材料**
    - **磨制咖啡豆**
    - **蒸制牛奶**
    - **萃取浓缩咖啡**
    - **融合牛奶与咖啡**
  • 细化子步骤:对于复杂或需要详细解释的步骤,可以进一步细分子步骤,并使用编号或小标题进行区分。这有助于保持整体步骤的清晰度,避免信息过于冗杂。

  ## 输出要求:
**步骤一:配置开发环境**
1. **安装编程语言**:
2. **设置IDE(集成开发环境)**:
3. **安装必要的库和依赖**:
  • 强调顺序和逻辑关系:在提示词中加入表示顺序或逻辑关系的词语,如“首先”、“接着”、“然后”、“最后”等,以强调各步骤之间的先后次序和因果关联。

     ## 输出要求:
    请按以下顺序进行故障排查:
    - **首先**,检查设备电源是否正常连接。
    - **接着**,尝试重启设备看问题是否依然存在。
    - **如果问题未解决****然后**检查设备的软件更新情况,确保系统版本为最新。
    - **最后**,联系技术支持提供详细故障描述及已尝试的解决方案。
  • 设定明确的目标或结果:对于每个步骤,可考虑在提示词中明确指出该步骤完成后应达到的目标状态或预期结果,以便回答者清楚地知道何时可以进入下一步。

     ## 输出要求:

    完成一项数据分析项目,按以下步骤进行:
    - **步骤一:定义研究问题与目标**(明确要通过分析解答的问题及期望的结论)
    - **步骤二:数据收集与预处理**(整理出完整、清洁且符合分析需求的数据集)
    - **步骤三:选择合适分析方法并实施**(根据研究问题选择统计模型或算法,进行计算并生成初步结果)
    - **步骤四:解读与可视化分析结果**(对分析结果进行解释,制作图表以直观展示关键发现)
    - **步骤五:撰写报告与成果展示**(整理成正式报告,准备口头或书面演示)

设计要求输出按步骤形式的提示词时,应注重明确的序列标识、动宾结构表述、子步骤细化、顺序逻辑强调以及目标结果设定。这样的提示词能够有效地引导回答者按照预设的结构和顺序进行回答,确保输出内容条理清晰、逻辑严谨。

总结

以上我们讲解了提示词的输出相关的控制,约束,格式,结构化,示例以及步骤。大模型的输出结果是我们编写提示词的最终目标,对输出的要求描述的越清晰生成输出结果越符合我们的预期。

  • 输出要求是清晰的描述我们要什么,以什么样的方式,包含哪些内容,以明确的要求提出;

  • 负向的输出描述则是告诉大模型哪些是不能说的,不可以输出的;

  • 格式模板则是用来定义输出内容的段落结构或输出格式;

  • 结构化输出也是格式化模板的一种,输出的数据的结构更加被其他的非智能系统所接收,并处理;

  • 输出步骤多用于分析,解题,推理,执行流程等场景,按定义的步骤生成输出结果;

  • 输出示例是我们以一个例子的方式来告诉大模型输出结果的表达方式和格式,举例子的方式来生成结果。

当然我们使用的大模型不同,他输出的内容格式也是多种形态的,多种格式的。限于大模型本身的能力,如果是文字类型的任务,那么返回的结果都是文字内容。如果任务是一个视频或者图片任务,那么就必须明确大模型是具备图片或视频的生成能力的。 由于大模型输出的多样性,针对不同的大模型应用提示词中的输出要求描述细节会有很多的不同,针对不同的输出要求的描述,我们在输出实践中整理了大模型的常用的输出格式示例,来更进一步以实际的案例帮助大家快速的掌握大模型的提示词的输出配置。 我们在实践中的例子,大家在使用不同的大模型是会发现相同的提示词返回的格式和内容差异较大,这点也完全正常,大家可以把大模型理解成一个真实人,即便是相同老师教的,一个专业的学生,针对相同的问题回答也会不一样是一个道理。 除此之外,大模型还有一个设置对输出的结果影响较大,这个设置叫做模型的“温度”,英文叫temperature,是一个用于控制人工智能生成文本的创造力水平的设置项。我们后续在高阶的应用中将会详细讲解,现在大家只需要记住它是一个0 到 2.0 之间的一个数值。数值越小输出的内容会越明确,越专业,数值越大输出的内容越有创造性,越多样化。