在当今的信息时代,人工智能语言模型如 ChatGPT 为我们提供了一个强大的知识库和解决问题的工具。为了更好地使用 ChatGPT,非常有必要学习提示词工程。通过熟练地使用提示词,我们能够让AI更加准确地理解我们想要表达的意思,从而更高效地得到答案。

一、learnprompt.org 给出的一些建议

下面是https://www.learnprompt.org/ 提供的几个建议,我使用 ChatGPT 还提供了针对不同行业的提示词模板,大家可以去学习和参考。

为了充分发挥 ChatGPT 的潜能,并获取到准确的答案,我们需要遵循以下几点建议:

  • 提问要明确具体:提出一个明确的、具体的问题,以便获得清晰而简洁的答案。
    示例一:不佳 - “地球的构造是什么?”;优化 - “地球的内部结构是如何分层的?”
    示例二:不佳 - “谁发明了电话?”;优化 - “电话的发明者是谁?”

  • 使用正确的语法:尽量用完整的句子表达问题,并使用正确的语法。
    示例一:不佳 - “地球大气层哪几层?”;优化 - “地球的大气层分为哪几层?”
    示例二:不佳 - “最高山峰在哪?”;优化 - “世界上最高的山峰是哪座?”

  • 问题简洁明了:避免在一个提示中提出多个问题,尽量让问题简短明了。
    示例一:不佳 - “请告诉我关于光合作用的原理和参与的主要生物?”;优化 - “光合作用的基本原理是什么?”
    示例二:不佳 - “太阳系的行星有哪些,它们的特点是什么?”;优化 - “太阳系共有哪些行星?”

  • 提供相关背景信息:如果你的问题涉及特定主题,请提供一些相关背景信息。
    示例一:不佳 - “这部电影的评分是多少?”;优化 - “《肖申克的救赎》在豆瓣上的评分是多少?”
    示例二:不佳 - “这本书的作者是谁?”;优化 - “《红楼梦》的作者是谁?”

  • 使用关键词:在提问时,使用相关的关键词可以帮助ChatGPT更快地理解你的问题。
    示例一:不佳 - “能源转换的公式?”;优化 - “质能方程是什么?”
    示例二:不佳 - “太阳的能量来源?”;优化 - “太阳的能量主要来源于哪种核反应?”

  • 校对问题:在提交问题之前,请仔细校对,确保问题语法正确、表达清晰。
    示例一:不佳 - “为什么著名画家梵高切耳朵?”;优化 - “梵高为什么会割掉自己的耳朵?”
    示例二:不佳 - “怎样种多肉?”;优化 - “如何正确种植多肉植物?”

二、ChatGPT 给出的一些建议

  • 确保明确性:在设计提示词时,务必确保提示词清晰明确,以便让AI更好地理解用户需求。避免使用模糊、不清晰的措辞,以免产生误导。

  • 使用上下文信息:尽量包含与问题相关的上下文信息,这有助于AI更好地理解问题的背景,从而给出更准确的回答。

  • 引导性问题:使用引导性问题可以帮助AI更好地聚焦于问题的核心。例如,使用“如何在冬季种植番茄?”而非简单地说“冬季种番茄”。

  • 分步提问:有时,一个复杂问题需要分解成几个简单问题(这一步有时候也可以使用 AI 完成)进行回答。将问题分解成多个部分,逐一询问AI,有助于获得更详细、准确的答案。比如先让 ChatGPT 给出提纲,然后提出建议然它修改出满意的提纲,最后让它填充每一个部分。

  • 限制答案长度:通过限制答案长度,可以让AI更专注于提供简洁明了的答案。例如,添加“请用一句话回答”或“请用20字以内回答”。

  • 使用多个提示:尝试使用不同的提示词来询问同一个问题,以便从多个角度获取答案。这有助于获得更全面、深入的解答。

  • 指定答案格式:通过指定答案格式,可以帮助AI生成更符合用户需求的答案。例如,要求AI以列表、概括或步骤等形式进行回答。

  • 逐步优化:根据AI的回答效果,持续调整并优化提示词。对于不理想的回答,可以尝试修改提示词,以引导AI生成更好的答案。

三、ChatGPT Prompt Engineering for Developers

参考自:https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/

3.1 Guidelines 准则

(1)写指令要求清晰和具体,但不等于短。

  • 1 用定界符如 “”"、```、—、<>、。它可以防止 prompt 注入,给 LLM 产生混乱的理解。

  • 2 用结构化输出:如直接要求它以 HTML 或者 JSON 格式输出。

  • 3 要求检查:要求 LLM 先检查是否满足某个条件后,再进行输出,如果条件不满足可以直接告知。

  • 4 利用少样本学习,展示一个你期望的例子给 LLM。

(2)给模型一些思考的时间,你给它太简单的描述它回答的可能不是你要的,你给它太难的问题它可能也算不出来。

  • 让模型按步骤来解答,第一步你应该怎么答,第二步你应该……最后……。可以设定一些分隔符,并且你在展示你想要的格式的时候,使用这些分隔符,比如你告诉LLM,文本在Text:<>里面……

  • 让模型自己推导出过程,而不仅仅是结果,展示一个带有解题过程的例子给LLM,演示中,让LLM负责判断学生做题是否正确,这时候就需要告诉模型学生的解题思路。

避免模型产生幻觉:要告诉模型先查找相关资料,再根据相关资料来回答问题。(但模型产生幻觉很难避免,也是目前模型研究领域努力的方向)

3.2 Iterative 提示工程需要持续迭代(编写Prompt就是一个不断修正表达的过程)

编写Prompt的过程是不断迭代的。

基本步骤:编写Prompt、测试、分析为什么、再编写(澄清你的想法)、再测试……,直到满意为止。

示例中,测试了总结营销文案、用50个单词、3个句子、280个字符、增加目标用户、增加产品参数、增加输出格式要求、来表达等,LLM表现得都不错,不过值得注意的是,它们并不会严格按照这个字数限制来,可能会略长一点。

3.3 Summarizing 总结类的应用(总结、提取信息)

如果你有个电商网站,里面有大量的用户评论,你可以利用“总结”的能力来简化你的工作量。

LLM不仅支持“总结(summarize)”还可以“提取信息(extract)”。

示例中,测试了限制字数、限定主题、关注价格、用提取替换总结,并用一个for循环,以相同的prompt模板来套用不同的内容,以达到批量处理的目的。

3.4 Inferring 推理类应用(情绪判断、主题推断等)

同样是在用户评论中,你如果想看看有多少积极反馈有多少消极反馈,则需要用到“LLM推理”的能力。

示例中,LLM可以推理用户的情绪(sentiment)、识别情绪类型(如:happy, satisfied, grateful, impressed, content)、提取品牌和商品信息并按JSON格式输出、一次执行多个任务(提取用户评论的商品并推理用户的情绪) 、推断主题、基于推断的主题设计一个提醒程序等。

3.5 Transforming 转换类应用(翻译、格式转换、纠错等)

将一种语言转换为另一种语言这类应用可以叫做转换类应用。

示例中,翻译一段文字到另一种语言、识别一段文字是哪种语言、同时翻译成两种以上的语言、指定正式还是非正式的语气、指定语言使用的场合比如商务场合的邮件、除了自然语言翻译还可以是JSON 到 HTML 这样程序语言的翻译、要求 LLM 帮你纠正语法错误。

3.6 Expanding 扩展类应用(拓写)

LLM 擅长于将一个简短的文字写得更长,并补充一些修饰,融入一些特定的语言风格。

示例中,LLM 表现为一个邮件回复助理的角色。让 LLM 写一段回复客户的邮件、要求它使用客户来信中的详细信息(让客户感觉比较真实)、可以调整温度值来让回复不那么死板。

四、其他技巧

4.1 多个提示词要求有冲突怎么办?

  • 使用顺序:在提示词中,将优先级较高的要求放在前面。AI通常会尽量遵循顺序,先满足较高优先级的要求。

  • 明确指定优先级:在提示词中直接说明哪个要求具有更高的优先级。例如:“请确保回答简洁明了(优先级1),同时尽量详细(优先级2)”。

  • 使用强烈词汇:对于优先级较高的要求,可以使用具有强制性的词汇,如“必须”、“务必”等。而对于优先级较低的要求,使用较柔和的词汇,如“尽量”、“可以考虑”等。

  • 逐步引导:如果担心在一个提示词中包含多个要求会导致冲突,可以考虑将问题分解为多个子问题,逐个引导AI。首先提出具有较高优先级的要求,然后再根据AI的回答逐步引入其他要求。

更多全面和专业的提示词教程,参见:
《ChatGPT Prompt Engineering for Developers》

提示词建议来自: https://www.learnprompt.org/
对应示例,来自 ChatGPT。

提问的艺术:如何通过提示词让 ChatGPT 更准确地理解你的问题?相关推荐

  1. ChatGPT提示词手册:学会提问的艺术,助你高效使用ChatGPT!

    省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 [免费下载]2023年3月份热门报告合集 [限时免费]ChatGPT4体验,无需翻墙直接用 ChatGPT使用总 ...

  2. 面向开发人员的 ChatGPT 提示词教程 - ChatGPT Prompt Engineering for Developers

    面向开发人员的 ChatGPT 提示词教程 - ChatGPT Prompt Engineering for Developers 1. 指南(原文: Guidelines) 1-1. 提示的指南(原 ...

  3. ChatGPT提示词,汇聚全网提示词,chatgpt提示词大全

    免费chatgpt:http://chat.bctweb.cnhttp://chat.bctweb.cn 提示词使用教程: 将提示词发给chatgpt 后面再问的时候他会你按照提示词上的提示给你发送内 ...

  4. ChatGPT - 提示词

    文章目录 PromptBase chatgpt 提示词 开源项目 awesome-chatgpt-prompts PromptBase Prompt 提示词网站 - PromptBase https: ...

  5. 创建好的提示词来让 Stable Diffusion 生成 AI 艺术作品图像

    如何创建好的提示词来让 Stable Diffusion 生成 AI 艺术作品图像? 文章目录 Stable Diffusion 如何使用? 优秀的提示词如何制作? 主题描述 Subject 图片类型 ...

  6. 建议收藏,最全ChatGPT 中文调教指南:提供各个领域的角色提示词(prompts)及使用技巧,当然也有不正经指南

    ChatGPT是一种基于GPT(Generative Pre-trained Transformer)模型的聊天机器人,能够回答用户提出的问题和进行对话.它是由OpenAI开发的人工智能产品,具有自然 ...

  7. 提问的艺术 - 敏捷教练技巧

    Scrum Master角色和敏捷教练相关内容 - Scrum指南 最近我复习了一遍Ken Schwaber和Jeff Sutherlan共同开发和维护的 "Scrum指南". ( ...

  8. 【新手提问导读】提问的艺术_提问的艺术

    [新手提问导读]提问的艺术 by Princiya 由Princiya 提问的艺术 (The art of asking questions) The art and science of askin ...

  9. ChatGPT 中文 Prompt 提示词,常用、高频集合

    在本篇文档中,我将展示超过 160 种 prompt 提示词,你可以挑选自己感兴趣的提示词进行尝试. 一.职业角色篇 1. 扮演学校讲师 我想让你在学校扮演讲师,向初学者教授算法. 您将使用 Pyth ...

最新文章

  1. localhost: Error: JAVA_HOME is not set. [Hadoop] Error: JAVA_HOME is not set
  2. flatMap()与concatMap()与concatMapEager()– RxJava常见问题解答
  3. 【交换机】MAC-VLAN的功能作用是什么,如何设置
  4. uboot源码——C阶段的start_armboot函数
  5. flask bootstrap ajax,使用Flask集成bootstrap的方法
  6. AJAX异步-向服务器提交数据
  7. 【C++】C++类和对象
  8. 兼容所有浏览器的省略号--纯CSS策略
  9. Cisco IPSec *** 配置详解
  10. CF984D XOR-pyramid
  11. EXCEL图表技巧:选择合适图表最全指南,建议收藏
  12. 百度editor编辑器添加新字体
  13. bulk interface驱动_【驱动】USB驱动·入门
  14. 河南二级分销系统开发|二级分销是如何分佣的?
  15. Tomcat核心原理学习总结(二)
  16. 页游安全攻与防(转)
  17. java 取消引用_java编译时所说的“无法取消引用”是什么意思
  18. 月亮搭配忧郁蓝色系海报设计模板
  19. ORACLE占用大量系统CPU,致使系统宕机
  20. 通信系统原理[郭宇春]——数字基带传输——课后习题答案

热门文章

  1. 程序员 面试如何介绍自己
  2. 关于UITableView的Cell复用谈谈我的一些心得滴水穿石
  3. torch-scatter, torch-cluster, torch-sparse, torch版本对应,cuda
  4. 树莓派最新raspbian系统换国内源
  5. IMO班聊新版本更给力 企业用车、公费电话上线
  6. 3D打印机远程挤出与近程挤出的优缺点
  7. 基于V2EX API的nodejs组件.
  8. Spark数据挖掘-基于 LSA 隐层语义分析理解APP描述信息(1)
  9. macbook pro能搜索到wifi,但是连接不上
  10. 东八区转为0时区_Java时区转换及时间格式