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

面向开发者的LLM入门教程(学习笔记02):提示原则

关注B站可以观看更多实战教学视频:hallo128的个人空间

二、提示原则(如何去使用 Prompt)

原则一:编写清晰、具体的指令

1.1 使用分隔符清晰地表示输入的不同部分

使用分隔符尤其重要的是可以防止 提示词注入(Prompt Rejection)

可以选择用 ```,“”",< >, ****,: 等做分隔符,只要能明确起到隔断作用即可。

# 需要总结的文本内容
prompt = f"""
把用三个反引号括起来的文本总结成一句话。
```{text}```
"""

1.2 寻求结构化的输出

要求 GPT 生成三本书的标题、作者和类别,并要求 GPT 以 JSON 的格式返回给我们,为便于解析,我们指定了 Json 的键。

prompt = f"""
请生成包括书名、作者和类别的三本虚构的、非真实存在的中文书籍清单,\
并以 JSON 格式提供,其中包含以下键:book_id、title、author、genre。
"""

1.3 要求模型检查是否满足条件

如果任务包含不一定能满足的假设(条件),我们可以告诉模型先检查这些假设,如果不满足,则会指出并停止执行后续的完整流程。

prompt = f"""
您将获得由三个引号括起来的文本。\
如果它包含一系列的指令,则需要按照以下格式重新编写这些指令:

第一步 - ...
第二步 - …
…
第N步 - …

如果文本中不包含一系列的指令,则直接写“未提供步骤”。"
\"\"\"{text_1}\"\"\"
"""

1.4 提供少量示例

prompt = f"""
您的任务是以一致的风格回答问题。

<孩子>: 请教我何为耐心。

<祖父母>: 挖出最深峡谷的河流源于一处不起眼的泉眼;最宏伟的交响乐从单一的音符开始;最复杂的挂毯以一根孤独的线开始编织。

<孩子>: 请教我何为韧性。
"""

原则二:给模型时间去思考

2.1 指定完成任务所需的步骤

提示词执行以下操作:首先,用一句话概括三个反引号限定的文本。第二,将摘要翻译成英语。第三,在英语摘要中列出每个名称。第四,输出包含以下键的 JSON 对象:英语摘要和人名个数。要求输出以换行符分隔。

# example 1
prompt_1 = f"""
执行以下操作:
1-用一句话概括下面用三个反引号括起来的文本。
2-将摘要翻译成英语。
3-在英语摘要中列出每个人名。
4-输出一个 JSON 对象,其中包含以下键:english_summary,num_names。

请用换行符分隔您的答案。

Text:
```{text}```
"""

# example 1
prompt_1 = f"""
Perform the following actions: 
1 - Summarize the following text delimited by triple \
backticks with 1 sentence.
2 - Translate the summary into French.
3 - List each name in the French summary.
4 - Output a json object that contains the following \
keys: french_summary, num_names.

Separate your answers with line breaks.

Text:
```{text}```
"""

将Prompt加以改进,该 Prompt 前半部分不变,同时确切指定了输出的格式

prompt_2 = f"""
1-用一句话概括下面用<>括起来的文本。
2-将摘要翻译成英语。
3-在英语摘要中列出每个名称。
4-输出一个 JSON 对象,其中包含以下键:English_summary,num_names。

请使用以下格式:
文本:<要总结的文本>
摘要:<摘要>
翻译:<摘要的翻译>
名称:<英语摘要中的名称列表>
输出 JSON:<带有 English_summary 和 num_names 的 JSON>

Text: <{text}>
"""

prompt_2 = f"""
Your task is to perform the following actions: 
1 - Summarize the following text delimited by <> with 1 sentence.
2 - Translate the summary into French.
3 - List each name in the French summary.
4 - Output a json object that contains the 
following keys: french_summary, num_names.

Use the following format:
Text: <text to summarize>
Summary: <summary>
Translation: <summary translation>
Names: <list of names in French summary>
Output JSON: <json with summary and num_names>

Text: <{text}>
"""

2.2 指导模型在下结论之前找出一个自己的解法

我们要求

  • 模型先自行解决这个问题,
  • 再根据自己的解法与学生的解法进行对比,
  • 判断学生的解法是否正确。
    同时,我们给定了输出的格式要求。通过拆分任务、明确步骤,让模型有更多时间思考,有时可以获得更准确的结果。
prompt = f"""
请判断学生的解决方案是否正确,请通过如下步骤解决这个问题:

步骤:

    首先,自己解决问题。
    然后将您的解决方案与学生的解决方案进行比较,对比计算得到的总费用与学生计算的总费用是否一致,并评估学生的解决方案是否正确。
    在自己完成问题之前,请勿决定学生的解决方案是否正确。

使用以下格式:

    问题:问题文本
    学生的解决方案:学生的解决方案文本
    实际解决方案和步骤:实际解决方案和步骤文本
    学生计算的总费用:学生计算得到的总费用
    实际计算的总费用:实际计算出的总费用
    学生计算的费用和实际计算的费用是否相同:是或否
    学生的解决方案和实际解决方案是否相同:是或否
    学生的成绩:正确或不正确

问题:

    我正在建造一个太阳能发电站,需要帮助计算财务。 
    - 土地费用为每平方英尺100美元
    - 我可以以每平方英尺250美元的价格购买太阳能电池板
    - 我已经谈判好了维护合同,每年需要支付固定的10万美元,并额外支付每平方英尺10美元;

    作为平方英尺数的函数,首年运营的总费用是多少。

学生的解决方案:

    设x为发电站的大小,单位为平方英尺。
    费用:
    1. 土地费用:100x美元
    2. 太阳能电池板费用:250x美元
    3. 维护费用:100,000+100x=10万美元+10x美元
    总费用:100x美元+250x美元+10万美元+100x美元=450x+10万美元

实际解决方案和步骤:
"""

三、局限性

虚假知识:模型偶尔会生成一些看似真实实则编造的知识。

  • 语言模型的幻觉问题事关应用的可靠性与安全性。

http://www.kler.cn/news/311810.html

相关文章:

  • 探索AI大模型:从入门到精通的学习路径
  • spring cxf 常用注解
  • 大数据时代的等保测评:数据安全与隐私保护
  • [数据集][目标检测]智慧养殖场肉鸡目标检测数据集VOC+YOLO格式3548张1类别
  • leetcode75. 颜色分类
  • 【HTML】入门教程
  • 【SpinalHDL】Scala编程之伴生对象
  • Vue 项目中引入 Axios 详解
  • 【论文阅读笔记】YOLOv10: Real-Time End-to-End Object Detection
  • 【高级编程】网络编程 基于 TCPUDP 协议的 Socket 编程
  • Remix 学习 - @remix-run/react 中的主要组件
  • 网络-内核是如何与用户进程交互
  • MySQL从入门到精通
  • MyBatis 数据处理:主键获取、批量删除与动态表名
  • Linux 磁盘清理重新格式化挂载脚本及问题解决
  • flink doris批量sink
  • 我可真厉害,3分钟让你成为AI高手:提示词(prompt)制作及调优(免费教你,别再被割了)
  • 企业EMS -能源管理系统-能源管理系统源码-能源在线监测平台
  • Linux进阶系列(四)——awk、sed、端口管理、crontab
  • 好菜每回味不同——建造者模式
  • GEE教程:对降水数据进行重投影(将10000m分辨率提高到30m)
  • ESP32配网接入Wifi
  • Spring Boot从0到1 -day02
  • 【踩坑】装了显卡,如何让显示器从主板和显卡HDMI都输出
  • QTAndroid编译环境配置
  • Linux基础命令——文件系统的日常管理
  • TaskRes: Task Residual for Tuning Vision-Language Models
  • vue项目中——如何用echarts实现动态水球图
  • 828华为云征文 | 华为云X实例监控与告警管理详解
  • 【Linux入门】基本指令(一)