提示工程师指南4-ChatGPT Prompt Engineering

news2024/11/24 17:29:34

ChatGPT Prompt Engineering

在这个部分,我们将介绍 ChatGPT 的最新提示工程技术,包括技巧、应用、限制、论文和额外的阅读材料。

主题:

与 ChatGPT 对话
Python 笔记本
请注意,本部分正在紧密开发中。

文章目录

  • ChatGPT Prompt Engineering
    • @[toc]
    • ChatGPT介绍
    • 审查对话任务
    • 使用ChatGPT进行对话
      • 多轮对话
      • 单轮任务
      • Instructing Chat Models
    • Python笔记本
    • 参考资料(英文)
    • 指南

ChatGPT介绍

ChatGPT是OpenAI训练的一种新型模型,可以进行对话交互。该模型经过训练,可以按照提示中的指令,在对话上下文中提供适当的回应。ChatGPT 可以帮助回答问题、建议菜谱、按某种风格写歌词、生成代码等等。

ChatGPT 使用人类反馈强化学习(RLHF)进行训练。虽然这个模型比之前的 GPT 版本更具有能力(还经过训练以减少有害和不真实的输出),但它仍然存在限制。让我们通过具体的例子来了解一些能力和限制。

您可以在这里 使用ChatGPT的研究预览,但在下面的例子中,我们将使用 OpenAI Playground 上的“Chat”模式。


审查对话任务

In one of the previous guides, we covered a bit about conversation capabilities and role prompting. We covered how to instruct the LLM to have a conversation in a specific style, with a specific intent, behavior, and identity.
在之前的指南中,我们介绍了一些关于对话能力和角色提示的内容。我们讲解了如何指导LLM以特定的风格、意图、行为和身份进行对话。

让我们回顾一下之前的基本示例,我们创建了一个对话系统,能够生成更技术和科学的回答。

Prompt:

以下是与AI研究助手进行的对话。助手的语气是技术和科学的。

人类:你好,你是谁?
AI:您好!我是一个AI研究助手。我今天可以帮您什么?
人类:你能告诉我关于黑洞的形成吗?
AI:

从上面的例子中,您可以看到两个重要组成部分:

意图或者解释聊天机器人是什么
身份,它指导聊天机器人用什么风格或语气来回复

上述简单示例适用于使用text-davinci-003的文本完成API。最近,OpenAI宣布了ChatGPT APIs,它是一种更强大和更便宜的模型,名为gpt-3.5-turbo,专门用于这种类型的功能(聊天完成)。OpenAI推荐它作为它们的最佳模型,即使是非聊天的用例也是如此。使用ChatGPT API的其他好处是显着的成本降低(90%)和效率。
Snap Inc.和Instacart等大公司已经在他们的产品上集成了由ChatGPT支持的对话功能,从个性化推荐到开放式购物目标不等。


使用ChatGPT进行对话

多轮对话

为了展示ChatGPT的能力,我们将使用上面的聊天机器人助手示例并讨论结果。与text-davinci-003相比,为ChatGPT提供动力的gpt-3.5-turbo模型使用聊天格式作为输入。模型期望一系列消息作为输入,然后使用这些消息生成响应。

Input:

系统: 你是一个使用技术性和科学性语气的AI研究助手。
用户: 你好,你是谁?
助手: 你好!我是一名AI研究助手。今天我能为你做些什么?
用户: 你能告诉我黑洞是如何产生的吗?

Output:

助手: 当然可以!黑洞是由于一个大质量星体耗尽燃料并在自身引力作用下崩塌形成的。这种崩塌导致星体变得极为致密,具有极强的引力场,甚至连光线都无法逃脱。这个无法回头的点称为事件视界。一旦一颗星体穿过事件视界,它就被认为是一个黑洞...

请注意,在上面的示例中,我已经简化了输入和输出,但是ChatGPT聊天补全API要求消息以特定的格式提供。我在下面添加了一个快照,展示了在OpenAI Playground中使用Chat Mode时,此示例的外观:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在这里插入图片描述

对于我们的示例,更正式的API调用可能类似于以下示例:

import openai

openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "系统", "content": "你是一个使用技术性和科学性语气的AI研究助手。"},
        {"role": "用户", "content": "你好,你是谁?"},
        {"role": "助手", "content": "你好!我是一名AI研究助手。今天我能为你做些什么?"},
        {"role": "用户", "content": "你能告诉我黑洞是如何产生的吗?"}
    ]
)

未来开发人员与ChatGPT交互的方式预计将通过Chat Markup Language(简称ChatML)完成。

单轮任务

聊天格式使得多轮对话成为可能,但它也支持类似我们使用text-davinci-003进行的单轮任务。这意味着我们可以使用ChatGPT执行类似于我们对原始GPT模型进行演示的任务。例如,让我们尝试使用ChatGPT执行以下问答任务:

Input:

USER:根据下文回答问题。保持答案简短明了。如果不确定答案,请回答“不确定答案”。

背景:Teplizumab的根源可以追溯到名为Ortho Pharmaceutical的新泽西州制药公司。在那里,科学家生成了抗体的早期版本,称为OKT3。最初从小鼠中获得,这种分子能够结合到T细胞的表面并限制它们的细胞杀伤潜力。 1986年,它获得批准,用于帮助预防肾脏移植后器官排斥,成为首个允许人类使用的治疗性抗体。

问题:OKT3最初是从哪里获得的?

回答:

Output:

ASSISTANT:小鼠。

请注意,我添加了“USER”和“ASSISTANT”标签,以更好地演示如何使用ChatGPT执行任务。以下是使用Playground的示例:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在这里插入图片描述

更正式地说,这是API调用(我仅包括请求的消息组件):

CONTENT = """Answer the question based on the context below. Keep the answer short and concise. Respond \"Unsure about answer\" if not sure about the answer.

Context: Teplizumab traces its roots to a New Jersey drug company called Ortho Pharmaceutical. There, scientists generated an early version of the antibody, dubbed OKT3. Originally sourced from mice, the molecule was able to bind to the surface of T cells and limit their cell-killing potential. In 1986, it was approved to help prevent organ rejection after kidney transplants, making it the first therapeutic antibody allowed for human use.

Question: What was OKT3 originally sourced from?

Answer:
"""

response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "user", "content": CONTENT},
    ],
    temperature=0,
)

Instructing Chat Models

根据官方OpenAI文档,gpt-3.5-turbo模型的快照也将提供。例如,我们可以访问3月1日的快照gpt-3.5-turbo-0301。这使得开发人员可以选择特定的模型版本。这也意味着指导模型的最佳实践可能会从一个版本变化到另一个版本。

目前针对gpt-3.5-turbo-0301的推荐做法是,在user消息中添加指令,而不是在可用的system消息中添加指令。


Python笔记本

描述Python笔记本
学习如何使用openai库调用ChatGPT APIChatGPT API介绍
学习如何使用LangChain库使用ChatGPT特性。ChatGPT API with LangChain

参考资料(英文)

  • Seeing ChatGPT Through Students’ Eyes: An Analysis of TikTok Data (March 2023)
  • Extracting Accurate Materials Data from Research Papers with Conversational Language Models and Prompt Engineering – Example of ChatGPT (Mar 2023)
  • ChatGPT is on the horizon: Could a large language model be all we need for Intelligent Transportation? (Mar 2023)
  • Making a Computational Attorney (Mar 2023)
  • Does Synthetic Data Generation of LLMs Help Clinical Text Mining? (Mar 2023)
  • MenuCraft: Interactive Menu System Design with Large Language Models (Mar 2023)
  • A Comprehensive Survey of AI-Generated Content (AIGC): A History of Generative AI from GAN to ChatGPT (Mar 2023)
  • Exploring the Feasibility of ChatGPT for Event Extraction
  • ChatGPT: Beginning of an End of Manual Annotation? Use Case of Automatic Genre Identification (Mar 2023)
  • Is ChatGPT a Good NLG Evaluator? A Preliminary Study (Mar 2023)
  • Will Affective Computing Emerge from Foundation Models and General AI? A First Evaluation on ChatGPT (Mar 2023)
  • UZH_CLyp at SemEval-2023 Task 9: Head-First Fine-Tuning and ChatGPT Data Generation for Cross-Lingual Learning in Tweet Intimacy Prediction (Mar 2023)
  • How to format inputs to ChatGPT models (Mar 2023)
  • Can ChatGPT Assess Human Personalities? A General Evaluation Framework (Mar 2023)
  • Cross-Lingual Summarization via ChatGPT (Feb 2023)
  • ChatAug: Leveraging ChatGPT for Text Data Augmentation (Feb 2023)
  • Dr ChatGPT, tell me what I want to hear: How prompt knowledge impacts health answer correctness (Feb 2023)
  • An Independent Evaluation of ChatGPT on Mathematical Word Problems (MWP) (Feb 2023)
  • ChatGPT: A Meta-Analysis after 2.5 Months (Feb 2023)
  • Let’s have a chat! A Conversation with ChatGPT: Technology, Applications, and Limitations (Feb 2023)
  • Check Your Facts and Try Again: Improving Large Language Models with External Knowledge and Automated Feedback (Feb 2023)
  • On the Robustness of ChatGPT: An Adversarial and Out-of-distribution Perspective (Feb 2023)
  • How Generative AI models such as ChatGPT can be (Mis)Used in SPC Practice, Education, and Research? An Exploratory Study (Feb 2023)
  • Can ChatGPT Understand Too? A Comparative Study on ChatGPT and Fine-tuned BERT (Feb 2023)
  • A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT (Feb 2023)
  • Zero-Shot Information Extraction via Chatting with ChatGPT (Feb 2023)
  • ChatGPT: Jack of all trades, master of none (Feb 2023)
  • A Pilot Evaluation of ChatGPT and DALL-E 2 on Decision Making and Spatial Reasoning (Feb 2023)
  • Netizens, Academicians, and Information Professionals’ Opinions About AI With Special Reference To ChatGPT (Feb 2023)
  • Linguistic ambiguity analysis in ChatGPT (Feb 2023)
  • ChatGPT versus Traditional Question Answering for Knowledge Graphs: Current Status and Future Directions Towards Knowledge Graph Chatbots (Feb 2023)
  • What ChatGPT and generative AI mean for science (Feb 2023)
  • Applying BERT and ChatGPT for Sentiment Analysis of Lyme Disease in Scientific Literature (Feb 2023)
  • Exploring AI Ethics of ChatGPT: A Diagnostic Analysis (Jan 2023)
  • ChatGPT for Good? On Opportunities and Challenges of Large Language Models for Education (Jan 2023)
  • The political ideology of conversational AI: Converging evidence on ChatGPT’s pro-environmental, left-libertarian orientation (Jan 2023)
  • Techniques to improve reliability - OpenAI Cookbook
  • Awesome ChatGPT Prompts
  • Introducing ChatGPT (Nov 2022)

指南

以下是我们的一系列Prompt工程指南。指南仍在不断完善中。

  • 1. Prompt工程-简介
  • 2. Prompt工程-基本提示
  • 3. Prompt工程-高级提示
  • 4. Prompt工程-ChatGPT
    1. Prompt工程-Midjouney]
    1. Prompt工程-StableDiffusion]
    1. Prompt工程-应用]
    1. Prompt工程-对抗性提示]
    1. Prompt工程-可靠性]
    1. Prompt工程-其他主题]
    1. Prompt工程-论文]
    1. Prompt工程-工具]
    1. Prompt工程-数据集]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/622333.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【爬虫】3.4 爬取网站复杂数据

1. Web服务器网站 进一步把前面的Web网站的mysql.html, python.html, java.html丰富其中 的内容&#xff0c;并加上图形&#xff1a; mysql.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>my…

手把手教你看懂51单片机原理图

最近当了单片机课设的助教,又再次接触了51单片机。发现初学者还看不太原理图&#xff0c;不能理解单片机 led灯&#xff0c;蜂鸣器&#xff0c;数码管是怎么操作的。现在结合原理图讲解一下怎么操作这些外设模块&#xff01;我们就以一些初始化代码进行讲解。 注&#xff1a;这…

开始使用Vue 3时应避免的10个错误

本文首发于微信公众号&#xff1a;大迁世界, 我的微信&#xff1a;qq449245884&#xff0c;我会第一时间和你分享前端行业趋势&#xff0c;学习途径等等。 更多开源作品请看 GitHub https://github.com/qq449245884/xiaozhi &#xff0c;包含一线大厂面试完整考点、资料以及我的…

华为OD机试真题 Java 实现【在字符串中找出连续最长的数字串】【2023 B卷 100分】,附详细解题思路

一、题目描述 输入一个字符串&#xff0c;返回其最长的数字子串&#xff0c;以及其长度。 若有多个最长的数字子串&#xff0c;则将它们全部输出&#xff08;按原字符串的相对位置&#xff09;。 本题含有多组样例输入。 数据范围&#xff1a; 字符串长度 1≤n≤200 &…

Linux进程懂了吗?一分钟快速上手

这里写目录标题 Linux进程介绍显示系统执行的进程终止进程查看进程树pstreeLinux进程作用 Linux进程介绍 Linux进程是计算机中正在运行的程序的实例。在Linux系统中&#xff0c;每个进程都有一个唯一的进程ID&#xff08;PID&#xff09;&#xff0c;用于标识该进程。&#xf…

Eigen中用于特征值分解的几个类的介绍

本文参考于 https://eigen.tuxfamily.org/dox/group__TopicLinearAlgebraDecompositions.html 很多场合我们需要去计算矩阵的特征值与特征向量&#xff0c;但是Eigen中有好几个计算特征值与特征向量的方法&#xff0c;这些方法到底该选哪个呢&#xff1f;这篇文章就带着大家来…

「企业技术架构」EA874:技术架构的原则和标准

企业技术架构中EA原则的应用 原则经常是正式EA工作的一部分。它们在个人决策和广泛适用且独立于具体决策的基本业务目标之间提供了更强的联系。原则是组织为激发最佳行为而选择的准则或最佳实践。它们很可能&#xff08;在最高级别&#xff09;被追溯到基本的业务需求和策略。如…

【MySQL数据库 | 第八篇】DML操作

目录 ​编辑 &#x1f914;前言&#xff1a; &#x1f914;DML介绍&#xff1a; &#x1f914;语法详情&#xff1a; &#x1f600;1.插入数据&#xff1a; 特点&#xff1a; 1.给指定字段添加数据&#xff1a; 代码示例: 运行结果&#xff1a; 2.给所有的字段添加数据&…

Symfony v6.2.11 正式发布,经典 PHP Web 开发框架

导读Symfony v6.2.11 发布了&#xff01;Symfony 是一款基于 MVC 架构的 PHP 框架&#xff0c;致力于减少重复代码的编写&#xff0c;以加速 Web 应用的开发和维护。Symfony 与许多关系型数据库集成的也非常好&#xff0c;成本也较小。 此外&#xff0c;Symfony 致力于在企业背…

继电器在信号系统中的应用

继电器是什么 继电器是一种电气开关&#xff0c;它使用电磁力来控制一个或多个电气电路的操作。继电器通常由电磁铁、触点和弹簧等部件组成。当电磁铁被激活时&#xff0c;它会产生磁场&#xff0c;吸引或释放触点&#xff0c;从而打开或关闭电路。 继电器的分类 继电器分为…

面向对象设计中的七大设计原则与二十三种设计模式

目录 七大设计原则单一职责原则内涵与目的涉及的知识点例子 开闭原则定义实现例子 依赖倒转原则定义传统过程式设计面向对象设计与开闭原则的联系例子 里氏替换原则定义与意义四层含义例子 接口隔离原则定义例子 合成复用原则定义继承复用与组合/聚合复用的区别涉及的知识点例子…

c++11 标准模板(STL)(std::bitset)(七)

定义于头文件 <bitset> template< std::size_t N > class bitset; 类模板 bitset 表示一个 N 位的固定大小序列。可以用标准逻辑运算符操作位集&#xff0c;并将它与字符串和整数相互转换。 bitset 满足可复制构造 (CopyConstructible) 及可复制赋值 (CopyAssig…

LeetCode_二叉树_BFS_中等_199.二叉树的右视图

目录 1.题目2.思路3.代码实现&#xff08;Java&#xff09; 1.题目 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例 1&#xff1a; 输入: [1,2,3,null,5,null,4] 输出: [1,…

测试计划包括哪些主要步骤和信息?

测试计划包括哪些主要步骤和信息? 在软件测试的过程中&#xff0c;编写一个完整的测试计划是非常重要的一步。测试计划记录了测试的具体内容、步骤、目标及其实现计划、测试环境和相关资源等信息。下面将为您详细介绍测试计划包括哪些主要步骤和信息。 1. 测试概述 测试概述部…

centos7 部署 Mysql 5.7

centos7 部署 Mysql 5.7 一、安装2.1 环境准备2.2 开始安装2.2.1 安装源2.2.2 版本选择2.2.3 安装 MySQL 二、MySQL 设置2.1 密码设置2.2 远程访问账户设置2.3 设置开机启动 一、安装 2.1 环境准备 1、查看系统自带或之前安装的 mariadb。 rpm -qa | grep mariadb2、卸载它们…

Nginx+Tomcat实现负载均衡、动静分离集群部署

NginxTomcat实现负载均衡、动静分离集群部署 一、Tomcat多实例部署1、安装好JDK2、安装tomcat3、配置tomcat环境变量4、修改tomcat2中的server.xml文件&#xff0c;要求各tomcat实例配置不能有重复的端口号5、修改各tomcat实例中的startup.sh和shutdown.sh文件&#xff0c;添加…

ArrayList 万字长文解析:使用、优化、源码分析

文章目录 ArrayList 万字长文解析&#xff1a;使用、优化、源码分析前言ArrayList 简介ArrayList 的基本使用方法ArrayList 性能优化ArrayList 的源码分析内部结构构造方法解析扩容机制System.arraycop与 Arrays.copyof 实现方式 与 使用场景迭代器 JDK 8版本 ArrayList bug 示…

如何安装pycharm的包

PyCharm是JetBrains公司推出的一款Python集成开发环境&#xff08;IDE&#xff09;&#xff0c;可以提供高效的Python代码编写、调试和测试。以下是一些PyCharm的主要功能&#xff1a; 代码智能提示和自动补全功能&#xff1b;支持调试和测试Python代码&#xff1b;完整的Pyth…

如何正确地处理职场中的失误

如何正确地处理职场中的失误 在职场上&#xff0c;我们都会遇到各种各样的问题和挑战。面对这些问题时&#xff0c;我们有时难免会犯错。但正如一句古老的谚语所说&#xff1a;“失败是成功之母。”我们应该从失误中吸取教训&#xff0c;不断成长。本文将探讨如何正确地处理职…