从 0 到 1 的Prompt 教程,来自Claude 官方,不会写 prompt的看这个足够

2024-08-29 13:28

本文主要是介绍从 0 到 1 的Prompt 教程,来自Claude 官方,不会写 prompt的看这个足够,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Claude 的强大,最近得到了很多网友的验证,甚至效果上面大有超越 GPT的许多声音。

所以从优秀的 Claude 中学习,将会是一个很好的起点。

图片

这里,Claude 的开发者们提供了一个相当详细的 Prompt Engineering 教程。

这个教程能够全面地逐步了解如何在 Claude 中设计最佳提示。

循序渐进,由浅入深,非常适合学习和收藏。

教程分为初级、中级和高级,涵盖从基本提示结构到避免幻觉和构建复杂行业用例的高级技巧,并提供了练习和示例以加深理解。

重要的是,可以自己实践体验,每部分的教程都有一个“Example Playground”,可以在这里自由地体验课程中的示例,金也可以了解更改提示后,直接看 Claude 的回答。

看完之后,能够有几个收获。

  • 掌握一个好的提示的基本结构
  • 识别常见的故障模式并学习“80/20”技术来解决它们
  • 了解 Claude 的优势和劣势
  • 为常见使用案例从头开始构建强大的 prompt

详细教程地址放在了评论区,并且包含实际案例以及练习案例

下面是几个重点,可以收藏学习。第九点给出了一个 claude prompt 的模板,适用所有的 LLM 提示词设计,直接套用即可。

图片

1、基本的结构要掌握

基础不扎实,啥都白费,都是如此。

使用 Messages API 调用 Claude 时,至少需要以下参数,也是需要了解参数的含义。

  • model: 你打算调用的 API 模型名称。
  • max_tokens: 生成最大 token 数,Claude 在达到此最大值之前可能会停止。这个参数仅指定要生成的绝对最大 token 数,并且是一个硬性停止
  • messages: 输入消息的数组。模型经过训练,可以在用户和助手消息之间交替操作。模型会生成对话中的下一个消息。每个输入消息必须是一个具有 role 和 content 的对象。你可以指定一个用户角色的消息,或者包含多个用户和助手消息(它们必须交替出现)。第一条消息必须总是使用用户角色。

此外,还有一些可选参数

  • system: 系统提示。**为什么要使用系统提示符?**编写良好的系统提示可以通过多种方式提高 Claude 的表现,例如提高 Claude 遵循规则和指示的能力
  • temperature: Claude 响应的变化程度。0-1 之间。

2、清晰直接

Claude 对清晰直接的指示反应最好。

把 Claude 想象成任何其他刚接触这份工作的人。Claude 除了你从字面上告诉它之外,没有关于该做什么的背景。就像你第一次指导一个人完成一项任务一样,你越是以直截了当的方式向 Claude 解释你想要什么,Claude 的回答就会越好、越准确。

比如下面这个例子

图片

上面是表达不清晰,下面是表达清晰。

PROMPT = “Write a haiku about robots.”

上面的生成的结果已经足够好了,但可能希望 Claude 直接回答就是这首诗,而没有 “Here is a haiku” 这样的提示。

所以下面的直接在提示词上面修改。

PROMPT = “Write a haiku about robots. Skip the preamble; go straight into the poem.

3、分配角色非常重要

促使 Claude 在一个特定的角色(包括所有必要的上下文)中是很重要的,这也称为角色提示(role prompting),角色上下文越详细越好。

为 Claude 准备一个角色可以提高 Claude 在各个领域的表现,从写作到编码再到总结。这就像人类有时被告知“像__一样思考”时可以帮助。角色提示还可以改变 Claude 的回答风格、语气和方式。

图片当我们让 Claude 扮演一只猫的角色时,Claude 的视角发生了变化,因此 Claude 的回应语气、风格、内容都适应了新的角色。

图片一个逻辑推理的对比,从上下对比来看,通过新的角色分配,让 Claude 充当逻辑机器人, Claude 做对了

4、分离数据和善用 XML 标签

通常,我们不想编写完整的 prompt,而是希望在提示模板可以在以后提交给 Claude 之前使用额外的输入数据进行修改。如果您希望 Claude 每次都执行相同的操作,这可能会派上用场,但 Claude 用于其任务的数据每次可能都不同。

想要做到这几一点,方法是将 Prompt 的固定框架与可变的用户输入分开,然后在将完整的 Prompt 发送给 Claude 之前将用户输入替换到 Prompt 中。

为什么我们要像这样分离和替换输入?提示模板简化了重复性任务。

假设您构建了一个提示结构,邀请第三方用户向提示提交内容(在本例中为他们想要生成声音的动物)。这些第三方用户不必编写,甚至不必看到完整的提示。他们所要做的就是填写变量。

比如下面这个例子

图片

但是在替换的过程中, 有可能出现一些意外的情况,导致多输出一些无关紧要的字符。

这时候要善用 XML 标签。

XML 标记是尖括号标记,如。它们成对出现,由一个开始标签(如)和一个用 / 标记的结束标签(如)组成。XML 标签用于环绕内容,如下所示:content。

注意: 虽然 Claude 可以识别并使用各种分隔符和分隔符,但claude建议专门使用 XML 标记作为 Claude 的分隔符,因为 Claude 接受过专门培训,可以将 XML 标记识别为一种快速的组织机制。除了函数调用之外,没有 Claude 接受过训练的特殊 sauce XML 标记,应该使用这些标记来最大限度地提高性能。

图片

5、格式化输出

Claude 可以通过多种方式格式化其输出

一种方法是使用 XML 标记将响应与任何其他多余的文本分开。可以要求 Claude 使用 XML 标签来使其输出更清晰、更容易被人类理解。

将输出放在 XML 标记中,允许最终用户通过编写一个简短的程序来提取 XML 标记之间的内容,从而可靠地获取诗歌,并且只获取诗歌。

还有一种方式是将第一个 XML 标记放入 assistant 轮次中

同样的方式,对 JSON 格式也适用。

看下面的两个例子。

图片

6、Thinking Step by Step

这是一个prompt 很常用的咒语,一定要牢记。在很多场合都很受用,效果贼好

这种方式是给大模型一些思考的时间,就类似人回答问题的时候,思考后的回答,一定是准确的。

给 Claude 时间一步一步思考有时会使 Claude 更准确,尤其是对于复杂的任务。然而,只有当它大声说出来时,思考才有意义。你不能让 Claude 思考,而只输出答案 - 在这种情况下,实际上没有思考发生。

比如用第一、第二之类的阶段性动作。

图片

让 Claude 思考可以将 Claude 的答案从错误转变为正确。在很多情况下,Claude 犯错就是这么简单!

7、Few-Shot Prompting

这种方式非常实用,是我在工作中经常用到这种方式,效果很棒,特别是格式化输出。

举例说明你希望大模型如何表现(或你希望它拒绝某些事情)对于以下方面非常有效:

  • 获得正确的答案
  • 以正确的格式获得答案

这种提示称为 “few shot prompting”。可能还会遇到短语“zero-shot”或“n-shot”或“one-shot”。“shots” 的数量是指提示中使用的示例数量

当我们提问一些问题的时候,Claude 的默认回答相当正式和机械,你可以花时间描述你想要的语气或者格式。

图片

8、避免幻觉

幻觉问题一直都是所有大模型的最大的问题。也是最让我们头疼的问题

你可以不回答,但是别给我瞎回复,是我们在日常提问最低的原则之一。

对于 Claude 来说。

  • 一些坏消息:Claude 有时会“产生幻觉”并提出不真实或不合理的主张。
  • 好消息:可以使用一些技术来减少幻觉。

方案一:给 Claude 一个出路:告诉 Claude 它可以拒绝回答,或者只有在它确实确定知道答案的情况下才回答。

比如:PROMPT = “Who is the heaviest hippo of all time? Only answer if you know the answer with certainty.

图片

方案二:对于一些长文本理解,先收集证据: 告诉 Claude 首先提取相关引文,然后根据这些引文得出答案。

图片

方案三:设置温度参数(temperature) :可以通温度参数来解决。温度是衡量 0 到 1 之间的答案创造力的指标,其中 1 表示更不可预测且标准化程度较低,而 0 表示最一致。

在温度为 0 的情况下向 Claude 提问通常会在重复试验中产生一个几乎确定性的答案集(尽管不能保证完全确定性)。在温度 1(或两者之间的等级)下向 Claude 提问将产生更多可变的答案

9、独特而复杂的提示(重要)

这个很重要,结合了之前的学到的信息,总结成一套 prompt 模板,适用于大多数的 LLM 提示词设计。

一个用于复杂提示的引导式结构,并非所有提示都需要以下复杂结构的每个元素。鼓励您尝试并包含或不包含元素,看看它如何影响 Claude 的回答。通常最好先使用许多提示元素来使提示正常工作,然后再优化和精简提示。

教程中提到了很重要的一点:下面的排序对于某些元素很重要

  • 1、user角色,确保消息 API 调用始终以消息数组中的“user”角色开头。
  • 2、任务上下文,根据提示向 Claude 提供有关其应承担的角色或您希望其承担哪些目标和总体任务的背景信息。# 最好将上下文放在提示正文的早期
  • 3、语气语境,# 如果对互动很重要,请告诉应该使用什么语气,# 根据任务的不同,此元素可能不是必需的。
  • 4、详细的任务描述和规则,# 详细说明您希望 Claude 执行的具体任务,以及 Claude 可能必须遵循的任何规则。# 如果Claude没有答案或不知道,你也可以在这里给他“出局”。
  • 5、示例,提供至少一个可以模仿的理想响应示例,将其包含在 XML 标记中,一般来说,例子越多=越好。
  • 6、输入要处理的数据,如果需要处理数据,也放在 XML 标签中,非必需的元素。
  • 7、即时任务描述或请求,提醒 Claude 或准确地告诉 Claude 需要立即做什么来完成提示的任务。可以在此处添加其他变量,例如用户的问题。
  • 8、 思考,thinking step by step,对于有多个步骤的任务,最好告诉Claude 在给出答案之前一步步思考。有时,你甚至可能不得不说“在你给出答案之前…吧啦吧啦”,只是为了确保克劳德首先这样做。
  • 9、输出格式,如果希望采用特定的格式,请明确告诉 Claude 该格式是什么。根据任务的不同,此元素不是必需的。如果使用这个元素,将其放在提示的末尾比放在开头更好。
  • 10、预填 Claude 的回复, 也不是一个必须的元素,如果想预填 Claude 的回复,必须将其放在 API 调用中的“assistant”角色中。

以上就是教程的全部内容。

教程地址:https://github.com/anthropics/courses/tree/master/prompt_engineering_interactive_tutorial

图片

最精华的部分就是第九点,按照第九点的方式写 prompt ,是能够有非常不错的效果。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

这篇关于从 0 到 1 的Prompt 教程,来自Claude 官方,不会写 prompt的看这个足够的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1117987

相关文章

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.