AI 日报

提示工程的艺术:AI如何帮我完成作业

  • By admin
  • Sep 19, 2023 - 2 min read



译者 | 崔皓

审校 | 重楼

摘要

这篇文章探讨了如何有效地使用人工智能(AI)来完成作业,特别是通过提示工程。作者是一名即将开始商业咨询工作的学生,他已经使用AI助手来补充他的作业问题集。他发现AI在生成代码或与特定软件交互时特别有用。文章强调了提示工程的重要性,这是一种考虑如何提示AI以提高其准确性和与预期行动一致性的技能。作者通过具体的作业问题展示了良好的提示工程,包括对话式提示和奉承的使用。他认为,不是AI将取代工人,而是使用AI的工人将取代不使用AI的工人。

开篇

在我所参与的大多数AI论坛中,都会提到一个常见的问题,就是人工智能是否取代人类。反对这种观点的人通常会说过去的创新(如工业革命和计算机的发明)并没有取代工人,而且这种创新往往使人们完成更多工作。我倾向于这种观点。

微软的CEO Satya Nadella表示,新技术将创造“工作的满足感和新机会”。显然,Nadella在这方面的说法是有偏见的;然而,AGI不会很快就占领经济、政治、司法系统等,这个观点仍然有其价值。AI可能不会抢走你的工作,但是懂得如何使用AI的人可能会。

作为一名学生我即将开始在商业咨询领域的首份工作,我需要学会有效地使用AI来帮助我在完成工作任务时保持生产力和竞争力。实际上,我已经开始使用AI助手来补充我的作业问题集了。

我发现它在生成代码或与特定软件交互时特别有用。坦率地说,我对它所了解的软件范围感到惊讶,从VCV Rack 2(一个模块化合成器程序)到Choregraphe(一个用于编程NAO机器人的低代码接口)。

YouChat帮助我在VCV Rack中设计了这个合成器模式。

如何学习提示工程

在使用AI助手完成问题集时,我了解到,与AI进行高效交互的核心是提示工程。提示工程作为一种新颖的技能,它涉及到如何智能地考虑如何提示AI,从而提升AI的准确性以及与你的预期结果的一致性。我在这篇文章中不会深入讨论如何进行提示工程(有很多其他的文章讨论了这个主题;参见Prompt-Engineering-Guide);然而,我希望通过详细讲解我最近遇到的一个具体问题,来强调良好提示工程的重要性。

AGI研究和安全初创公司Anthropic最近发布了一个LLM提示工程师的职位,薪资范围为175k - 335k美元。

免责声明:在你使用任何AI工具来帮助你完成作业之前,请确保你的教学大纲中没有禁止这样做,并在需要的时候引用你的使用。我没有使用YouChat来完成这个任务;这是在提交后的分享

对话式提示工程

对于每个作业问题,我将通过对话与AI模型进行交互。有趣的是,对话是与AI交互的最强大的方式之一,因为它允许你嵌入AI的行为、意图和身份。

对话式提示有两个关键组成部分:描述和对话。我将从描述开始,因为它设置了很多上下文。一个基本的描述文本包括意图,定义聊天机器人,以及机器人的身份,它还规定了聊天机器人将以何种方式回复。这在下面例子的前两句中得到了体现。

// 示例描述文本

意图:以下是与一个AI研究助手的对话。

身份:助手的语气是技术性和科学性的。

我发现根据我对主题的熟悉程度调整描述是很有用的。例如,如果我对黑洞一无所知,我可以将第二句话,即身份,调整为更适合初学者的内容,比如:

身份:助手的回答应该易于理解,即使是一个孩子也能理解。

最后,我开始处理对话。这是我提出实际问题的地方。然而,注意到我可以通过扮演AI或人类的角色在这里嵌入更多的信息。在下面的例子中,我添加了更多关于人类的上下文,并从机器人那里请求了一个特定的行动(添加引用)。

//这个例子是从promptingguide.ai中采用的

描述:

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

对话:

人类:你好,你是谁?

AI:你好!我是一个AI研究助手。今天我能帮助你什么?

人类:你能告诉我关于黑洞的创造吗?你能引用我可以阅读的具体来源吗?我现在什么都不知道。

AI:

现在我们已经打好基础了,接下来将用这学期计算机科学课程的作业来验证它的可行性。

作业:问题1

将电话中使用的声音频率(300-3400 Hz)通过对语音音频信号的FFT应用带通滤波器来模拟。将滤波器的频率响应设置为在此范围内的频率为1,其他地方为0。在编程语言中实现这一点,并在时间和频率域中比较原始和过滤后的信号。

提示

对于这个问题,我使用了一个对话提示来设置YouChat,一个由You.com提供的对话式聊天机器人,执行的上下文和特定任务。通过赋予它一个文章写作AI的角色,我让它既能告诉我问题所询问的主题,也能使用库来生成代码。

以下是与一个AI计算机科学研究生的对话。学生的语气是技术性和信息性的。


人类:你好,你是谁?

AI:你好!我是一个AI计算机科学研究生。今天我能帮助你什么?

人类:你能帮我创建一篇关于如何使用numpy.fft.irfft和numpy.fft.rfftfreq创建带通滤波器的文章吗?文章能否将滤波器应用到一个名为"signal.mp3"的信号上,该信号在同一文件夹中,并使用ipython的Audio库来听输出信号?

AI:当然可以!还有其他事情吗?

人类:是的,你能创建一篇markdown格式的文章,包括如填充介绍、正文和结论的写作,以及包括代码片段和资源,以便告知读者关于这个问题的主题,并指导他们如何在代码中实现吗?

AI:


我想强调这个提示的几个重要方面。首先,我如何描述AI系统将决定输出的语言和复杂程度。这一点很重要,因为不同的身份更适合不同的任务。如果我在问一个人文问题,我会给AI分配一个哲学家或大学教授的角色。如果我在问一个我不熟悉的主题并希望了解,我会给AI分配一个中学教师或中学生的角色。

其次,AI的描述是现实的,是YouChat可以复制的,考虑到它的资源和知识。Cleo Nardo在“The Waluigi Effect”中最好地解释了AI如何解释一个不太现实的问题,遇到这类问题时更聪明的AI倾向于将其描述为虚构的东西,从而使它产生更可能生成错误答案的倾向。

编者:AI(特别是大型语言模型)在处理不太现实的问题时,可能会倾向于将问题视为虚构的,这就是所谓的“瓦路易吉效应”。然而,这种处理方式可能会导致AI生成错误的答案,这是它过于依赖其训练数据中的模式,而忽视了现实世界复杂性的结果。说白了,就是越聪明的AI在描述现实中不存在的事物时,越容易编瞎话。

GPT-4知道,如果[AI系统]被描述为"9000 IQ",那么这段文本不太可能是由一个诚实的叙述者写的。相反,叙述者可能在写小说,正如文学评论家Eliezer Yudkowsky所注意到的,被描述为聪明的虚构角色经常会犯非常愚蠢的错误。

最后,我设计了AI的任务/行为以更好地与我作为学生的需求相符。我想要回答问题所需的代码和算法的描述,如何解决问题,以及进一步调查的资源。再次,我在设置或描述文本的上下文中说明了这一点,以改变输出的内容。

输出(以下是YouChat的回应)

当然,我可以帮你做到这一点!这是一篇用markdown写的文章,解释了如何使用numpy.fft.irfft和numpy.fft.rfftfreq方法创建带通滤波器,以及如何使用IPython的Audio库将滤波器应用到音频信号上。我还包括了一些链接到相关的维基百科页面和其他资源,以帮助读者更好地理解这个主题。

<输出开始>

使用Numpy创建带通滤波器

介绍

带通滤波器是一种电子滤波器,它允许两个频率之间的信号通过,同时衰减这个范围之外的频率。在这篇文章中,我们将演示如何使用Python中的numpy.fft.irfft和numpy.fft.rfftfreq方法创建带通滤波器。

需求

要创建带通滤波器,我们需要以下内容:

Python(我们将使用Python 3)

NumPy库

IPython的Audio库

如果你没有安装这些库,你可以使用pip来安装它们。你可以通过运行pip install numpy来安装NumPy,使用命令!pip install ipython-soundfile来安装Audio库。

解释

这是创建带通滤波器并将其应用到名为"signal.mp3"的音频文件的代码,该文件保存在与脚本相同的目录中。

import numpy as np

import soundfile as sf

from IPython.display import Audio

# 读取音频文件

signal, Fs = sf.read('signal.mp3')

# 获取频率范围

freq = np.fft.rfftfreq(signal.size, 1/Fs)

# 创建滤波器掩码

mask = (freq > 300) & (freq < 3400)

# 应用滤波器

filtered_signal = np.fft.irfft(np.fft.rfft(signal) * mask)

# 播放输出信号

Audio(filtered_signal, rate=Fs)

在这段代码中,我们首先使用soundfile库读取音频文件。然后,我们使用np.fft.rfftfreq方法生成信号的频率范围。

然后,我们使用所需的频率范围创建滤波器掩码,这是一个numpy数组,它返回频率范围的True/False值。然后,我们使用元素乘法将这个掩码应用到傅里叶变换的信号上。

最后,我们使用numpy.fft.irfft方法执行反向傅里叶变换,以从频率域返回。

<输出结束>

作业:问题2

让我们再试一个问题。这次我试图完成一个非技术性的,更定性的问题,这是我健康和福祉课程的问题。

首先阅读鲁米的诗歌《客栈》,然后回答以下问题。

1. 你如何定义感恩?它的本质是什么?它在人的生活中有什么影响?

2. 鲁米的诗歌是如何强化在痛苦中感恩的思想的?

提示

对于提示,我仍然使用对话式提示格式;然而,注意意图和身份的区别。这个AI更专注于冥想和正念,它的回应具有更哲学的性质。

AI是一名在美国大学学习心理学的学生,回答有关冥想、正念和健康的问题。AI的语气是深思熟虑和哲学的。

人类:首先阅读Rumi的诗《客栈》,然后回答以下问题。

1. 你如何定义感恩?它的基本特征是什么,它在人的生活中有什么影响?

2. Rumi的诗如何强化从苦难中唤起的感恩的观念?

AI:


<输出开始>

这是Rumi的诗《客栈》:

这个人类的存在就像一个客栈。

每天早晨都有新的到来。

一种喜悦,一种沮丧,一种卑鄙,

某种瞬间的意识来了

作为一个意想不到的访客。

欢迎并招待他们所有人!

即使他们是一群悲伤,

他们猛烈地扫空你的房子

空出它的家具,

仍然,尊重每一个客人。

他可能正在清理你

为了一些新的快乐。

黑暗的思想,羞耻,恶意,

在门口笑着迎接他们,

并邀请他们进来。

对于谁来都要感恩,

因为每一个都被送来

作为一个来自彼岸的向导。

  1. 感恩可以被定义为对自己所拥有的,即使在困难或挑战面前,也感到感谢和欣赏的状态。它的基本特征包括认识到自己生活和环境的积极方面,培养一种观点,并承认他人对自己幸福的贡献。感恩在人的生活中的影响可以包括增强的韧性,改善与他人的关系,以及更大的幸福和快乐感。
  2. Rumi的诗强化了从苦难中唤起的感恩的观念,因为它认识到困难的经历可以作为指导和教师。通过欢迎所有的经历,即使是那些具有挑战性或痛苦的经历,人们可以从中学习和成长。因此,这首诗暗示即使是苦难也可以成为感恩和智慧的源泉,帮助我们更加欣赏生活的快乐。

<输出结束>

我首先要注意这个问题中描述的重要性。如果我不提供AI机器人的意图和身份,它就不会有相同的能力,也不会以我希望的方式回应,如下面所示。这就好像提示已经解锁了YouChat以一种复杂的方式阅读和解释诗歌的能力。

如果我将描述修改得更加天真,我们可以看到它限制了其阅读和解释诗歌的能力。语言和答案也似乎更简单,更适合经验较少的观众。当我试图学习新概念时,这种类型的描述对修改特别有用。我也喜欢YouChat能够生成网页链接,帮助不了解的用户对主题进行更多的研究。这很重要,因为每当我阅读关于新主题的内容时,我都想对AI进行事实检查,以确保它不会生成错误的内容。

结论

正如你所看到的,我能够通过AI生成响应,该响应还包括了正确的代码从而来完成我的作业,响应中还包括了编写语法/格式,解释代码,以及提供源/进一步阅读。我还能让YouChat以复杂的方式阅读和解释诗歌,这要归功于对话式提示工程。虽然YouChat在两种情况下都做了大部分的工作,但我需要告诉它必须使用哪些库,以及对滤波器有足够多的了解,才能理解我的提示,这证明了不是AI将取代工人,而是使用AI的工人将取代不使用AI的工人。

我不仅完成了我的作业,而且提供的信息和链接也帮助了我的学习,这是我使用聊天搜索引擎而不是传统的生成性聊天AI的主要原因之一。YouChat的另一个酷炫的功能是它有一个很好的StackOverflow集成,可以提供相关的帖子和更新的搜索引擎结果。

这些特性结合在一起,改变了我处理工作和学习的方式,使我更加高效,提供了更多的资源。随着我转向工作岗位,以及这项技术的进步,我很期待看到AI和工人之间的互动如何发展。有一点可以肯定,我将位于这些进步的前沿,你也应该如此。

译者介绍

崔皓,51CTO社区编辑,资深架构师,拥有18年的软件开发和架构经验,10年分布式架构经验。

原文标题:The Art of Prompt Engineering: How AI Helps Me Do My Homework,作者:Oscar Daum