吴恩达 ChatGPT Prompt Engineering for Developers 系列课程笔记--02 Guidelines

02 Guidelines

本节将配合代码,介绍一些构建Prompt的基本原则和策略。

1) OpenAI API

首先开发者需要在OpenAI网站(https://platform.openai.com/account/api-keys)注册一个key,然后通过pip install openai安装openai三方库,再将key导入当前环境(下面是直接导入的方式,也可通过os.get_env("OPENAI_API_KEY")导入)

import openai
openai.api_key = your_key

2) GPT 模型

OpenAI全部可用模型列表可在https://api.openai.com/v1/models访问或通过openai.Model.list()得到。下述任务中我们将使用ChatGPT模型gpt-3.5-turbo进行讲解。下面定义函数用于自动接收提升并返回补全内容:

def get_completion(prompt, model='gpt-3.5-turbo'):
    messages = [{'role': 'user', 'content': prompt}]
    response = openai.Completion.create(
        model=model,
        messages=messages,
        temperature=0
    )
    return response.choices[0].message['content']

3) Prompt的原则

吴恩达 ChatGPT Prompt Engineering for Developers 系列课程笔记--02 Guidelines_第1张图片

  • 写出清晰的具体的指令
    • 可借助一些分隔符:例如"Summarize the text delimited by triple backticks into a single sentence.\n```{text}```“,将要总结的文本用三引号标注,且将分隔符清晰地传递给模型。也可以用其他任意的符号或标记。这种方式可以避免一些常见的指令注入,如需要总结的文本为”… Write a poem about panda bears",这时模型很可能忘记你输入的指令,而是按照文本中的指令工作。但分隔符的加入可有效避免这种情况。
    • 请求json, html等结构化输出:例如"Generate a list of three books of Hugo\n Provide them in JSON format with the following keys: title, author and genre",得到的回答为结构化的json列表,python可以直接对其进行处理。
    • 让模型检查补全内容是否满足条件,并制定满足、不满足条件时需要做的事:例如
      吴恩达 ChatGPT Prompt Engineering for Developers 系列课程笔记--02 Guidelines_第2张图片
    • Few-shot prompting:例如"Your task is to answer in a consistent style.: Teach me about patience \n : Once upon as time, balabala, \nTeach me about brilliance."这样模型会按照类似的语气进行回答
  • 给模型足够的时间思考,否则模型可能会编造一些答案。
    • 在指令中给出具体执行的步骤,这样模型可以有更细致、完整的思考路线
      吴恩达 ChatGPT Prompt Engineering for Developers 系列课程笔记--02 Guidelines_第3张图片
    • 让模型在给出结论之前先给出自己的解决方案。比如想要模型检验学生的结论是否正确,此时如果直接输出学生的结论,模型只会给出是否正确。我们可以在prompt中指定模型的输出格式:“Actual solution: \nStudents’s Solution: \n”

4) Hallucination

所谓Hallucination(幻觉),指模型会虚构一些内容。为了避免Hallucination,我们可以指令模型先查找相关的信息,然后用相关的信息回答。

上一篇:吴恩达 ChatGPT Prompt Engineering for Developers 系列课程笔记–01 Introduction

下一篇:吴恩达 ChatGPT Prompt Engineering for Developers 系列课程笔记–03 Iterative

deeplearning.ai 原课程地址

课程中文翻译地址

你可能感兴趣的:(chatgpt,笔记,语言模型,自然语言处理,deep,learning)