前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >给开发者的ChatGPT提示词工程指南

给开发者的ChatGPT提示词工程指南

作者头像
Steve Wang
发布2023-10-12 09:37:44
6050
发布2023-10-12 09:37:44
举报
文章被收录于专栏:从流域到海域

【中文完整版全9集】第1集 引入-ChatGPT提示词工程师教程 吴恩达xOpenAI官方 【OpenAI官方 | 中文完整版】 吴恩达ChatGPT提示工程师初级到高级(AI大神吴恩达教你写提示词)

ChatGPT Prompt Engineering for Development

基础大语言模型和指令精调大语言模型的区别:

在这里插入图片描述
在这里插入图片描述

指令精调大语言模型经过遵从指令的训练,即通过RLHF(基于人类反馈的强化学习)方式在指令上精调过,因而更加有帮助,更加真诚,更不可能产生有害输出。

Two principle (两大原则)
  1. Write clear and specific instructions
  2. give the model time to think
编写清晰且明确的指令

clear不等于short,比较长的指令有可能时更加清晰的。

Tactic 1: Use delimiters(使用分隔符)

Triple quotes: “”" Triple backtick ``` Triple dashes: — Angle brackets: <> XML tags:

使用分隔符可以防止指令注入,即误把目标文本中的指令识别为指令,下图为例:

在这里插入图片描述
在这里插入图片描述
Tactic 2: Ask for structure output (寻求格式化输出)

HTML, JSON 可以在提示词中指定模型按照json或者HTML的格式输出,json格式无论在前后端处理起来都很方便

在这里插入图片描述
在这里插入图片描述
Tactic 3: Check Whether conditions are satisfied(检查必要条件是否满足)

Check assumptions required to do the task

在这里插入图片描述
在这里插入图片描述

必要条件无法满足时,可指令模型提前终止,这样可以避免无效输出,并可以节省计算资源。

Tactic 4: Few-shot prompting (少样本提示)

Given successful examples of completing tasks. Then ask model to perform the task. 给模型成功执行任务的示例,让模型照做。

在这里插入图片描述
在这里插入图片描述
give the model time to think(给与模型足够时间思考)

实际上通过在提示词内添加一个逻辑步骤作为引导,让模型运用自己的推理能力得到更准确的答案。

Tactic 1: Specify the steps to complete a task(指定完成任务的详细步骤)

Step1: … Step2: … … Step N: …

在这里插入图片描述
在这里插入图片描述
Tactic 2: Intruct the model to work out its own solution before rushing to a conclusion (判别任务可以让模型先思考解决方案再以解决方案为依据进行判别)

判定学生回答是否正确场景下,先让模型自己回答问题,进而让模型比较学生回答和自己回答是否一致,以推断学生回答是否正确

Model Limitations

Hallucination (幻觉现象) Makes statements that sound plausible but are not true. 做出看上去合理的回复但是不是真实的。

Reducing Hallucinations: First find relevant information, then answer the question based on th relevant information. 通过首先寻找相关信息,再做出解答,有助于减轻幻觉现象

提示词迭代开发流程
在这里插入图片描述
在这里插入图片描述

提示词指引:

  • 清晰明确
  • 分析导致没有拿到预期输出的原因
  • 优化思路和提示词
  • 重复迭代

通过限定字数让模型输出更加简短,如下:

在这里插入图片描述
在这里插入图片描述

也可以替换为Use at most 3 sentence、Use at most 280 characters。

通过指定场景让模型切换视角,提示模型在文本末尾加上一些特殊说明,如下:

在这里插入图片描述
在这里插入图片描述

提示模型输出HTML代码(这个有点秀)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

提示词工程师要具备一个良好的迭代流程来产出更好的提示词。

Abstracting 摘要
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以指定摘要的用途使得它强调某一部分信息:

在这里插入图片描述
在这里插入图片描述

可以提示模型提取部分信息,而不是生成全文摘要:

在这里插入图片描述
在这里插入图片描述

可以使用for循环调用批量处理:

在这里插入图片描述
在这里插入图片描述
Reasoning 推理

大语言模型的一个优势是端到端应用,而不是pipeline流程应用,后者将一个任务拆分为几个子任务完成,比较繁琐,而且存在错误传播现象。

情感分类
在这里插入图片描述
在这里插入图片描述

可以通过限定模型输出来指定标签,相当于是做分类了:

在这里插入图片描述
在这里插入图片描述

提取评论者的情感倾向关键词(这个有点厉害,传统的情感分类很难做到):

在这里插入图片描述
在这里插入图片描述

判别评论者是否存在某种情绪:

在这里插入图片描述
在这里插入图片描述

提取关键信息,直接输出JSON(这才是真正的自然语言处理,有比较现实的应用场景),

在这里插入图片描述
在这里插入图片描述

一个提示词获取多维度信息:

在这里插入图片描述
在这里插入图片描述

通过提示词提取topic:

在这里插入图片描述
在这里插入图片描述

检测特定topic触发事件,是一个实际应用场景示例:

在这里插入图片描述
在这里插入图片描述
transforming 转换
  1. 翻译
  2. 语法、拼写纠错
翻译任务

LLM由从互联网收集来的海量数据训练,可以用来作翻译,知道数百种语言,但熟悉程度不一样(语料库内哪种语言的语料越多,越熟悉哪种语言)

在这里插入图片描述
在这里插入图片描述

语言分类(识别语言种类):

在这里插入图片描述
在这里插入图片描述

同时翻译多种语言:

在这里插入图片描述
在这里插入图片描述

以不同的语言风格进行翻译,例子是正式场合用语和非正式场合用语

在这里插入图片描述
在这里插入图片描述

多项任务写在一个提示词内一并输出:

在这里插入图片描述
在这里插入图片描述

以不同语气(tone)进行翻译:

在这里插入图片描述
在这里插入图片描述

格式转换(JSON、HTML、Markdown):

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

语法、拼写纠错:

在这里插入图片描述
在这里插入图片描述

通过详细指定提示词可以获取更多信息:

在这里插入图片描述
在这里插入图片描述

使用Python的readline包可以可视化校对前和校对后的差异:

在这里插入图片描述
在这里插入图片描述

按某种格式进行修正:

在这里插入图片描述
在这里插入图片描述
Expanding 文本扩展

情感分类(sentiment)的最终目标其实就是想提取对话人的情绪状态,进行决定对话的语言风格和方向。以往都是pipeline结构,有了大模型之后可以端到端进行。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Temperature 温度

temperature是一个新定义的变量,用来指定模型的探索程度或者随机性,通过调整Temperature可以获得多样化的输出。 笔者注:从示例看其实是一个分类的阈值。

在这里插入图片描述
在这里插入图片描述

如果希望使用GPT构建一个输出可靠,可预期的系统,建议使用tempareture = 0,因为这样模型输出是固定的。

如果希望GPT构建有一个更有具创造性的输出,建议使用数值更大的tempareture,模型有更多选择,模型输出不固定。

在这里插入图片描述
在这里插入图片描述
ChatBot 聊天机器人

Open AI API调用过程:

在这里插入图片描述
在这里插入图片描述
角色划分
  • 系统 (应用本身) 通过提示词指定模型的角色,或者说指定了对话的场景,进而控制对话生成的语气、风格),对用户屏蔽。
  • 用户 (对话对象)
  • 助手 (模型本身)
在这里插入图片描述
在这里插入图片描述

帮助函数get_completion_from_messages将返回的messages中的content字段透传出来:

在这里插入图片描述
在这里插入图片描述

例子:

在这里插入图片描述
在这里插入图片描述

例子:

在这里插入图片描述
在这里插入图片描述

上面的例子表明,与模型的每一次对话都是独立交互。如果希望模型记住上下文信息,需要将之前的对话作为输入喂给模型:

在这里插入图片描述
在这里插入图片描述

多轮对话其实是通过不断收集对话的上下文作为新一轮对话的输入进行的,这有一个潜在问题是,模型的输入会越来越长。

在这里插入图片描述
在这里插入图片描述

引入panel库展示对话UI:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

System提示词非常详细,指引了对话的核心方向,即需要从用户哪里收集哪些信息,这其实是前面讲过的give model time to think原则。

在这里插入图片描述
在这里插入图片描述

在context中指定了菜单信息(context是随着对话过程不断增长的)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

指示模型将订单信息以JSON个数输出:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注:对话过程中使用了数值比较大的tempareture,但这一步需要使用tempareture=0,因为系统后面(可能会使用这个JSON信息例:提交到订单系统),下游使用的信息应当是固定的,否则你开发出来的系统行为不可预测。

总结
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ChatGPT Prompt Engineering for Development
  • Two principle (两大原则)
  • 编写清晰且明确的指令
    • Tactic 1: Use delimiters(使用分隔符)
      • Tactic 2: Ask for structure output (寻求格式化输出)
        • Tactic 3: Check Whether conditions are satisfied(检查必要条件是否满足)
          • Tactic 4: Few-shot prompting (少样本提示)
          • give the model time to think(给与模型足够时间思考)
            • Tactic 1: Specify the steps to complete a task(指定完成任务的详细步骤)
              • Tactic 2: Intruct the model to work out its own solution before rushing to a conclusion (判别任务可以让模型先思考解决方案再以解决方案为依据进行判别)
                • Model Limitations
                • 提示词迭代开发流程
                • Abstracting 摘要
                • Reasoning 推理
                  • 情感分类
                  • transforming 转换
                    • 翻译任务
                    • Expanding 文本扩展
                      • Temperature 温度
                      • ChatBot 聊天机器人
                        • 角色划分
                        • 总结
                        相关产品与服务
                        NLP 服务
                        NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档