Contents

ChatGPT 提示工程师学习笔记

LLM 类型

LLM 是 large language models 的缩写,目前大致分为两种类型:基础大型模型(Base LLM)和指令调整模型(Instruction Tuned LLM)。

基础大型模型通过对文本训练集的预测下一个词来进行预训练生成。例如,如果输入是 “What is the capital of France?”,输出可能是 “What is France’s largest city? What is France’s population? What is the currency of France?”,因为训练集可能包含关于法国的问题列表。

指令调整模型经过微调和人类反馈强化学习(RLHF)后,对输入 “What is the capital of France?” 这类问题更倾向于输出“Paris”。因此,建议基于指令调整模型构建应用,因为它更具智能性且无害。

GPT-4 已采用部分指令调整模型优化技术,因此在理解和响应用户指令方面表现优越,介于普通 LLM 和指令调整模型之间。

提示工程指南

编写清晰明确的提示

策略一:使用分隔符,分隔符可以是任何将特定文本部分与 prompt 的其余部分分开的符号,例如 ‘```, <>, XML 符号等;使用分隔符还可以避免 prompt injection(提示词注入)。

将用三个反引号分隔的文本总结为一句话。’’’{text}’’’。

策略二:结构化输出。要求模型输出结构化格式,如 HTML 或 JSON 格式。

生成一个包含三本虚构书籍的列表,附上作者和类型。以 JSON 格式提供,使用以下键:book_id, title, author, genre。

策略三:检查条件是否满足。检查完成任务所需的假设是否满足,如果不满足,则中止任务。

您将获得一段文本。如果其中包含一系列说明,请按照以下格式重写这些说明:

第 1 步 - … 第 2 步 -… 第 N 步 -…

如果文本中没有包含说明序列,请简单写下 “未提供步骤。”

策略四:少样本提示。在执行任务之前,向模型提供一些成功执行任务的示例。

您的任务是以一致的风格回答。 : 教我了解耐心。 : 深刻的峡谷是由谦逊的泉水雕刻而成;宏伟的交响乐起源于单一的音符;最复杂的挂毯始于孤独的线程。 : 教我了解恢复力。

给 LLM 思考的时间

重建推理链或序列。如果任务过于复杂,模型可能会编造答案(就像人一样)。

策略一:阐明完成任务所需的步骤。

执行以下操作:1 - 将用三个反引号分隔的文本总结为一句话。2 - 将摘要翻译成法语。3 - 列出法语摘要中的每个名称。4 - 输出一个包含以下键的 json 对象:french_summary,num_names。用换行符分隔您的答案。文本:’’’{text}’’'

策略二:在模型急于得出结论之前,引导它推理出自己的解决方案。

您的任务是判断学生的解决方案是否正确。要解决这个问题,请执行以下操作:- 首先,自己解决这个问题。- 然后将您的解决方案与学生的解决方案进行比较,并评估学生的解决方案是否正确。在您自己解决问题之前,不要判断学生的解决方案是否正确。

LLM 的局限

幻觉(Hallucination):给出一些看起来有道理,但实际上是错误的断言。PS:就是我们经常说的一本正经胡说八道!

告诉我有关 Boie 公司的 AeroGlide UltraSlim 智能牙刷的信息。

降低幻觉的方法:首先要求模型从给定的资料中寻找相关信息,然后基于相关信息回答问题。

迭代提示开发

很少有人一开始编写 Prompt 就能取得成功,关键在于在这个过程中不断迭代你的 Prompt。迭代步骤如下:

  1. 编写清晰、具体的 Prompt,给系统充足的思考时间
  2. 运行并查看结果
  3. 分析为什么未达到预期的效果
  4. 调整想法和 Prompt,然后重复以上步骤。

没有一个通用的、完美的 Prompt!成为提示工程师的关键不在于知道最完美的 Prompt,而在于拥有一个良好的开发迭代 Prompt 的流程。

LLM 可完成的任务

摘要

  • 结合 prompt 原则,写出清晰的任务描述
  • 针对特定的业务(或关注点),聚焦于不同的内容
  • ⼀些特殊业务(或关注点),使⽤提取⽐总结更好

案例:对电商产品评价进⾏总结或提取

请在 30 字内总结以下评论,并关注与价格和感知价值相关的方面,以便向负责确定产品价格的定价部门提供反馈。

请为电商网站上的产品评论生成一个简短的总结,以便向定价部门提供反馈,该部门负责确定产品的价格。请在不超过 30 个单词的情况下总结以下评论,并关注与价格和感知价值相关的任何方面。

推断

  • 如果⾃⼰训练和部署识别情感的模型是⼀个很⼤的⼯作量,但是对 于⼤模型来说就是⼀个 prompt 的事
  • LLM ⽂本推理能⼒简化了机器学习⼈员的时间(传统⽅式可能需要 ⼏周时间)
  • LLM 在提取⽅⾯⾮常出⾊,可以指定关注点 / 关键字或指定输出格式,⽐如 JSON

案例:电商⽹站评价列表中识别⽂本情感,prompt 关键字: sentiment

从评论文本中识别以下项目:

  • 情感(正面或负面)
  • 评论者是否表达了愤怒?(真或假)
  • 评论者购买的物品
  • 制造该物品的公司

评论以三个反引号为界限。请将您的回答格式化为一个 JSON 对象,其中包含 “Sentiment”、“Anger”、“Item” 和“Brand”作为键。如果信息不存在,请使用 “unknown” 作为值。尽可能缩短您的回答。将 Anger 值格式化为布尔值。

注:可以同时做多项任务推断(情感、是否⽣⽓、产品和品牌名称)

案例:根据⼀段新闻推断主题,⽐如 NASA 的新闻稿,利⽤提取能⼒:识别 topic/tag ,并且可以分类

请判断以下每个主题是否在下面的文本中,文本以三个反引号为界限。请将您的答案表示为一个列表,每个主题为 0 或 1。 主题列表:{",".join(topic_list)} 文本示例:’’’{story}’''

注:这⾥ prompt ⾥使⽤了 python 代码。llm 应该可以识别。

文本转换

  • 翻译:⾃然语⾔语种转换

    将下面的英文翻译成西班牙语:

    ```Hi, I would like to order a blende```

    告诉我这是哪种语言:

    ```Combien coûte le lampadaire?```

  • 语⽓转换

    将下面这段话以正式、非正式的语气翻译出来:

    ```Would you like to order a pillow?```

    以商务语气来输出邮件:

    ```Dude, This is Joe, check out this spec on this standing lamp.```

  • 格式转换

    将下面的 python 字典从 JSON 转换至 HTML:

    {data_json}

  • 校对并改正语法错误

    请提供您希望校对和修改的文本。如果您没有发现任何错误,请回答 “未发现错误”。请勿在文本周围使用任何标点符号。

    ```{text}```

    请提供您希望校对、修改并使其更具吸引力的评论。确保其遵循 APA 风格指南并针对高级读者。请以 markdown 格式输出。

    ```{text}```

扩展

  • 将短⽂本扩展为更⻓的任务

案例:根据客户评论和识别评论情感,生成回复客户的定制邮件。

您是一名客户服务的 AI 助手。您的任务是发送一封回复邮件给一位重要的客户。请提供被限定为三个单引号的客户电子邮件,生成一封回复邮件以感谢客户的评论。如果情感是积极或中性的,感谢他们的评论。如果情感是消极的,道歉并建议他们联系客户服务。确保使用评论中的具体细节。用简洁而专业的语气写信,并在结尾签上 “AI 客户代理” 字样。

总结

  • 给出清晰、具体的指令是与模型交互的重要原则之一,同时需要给予模型思考的时间,以便它能够更好地理解和回答问题。
  • 迭代提示词可以帮助我们进一步优化模型,使其更准确地理解和回答问题。
  • 大型语言模型具有许多强大的能力,如生成摘要、推理、转换和拓展等,这些能力可以被用来构建聊天机器人等各种应用。

附录

视频中小姐姐的英文有一股伦敦腔,听起来还是很舒服的

原视频地址:

https://learn.deeplearning.ai/chatgpt-prompt-eng/lesson/1/introduction