当前位置: 首页 > news >正文

第四章:大模型(LLM)】07.Prompt工程-(6)受限生成和引导生成

第四章:大模型(LLM)

第七部分:Prompt 工程

第六节:受限生成和引导生成

大语言模型(LLM)具备强大的生成能力,但在实际应用中,用户并不总是希望模型“自由发挥”。有时需要它严格遵守规则,有时则需要它按照预期的风格和思路去表达。为此,Prompt 工程中提出了两种重要方法:受限生成(Constrained Generation)引导生成(Guided Generation)

它们一个强调“规则约束”,一个强调“方向引导”,在实际系统中常常配合使用。


一、受限生成(Constrained Generation)

1.1 定义

受限生成的核心是 规则性:模型必须在给定的限制条件下输出结果,不得偏离预设边界。

1.2 常见方式

  1. 候选答案限制

    • 给定选项集合,模型只能从中选择。

    • 示例:

      你只能回答以下选项之一:["是", "否"]
      
  2. 语法/结构限制

    • 要求输出符合 JSON、XML、Markdown 等格式。

    • 示例:

      {"答案": "xxx"}
      
  3. 模板化约束

    • 输出必须填充在固定模板中。

    • 示例:

      [商品名称] 的价格是 [价格] 元。
      
  4. 长度限制

    • 限制输出不超过指定字数或行数。

    • 示例:

      请用不超过50字总结这段话。
      
  5. 领域限制

    • 限定回答范围,如只回答医学问题。

1.3 特点

  • 优点:确保结果可控、格式统一,适合安全敏感或需要结构化数据的场景。

  • 局限:过度限制可能抑制模型的创造性,输出内容僵硬。


二、引导生成(Guided Generation)

2.1 定义

引导生成强调 方向性:通过提示、上下文或示例,引导模型生成更符合预期目标的内容,但不做硬性限制。

2.2 常见方式

  1. 风格引导

    • 指定语气、文风、角色身份。

    • 示例:

      请用莎士比亚的语言风格写一首爱情诗。
      
  2. 上下文引导

    • 提供背景信息,让模型据此延展。

    • 示例:

      根据以下摘要,写一个100字的扩展评论。
      
  3. 思维路径引导

    • 要求模型按步骤输出。

    • 示例:

      请先写出三点原因,然后总结结论。
      
  4. 示例引导(Few-shot)

    • 给出几个示例,让模型模仿其风格和逻辑。

2.3 特点

  • 优点:保留自由度,提升创造性与适用性。

  • 局限:引导不清晰可能导致偏差,过度依赖示例可能限制灵活性。


三、对比与结合

特性受限生成引导生成
核心目标确保结果满足规则(格式、安全性)引导结果贴合风格与语义方向
约束强度强(硬性要求,如不得超过50字)弱(软性提示,留有发挥空间)
典型应用报表生成、工单系统、代码输出创意写作、对话助手、教育引导

在实践中,两者往往结合:先设定规则保障安全与合规,再用引导提升表达的自然性与创造力


四、应用案例

  1. 智能客服

    • 受限生成:必须返回 JSON 格式,字段固定。

    • 引导生成:语气要友好、耐心。

  2. 教育场景

    • 受限生成:答案必须是选择题格式。

    • 引导生成:讲解要通俗易懂,适合中学生理解。

  3. 内容创作

    • 受限生成:诗歌必须 5 行,每行 7 个字。

    • 引导生成:模仿李白的风格。


五、示例

受限生成
Prompt:

请在 ["通过", "不通过"] 中选择一个答案,判断以下申请是否合格:
申请人信用评分:720
负债率:35%

模型输出:

通过

引导生成
Prompt:

你是一位历史老师,请用简洁、生动的语言解释为什么秦始皇要修建长城。

模型输出:

秦始皇修建长城是为了抵御北方匈奴的进攻,就像在国家北部拉起一道巨大屏障,保护百姓的安全。

六、小结

  • 受限生成:硬性规则,保证输出可控、安全、结构化。

  • 引导生成:柔性引导,让内容更自然、贴近目标。

  • 结合使用:在合规性与创造性之间取得平衡,是 Prompt 工程中的关键策略。

http://www.dtcms.com/a/342736.html

相关文章:

  • 机械试验台功能量具平台:铸铁工装平台
  • 阿里云对象存储OSS之间进行数据转移教程
  • 小迪安全v2023学习笔记(六十八讲)—— Java安全原生反序列化SpringBoot攻防
  • iOS沙盒机制
  • 【系统信息相关】datecal命令
  • React + Antd+TS 动态表单容器组件技术解析与实现
  • (栈)Leetcode155最小栈+739每日温度
  • Python爬虫实战:研究puzzle,构建谜题类数据采集分析系统
  • 编程语言与存储过程:业务处理的速度与取舍
  • 3ds Max 渲染动画总模糊?
  • 基于stm32的智能建筑能源管理系统/基于单片机的能源管理系统
  • 【Java SE】认识数组
  • 【Protues仿真】基于AT89C52单片机的舵机和直流电机控制
  • 【新启航】3D 扫描逆向抄数全流程工具与技能:从手持设备到 CAD 建模的 10 项核心配置解析
  • windows10安装playwright
  • Workerman在线客服系统源码独立部署
  • 笔记本电脑Windows+Ubuntu 双系统,Ubuntu无法挂载Windows的硬盘 报错问题解决
  • TDengine IDMP 运维指南(常见问题)
  • 天眼应急案例(二)
  • 一句话生成uml图相关操作
  • MTK平台蓝牙学习-- 如何查看蓝牙连接参数
  • Vitest 测试框架完全指南 – 极速单元测试解决方案
  • selenium3.141.0执行JS无法传递element解决方法
  • 【自记】Power BI 中 VALUES 和 DISTINCT 在可接收的参数类型上的区别。
  • 【每天一个知识点】 时空组学(Spatiotemporal Omics)
  • Nginx学习记录
  • 移动端网页调试实战 IndexedDB 与本地存储问题的排查与优化
  • 阿里云 AI 搜索 DeepSearch 技术实践
  • 网络流量分析——基础知识(二)(Tcpdump 基础知识)
  • 21.web api 12