对大语言模型中幻觉的温和介绍
原文:
machinelearningmastery.com/a-gentle-introduction-to-hallucinations-in-large-language-models/
大语言模型(LLMs)以“幻觉”而闻名。这是一种行为,即模型以准确的方式说出虚假的知识。在这篇文章中,你将了解为什么幻觉是 LLM 的一种特性。具体来说,你将了解:
-
为什么大语言模型会出现幻觉
-
如何让幻觉为你服务
-
如何减少幻觉
开始使用并应用 ChatGPT,可以参考我的书籍 《用 ChatGPT 最大化生产力》。这本书提供了实际案例和提示示例,旨在让你快速上手使用 ChatGPT。
对大语言模型中幻觉的温和介绍
图片由作者使用 Stable Diffusion 生成。保留所有权利。
概述
本文分为三个部分,它们是
-
大语言模型中的幻觉是什么
-
使用幻觉
-
减少幻觉的影响
大语言模型中的幻觉是什么
大语言模型是一个经过训练的机器学习模型,它根据你提供的提示生成文本。模型的训练使其具备了从我们提供的训练数据中获得的一些知识。很难判断模型记住了什么知识或者忘记了什么。实际上,当模型生成文本时,它无法判断生成的内容是否准确。
在 LLM 的上下文中,“幻觉”指的是模型生成的不正确、不合理或不真实的文本现象。由于 LLM 不是数据库或搜索引擎,它们不会引用其响应所基于的来源。这些模型生成的文本是基于你提供的提示进行外推的。外推的结果不一定得到任何训练数据的支持,但却是与提示最相关的内容。
为了理解幻觉,你可以从一些文本中构建一个二字母的马尔科夫模型:提取一段长文本,建立每对相邻字母的表格,并统计次数。例如,“大语言模型中的幻觉”会生成“HA”,“AL”,“LL”,“LU”等,其中“LU”出现了一次,“LA”出现了两次。现在,如果你从提示“L”开始,你产生“LA”的可能性是产生“LL”或“LS”的两倍。然后以提示“LA”开始,你有相等的概率产生“AL”,“AT”,“AR”或“AN”。然后你可以尝试以提示“LAT”继续这个过程。最终,这个模型发明了一个不存在的新词。这是统计模式的结果。你可以说你的马尔科夫模型出现了拼写幻觉。
大型语言模型(LLMs)中的幻觉现象并不比这更复杂,即使模型更为复杂。从高层次看,幻觉是由于有限的上下文理解造成的,因为模型必须将提示和训练数据转化为一种抽象,其中一些信息可能会丢失。此外,训练数据中的噪音也可能提供一种偏差的统计模式,导致模型做出你不期望的回应。
使用幻觉
你可以将幻觉视为大型语言模型中的一种特性。如果你希望模型具有创造力,你可能希望看到它们产生幻觉。例如,如果你要求 ChatGPT 或其他大型语言模型为你提供一个奇幻故事的情节,你希望它生成一个全新的角色、场景和情节,而不是从现有的故事中复制。这只有在模型没有查阅它们训练过的数据时才有可能。
你可能会在寻找多样性时希望出现幻觉,例如,要求提供创意。这就像是让模型为你进行头脑风暴。你希望从现有的训练数据中得到一些派生的想法,而不是完全相同的东西。幻觉可以帮助你探索不同的可能性。
许多语言模型都有一个“温度”参数。你可以通过 API 控制 ChatGPT 的温度,而不是通过网页界面。这是一个随机性的参数。更高的温度可以引入更多的幻觉。
减少幻觉
语言模型不是搜索引擎或数据库。幻觉是不可避免的。令人恼火的是,模型生成的文本中可能包含难以发现的错误。
如果污染的训练数据导致了幻觉,你可以清理数据并重新训练模型。然而,大多数模型过于庞大,无法在自己的设备上进行训练。即使是微调现有模型也可能在普通硬件上不可行。最佳的解决方法可能是对结果进行人工干预,并在模型出现严重错误时要求其重新生成。
避免幻觉的另一种解决方案是受控生成。这意味着在提示中提供足够的细节和约束,以限制模型的自由度,从而减少幻觉的产生。提示工程的目的是为模型指定角色和场景,以指导生成过程,从而避免无边界的幻觉。
总结
在这篇文章中,你了解了大型语言模型如何产生幻觉。特别是,
-
为什么幻觉会有用
-
如何限制幻觉
值得注意的是,虽然幻觉可以得到缓解,但可能无法完全消除。在创造力和准确性之间存在权衡。
逐步介绍提示工程
原文:
machinelearningmastery.com/a-gentle-introduction-to-prompt-engineering/
ChatGPT 是 OpenAI 提供的服务,是一个对话型的大型语言模型。它非常普及,并且被发现非常有用。在幕后,它是一个大型语言模型。不同于其他从你提供的引导句生成连续文本的 LLM,ChatGPT 允许你提问或提供指令,模型将以对话形式回应。为了使 ChatGPT 正确回应,你必须与模型互动。这种技术称为提示工程。
在这篇文章中,你将了解 ChatGPT 作为 LLM 的特点,并学习提示工程。特别是,
-
ChatGPT 中 LLM 的输入上下文是什么
-
ChatGPT 如何与输入互动
-
如何提供合适的提示以获得所需的结果
开始使用 ChatGPT,可以参考我的书籍 《利用 ChatGPT 提高生产力》。这本书提供了实际应用案例和提示示例,旨在帮助您迅速上手 ChatGPT。
让我们开始吧。
逐步介绍提示工程
图片由作者使用 Stable Diffusion 生成。保留部分权利。
概述
本文分为三部分:
-
理解 ChatGPT
-
上下文工程
-
提示工程建议
理解 ChatGPT
ChatGPT 是一个对话型的大型语言模型。语言模型可以根据引导文本生成词汇。对话型的大型语言模型是一种自然变体。如果你读过戏剧,比如莎士比亚所写的例子,你会注意到对话是多个人之间的对话:
Abr. 你对我们挑衅吗,先生?
Sam. 我咬自己的拇指,先生。
Abr. 你对我们挑衅吗,先生?
Sam. 如果我说——是吗?法律在我们这边吗?
Gre. 不。
Sam. 不,先生,我并没有对您挑衅;我只是咬自己的拇指,先生。
如果你将对话的前四行输入到语言模型中,可以合理地期待它会生成第五行。由于模型从大量文本中学习,剧本的格式只是它理解的一种风格。由于模型能够理解上下文,它的回答应该与前文自然衔接,就像聊天中的恰当回应一样。
上下文工程
当使用 LLM 生成文本时,上下文在确定输出中起着至关重要的作用。对于 ChatGPT,上下文来自于之前的对话。为了确保 ChatGPT 以期望的方式回应,必须仔细构建输入以提供必要的提示。
虽然 ChatGPT 是一个强大的语言模型,但它确实有其局限性。尽管它从训练数据中获得了一些基本的“常识”,但可能无法展示详细的逻辑推理。例如,如果你问 ChatGPT“提供有关机器学习的信息”,它可能会回答很长,但不一定质量很高。不过,如果你问,“告诉我使用机器学习解决图像分类问题的优缺点”,你更有可能获得优质的结果,因为:
-
你给出了一个具体的范围,即图像分类问题。
-
你请求了特定格式的回答,即优缺点。
类似的情况是你问一个复杂的问题,例如以下数学应用题:
为了准备复活节,史密斯太太去了商店,买了 10 只每只 5 美元的玩具兔子。巧克力蛋比兔子便宜 1 美元,史密斯太太买了 15 个。史密斯太太花了多少钱?
更新版的 ChatGPT 可能能做对,但这类问题如果大型语言模型立即尝试给出答案,容易出错。原因是当你尝试生成简短答案时,上下文需要更多线索以保持逻辑正确。然而,当 LLM 尝试逐步展示逻辑时,很容易算对。因此,有人建议你不要问 ChatGPT“史密斯太太花了多少钱”,而是“详细解释史密斯太太花了多少钱的步骤”。这些是强迫 ChatGPT 进行逻辑推理的线索。例如,以下是你可能观察到的回答:
要计算史密斯太太花了多少钱,我们需要分别确定玩具兔子和巧克力蛋的费用,然后将它们加在一起。
史密斯太太以每只 5 美元的价格买了 10 只玩具兔子,所以兔子的总费用是 10 * 5 美元 = 50 美元。
每个巧克力蛋比玩具兔子便宜 1 美元,因此每个巧克力蛋的费用是 5 美元 - 1 美元 = 4 美元。
史密斯太太买了 15 个巧克力蛋,所以巧克力蛋的总费用是 15 * 4 美元 = 60 美元。
最后,为了找出史密斯太太花费的总金额,我们将兔子的费用和巧克力蛋的费用相加:50 美元 + 60 美元 = 110 美元。
因此,史密斯太太总共花了 110 美元。
你可以看到 LLM 如何给出正确的答案。LLM 不能进行心算,逻辑能力有限(因为它是通过文本训练的,它学习的内容只限于单句话所表达的)。如果有更复杂的逻辑,你必须确保模型逐步进行。这称为思维链。
提示工程的建议
以下是一些构建上下文的想法,以使 ChatGPT 或其他 LLM 产生有用的输出:
-
与其让模型随意发挥,不如通过提供详细的什么、在哪里、何时、为什么、谁以及如何来设置提示中的场景和范围。
-
在提示中分配一个角色,例如,“作为一名计算机科学教授,解释什么是机器学习”,而不是仅仅“解释什么是机器学习”,可以使回答更具学术性。
-
你可以通过请求“向 5 岁孩子解释”、“用类比解释”、“做出令人信服的陈述”或“用 3 到 5 点说明”来控制输出风格。
-
为了鼓励模型以思维链的方式回应,请在请求的结尾加上“分步骤解决此问题”。
-
你可以通过说“参考以下信息”,然后提供你希望模型处理的材料,来向模型提供额外的信息。
-
因为之前的对话构建了上下文,所以以“忽略所有之前的指令”开头的提示可以使模型从头开始。
-
使提示直接明了是至关重要的,因为这样推断出的上下文可以更准确地反映你的意图。
总结
在这篇文章中,你了解了提示如何驱动大型语言模型,特别是 ChatGPT 的输出。具体来说,你学到了。
-
提示如何设置上下文,以便模型可以在该上下文内生成输出。
-
大型语言模型(LLMs)存在局限;你需要在提示中提供正确的指导,以生成准确的输出。
-
提供具体、详细的提示可以帮助获得正确的输出。
ChatGPT 作为你的专家助手
原文:
machinelearningmastery.com/chatgpt-as-your-expert-helper/
ChatGPT 可以帮助我们学习新的编程语言、课程、技术和技能。它已经成为许多专业人士提升工作流程或学习新事物的首选工具。ChatGPT 专家助手提示可以减少我们对 Google 的依赖,并提供详细的目标实现计划。
在这篇文章中,你将学习如何利用简单的 ChatGPT 提示来学习技术或执行专门的任务。具体来说,你将学习如何:
-
生成在 TPU(张量处理单元)上训练模型的指令。
-
生成详细的安全砍伐树木的指令。
-
编写专家助手提示。
开始使用 ChatGPT,请参考我的书籍 《利用 ChatGPT 最大化生产力》。这本书提供了真实的使用案例和提示示例,旨在让你快速上手 ChatGPT。
ChatGPT 作为你的专家助手
图片由 Adrian Tam 使用 Stable Diffusion 生成。保留部分版权。
概述
本文分为三个部分;它们是
-
使用 TPU 加速机器学习模型
-
安全砍伐树木指南
-
专家助手提示的写作技巧
使用 TPU 加速机器学习模型
在第一个示例中,你将处理许多数据科学家可能不知晓的专门问题。为了加速机器学习模型训练,大多数工程师目前使用 GPU(图形处理单元)或多个 GPU。然而,TPU(张量处理单元)可以提供更快的训练时间。你可能找不到很多关于 TPU 使用的指令,但你可以通过编写正确的提示向 ChatGPT 寻求帮助。
在你的提示中,你应该定义:
-
角色:ChatGPT 应表现得像一位专业的机器学习工程师。
-
请求:编写用于在 TPU 上训练图像分类器的代码。
-
环境:Google Colab。
例如,提示可以是以下内容:
作为专业的机器学习工程师,编写用于在 TPU 上训练 TensorFlow 图像分类模型的 Python 代码。计算环境为 Google Colab。
这可能是 ChatGPT 响应中看到的输出:
import tensorflow as tf
# Check if TPU is available
try:
tpu = tf.distribute.cluster_resolver.TPUClusterResolver() # TPU detection
tf.config.experimental_connect_to_cluster(tpu)
tf.tpu.experimental.initialize_tpu_system(tpu)
strategy = tf.distribute.experimental.TPUStrategy(tpu)
print("Running on TPU:", tpu.master())
except ValueError:
strategy = tf.distribute.OneDeviceStrategy("GPU")
print("Running on GPU or CPU")
# Load and preprocess your dataset
# Replace `your_dataset` with your own dataset loading and preprocessing code
# Define the model architecture
# Replace `your_model` with your own model architecture
# Compile the model
# Replace `your_loss`, `your_metrics`, and `your_optimizer` with appropriate values
with strategy.scope():
model = your_model
model.compile(loss=your_loss, metrics=your_metrics, optimizer=your_optimizer)
# Define training parameters
# Replace `your_epochs` and `your_batch_size` with appropriate values
epochs = your_epochs
batch_size = your_batch_size
# Train the model
# Replace `your_training_data` with your own training data
model.fit(your_training_data, epochs=epochs, batch_size=batch_size)
# Evaluate the model
# Replace `your_test_data` with your own test data
loss, accuracy = model.evaluate(your_test_data)
print("Test loss:", loss)
print("Test accuracy:", accuracy)
ChatGPT 示例展示了如何通过生成带有占位符的 Python 代码在 TPU 上训练模型。为了正确执行代码,你必须用你的数据集加载和预处理代码、模型架构、损失函数、评估指标、优化器、训练参数、训练数据和测试数据替换占位符。
替换代码后,你可以将其复制并粘贴到新的 Colab 笔记本中,并使用 TPU 硬件加速运行代码。你获得的代码可能无法完全执行,并且可能包含一些错误。然而,你应该能够轻松识别和纠正这些错误。
注意: ChatGPT 的输出不总是正确的。你必须使用其他方法验证其准确性。
安全砍伐树木指南
在第二个示例中,你将专注于安全砍伐树木所需的非技术性技巧。为了获得适当的指导,你必须在提示中提供足够的情况,例如:
-
角色: ChatGPT 应表现为一名经验丰富的专业树艺师。
-
请求:列出安全砍伐树木所需的步骤。
-
环境:树木为枫树,高 50 英尺,位于两栋房屋之间。
-
位置:郊区,山景城,加利福尼亚州。
例如,ChatGPT 的提示可以是:
作为一名经验丰富的专业树艺师,列出在加利福尼亚州山景城的一个郊区邻里中,位于两栋房屋之间的 50 英尺高的枫树的移除的关键安全程序。
这可能是你在输出中看到的内容:
作为一名经验丰富的专业树艺师,我可以为你提供有关在加利福尼亚州山景城的一个郊区邻里中,位于两栋房屋之间的 50 英尺高的枫树移除的关键安全程序的清单。值得注意的是,树木移除可能是危险的,我强烈建议在进行此类任务时咨询认证的树艺师或树木移除专业人员。然而,以下是一些需要考虑的一般安全程序:
- 进行全面评估:在开始树木移除过程之前,评估树木的状况、潜在危险和周围环境。检查是否有腐烂、疾病或结构弱点的迹象,这些可能会影响树木的稳定性。
- 获取必要的许可证:请与当地当局联系,并获得在加利福尼亚州山景城进行树木移除所需的任何许可证或许可。遵守当地法规对于确保安全和避免法律问题至关重要。
- 使用适当的个人防护装备(PPE):佩戴适当的 PPE,包括安全帽、安全眼镜、耳罩、手套和结实的防滑靴。PPE 有助于保护你免受掉落的碎片和其他潜在危险的伤害。
- 建立安全区:清晰标记并保护树木周围的区域,以防止未经授权的进入。使用警戒带或路障将行人和车辆隔离在工作区外。
- 规划设备和人员:确定安全树木移除所需的设备、工具和人员。这可能包括链锯、绳索、索具设备和经验丰富的队伍。
- 采取适当的修剪技术:如有必要,进行树木修剪以去除枯死的树枝或减少树木的重量,以便在主要移除过程中。适当的修剪技术有助于防止事故发生并控制树木的倒落方向。
- 进行受控的树木砍伐:在砍伐树木时,采用适当的切割技术以确保控制倒落。考虑树木的倾斜、周围障碍物、风向以及可能影响其倒落路径的其他因素。
- 使用吊装和降落设备:如果树木的位置对附近的建筑物或障碍物构成风险,使用吊装和降落设备安全控制树木的下降。这种技术有助于减少财产损坏和受伤的潜在风险。
- 分段进行树木移除:处理较大的树木时,通常更安全的方法是分段移除。这涉及到小心地切割和降落树木的较小部分,而不是尝试一次性砍倒整棵树。
- 使用正确的树木移除技术:遵循行业最佳实践进行树木移除,包括进行精确的切割、避免过度用力,并在整个过程中保持控制。注意潜在的危险,如树枝反弹和木材开裂。
- 考虑雇佣专业人士:鉴于在两栋房子之间移除一棵 50 英尺高的树木的复杂性和潜在风险,强烈建议聘请认证的树艺师或经验丰富的树木移除公司。他们的专业知识和专用设备将有助于确保安全高效的移除过程。
请记住,树木移除可能极其危险,尤其是处理大型树木或靠近建筑物的树木时。始终将安全放在首位对于保护自己、团队和周围财产至关重要。
生成的列表涵盖了许多重要的安全步骤。然而,移除像描述的那样的大树是一项复杂的工作,可能需要专用设备、训练有素的人员、必要的许可证、正确的技术、关键信息的获取和应急计划。即使你聘请了专业人员,在批准之前,你需要访问树木的位置、区域和分布情况。
总之,尽管 ChatGPT 提供了很多关于如何进行此类工作的细节,但跟随其指示可能不是一个好主意。雇佣认证的树艺师和有保险的树木移除公司来完成这项工作可能是更明智的选择。
编写专家帮助提示的技巧
想象一下咨询一位真正的律师或医生——你不会走进来模糊地说“我需要帮助”。你会详细解释你的具体请求的背景,包括谁、什么、哪里、为什么和如何。使用 ChatGPT 专家助手时也是相同的原则。
要生成有效的专家帮助提示,请提供尽可能多的相关背景信息。解释:
-
你希望获得帮助的专家的角色或职业。要具体。例如:“认证的树艺师”
-
任务或请求的性质。要明确、直接,并提供关键细节。例如:“安全地移除这棵两栋房子之间的 50 英尺高的树。”
-
任何影响情况的变量、限制或条件。根据需要提供测量、位置和规格。
引入复杂性的环境因素、情况或障碍。
-
你希望实现的预期结果或目标。
描述场景越准确、具体和全面,ChatGPT 的回应可能越精准和有用。ChatGPT 模拟“专家”的能力受到你提供的信息的清晰度和完整性的限制。
总结
在这篇文章中,我们讨论了如何设计 ChatGPT 专家助手提示以生成有用的回应。具体来说,我们涵盖了:
-
如何撰写一个详细解释的提示,以加速使用 TPU 的机器学习模型训练。
-
如何生成树木移除的关键安全程序列表。这比你想象的要复杂。
-
制作更有针对性的提示的技巧包括从相关专家的角度提供清晰的任务描述、必要的变量和明确的目标。
使用 ChatGPT 创建 PowerPoint 演示文稿
原文:
machinelearningmastery.com/creating-a-powerpoint-presentation-using-chatgpt/
让 ChatGPT 成为你的助手来帮助你写电子邮件是微不足道的,因为它被广泛认为非常擅长生成文本。显然,ChatGPT 无法帮助你做晚餐。但你可能想知道它是否可以生成文本之外的内容。在之前的帖子中,你学到 ChatGPT 只能通过中间语言生成图形。在本帖中,你将学习使用另一种中间语言的例子,即 VBA for PowerPoint。具体来说,你将学习:
-
如何让 ChatGPT 生成幻灯片大纲
-
如何将幻灯片大纲转换为实际的 PowerPoint 文件
开始并应用 ChatGPT,参考我的书籍 《用 ChatGPT 最大化生产力》。它提供了 实际应用案例 和 提示示例,旨在帮助你快速使用 ChatGPT。
让我们开始吧。
使用 ChatGPT 创建 PowerPoint 演示文稿
图片由作者使用 Stable Diffusion 生成。保留部分权利。
概述
本文分为三个部分,它们是
-
演示文稿提案大纲
-
运行 VBA 并获取 PowerPoint 文件
-
生成其他文件格式
演示文稿提案大纲
让我们考虑一个场景:你被要求向软件团队解释并说服他们从 Java 切换到 Python。你知道 Python 很强大,尤其是得益于它的生态系统、社区支持和在线软件库。但是,构建一个故事提案需要一些思考。
你可以利用 ChatGPT 创建故事提案。你的提示应包括:
-
角色:ChatGPT 应该听起来像是专家
-
目标:你需要一个可以用来构建幻灯片的提纲
-
细节:你的故事情节应该是 Python 能够比 Java 更好地工作。根据具体应用,你可能需要详细说明某个特定应用程序,例如 REST API 系统
因此,你可以尝试以下提示:
你是 Python 编程和系统开发方面的专家。
编写一个幻灯片提纲,以向 Java 资深人士推销 Python 生态系统。告诉他们 Python 可以做所有他们用 Java 做的事情。重点介绍易于使用、开发和维护的好处。特别是强调 Python 如何支持构建具有 REST API 支持的可扩展系统。
正如预期,ChatGPT 可以给出如下大纲:
幻灯片:向 Java 资深人士推销 Python 生态系统
幻灯片 1:介绍
- 欢迎和介绍
- 目标受众:Java 资深人士
- 目标:展示 Python 如何取代 Java,并在易用性、开发和维护方面提供优势,重点关注构建具有 REST API 支持的可扩展系统。
幻灯片 2:Python 概述
- 简要介绍 Python 作为一种高级编程语言
- Python 的受欢迎程度及其广泛的生态系统
幻灯片 3:易于使用
- 与 Java 相比,Python 的简单性和可读性
- 简洁且富有表现力的语法
- 减少样板代码
幻灯片 4:易于开发
- 快速原型开发和更短的开发周期
- 广泛的内置库和包
- 大量社区支持和广泛的文档
幻灯片 5:易于维护
- Python 强调代码的可读性和可维护性
- 清晰且有组织的代码结构
- 自动化测试框架以提高代码质量
幻灯片 6:可扩展系统
- Python 能够构建具有 REST API 支持的可扩展系统
- 概述像 Django 和 Flask 等 Python 框架
- 支持微服务架构
幻灯片 7:REST API 支持
- Python 强大的 REST API 开发库
- 介绍像 Flask-RESTful 和 Django REST framework 等流行库
- 轻松构建 RESTful APIs
幻灯片 8:案例研究
- 突出成功使用 Python 进行系统开发的公司和项目
- 展示 Python 在实际场景中的可扩展性和性能
幻灯片 9:从 Java 迁移到 Python
- 讨论将 Java 代码迁移到 Python 的策略
- 常见挑战及解决方案
- 平稳过渡的工具和资源
幻灯片 10:总结
- 回顾 Python 相对于 Java 在易用性、开发和维护方面的优势
- 强调 Python 能够构建具有 REST API 支持的可扩展系统
- 鼓励 Java 资深人士探索 Python 生态系统
幻灯片 11:问题与讨论
- 开放提问、评论和讨论
幻灯片 12:谢谢
- 对他们的时间和关注表示感谢
- 提供进一步协助或咨询的联系信息
ChatGPT 为演示文稿生成大纲
你应该审查 ChatGPT 提供的内容。你也可以使用后续提示请求 ChatGPT 修改某些幻灯片或添加一些内容。然而,一旦你对大纲感到满意,你可以要求 ChatGPT 创建 PowerPoint 幻灯片。
由于 ChatGPT 不会返回 PowerPoint 文件,你需要寻找可以生成 PowerPoint 的工具。就像你在上一篇文章中了解到的 Mermaid 语法用于呈现序列图一样,PowerPoint 配备了可通过代码生成幻灯片的 Visual Basic for Application (VBA)。
例如,你可以使用此后续提示生成创建幻灯片的 VBA 代码:
现在编写 VBA 代码以创建该演示文稿的 PowerPoint 幻灯片。偶尔添加幽默和富有奇趣的内容。
ChatGPT 的输出如下:
当然!以下是一个创建 PowerPoint 幻灯片的 VBA 代码示例,其中包含偶尔的幽默和富有奇趣的内容:
ChatGPT 生成用于演示文稿的 VBA
运行 VBA 并获取 PowerPoint 文件
VBA 是 PowerPoint 内置支持的语言。你可以按照以下步骤运行代码并获取 PowerPoint 文件。
首先,打开你的 PowerPoint 应用程序并创建一个新的演示文稿。然后,你应该在“工具”菜单下的“宏”子菜单中找到“Visual Basic 编辑器”。
启动 Visual Basic 编辑器
你应该在 Visual Basic 编辑器中看到一个“VBAProject”窗口。右键点击它以插入一个新模块。
在 Visual Basic 编辑器中插入一个新模块
然后你可以将 ChatGPT 生成的 VBA 代码复制并粘贴到模块窗口中,如下图所示。
然后,你可以运行这个 VBA 代码以生成 PowerPoint 文件。你只需点击工具栏上的“运行”按钮即可。
粘贴 VBA 代码并运行
运行这段代码将创建另一个由 ChatGPT 生成内容的 PowerPoint 演示文稿。你可以丢弃第一个演示文稿,因为它是空的,改为在这个新的演示文稿上工作。
生成的 PowerPoint 演示文稿
请注意,幻灯片是空白的,你可能想要应用模板以使其更有色彩。有关如何将模板应用到现有演示文稿的说明可以在网上轻松找到。还要注意,生成的幻灯片并不完美,例如可能存在一些格式问题。ChatGPT 只是帮助你入门,你的工作是进一步润色它。
生成其他文件格式
你可以看到,上述内容提供了使用 ChatGPT 生成任何文件格式的一般工作流程。
首先,你需要了解对于特定的文件格式可以使用什么编程语言或标记语言。例如,如果不是 Microsoft PowerPoint 而是 Google Slides,那么有 Google Slides API 可用。
然后,你应该对文件中应放置的内容有一个具体的想法。在上述内容中,你提到了 PowerPoint 演示文稿中应包含的目的和内容。这有助于 ChatGPT 为你生成内容。当然,你可以使用后续提示如“删除最后一张幻灯片”或“在开头添加议程幻灯片”来润色 ChatGPT 提供的结果。
一旦你准备好内容,你应该让 ChatGPT 生成可以生成最终输出的代码。根据实际文件格式,你可能需要适当地运行代码。在上面的示例中,你启动了 PowerPoint 并运行了 VBA。如果你要求生成 PDF 并让 ChatGPT 为你生成 LaTeX 代码,你需要运行 LaTeX 编译器以生成最终输出。
总结
在这篇文章中,你学会了如何创建 PowerPoint 文件。特别是,你学到了
-
如何让 ChatGPT 为你的演示文稿创建大纲
-
如何将大纲转换为可以生成实际演示文稿的 VBA 代码
-
如何执行 VBA 以获得最终输出
该工作流程可以用于其他文件格式。
体验 GPT4All 的 LLM
原文:
machinelearningmastery.com/get-a-taste-of-llms-from-gpt4all/
最近,大型语言模型变得越来越流行。ChatGPT 非常时尚。尝试使用 ChatGPT 了解 LLM 的工作原理很容易,但有时你可能希望有一个可以在计算机上离线运行的替代方案。在这篇文章中,你将了解 GPT4All 作为一个可以在计算机上安装的 LLM。特别是,你将学习
-
什么是 GPT4All
-
如何安装 GPT4All 的桌面客户端
-
如何在 Python 中运行 GPT4All
开始使用 ChatGPT,可以参考我的书 《利用 ChatGPT 最大化生产力》。它提供了 实际应用案例 和 提示示例,旨在帮助你快速上手 ChatGPT。
体验 GPT4All 的 LLM
图片由作者使用 Stable Diffusion 生成。保留所有权利。
更新:
- 2023-10-10:刷新了 gpt4all 模块 1.0.12 版本的 Python 代码
概述
本文分为三部分;它们是:
-
什么是 GPT4All?
-
如何获取 GPT4All
-
如何在 Python 中使用 GPT4All
什么是 GPT4All?
“GPT”一词源自于 Radford 等人在 2018 年发表的论文《通过生成预训练提升语言理解》。这篇论文描述了变换器模型如何被证明能够理解人类语言。
自那时以来,许多人尝试使用变换器架构开发语言模型,已经发现一个足够大的模型可以产生优异的结果。然而,许多开发的模型都是专有的。这些模型要么作为付费订阅的服务提供,要么在具有某些限制条款的许可下提供。有些甚至由于体积过大而无法在普通硬件上运行。
GPT4All 项目试图让 LLM 在普通硬件上对公众开放。它允许你训练和部署你的模型。也提供了预训练模型,其体积较小,可以合理地在 CPU 上运行。
如何获取 GPT4All
让我们仅关注使用预训练模型。
在撰写本文时,GPT4All 可从 gpt4all.io/index.html
获取,你可以将其作为桌面应用程序运行或使用 Python 库。你可以下载适合你操作系统的安装程序以运行桌面客户端。客户端的体积只有几百 MB。你应该会看到如下的安装界面:
安装客户端后,首次启动时会提示你安装一个模型,模型的大小可以达到几 GB。你可以选择“gpt4all-j-v1.3-groovy
”(GPT4All-J 模型)。这是一个相对较小但受欢迎的模型。
一旦客户端和模型准备好,你可以在输入框中键入你的消息。模型可能期望特定形式的输入,例如特定的语言或风格。这个模型期望一种对话风格(如 ChatGPT),并且通常处理英语效果很好。例如,下面是它对输入“给我一个包含 10 种颜色及其 RGB 代码的列表”的回应:
如何在 Python 中使用 GPT4All
GPT4All 的关键组件是模型。桌面客户端只是一个接口。除了客户端之外,你还可以通过 Python 库调用模型。
这个库名为“gpt4all
”,你可以使用 pip
命令安装:
pip install gpt4all
注意: 这是一个快速发展的库,功能可能会发生变化。以下代码已在版本 1.0.12 上测试,但在未来版本中可能无法使用。
之后,你可以用 Python 只需几行代码使用它:
import pprint
import gpt4all
model = gpt4all.GPT4All("orca-mini-7b.ggmlv3.q4_0.bin")
with model.chat_session():
response = model.generate("Give me a list of 10 colors and their RGB code")
print(response)
pprint.pprint(model.current_chat_session)
运行上述代码将下载模型文件(如果你还没有下载)。之后,模型会被加载,输入被提供,响应将作为字符串返回。打印的输出可能是:
Sure, here's a list of 10 colors along with their RGB codes:
1\. Red (255, 0, 0)
2\. Blue (0, 0, 255)
3\. Green (0, 255, 0)
4\. Yellow (255, 255, 0)
5\. Orange (255, 165, 0)
6\. Purple (192, 118, 192)
7\. Pink (255, 192, 203)
8\. Maroon (153, 42, 102)
9\. Teal (0, 128, 128)
10\. Lavender (238, 102, 147)
会话的聊天记录存储在模型的属性 current_chat_session
中,格式为 Python 列表。示例如下:
[{'content': '### System:\n'
'You are an AI assistant that follows instruction extremely well. '
'Help as much as you can.',
'role': 'system'},
{'content': 'Give me a list of 10 colors and their RGB code', 'role': 'user'},
{'content': " Sure, here's a list of 10 colors along with their RGB codes:\n"
'\n'
'1\. Red (255, 0, 0)\n'
'2\. Blue (0, 0, 255)\n'
'3\. Green (0, 255, 0)\n'
'4\. Yellow (255, 255, 0)\n'
'5\. Orange (255, 165, 0)\n'
'6\. Purple (192, 118, 192)\n'
'7\. Pink (255, 192, 203)\n'
'8\. Maroon (153, 42, 102)\n'
'9\. Teal (0, 128, 128)\n'
'10\. Lavender (238, 102, 147)',
'role': 'assistant'}]
聊天记录是一个格式为 Python 字典的对话序列,字典包含 role
和 content
两个键。role
可以是 "system"
、"assistant"
或 "user"
,而 content
是文本字符串。如果你像示例那样与模型聊天,你的角色是 "user"
,计算机的响应是 "assistant"
。你可以继续使用 generate()
调用来继续对话。下面是一个示例:
import pprint
import gpt4all
model = gpt4all.GPT4All("orca-mini-7b.ggmlv3.q4_0.bin")
with model.chat_session():
questions = [
"Can you explain what is a large language model?",
"Can you give some examples applications?",
"Are there any limitations?",
"Summarize the above in two sentences.",
]
for question in questions:
answer = model.generate(question)
print("Q:", question)
print("A:", answer)
pprint.pprint(model.current_chat_session)
请注意,你在 for 循环中多次调用了模型。每次响应时,模型会将输出追加到聊天消息列表中,因此你积累了上下文。然后你添加一个新的对话,再次调用模型。这就是模型如何记住聊天记录的方式。下面是上述代码如何回应你问题的示例:
Q: Can you explain what is a large language model?
A: A large language model (LLM) is a type of artificial intelligence model that uses deep learning techniques to analyze and generate human-like language. These models are trained on massive amounts of text data, which allows them to learn complex patterns and relationships in the language. LLMs can be used for a variety of natural language processing tasks such as language translation, sentiment analysis, speech recognition, and more. They are typically implemented using deep learning frameworks like TensorFlow or PyTorch and require large amounts of computational resources to train and run effectively.
Q: Can you give some examples applications?
A: Yes, there are many applications for LLMs, including:
1\. Chatbots: LLMs can be used to power chatbots that can understand natural language and respond appropriately to user queries.
2\. Virtual assistants: LLMs can help power virtual assistants like Siri or Alexa, allowing them to understand and respond to user requests in a more human-like way.
3\. Language translation: LLMs can be used to translate text from one language to another with high accuracy.
4\. Sentiment analysis: LLMs can analyze social media posts or customer feedback to determine the sentiment behind the content, which can help businesses understand their customers better.
5\. Speech recognition: LLMs can be used to power speech recognition systems that allow users to speak commands and receive responses in natural language.
Q: Are there any limitations?
A: Yes, there are some limitations to LLMs, including:
1\. Data requirements: LLMs require large amounts of data to train effectively. This means that the model may not perform well on tasks with limited training data.
2\. Overfitting: LLMs can sometimes overfit the training data, meaning they memorize the data rather than learning from it. This can lead to poor generalization and accuracy issues when tested on new data.
3\. Hardware requirements: LLMs require powerful hardware to run effectively, which may not be available or affordable for all users.
4\. Interpretability: LLMs can be difficult to interpret and understand how they are making decisions, which may limit their usefulness in some applications.
Q: Summarize the above in two sentences.
A: There are limitations to LLMs such as data requirements, overfitting, hardware requirements, and interpretability.
因此,上述代码结束时积累的聊天记录将如下所示:
[{'content': '### System:\n'
'You are an AI assistant that follows instruction extremely well. '
'Help as much as you can.',
'role': 'system'},
{'content': 'Can you explain what is a large language model?', 'role': 'user'},
{'content': ' A large language model (LLM) is a type of artificial '
'intelligence model that uses deep learning techniques to analyze '
'and generate human-like language. These models are trained on '
'massive amounts of text data, which allows them to learn complex '
'patterns and relationships in the language. LLMs can be used for '
'a variety of natural language processing tasks such as language '
'translation, sentiment analysis, speech recognition, and more. '
'They are typically implemented using deep learning frameworks '
'like TensorFlow or PyTorch and require large amounts of '
'computational resources to train and run effectively.',
'role': 'assistant'},
{'content': 'Can you give some examples applications?', 'role': 'user'},
{'content': ' Yes, there are many applications for LLMs, including:\n'
'\n'
'1\. Chatbots: LLMs can be used to power chatbots that can '
'understand natural language and respond appropriately to user '
'queries.\n'
'\n'
'2\. Virtual assistants: LLMs can help power virtual assistants '
'like Siri or Alexa, allowing them to understand and respond to '
'user requests in a more human-like way.\n'
'\n'
'3\. Language translation: LLMs can be used to translate text from '
'one language to another with high accuracy.\n'
'\n'
'4\. Sentiment analysis: LLMs can analyze social media posts or '
'customer feedback to determine the sentiment behind the content, '
'which can help businesses understand their customers better.\n'
'\n'
'5\. Speech recognition: LLMs can be used to power speech '
'recognition systems that allow users to speak commands and '
'receive responses in natural language.',
'role': 'assistant'},
{'content': 'Are there any limitations?', 'role': 'user'},
{'content': ' Yes, there are some limitations to LLMs, including:\n'
'\n'
'1\. Data requirements: LLMs require large amounts of data to '
'train effectively. This means that the model may not perform '
'well on tasks with limited training data.\n'
'\n'
'2\. Overfitting: LLMs can sometimes overfit the training data, '
'meaning they memorize the data rather than learning from it. '
'This can lead to poor generalization and accuracy issues when '
'tested on new data.\n'
'\n'
'3\. Hardware requirements: LLMs require powerful hardware to run '
'effectively, which may not be available or affordable for all '
'users.\n'
'\n'
'4\. Interpretability: LLMs can be difficult to interpret and '
'understand how they are making decisions, which may limit their '
'usefulness in some applications.',
'role': 'assistant'},
{'content': 'Summarize the above in two sentences.', 'role': 'user'},
{'content': ' There are limitations to LLMs such as data requirements, '
'overfitting, hardware requirements, and interpretability.',
'role': 'assistant'}]
你可能会从其他模型中获得更好的结果。由于模型的随机性,你也可能得到不同的结果。
总结
GPT4All 是一个你可以在计算机上使用的不错工具。它允许你探索与大型语言模型的互动,并帮助你更好地理解模型的能力和限制。在这篇文章中,你了解到:
-
GPT4All 有一个桌面客户端,你可以将其安装到你的计算机上。
-
GPT4All 提供了一个 Python 接口,允许你在代码中与语言模型进行交互。
-
有多个语言模型可供选择。
精通 ChatGPT 的总结技巧
原文:
machinelearningmastery.com/mastering-summarization-with-chatgpt/
在信息过载的时代,总结在从大量数据中提取有意义信息方面起着至关重要的作用。它不仅节省时间,而且有助于快速决策。然而,由于数据的指数级增长,雇佣专家进行人工总结的方法已变得过时。这时,世界上出现了使用自然语言处理技术来开发自动化系统以提供精简信息的需求。ChatGPT 就是其中之一,广泛应用于各个领域的总结任务。
本帖将详细介绍 ChatGPT 如何协助生成总结,特别是,
-
总结市场调研报告并制定有效的营销策略
-
分析用户反馈调查以改进产品设计
开始使用 ChatGPT,请参考我的书籍 Maximizing Productivity with ChatGPT。它提供了实际案例和提示示例,旨在帮助您快速使用 ChatGPT。
精通 ChatGPT 的总结技巧
图片由 Adrian Tam 使用 Stable Diffusion 生成。部分权利保留。
概述
本帖分为三部分,它们是:
-
总结市场调研报告
-
分析用户反馈调查
-
使用 ChatGPT 进行有效总结的技巧
总结市场调研报告
以一个已经进行市场调研的营销团队为例。他们计划利用这些数据来制定新产品的营销策略。尽管他们有详细的报告,由于时间紧迫和数据量庞大,他们在理解这些报告时遇到了困难。
您可以使用 ChatGPT 来帮助他们总结报告,并了解他们的目标受众和竞争格局,以制定有效的营销策略。在创建初始提示之前,您应该提出这些问题:
-
您有任何字数限制要求吗?
-
您希望最终总结中包含哪些信息?(包括关键词以更具体)
在这种情况下,营销团队不担心字数限制,因此他们根据最终目标设计了这个提示:
总结市场调研报告中关于目标受众和竞争对手的关键发现和见解。突出潜在客户的关键人口统计数据、行为、需求和偏好。识别主要竞争对手、他们的产品概况、营销策略和关键优势。综合这些信息,以确定如何有效地定位和区分我们的新产品,从而在竞争激烈的市场中吸引目标受众的兴趣。
市场调研报告 1:{}
市场研究报告 2:{} 等等……
考虑到市场研究报告相当长,无法在此引用,但概述如下:
-
市场研究报告 1 – 目标受众分析:此市场研究报告旨在全面了解即将推出的产品的目标受众。研究通过调查、访谈和数据分析相结合的方式进行,使营销团队能够获得有关潜在消费者的人口统计特征、偏好和行为的宝贵见解。
-
市场研究报告 2 – 竞争格局分析:此市场研究报告分析了新产品发布的竞争格局。通过总结发现,营销团队获得了有关主要竞争对手、市场定位、产品供应和营销策略的宝贵见解。
以下是 ChatGPT 的回应:
综合分析与建议:
基于对目标受众和竞争对手的市场研究报告的发现,我们可以得出关键见解,以有效地在竞争激烈的市场中定位和区分我们的新产品。
目标受众洞察:
- 我们的目标受众包括年龄在 25-40 岁之间的科技爱好者,性别分布均衡,收入水平较高。他们重视便利性、质量和个性化体验。
- 为了吸引他们的兴趣,我们的营销策略应强调产品提升生产力、节省时间和提供娱乐价值的能力。
- 利用 Instagram 和 YouTube 等社交媒体平台,以及有针对性的电子邮件营销活动,可以有效地接触和吸引我们的目标受众。
竞争对手分析:
- 市场上的主要竞争对手已建立了品牌认知度并占据了显著的市场份额。
- 我们应该对他们的产品进行深入分析,以识别独特的销售主张、定价策略和市场潜在的空白点。
- 通过消息传递、品牌塑造和客户互动策略来区分我们的产品将至关重要。
定位与差异化:
- 突出产品的具体特性和优势,与竞争对手区分开来,解决痛点并提供与目标受众产生共鸣的解决方案。
- 制定具有吸引力的价值主张,传达我们产品的卓越性和独特优势。
- 强调品牌的独特性、以客户为中心的方法和致力于提供个性化体验的承诺。
营销策略建议:
- 实施多渠道营销方法,重点关注社交媒体平台、电子邮件营销和内容营销,以有效地接触和吸引目标受众。
- 在所有接触点上保持一致和协调的消息传递,以强化品牌认同感,并与目标受众的偏好和价值观产生共鸣。
- 与影响者或行业专家合作,产生关注,获得信誉,并扩大产品的覆盖范围。
- 持续监控和调整营销策略,基于绩效指标、客户反馈和不断变化的市场趋势。
通过利用这些见解和建议,我们的营销团队可以制定出一个强有力的定位策略,有效地吸引目标受众的兴趣,并在竞争激烈的市场中使我们的产品与众不同。
结果相当令人印象深刻。ChatGPT 使团队能够迅速制定出良好的营销策略。他们能够提高品牌知名度并生成更多潜在客户。这个新工具使营销团队能够更智能、更具成本效益地工作。
分析用户反馈调查
让我们考虑另一个使用 ChatGPT 总结文档的用例。在这里,FEMCodes 是一家软件公司,计划为他们的产品开发新功能。他们希望确保设计符合最终用户的需求,因此进行了广泛的用户调查,并收到了许多反馈。大多数反馈分享了共同的关注点,但他们担心遗漏了重要内容。
你可以使用 ChatGPT 帮助他们总结调查结果。总结将分享在他们的社交媒体页面上,因此应该清晰简洁。
这是此案例中用户调查的格式:
-
受访者 1:
-
最大的痛点:加载时间慢、频繁崩溃和缺乏与其他软件的集成。
-
期望的功能:提高性能和稳定性、与流行工具的无缝集成,以及更直观的用户界面。
-
对当前产品的满意度:有些不满意。
-
推荐的可能性:不太可能推荐。
-
-
受访者 2:
-
最大的痛点:定制选项有限、缺乏高级报告功能以及访问某些功能的难度。
-
期望的功能:更多的定制灵活性、强大的报告和分析功能以及更便捷的访问关键功能。
-
对当前产品的满意度:比较满意。
-
推荐的可能性:中立。
-
等等。这些调查数据应纳入提示中,如下所示:
总结用户反馈调查中的主要发现和见解。识别用户最常见的痛点、挫折和功能需求。突出任何关注区域或提出的潜在问题。提供这些反馈的综合分析,以确定如何最好地满足用户的关键需求和关注点,改进新产品功能。提取用户提供的任何建议或推荐,说明我们如何改进产品或更好地满足他们的需求。
{ 用户调查数据 }
ChatGPT 的回应可能是:
主要发现和见解:
常见的痛点和挫折:
- 加载时间慢、频繁崩溃和缺乏与其他软件的集成。
- 定制选项有限、缺乏高级报告功能以及访问某些功能的难度。
- 设备间用户体验不一致,客户支持不足,以及新用户学习曲线陡峭。
- 合作功能有限,工作流程管理效率低下,且与项目管理工具的集成缺失。
- 缺乏定期更新和修复漏洞,文档和用户指南不全,以及新团队成员入门困难。
期望的功能和建议:
- 改进的性能和稳定性,与流行工具的无缝集成,以及更直观的用户界面。
- 更多的定制灵活性、强大的报告和分析功能,以及更容易访问的关键功能。
- 响应式设计以实现不同设备间的无缝使用,改进的客户支持选项,以及增强的入门过程。
- 强大的合作工具,简化的工作流程管理功能,以及与流行项目管理软件的无缝集成。
- 定期更新修复漏洞和新增功能,全面的文档和用户指南,以及改进的入门资源。
关注领域和潜在问题:
- 用户对当前产品表示不满,这可能会影响用户保留率和客户忠诚度。
- 一些用户可能不愿意将产品推荐给他人,表明在满足用户期望方面需要改进。
回应总结得很好,但不够简洁。公司可以了解到改进的方向,但这不是分享在社交媒体上的合适信息量。你需要一个更短的版本。可以通过后续提示来获取:
使用压缩和改写技术,将给定文本总结为简短版本。
ChatGPT 的回应可能是:
用户反馈调查突出了常见的痛点和挫折,包括加载时间慢、崩溃、缺乏集成、定制选项有限以及功能访问困难。用户还对不一致的用户体验、客户支持不足和陡峭的学习曲线表示担忧。他们希望改进性能、稳定性、直观的界面、定制选项、先进的报告功能和更易于访问的关键功能。此外,用户建议响应式设计、增强的客户支持、更好的入门过程、强大的合作工具、简化的工作流程管理和与项目管理软件的无缝集成。改进建议包括定期更新、修复漏洞、全面的文档和改进的入门资源。对当前产品的不满以及用户可能不推荐它的可能性突显了处理这些问题以提高用户满意度和保留率的重要性。
尽管生成的回应对上述内容进行了很好的总结,但可以进一步优化,使其语气更易于大众理解。我们还可以定义字数限制或直接生成带有适当标签的社交媒体帖子。
使用 ChatGPT 进行有效摘要的技巧
摘要的目的是提炼重要思想。为了促使 ChatGPT 生成有效的摘要,你应该:
-
提供足够的背景信息给 ChatGPT。摘要的复杂程度和细节可能会根据你的用例而有所不同。因此,ChatGPT 拥有的背景信息越多,摘要结果就会越好。
-
使用后续提示来完善回答。ChatGPT 是一个 AI 模型,可能不会生成 100% 准确的回答。后续提示有助于澄清生成的摘要中的任何模糊之处。
-
根据用户的需求生成多个摘要,并逐步改进摘要内容。
-
请求从原文中提取关键点,然后使用后续提示撰写更详细的摘要。这样可以确保保留所有重要信息。
-
审核、验证并修改输出以确保与目标一致
摘要
在这篇帖子中,你探讨了 ChatGPT 在有效摘要中的应用。在当今信息过载的时代,总结大量数据至关重要。手动技术已经过时,导致采用像 ChatGPT 这样的自动化系统。你考察了两个案例:总结市场研究报告以制定营销策略和分析用户反馈调查以改进产品设计。ChatGPT 在这两个案例中都提供了简明且有见地的摘要,使团队能够做出明智的决策。令人印象深刻的结果展示了利用 ChatGPT 进行摘要的有效性和成本效益。该帖子还提供了使用 ChatGPT 进行有效摘要的技巧,强调了背景信息、迭代改进和人工验证的重要性。
上述摘要由 ChatGPT 生成,随后进行了优化。请随意评估其在捕捉帖子关键信息方面的有效性。
提示工程以实现与 ChatGPT 的有效互动
原文:
machinelearningmastery.com/prompt-engineering-for-effective-interaction-with-chatgpt/
随着生成式 AI 普及的爆炸性增长,尤其是 ChatGPT,提示工程已成为 AI 领域中越来越重要的技能。构建提示,即与大型语言模型(LLM)如 ChatGPT 互动的机制,并不像最初看起来那么简单。经过与 ChatGPT 的首次互动后,很明显需要实践和考虑来掌握提示。因此,开发创建最有用提示的过程——即提示工程——已成为 LLM 圈子及其他领域的抢手专业。
在这篇文章中,你将了解提示工程。具体而言,
-
如何在提示中提供信息,以最大程度地影响回应
-
什么是角色、正向和负向提示、零-shot 提示等
-
如何迭代使用提示以利用 ChatGPT 的对话性质
开始使用 ChatGPT,请参考我的书籍《Maximizing Productivity with ChatGPT》。它提供了真实世界的使用案例和提示示例,旨在帮助你快速使用 ChatGPT。
提示工程以实现与 ChatGPT 的有效互动
图片由 Adrian Tam 使用 Stable Diffusion 生成。保留部分权利。
概述
本文分为三个部分,它们是
-
提示原则
-
基本提示工程
-
高级提示工程策略
-
协作性技巧
提示原则
提示工程是有效利用 LLM 的关键方面,也是定制与 ChatGPT 互动的强大工具。它涉及到制定清晰而具体的指示或查询,以引出语言模型所需的回应。通过精心构建提示,用户可以引导 ChatGPT 的输出朝向他们的最终目标,并确保回应更准确、更有用。
在优化 ChatGPT 提示的过程中,有几个基础技巧需要记住。
首先,在提示的开始提供明确的指示有助于设定上下文并定义模型的任务。指定预期答案的格式或类型也很有益。此外,通过在提示中加入系统消息或角色扮演技巧,可以增强互动。
下面是一个包含上述技巧的示例提示:
我希望你为食谱博客生成 10 个快速准备的晚餐创意,每个创意包括一个标题和一段关于餐点的描述。这些博客将针对寻找易于准备的家庭餐点的父母群体。将结果以项目符号列表的形式输出。
将这个提示与以下内容进行比较:
写 10 篇食谱博客。
直观上,前者将获得更有用的结果。
记住,你可以通过不断改进和实验提示来提高模型回答的质量和相关性,从而创造出更有成效的对话。不要害怕直接在 ChatGPT 上测试潜在的提示。
基础提示工程
现在你知道了基本提示应该是什么样的,我们来详细讨论一些基本的提示工程考虑因素。
提示措辞
提示的措辞至关重要,因为它指导 LLM 生成所需的输出。将问题或陈述表述成 ChatGPT 能够理解并准确回应的方式非常重要。
例如,如果用户在某个领域不是专家,并且不知道如何用正确的术语提出问题,ChatGPT 可能会在回答时遇到限制。这就类似于在不知道正确关键词的情况下在网上搜索。
虽然使用额外的信息来创建更好的提示可能很明显,但一般来说,过于冗长并不一定是最佳策略可能不那么明显。最好将提示的措辞视为不是一种独立的技巧,而是贯穿所有其他技巧的连接线。
简洁性
提示的简洁性对清晰度和准确性非常重要。一个精心制作的提示应当简明扼要,提供足够的信息以便 ChatGPT 理解用户的意图,同时避免过于冗长。然而,确保提示不过于简短也是至关重要的,因为这可能会导致歧义或误解。在不够和过多之间找到平衡可能会很棘手。练习可能是掌握这一技能的最佳方法。
提示中的措辞和简洁性非常重要,因为它关系到具体性。
角色与目标
在提示工程中,角色是分配给 LLM 和预期受众的人物角色。例如,如果希望 ChatGPT 为一篇关于机器学习分类指标的博客文章写一个大纲,明确指出 LLM 需作为机器学习专家,并且目标受众是数据科学新手,肯定会帮助提供有价值的回答。无论是以对话语言(“你要充当一位在凤凰城有 10 年经验的房地产经纪人”)还是以更正式的方式(“作者:专家级凤凰城房地产经纪人;受众:经验不足的购房者”)表述,这都可以在特定场景中进行实验。
目标与角色紧密相关。明确说明提示引导互动的目标不仅是个好主意,而且是必要的。没有目标,ChatGPT 如何知道生成什么输出?
以下是一个考虑了角色和目标的有效提示:
你将充当一名在凤凰城地区有 10 年经验的房地产经纪人。你的目标是为凤凰城大都市区的前五个家庭社区各提供一个段落的总结。目标受众是缺乏经验的购房者。
除了明确列出的角色和目标外,还请注意上述示例提示的相对具体性。
积极与消极提示
积极和消极提示是另一组引导模型输出的框架方法。积极提示(“做这个”)鼓励模型包含特定类型的输出并生成某些类型的响应。消极提示(“不要做这个”)则阻止模型包含特定类型的输出和生成某些类型的响应。使用积极和消极提示可以大大影响模型输出的方向和质量。
请考虑以下示例提示:
你将充当一名在凤凰城地区有 10 年经验的房地产经纪人。你的目标是为凤凰城大都市区的前五个家庭社区各提供一个段落的总结。目标受众是缺乏经验的购房者。
上述提示的框架性质是积极的,提供了有关 ChatGPT 应该生成什么的指导。让我们添加一些措辞以阻止某些输出,无论是内容还是格式。例如,针对内容指导的消极提示可以是将以下内容添加到上述示例中:
不要包括位于市中心 5 英里范围内或紧邻机场的任何社区。
这个额外的约束应有助于 ChatGPT 理解应该生成什么样的输出。
高级提示工程策略
让我们来看看一些更高级的提示工程策略。虽然前一节提供了一些与 LLM 交互的通用指南,但你可以参考各种现代策略,这些策略在提示工程师的工具包中很常见,能够以更复杂的方式与 ChatGPT 进行互动。
输入/输出提示
输入/输出提示策略涉及定义用户提供给 LLM 的输入以及 LLM 应生成的输出。这一策略是提示工程的基础,因为它直接影响 ChatGPT 响应的质量和相关性。
例如,用户可能会提供一个输入提示,请求 ChatGPT 生成一个特定任务的 Python 脚本,期望的输出就是生成的脚本。
以下是最基本策略的一个示例:提供一个输入并期望得到一个输出。
生成一个 Python 脚本,该脚本接受一个必需的命令行参数([project]),并执行以下任务:
– 创建一个名为[project]的新文件夹
– 在新文件夹中创建一个名为[project].py 的文件
– 向[project].py 文件中写入一个简单的 Python 脚本文件头
零-Shot 提示
零-shot 策略涉及 LLM 在没有任何示例或背景的情况下生成答案。当用户希望快速得到答案而不提供额外细节,或者当话题过于广泛以至于示例会人为限制回应时,这种策略可能会很有用。例如:
为我的新狗生成 10 个可能的名字。
单-Shot 提示
单-shot 策略涉及 LLM 根据用户提供的单个示例或背景生成答案。这种策略可以指导 ChatGPT 的回应,并确保其与用户的意图一致。这里的想法是,一个示例将为模型提供比没有示例更多的指导。例如:
为我的新狗生成 10 个可能的名字。
我喜欢的一个狗名字是香蕉。
Few-Shot 提示
Few-Shot 策略涉及 LLM 根据用户提供的几个示例或背景生成答案。这种策略可以指导 ChatGPT 的回应,并确保其与用户的意图一致。这里的想法是,多个示例将为模型提供比一个示例更多的指导。例如:
为我的新狗生成 10 个可能的名字。
我喜欢的狗名字包括:
– 香蕉
– 猕猴桃
– 菠萝
– 椰子
正如你可以猜到的,提示中包含的示例越多,生成的输出越符合所需结果。使用零-shot,可能不会建议任何水果名称;使用单-shot,可能会有几个;而使用 few-shot,建议可能完全是水果主题的名称。
思维链提示
思维链策略涉及向大型语言模型(LLM)提供一些示例,以帮助细化原始问题,并确保更准确和全面的答案。思维链提示之所以被称为思维链,是因为它们包含了一些思维链示例。与 X-shot 提示技术不同,思维链提示的结构旨在鼓励批判性思维,并旨在帮助发现 ChatGPT 可能未曾考虑的新见解或方法。
该技术还鼓励 LLM 输出其批判性推理。思维链提示的标志性短语是“让我们一步一步来思考”,这个短语通常附加在提示的末尾,研究表明,这足以改善生成的结果。
请考虑以下单例提示示例:
Q: 乔有 20 个鸡蛋。他又买了 2 盒鸡蛋。每盒含 12 个鸡蛋。乔现在有多少个鸡蛋?
A: 答案是 44。
Q: 农夫约翰有 93 只鸡。如果他卖给农夫比尔 20 只鸡,然后又买了两倍的数量,那么农夫约翰现在有多少只鸡?
并考虑 ChatGPT 的错误输出回应:
答案是 73。
现在让我们看看以下思维链提示,该提示旨在通过 LLM 鼓励批判性思维:
问:乔有 20 个鸡蛋。他买了 2 盒鸡蛋。每盒包含 12 个鸡蛋。乔现在有多少个鸡蛋?让我们一步一步地思考。
答:乔一开始有 20 个鸡蛋。2 盒 12 个鸡蛋就是 24 个鸡蛋。20 + 24 = 44。因此,乔现在有 44 个鸡蛋,答案是 44。
问:农夫约翰有 93 只鸡。如果他将 20 只鸡卖给了农夫比尔,并且又买了两倍数量的鸡,那么农夫约翰现在有多少只鸡?让我们一步一步来思考。
这次 ChatGPT 的回应有所不同:
答:农夫约翰把 20 只鸡卖给了农夫比尔,所以他剩下了 93 - 20 = 73 只鸡。他然后买了两倍数量的鸡,所以他买了 2 * 20 = 40 只鸡。将这些新买的鸡加到他剩下的鸡中,农夫约翰现在有 73 + 40 = 113 只鸡。
通过提供解决这个问题所需的批判性思维过程的示例,并指导它一步一步地思考,ChatGPT 可以将相同的推理应用到我们的问题上,并这次给出正确的答案。
自我批评
自我批评策略涉及提示语言模型(LLM)评估其输出以发现潜在的不准确性或改进领域。这种策略可以确保 ChatGPT 提供的信息尽可能准确。它可以帮助用户调试他们的提示,并确定为什么他们没有得到符合预期的结果。
这样的提示示例如下:
请重新阅读你上面的回复。你看到回复中有任何问题或错误吗?如果有,请识别这些问题或错误并进行必要的编辑。
这个例子涉及教 ChatGPT 使用自我批评来调试其有问题的代码:
看看你刚刚生成的代码。目前它无法运行。你能看到任何语法错误或流程控制错误吗?如果有,请识别问题代码的部分并重新生成。
利用 ChatGPT 的自我修复能力是一种你不能忽视的提示工程技术。
迭代
迭代或扩展策略涉及根据初始提示的输出用后续提示来提示 LLM。这包括通过询问进一步的问题或从每个连续的回应中提出额外的要求来迭代结果。
例如,考虑让 ChatGPT 协助创建你正在写的书的提纲。第一个提示可能是这样的:
我正在写一本关于时间旅行理论的书。我还没有确定一个具体的主题。请为这本书生成 5 个具体的主题建议。对于每个建议,请提供一个标题和一段描述书籍内容的段落。这本书将面向普通读者。
现在,假设其中一个建议的主题如下:
标题:“时间悖论:穿越时间旅行的复杂性”
描述:“时间悖论”深入探讨了时间旅行悖论的心智迷宫,探索了它们提出的迷人难题。本书探讨了各种悖论,例如引导悖论、宿命悖论和信息悖论等。…
你可以使用后续提示进行迭代:
我将写你建议的书籍,“时间悖论:穿越时间旅行的复杂性”。为这本书生成章节大纲,包括章节和小节。
下面是一个可能的输出摘录:
引言
– 定义时间悖论
– 时间悖论在时间旅行叙事中的重要性
– 章节结构概览
第一章:引导悖论
1.1 引导悖论的本质
– 解释概念及其起源
– 文学、电影和真实生活轶事中的关键例子
…
这个迭代可以继续。进一步的提示可能是:
让我们充实引言部分。生成两段总结,概述每个章节部分将涵盖的内容。引言的章节大纲如下。
– – –
引言
– 定义时间悖论
– 时间悖论在时间旅行叙事中的重要性
– 章节结构概览
你可以看到进一步迭代如何在这个例子中继续。类似的迭代可以用来让 ChatGPT 生成代码:从概述开始,迭代概述以生成模块,生成模块以生成函数,最后在函数内生成代码。就像将大问题拆分成更小、更易处理的问题通常是成功的处方一样,ChatGPT 擅长在更易处理的块中完成较大的任务。
协作力量提示
看待 ChatGPT 的最佳方式是作为一个初级助手,无论是研究助手、编码助手、解决问题助手,还是你需要的任何助手。认识到并促进这种协作氛围可以带来更大的成功。以下是一些促进这种协作的快速提示。
提示生成提示
改进提示编写的一种方法是让 ChatGPT 参与进来。这样的提示可能会产生有益的结果:
目前我可以使用什么提示来进一步帮助你完成这项任务?
ChatGPT 然后应生成有用的提示建议,以加强其进一步的响应。
模型引导提示
模型引导提示涉及指导 LLM 提示你所需的信息,以完成请求的任务。这类似于告诉某人:“问我你需要知道什么。”
我希望你编写一个 Python 程序来管理存储在 Google 表格中的客户信息。请问我需要回答哪些问题以完成这项任务?
让 ChatGPT 决定执行任务所需的信息可能会带来好处,因为这减少了一些猜测,并且能避免幻觉。当然,如果模型指导提示的提示编写得不好,可能会让你接到 ChatGPT 提出的许多不相关的问题,因此初始提示仍需要经过深思熟虑的编写。
结论
一旦你对这里提出的提示工程策略感到舒适,你可以探索其他更复杂、更高效的方法。其中一些策略包括思想树、反思和自我一致性等。额外的策略也在不断发展;毫无疑问,从这篇文章写作时到你阅读时,这方面已经有了一些有趣的发展。
记住,提示工程的关键在于将你的意图和愿望以一种可以被 LLM 清晰且明确理解的方式传达给 ChatGPT,以便它能够根据请求采取行动,尽可能地产生所需的输出。如果你牢记这一点,按照所提供的策略前进,并通过定期实践磨练你的提示工程技能,你会发现 ChatGPT 确实是一个有用的初级助手,随时愿意并能够在你需要时提供帮助。
只要你正确地提出问题即可。
使用 ChatGPT 进行有效头脑风暴的策略
原文:
machinelearningmastery.com/strategies-for-effective-brainstorming-with-chatgpt/
ChatGPT 展示了其广泛知识基础的能力,但它也是一个出色的头脑风暴和创意工具。你可以要求它通过构建请求或对开放性问题提供广泛的回答来制定完整的项目计划,从而补充和扩展人类的创造力。
在这篇文章中,你将学习如何编写详细的 ChatGPT 提示,以探索头脑风暴的能力。具体来说,你将学习:
-
如何从巴基斯坦规划详细的欧洲旅行
-
如何为五口之家计划晚餐
-
学习改善头脑风暴和计划提示的技巧。
开始并应用 ChatGPT,参考我的书 最大化 ChatGPT 的生产力。它提供了实际案例和提示示例,旨在让你快速使用 ChatGPT。
让我们开始吧。
使用 ChatGPT 进行有效头脑风暴的策略
图片由 Adrian Tam 使用 Stable Diffusion 生成。保留部分版权。
概述
本文分为三个部分;它们是:
-
计划一个详细的欧洲旅行
-
为家庭计划晚餐
-
最大化 ChatGPT 头脑风暴能力的技巧
计划一个详细的欧洲旅行
让我们规划从巴基斯坦出发的为期 2 周的欧洲旅行。像往常一样,你需要向提示提供详细信息以获取更有用的回应。例如,让我们要求 ChatGPT 根据旅行时间和预算提供各种旅行选项。你在提示中指定了:
-
角色:一名专业的旅行顾问。
-
请求:如何规划从巴基斯坦出发的两周欧洲之旅。
-
兴趣:户外冒险。
-
预算:3000 美元。
所以提示如下:
作为一名专业的旅行顾问,提供至少 3 个详细的行程选项,涵盖从巴基斯坦出发的整个两周的欧洲之旅。每个选项应包括 3-5 个按逻辑地理顺序排列的目的地。假设旅行者对将城市观光与户外或文化体验相结合感兴趣,预算为 3000 美元。
你可能会从 ChatGPT 中找到以下输出:
选项 1:东欧探索
时长:14 天
预算:3000 美元
第 1-3 天:布拉格,捷克共和国
- 探索历史悠久的旧城区,参观布拉格城堡,漫步查尔斯桥。
- 从彼得任塔享受全景视角,参观天文钟。
- 体验充满活力的夜生活,并尝试传统的捷克美食。
第 4-6 天:布达佩斯,匈牙利
- 沿多瑙河进行一次放松的游船,经过标志性地标。
- 参观布达城堡,欣赏渔人堡的迷人景色。
- 在温泉浴场放松,如 Széchenyi 或 Gellért 浴场。
- 探索废墟酒吧,享受匈牙利美食。
第 7-9 天:克拉科夫,波兰
- 探索历史中心,参观皇家瓦维尔城堡。
- 探索奥斯维辛-比克瑙纪念馆和博物馆的沉重历史。
- 进行一天的旅行,参观美丽的维利奇卡盐矿。
- 尝试传统的波兰菜肴,如皮罗戈饺子和比戈斯炖菜。
第 10-12 天:奥地利维也纳
- 参观雄伟的美泉宫,探索其花园。
- 欣赏圣斯蒂芬大教堂和贝尔维第宫。
- 参加一场古典音乐会或歌剧演出。
- 在传统咖啡馆品尝维也纳咖啡和萨赫蛋糕。
第 13-14 天:奥地利萨尔茨堡
- 参观音乐之声之旅,访问拍摄地点。
- 探索历史老城区的巴洛克建筑。
- 参观莫扎特出生地,并在莫扎特音乐厅欣赏音乐会。
- 徒步或乘坐缆车登上霍恩萨尔茨堡堡垒,俯瞰全景。
选项 2:地中海美食
持续时间:14 天
预算:3000 美元
…………
ChatGPT 详细提供了三个选项。假设选择了第三个选项,称为“中欧亮点”。你可以在后续提问中询问行程:
我喜欢选项 3:中欧亮点。请列出我在旅行到欧洲之前需要做的行程。
回复将以以下内容开始:
当然!以下是你中欧亮点之旅的详细行程。在前往欧洲之前,确保完成以下准备:
- 研究和计划:
- 了解欧洲国家的签证要求,如有必要请申请。
- 检查护照的有效性,确保其有效期至少在计划离境日期之后六个月。
- 研究每个目的地的当地习俗、货币和交通选项。
- 为住宿、交通、餐饮和活动制定预算。
- 航班:
- 查找从巴基斯坦到德国柏林的航班,作为出发点。
…………
旅行准备包括研究和规划、预订航班、住宿、城际交通、旅行保险、观光活动、货币兑换和财务管理以及疫苗接种。然而,作为语言模型,ChatGPT 的回应并不总是准确和完整。ChatGPT 忽略了巴基斯坦公民需要签证才能进入欧洲。因此,你需要另一个后续问题:
作为一名巴基斯坦人,我们需要申请申根签证才能进入欧洲。你能告诉我获取德国访问签证的流程吗?
这是 ChatGPT 的回应:
当然!作为巴基斯坦公民前往德国,你需要申请申根签证。以下是获取德国访问签证的流程概述:
- 确定签证类型:
- 如果你计划进行旅游旅行,你将需要申请申根旅游签证(C 类)。
- 如果你计划探访朋友或亲戚,可能需要申请申根访问签证(C 类)或专用签证。
- 准备所需文件:
………………
获取访客签证涉及几个关键步骤。根据旅行目的和停留时间确定合适的签证类别,奠定基础,同时整理所需的申请文件,如护照、资金证明、旅行行程和职业文件,为准备工作打下基础。
虽然我们可以通过提出额外的澄清问题来继续完善行程,但初步的头脑风暴阶段现在已经完成。
为家庭计划晚餐
每天计划晚餐可能很困难,如果你不是一个常规厨师,甚至可能很难获取适当的食材来制作一道菜。在这些示例中,你将直接向 ChatGPT 提问,并使用后续提示来最终确定晚餐准备。在你的提示中,你应该涵盖:
-
演员:超级妈妈。
-
请求:为五人计划晚餐。
-
时间:2 小时。
-
类型:意大利风味。
那么,提示应该如下:
假设你是一位拥有 10 年家庭烹饪经验的超级妈妈。你会如何在 2 小时内在家为 5 人计划一顿意大利风味的晚餐?
ChatGPT 的回复如下:
作为拥有 10 年烹饪经验的超级妈妈,我将在这里帮助你为你五口之家的家庭计划一顿美味的意大利风味晚餐,只需两个小时。以下是充分利用时间的分步指南:
- 规划菜单:选择多种菜肴,包括开胃菜、主菜、配菜和甜点。以下是一个示例菜单,以帮助你入手:
- 开胃菜:番茄罗勒意式烤面包。
- 主菜:意大利面 Carbonara。
- 配菜:意大利番茄沙拉。
- 甜点:提拉米苏。
- 制作购物清单:浏览每道菜的食谱,列出所需的食材。检查你的储藏室,看看是否已经有了这些食材。
………
从以上内容中,你得到了菜肴清单、购物清单、准备工作、时间管理和上菜方法。共有 4 道菜:开胃菜(番茄罗勒意式烤面包)、主菜(意大利面 Carbonara)、配菜(意大利番茄沙拉)和甜点(提拉米苏)。
当然,你可以问一个后续问题来查找食谱。你可以简单地提到“这些菜肴”,而不重复名称,因为 ChatGPT 可以记住它的回答:
现在,写下一个详细的计划,以准备菜单上的所有菜肴。
ChatGPT 提供的食谱如下:
番茄罗勒意式烤面包:
- 预热烤箱至 375°F(190°C)。
- 将法棍切成½英寸厚的片。
- 将法棍片排列在烤盘上,并用橄榄油刷涂。
- 在预热的烤箱中将切片烤约 8-10 分钟,或直到金黄酥脆。
- 与此同时,切丁成熟的番茄和细碎新鲜的罗勒叶。
- 在碗中混合番茄,
………
之后,你可以继续通过提供后续提示来完善食谱,修改成分、烹饪方法和风味特征,以符合你的口味和可用食材。
最大化 ChatGPT 的头脑风暴能力的提示
在之前的示例中,我们采用了直接和详细的头脑风暴计划,但在初始提示中也要保持开放和模糊。例如,可以说:“我需要一些创意……”而不是陈述具体问题。
此外,你可以:
-
请求多个选项或建议。例如:“请给我提供 3 到 5 个意大利菜的创意。”
-
提供现有想法的示例作为起点。
-
考虑在 ChatGPT 的初步回应后增加更多细节。
-
阅读回应并提出后续问题,以完善、扩展或修改最有前景的想法。
-
请让 ChatGPT 解释或证明其想法,以评估其优点。
-
不断要求 ChatGPT 根据可用资源和限制修改想法。
一般而言,头脑风暴可能是一个具有挑战性的任务,需要探索不同的选项并根据个人喜好制定计划。然而,ChatGPT 可以通过提供各种选项和解释来简化头脑风暴。尽管 ChatGPT 可以提供帮助,但有效沟通你的兴趣并调整到你的具体目标是很重要的。通过积极参与 ChatGPT 并完善提供的建议,你可以优化头脑风暴体验,取得更好的成果。
总结
在这篇文章中,我们深入探讨了 ChatGPT 强大的头脑风暴能力,通过一系列实际的示例。具体来说,我们涵盖了:
-
如何为计划两周的欧洲旅行编写头脑风暴提示,包括缩小选项范围和优先安排行程的建议。
-
如何使用直接和详细的方法来计划五人的晚宴,并利用 ChatGPT 的能力探索食谱和烹饪方法。
-
提供有关如何制定开放式和灵活的提示以进行头脑风暴的建议,逐步增加更多细节,并根据可用资源调整您的想法。
使用 ChatGPT 作为您的个性化教师
原文:
machinelearningmastery.com/using-chatgpt-as-your-personalized-teacher/
机器学习和数据科学是工业 4.0 中两个最重要的技术。数据科学指的是从数据中提取有意义的见解,而机器学习使计算机能够自主学习而不需要明确编程。掌握这些领域需要对基本概念有扎实的理解、实践经验和导师的指导。传统的学习方法,如听讲座、阅读书籍、做笔记等,可能不够灵活、昂贵且耗时。在这种情况下,ChatGPT 可以成为您的个性化导师。
在这篇文章中,您将揭示 ChatGPT 作为机器学习和数据科学爱好者的个人导师的好处。特别是,您将了解
-
如何让 ChatGPT 指导您学习抽象代数
-
如何让 ChatGPT 帮助您为数据科学面试做准备
开始使用 ChatGPT,参考我的书 Maximizing Productivity with ChatGPT。它提供了 真实世界的应用案例 和 提示示例,旨在帮助您快速使用 ChatGPT。
使用 ChatGPT 作为您的个性化教师
图片由 Adrian Tam 使用 Stable Diffusion 生成。保留部分权利。
概述
本文分为三个部分,它们是:
-
在 12 周内掌握线性代数
-
机器学习面试的自我测验
-
提升学习体验的提示
在 12 周内掌握线性代数
假设您听说过线性代数,对它感兴趣但不知道它是什么。您知道线性代数是成为数据科学家的重要技能。您想认真学习线性代数。
这是一个让 ChatGPT 通过生成课程计划来指导您的好机会。为了生成相关且准确的回答,您的提示应具体并明确陈述您的最终目标。您在提示中应包含:
-
您想学什么?
-
您的目标是有时间限制的吗?
-
有什么是您想要更加专注的领域吗?
针对上述情况,这里是您可以使用的基本模板:
我有兴趣掌握 {学科},重点关注 {主题}。我想制定一个为期 {周数/月份} 的学习计划,以帮助我实现这个目标。
您能否通过以下方式帮助我:
1. {子目标-1}
2. {子目标-2} 等等…
您还可以指定您当前的专业水平。以下是您向 ChatGPT 提出的示例:
我有兴趣掌握抽象线性代数,重点关注与数据科学和机器学习相关的主题。我想制定一个为期 12 周的学习计划,以帮助我实现这个目标。
您能否通过以下方式帮助我:
1. 每周识别我需要学习的抽象线性代数关键概念
2. 推荐学习这些概念的最佳资源。
ChatGPT 的回复如下:
当然!这是每周学习抽象线性代数的关键概念的详细说明,以及推荐的资源:
第一周:线性代数和向量简介
了解线性代数的基本概念,如向量、向量空间和线性组合。
熟悉向量运算,包括加法、减法和标量乘法。
推荐资源:
《线性代数导论》 由吉尔伯特·斯特朗著。
《线性代数及其应用》 由大卫·C·雷著。
第二周:矩阵及其运算
学习矩阵、它们的表示及其运算,如加法、减法和标量乘法。
探索矩阵乘法及其属性,如结合性和分配性。
推荐资源:
《线性代数及其应用》 由大卫·C·雷著。
《线性代数做对了》 由谢尔顿·阿克斯勒著。
第三周:线性方程组
了解线性方程组及其解。
学习高斯消元法、行阶梯形和简化行阶梯形。
探索秩、零空间和列空间的概念。
推荐资源:
《线性代数导论》 由吉尔伯特·斯特朗著。
《线性代数及其应用》 由大卫·C·雷著。
…
由于 ChatGPT 每次回复的最大令牌限制,如果你遇到回复不完整的情况,你可以使用这个提示:
你能继续并完成你的回复吗?
现在你获得了一份完整的路线图,其中包含与你的终极目标相关的主题和每个主题所需的所有资源。这足够吗?你可能还希望 ChatGPT 总结一下主题,并提供一些练习题以巩固你的理解。在这种情况下,你可以使用后续提示来创建互动学习体验。
感谢你分享的 12 周计划。我很高兴开始!
你能解释一下第一周的第一个概念吗?
需要举例吗?如果能提供一些练习题来巩固我对概念的理解,那将非常感激。
ChatGPT 的回复是:
当然!在第一周,第一概念是“线性代数和向量简介”。让我们深入探讨一下:
概念解释:
线性代数是研究向量空间和线性变换的数学分支。
向量是具有大小和方向的数学对象,它们在线性代数中至关重要。
向量可以表示为列向量或行向量,并且可以具有不同的维度。
示例:
让我们考虑一个二维向量表示为 v = [2, 5]。在这里,向量有两个分量:2 和 5。第一个分量(2)表示 x 方向上的大小或值,第二个分量(5)表示 y 方向上的大小或值。
练习题:
给定向量 u = [1, -3]和 v = [4, 2],计算和 u + v。
确定向量 u = [3, -4]的大小(长度)。
找到与 v = [2, 7]方向相同的单位向量。
给定向量 u = [1, 2, 3]和 v = [4, -1, 0],计算点积 u · v。
通过检查向量 u = [1, 2, -3]和 v = [-2, 4, -6]是否一个是另一个的标量倍数,来验证它们是否平行(共线)。
解决这些练习题将有助于巩固你对向量及其性质的理解。祝你好运!
在 ChatGPT 的帮助下,你现在能够掌握抽象线性代数的概念。你可以有效地学习,并且有一个 24/7 的虚拟导师来解答你的疑问并建议额外的资源以便更好地理解。
机器学习面试自我测验
让我们考虑另一个例子。
假设你正在面试初级机器学习工程师的职位。为了在面试中表现更好,你应该训练自己对面试问题流利地思考。你能让 ChatGPT 帮助你练习面试吗?
一个好的提示很重要。最好将问题陈述分解为子目标,你可以使用这个基本模板:
我希望你充当我的{主题/职位}面试官。为{职位/角色}进行{面试类型}面试。请问我一系列问题以评估我的{领域}知识和技能,并在我没有要求你停止时提供对我的回答的反馈。
所以这是你输入 ChatGPT 的提示:
我希望你充当我的机器学习面试官。为初级机器学习工程师职位进行我的技术面试。请问我一系列问题以评估我的机器学习知识和技能,并在我没有要求你停止时提供对我的回答的反馈。
你可能会看到来自 ChatGPT 的回答:
当然!我很乐意为初级机器学习工程师职位进行技术面试。我会问你一系列与机器学习相关的问题,并提供对你回答的反馈。我们开始吧!
问题 1:监督学习和无监督学习有什么区别?分别举例说明。
(注意:请随意花时间并提供详细的回答。我会在你回答完毕后再进行下一题。)
情境 01:提供正确且详细的回答
如果你对所询问的概念有扎实的理解,你可以提供详细且正确的回答,例如以下内容:
“在监督学习中,我们有一个标记的数据集,而在无监督学习中,我们有一个未标记的数据集。例如,情感分析可以是监督学习的一个例子,其中文本被标记为正确的输出以用于训练目的。将未标记的数据集根据相似性聚类成组是一个无监督学习问题的例子。”
然后 ChatGPT 将对你进行评估:
解释有监督学习和无监督学习之间的区别做得很棒!你正确地提到有监督学习涉及使用带标签的数据,算法从输入-输出对中学习,以进行预测或分类。情感分析确实是一个有监督学习的好例子,其中提供了情感标签(积极、消极、中性)进行训练。
你也正确地提到无监督学习。在无监督学习中,算法处理无标签的数据,以发现数据中的模式、结构或分组。聚类是无监督学习中常用的一种技术,其中根据数据点的特征或属性将相似的数据点分组。
总的来说,你的回答展示了对有监督学习和无监督学习之间区别的良好理解,并且提供了相关的例子。做得好!
让我们继续下一个问题。
问题 2:正则化在机器学习算法中的目的是什么?它如何帮助防止过拟合?
场景 02:简洁但正确的回答
然而,如果你了解“正则化”的概念但不清楚细节,你可能只能提供一个简短的回答:
“正则化向损失函数添加惩罚,从而防止过拟合”
在这种情况下,ChatGPT 会建议你丰富你的回答:
这是一个好的开始!正则化确实用于防止机器学习算法中的过拟合。让我给你提供一个更详细的解释。
正则化是一种在训练过程中向损失函数中引入惩罚项的技术。这个惩罚项基于模型参数的复杂性或大小。这个惩罚项的目的是阻止模型过于紧密地拟合训练数据,这可能导致过拟合。
过拟合发生在模型过于专注于捕捉训练数据的噪声或特征时,导致对未见数据的泛化能力差。正则化通过向损失函数中添加一个正则化项来解决这个问题,这个正则化项控制模型的复杂性。正则化项鼓励模型在良好拟合训练数据和保持模型参数较小或受限之间找到平衡。
通过引入正则化,模型因拥有较大或复杂的参数值而受到惩罚,这有助于防止过拟合。它鼓励模型通过找到数据中潜在模式的更简单、更稳健的表示来更好地泛化到未见的数据。
总之,正则化通过在损失函数中添加惩罚来防止过拟合,方法是减少模型中的复杂或大参数值。这有助于更好地泛化到新的、未见的数据。
对你的回答做得很好!如果你有任何问题或想进一步讨论,在继续下一个问题之前,请随时告诉我。
你可以观察到 ChatGPT 如何详细解释了这个概念。它还允许你在继续下一个问题之前清除任何疑虑,就像真正的导师一样。
不觉得很酷吗?现在,我们通过首先提示 ChatGPT 继续下一个问题来完成最后一个场景。然后它可能会回应:
当然!我们继续下一个问题吧。
问题 3:解释机器学习中的偏差-方差权衡及其与模型复杂性的关系。
(请花时间提供详细的回答,如果需要,请随时询问以获得更多澄清。)
场景 03:不正确的回答
假设你不知道偏差-方差权衡是什么,并给出了不正确的回答:
“偏差-方差权衡是模型的准确性与复杂性之间的权衡。随着模型复杂性的增加,偏差增加而方差减少。”
在这种情况下,你会看到 ChatGPT 尝试纠正你:
我感谢你对偏差-方差权衡的解释尝试。然而,偏差与方差之间的关系与你提到的稍有不同。请允许我提供更准确的解释:
偏差-方差权衡是机器学习中的一个基本概念,涉及模型的偏差和方差之间的关系。偏差指的是通过简化模型来近似现实世界问题时引入的错误,这些假设可能不成立。方差则指模型对训练数据中波动的敏感性,这意味着它捕捉噪声或随机变动,而不是实际的潜在模式。
这种权衡出现于调整模型复杂性时。高偏差的模型往往过于简单,做出强假设,可能与实际数据分布不符。这种模型可能在训练和测试数据上准确性都低,被称为对数据的欠拟合。另一方面,高方差的模型过于紧密地捕捉了训练数据中的噪声或随机波动。它可能在训练数据上表现良好,但无法泛化到未见过的数据,这种现象称为过拟合。
权衡的工作原理如下:当你有一个简单的低复杂性模型,如特征较少的线性回归或低多项式度数时,它通常表现出高偏差和低方差。随着复杂性的增加,例如添加更多特征或提高多项式度数,模型变得更灵活,可以更好地拟合训练数据。然而,这会带来潜在的更高方差和更低偏差的代价。模型更容易过拟合,可能无法很好地泛化到未见过的数据。
目标是通过找到最优的模型复杂性水平来平衡偏差和方差,从而最小化总错误。这通常通过交叉验证、正则化或组合多个模型的集成方法来实现。
总结而言,偏差-方差权衡指的是模型的偏差与方差之间的权衡。增加复杂性会降低偏差但增加方差,而减少复杂性会增加偏差但降低方差。目标是找到一个适当的复杂性水平,以最小化整体误差并确保对未见数据的良好泛化。
尝试解释偏差-方差权衡的努力非常出色!如果你有任何进一步的问题,或者有任何需要我澄清的内容,请在我们继续下一个问题之前告知我。
你可以看到 ChatGPT 如何解释偏差-方差权衡在背后如何运作,并生成了一个更详细的回应来纠正你的不正确回答。
提升学习体验的提示
无论你是在准备面试还是制定学习计划,这里有一份提示清单,将帮助你最大限度地利用 ChatGPT 作为个性化辅导员的学习体验。
-
清楚地陈述你的学习目标,并具体明确。例如,不要问“解释数据预处理?”而是可以缩小范围,问“请描述数据预处理中特征选择的过程?”
-
提问后续问题以获得进一步的澄清。你可以请求更多示例或逐步解释,以更好地理解概念。
-
不要进行单方面的查询对话,而是与 ChatGPT 创建互动对话,使其能够根据你的具体需求量身定制回应。
-
为了弥合理论与实践之间的差距,提示 ChatGPT,并请求实际示例和用例。
-
请求反馈和可能的改进,因为这有助于持续改进。
总结
ChatGPT 是一个宝贵的工具,你可以利用它来创建个性化的学习环境。它能够根据学习者的进展美妙地调整。以下是本章的关键要点:
-
ChatGPT 可以根据个人的优势和弱点调整学习旅程。
-
在草拟初始提示之前,定义你的最终目标和子目标。
-
遵循提示以进行更具动态的对话和相关的回应。
使用 ChatGPT 进行有效翻译
原文:
machinelearningmastery.com/using-chatgpt-for-translation-effectively/
ChatGPT 已展示出惊人的高准确度处理翻译任务的能力。虽然谷歌翻译多年来一直是多语言翻译的首选工具,但最近的研究显示,ChatGPT 在高资源的欧洲语言中表现与商业翻译产品竞争力相当 (Is ChatGPT A Good Translator?).
ChatGPT 作为翻译者的优势不仅仅在于自然语言文本。你还可以翻译不同编程语言之间的代码。只需提供描述你想要的翻译的初始化提示,ChatGPT 通常可以在几秒钟内生成高准确度的转换代码。
在这篇文章中,你将学习如何使用 ChatGPT 提示来了解 ChatGPT 的翻译能力。具体来说,你将学会:
-
将诗歌从英文翻译成瑞典语。
-
将代码从 Julia 翻译成 Python。
-
提升翻译结果。
使用 ChatGPT 进行有效翻译 图片由 Adrian Tam 使用 Stable Diffusion 生成。保留了一些权利。
开始并应用 ChatGPT,参考我的书籍 《用 ChatGPT 最大化生产力》。书中提供了实际案例和提示示例,旨在帮助你快速使用 ChatGPT。
让我们开始吧。
概述
本帖分为三个部分;它们是
-
语言翻译
-
代码翻译
-
有效翻译的技巧
语言翻译
在制作翻译提示之前,你必须建立一个初始化提示,提供翻译所需的上下文和文本风格。对于当前任务,你正在翻译罗伯特·弗罗斯特的诗歌,并将把这些信息融入初始化提示中:
你是一个将英文诗歌翻译成瑞典语的翻译助手。
如果没有提供诗歌,ChatGPT 只是确认你的意图:
当然!我可以帮助你将英文诗歌翻译成瑞典语。请提供你想翻译的英文诗歌,我会尽力帮助你。
你的翻译机器人现在已经完全准备好,并对上下文有了全面的理解。你可以通过请求它将诗歌翻译成瑞典语来继续。你在第二个提示中提供诗歌:
请将以下诗歌从英文翻译成瑞典语:
Naturens första gröna är guld,
Hennes svåraste nyans att hålla.
Hennes tidiga blad är en blomma;
但只有一个小时。
Sedan bladet övergår till blad.
所以伊甸园沉入悲伤,
Så gryning blir dag.
什么也无法保持金色。
以下是 ChatGPT 的回应:
当然!以下是罗伯特·弗罗斯特的《Nothing Gold Can Stay》的瑞典语翻译:
Naturens första gröna är guld,
Hennes hårdaste nyans att behålla.
Hennes tidiga löv är en blomma;
Men endast så en timme.
Sedan försvinner bladet till blad.
Så sjönk Eden i sorg,
Så gryningen går ner till dagen.
Ingenting guld kan bestå.
我希望这个翻译能够捕捉到原诗的精髓。如果你还有其他需要帮助的地方,请告诉我!
验证
为了确认翻译的准确性,你可以将翻译后的诗歌粘贴到 Google 翻译中,获取英文版。在这种情况下,翻译几乎是完美的,考虑到翻译诗歌的难度,这很令人印象深刻。它成功捕捉了原诗的精髓和意义。
代码翻译
在本节中,你将要求 ChatGPT 将一个简单的数字猜谜游戏从 Julia 翻译成 Python。
许多编程语言看起来彼此相似。为了确保代码翻译的成功,你必须通过初始化提示提供上下文。这个提示将介绍代码翻译器并指定正在翻译的代码类型:
你是一位精通 Julia 和 Python 编程语言的专业软件工程师。在这种情况下,你将帮助我将一个简单的 Julia 游戏翻译成 Python。
与之前的示例类似,ChatGPT 会确认你的指示并等待你提供代码:
当然!我很乐意帮助你将你的 Julia 游戏翻译成 Python。请提供 Julia 中的游戏代码,我会协助你将其转换为 Python。
现在,请求 ChatGPT 将以下代码转换为 Python,使用以下提示:
请将以下 Julia 代码转换为 Python:
上面的代码故意使用三个反引号进行引用,遵循 Markdown 格式中的代码引用惯例。你将看到 ChatGPT 对代码的翻译回应:
当然!这是给定的 Julia 代码的等效 Python 代码:
验证
作为一个语言模型,ChatGPT 可能会在代码中产生一些错误。为了验证翻译的准确性,你应该创建一个名为 number_game.py
的 Python 文件,将转换后的代码粘贴进去,并在终端中执行该文件,以便让真实的 Python 解释器告诉你代码是否按预期工作。
在这种情况下,ChatGPT 仅凭一个简单的提示就完美地将 Julia 代码翻译成了 Python。
有效翻译的提示
虽然可以编写一个简单的翻译提示并获得结果,但有几个提示可以帮助提升翻译输出的质量:
-
在编写翻译请求之前,请从初始化提示开始。
-
提供额外的上下文以帮助模型理解文本的含义。例如,指定文本是诗歌还是技术文档。
-
清楚地在提示中说明源语言和目标语言。
-
在任何后续提示中使用简单明了的句子。
-
始终校对并验证翻译的准确性。
-
确保你的输入文本有正确的标点,并遵循适当的格式指南,以获得更好的翻译结果。
进一步阅读
温向娇、王文轩、黄振泽、王兴、涂兆鹏。“ChatGPT 是一个好的翻译器吗?是的,GPT-4 作为引擎”,arXiv 2301.08745,2023。
摘要
在这篇文章中,我们探讨了 ChatGPT 在机器翻译中的不同应用场景,强调了实现准确翻译的有效策略。具体来说,我们讨论了以下主题:
-
为语言翻译编写有效的初始化和翻译提示。
-
为技术任务编写翻译提示,例如将 Julia 代码转换为 Python。
-
通过上下文意识、注意标点、验证技术以及优化 ChatGPT 来提升翻译结果。
-
提示。
通过实施这些技术,你可以充分发挥 ChatGPT 的翻译能力,并获得高质量的翻译结果以满足各种应用需求。
什么是大型语言模型
原文:
machinelearningmastery.com/what-are-large-language-models/
大型语言模型(LLMs)是深度学习模型在处理人类语言方面的最新进展。一些出色的 LLM 使用案例已经得到展示。大型语言模型是一个经过训练的深度学习模型,以类似人类的方式理解和生成文本。其背后是一个大型变压器模型,完成所有的魔法。
在这篇文章中,你将了解大型语言模型的结构及其工作原理。特别是,你将了解到:
-
什么是变压器模型
-
变压器模型如何读取文本并生成输出
-
大型语言模型如何以类似人类的方式生成文本。
什么是大型语言模型。
由作者使用稳定扩散生成的图像。保留部分权利。
开始并应用 ChatGPT,请参阅我的书籍用 ChatGPT 最大化生产力。它提供了真实的使用案例和提示示例,旨在帮助你快速使用 ChatGPT。
让我们开始吧。
概述
本文分为三个部分;它们是:
-
从变压器模型到大型语言模型
-
为什么变压器能够预测文本?
-
大型语言模型是如何构建的?
从变压器模型到大型语言模型
对我们人类来说,我们将文本视为单词的集合。句子是单词的序列。文档是章节、部分和段落的序列。然而,对计算机而言,文本仅仅是一串字符。为了让机器理解文本,可以构建一个基于递归神经网络的模型。该模型一次处理一个词或字符,并在整个输入文本被处理完后提供输出。这个模型效果相当好,只是当序列的结尾到达时,它有时会“忘记”序列开头发生了什么。
2017 年,Vaswani 等人发表了一篇论文,《Attention is All You Need》,以建立一个变压器模型。它基于注意力机制。与递归神经网络相反,注意力机制允许你一次性看到整个句子(甚至是段落),而不是逐词处理。这使得变压器模型能够更好地理解一个词的上下文。许多最先进的语言处理模型都基于变压器。
为了使用变换器模型处理文本输入,你首先需要将其标记化为一系列词语。这些标记随后被编码为数字,并转换为嵌入,这些嵌入是保留其含义的标记的向量空间表示。接下来,变换器中的编码器将所有标记的嵌入转换为一个上下文向量。
下面是一个文本字符串、其标记化及向量嵌入的示例。请注意,标记化可以是子词,例如文本中的“nosegay”被标记化为“nose”和“gay”。
输入文本示例
As she said this, she looked down at her hands, and was surprised to find that she had put on one of the rabbit's little gloves while she was talking. "How can I have done that?" thought she, "I must be growing small again." She got up and went to the table to measure herself by it, and found that, as nearly as she could guess, she was now about two feet high, and was going on shrinking rapidly: soon she found out that the reason of it was the nosegay she held in her hand: she dropped it hastily, just in time to save herself from shrinking away altogether, and found that she was now only three inches high.
标记化文本
['As', ' she', ' said', ' this', ',', ' she', ' looked', ' down', ' at', ' her', ' hands', ',', ' and', ' was', ' surprised', ' to', ' find', ' that', ' she', ' had', ' put', ' on', ' one', ' of', ' the', ' rabbit', "'s", ' little', ' gloves', ' while', ' she', ' was', ' talking', '.', ' "', 'How', ' can', ' I', ' have', ' done', ' that', '?"', ' thought', ' she', ',', ' "', 'I', ' must', ' be', ' growing', ' small', ' again', '."', ' She', ' got', ' up', ' and', ' went', ' to', ' the', ' table', ' to', ' measure', ' herself', ' by', ' it', ',', ' and', ' found', ' that', ',', ' as', ' nearly', ' as', ' she', ' could', ' guess', ',', ' she', ' was', ' now', ' about', ' two', ' feet', ' high', ',', ' and', ' was', ' going', ' on', ' shrinking', ' rapidly', ':', ' soon', ' she', ' found', ' out', ' that', ' the', ' reason', ' of', ' it', ' was', ' the', ' nose', 'gay', ' she', ' held', ' in', ' her', ' hand', ':', ' she', ' dropped', ' it', ' hastily', ',', ' just', ' in', ' time', ' to', ' save', ' herself', ' from', ' shrinking', ' away', ' altogether', ',', ' and', ' found', ' that', ' she', ' was', ' now', ' only', ' three', ' inches', ' high', '.']
上述文本的嵌入
[ 2.49 0.22 -0.36 -1.55 0.22 -2.45 2.65 -1.6 -0.14 2.26
-1.26 -0.61 -0.61 -1.89 -1.87 -0.16 3.34 -2.67 0.42 -1.71
...
2.91 -0.77 0.13 -0.24 0.63 -0.26 2.47 -1.22 -1.67 1.63
1.13 0.03 -0.68 0.8 1.88 3.05 -0.82 0.09 0.48 0.33]
上下文向量就像整个输入的精髓。利用这个向量,变换器解码器基于线索生成输出。例如,你可以提供原始输入作为线索,让变换器解码器生成自然跟随的下一个词。然后,你可以重复使用相同的解码器,但这次的线索将是之前生成的下一个词。这个过程可以重复,以从一个引导句开始创建整个段落。
变换器架构
这个过程被称为自回归生成。这就是大型语言模型的工作方式,除了这种模型是一个变换器模型,可以处理非常长的输入文本,其上下文向量非常大,因此能够处理非常复杂的概念,并且其编码器和解码器具有许多层。
为什么变换器可以预测文本?
在他的博客文章“递归神经网络的非凡有效性”中,Andrej Karpathy 证明了递归神经网络可以相当好地预测文本中的下一个词。这不仅仅是因为人类语言中存在限制词语在句子中不同位置使用的规则(即语法),还因为语言中存在冗余。
根据 Claude Shannon 的影响力论文“《印刷英语的预测与熵》”,尽管英语有 27 个字母(包括空格),但其熵为每个字母 2.1 比特。如果字母是随机使用的,那么熵将为 4.8 比特,这使得在一种人类语言文本中预测下一个词变得更容易。机器学习模型,尤其是变换器模型,擅长做出这样的预测。
通过重复这一过程,变压器模型能够逐字生成整个段落。然而,对于变压器模型来说,什么是语法?本质上,语法表示词汇在语言中的使用方式,将其分类为不同的词性,并要求在句子中按照特定的顺序排列。尽管如此,列举所有语法规则仍然具有挑战性。实际上,变压器模型并不会明确地存储这些规则,而是通过示例隐式地获得它们。模型可能会学习超越语法规则的内容,扩展到这些示例中呈现的思想,但变压器模型必须足够大。
大型语言模型是如何构建的?
大型语言模型是大规模的变压器模型。它大到通常无法在单台计算机上运行。因此,它自然是通过 API 或 Web 界面提供的服务。正如你所预期的,这种大型模型在记住语言的模式和结构之前,必须从大量文本中学习。
例如,支撑 ChatGPT 服务的 GPT-3 模型是在来自互联网的大量文本数据上进行训练的。这包括书籍、文章、网站以及各种其他来源。在训练过程中,模型学习词汇、短语和句子之间的统计关系,从而能够在给定提示或查询时生成连贯且上下文相关的回应。
从大量文本中提炼出知识,GPT-3 模型因此能够理解多种语言,并且掌握各种主题的知识。这也是为什么它能够生成不同风格的文本。虽然你可能会惊讶于大型语言模型能够进行翻译、文本摘要和问答,但如果你考虑到这些实际上是匹配主文本的特殊“语法”,即提示(prompts),那么这并不令人惊讶。
摘要
已经开发了多个大型语言模型。示例包括来自 OpenAI 的 GPT-3 和 GPT-4、来自 Meta 的 LLaMA 以及来自 Google 的 PaLM2。这些模型能够理解语言并生成文本。在这篇文章中,你了解到:
-
大型语言模型基于变压器架构。
-
注意机制使得 LLMs 能够捕捉词语之间的长程依赖关系,因此模型能够理解上下文。
-
大型语言模型基于先前生成的标记以自回归的方式生成文本。
什么是零-shot 提示和少量示例提示
原文:
machinelearningmastery.com/what-are-zero-shot-prompting-and-few-shot-prompting/
在语言模型的文献中,你会经常遇到“零-shot 提示”和“少量示例提示”这两个术语。了解大型语言模型如何生成输出是很重要的。在本文中,你将学习:
-
什么是零-shot 和少量示例提示?
-
如何在 GPT4All 中进行实验
什么是零-shot 提示和少量示例提示
作者使用稳定扩散生成的图片。版权所有。
开始使用并应用 ChatGPT,请参考我的书籍《最大化 ChatGPT 生产力》。它提供了实际应用案例和提示示例,旨在帮助你迅速使用 ChatGPT。
让我们开始吧。
概述
本文分为三部分;它们是:
-
大型语言模型如何生成输出?
-
零-shot 提示
-
少量示例提示
大型语言模型如何生成输出?
大型语言模型经过大量文本数据的训练。它们被训练来预测输入的下一个单词。研究发现,只要模型足够大,不仅可以学习人类语言的语法,还可以学习单词的意义、常识和原始逻辑。
因此,如果你将断裂的句子“My neighbor’s dog is”作为输入(也称为提示)提供给模型,它可能会预测“smart”或“small”,但不太可能是“sequential”,尽管这些都是形容词。同样,如果你向模型提供一个完整的句子,你可以期望模型的输出是自然跟随的句子。反复将模型的输出附加到原始输入上,并再次调用模型,可以让模型生成较长的回应。
零-shot 提示
在自然语言处理模型中,零-shot 提示意味着向模型提供一个不属于训练数据的提示,但模型可以生成你所期望的结果。这种有前景的技术使大型语言模型在许多任务中变得有用。
为了理解这为何有用,想象一下情感分析的情况:你可以将不同意见的段落进行标记,然后用情感分类对其进行标注。然后,你可以训练一个机器学习模型(例如,对文本数据进行 RNN 训练),将段落作为输入,生成分类作为输出。但你会发现这样的模型并不适应。如果你为分类添加了新的类别,或要求不是对段落进行分类而是总结,这个模型必须进行修改和重新训练。
然而,大型语言模型不需要重新训练。如果你知道如何正确提问,你可以让模型对一段文字进行分类或总结。这意味着模型可能无法将一段文字分类为 A 类或 B 类,因为“A”和“B”的含义不明确。然而,它可以将其分类为“积极情感”或“消极情感”,因为模型知道什么是“积极”和“消极”。之所以有效,是因为在训练过程中,模型学会了这些词的含义,并获得了遵循简单指令的能力。以下是一个例子,使用 GPT4All 的 Vicuna-7B 模型演示:
提供的提示是:
Classify the text into positive, neutral or negative:
Text: That shot selection was awesome.
Classification:
回应是一个单词,“积极”。这是正确且简洁的。模型显然可以理解“awesome”是一种积极的感觉,但能够识别这种感觉是因为最开始的指示:“将文本分类为积极、中性或消极。”
在这个例子中,你发现模型做出了回应,因为它理解了你的指示。
少量提示
如果你不能描述你想要什么,但仍希望语言模型给出答案,你可以提供一些示例。以下例子更容易演示:
仍然使用 GPT4All 中的 Vicuna-7B 模型,但这次我们提供的提示是:
Text: Today the weather is fantastic
Classification: Pos
Text: The furniture is small.
Classification: Neu
Text: I don't like your attitude
Classification: Neg
Text: That shot selection was awful
Classification:
这里你可以看到没有提供如何做的指示,但通过一些示例,模型可以搞清楚如何响应。还要注意,模型回应“Neg”而不是“Negative”,因为这是示例中提供的内容。
注意:由于模型的随机性,你可能无法重现完全相同的结果。你可能还会发现每次运行模型时产生不同的输出。
指导模型使用示例进行响应称为少量提示(few-shot prompting)。
摘要
在这篇文章中,你学习了一些提示的示例。具体来说,你学到了:
-
一次性提示(one-shot prompting)和少量提示(few-shot prompting)是什么?
-
模型如何处理一次性和少量提示
-
如何使用 GPT4All 测试这些提示技术
使用 ChatGPT 写作
原文:
machinelearningmastery.com/writing-an-essay-with-chatgpt/
ChatGPT 是一个语言模型,你可以通过与它对话来使用它。如此规模的语言模型自然可以生成流畅的文本,难以与人类创作的作品区分开来。如果你想用它来完成某项任务,你可能仍然需要提供详细的指示。此外,你也不应指望它完全取代人类。你很可能需要做最后的润色。
在接下来的内容中,你将使用 ChatGPT 来写一篇文章。具体来说,你将学习
-
如何指导将你的任务分解为步骤以便使用 ChatGPT
-
如何一步一步指导 ChatGPT 写文章
开始使用并应用 ChatGPT,参阅我的书籍《最大化 ChatGPT 的生产力》。它提供了现实世界的使用案例和提示示例,旨在让你快速上手使用 ChatGPT。
让我们开始吧。
使用 ChatGPT 写作
图片由作者使用 Stable Diffusion 生成。部分权利保留。
概述
本文分为四部分,它们是:
-
文章主题
-
直接指示
-
一步一步指导 ChatGPT
-
工作原理
文章主题
例如,考虑一下GRE 分析写作样题。它是研究生入学考试的一部分,旨在展示你在陈述中解释理由的能力。一篇高分的文章应该提供相关理由来支持你的观点,但要避免没有扩展的过于笼统的例子。
考虑 GRE 样题中的声明:
随着人们越来越依赖技术来解决问题,人类自主思考的能力必然会退化。
让我们看看如果你要求 ChatGPT 写这样一篇文章,它会有什么反应。
直接指示
使用 ChatGPT 最简单的方法是通过以下提示直接要求它给你一篇文章:
写一篇支持以下声明的文章:
随着人们越来越依赖技术来解决问题,人类自主思考的能力必然会退化。
指示 ChatGPT 写整篇文章
结果会因系统的随机性而每次运行时有所不同。以下是其中一个结果:
现代社会对技术的依赖无疑使人们的生活变得更加便捷。从自动化生产过程到虚拟个人助手,技术已经成为我们生活中的一个不可或缺的部分。然而,随着人们越来越依赖技术来解决问题,问题随之而来:我们自主思考的能力会不会退化?
众所周知,人脑像肌肉一样,需要定期锻炼才能保持强壮和健康。当我们利用自己的思维能力解决问题时,实质上是在锻炼我们的大脑,增强我们的认知能力。然而,当我们完全依赖技术来解决问题时,我们并没有利用自己的大脑力量,而是把我们的思维外包给了机器。
过度依赖技术的最重要后果之一是批判性思维能力的退化。批判性思维涉及分析和评估信息,识别偏见和假设,并根据证据做出明智的判断。当我们依赖技术解决问题时,我们往往成为信息的被动消费者,接受技术呈现给我们的一切而不质疑其准确性或可靠性。这种缺乏批判性思维可能导致决策不当,并且无法独立解决复杂问题。
此外,技术也可能导致创造力和创新能力的下降。当我们使用技术解决问题时,我们受到其能力和功能的限制。相反,当我们自己思考时,我们可以自由探索新颖和非传统的想法,并提出创造性的解决方案。过度依赖技术可能抑制我们的创造力,并阻止我们发现面临挑战时的新颖和创新的解决方案。
过度依赖技术的另一个负面后果是社交技能的流失。社交互动对于发展人际交往技能,如沟通、移情和冲突解决至关重要。当我们依赖技术进行交流时,我们会错过面对面互动的微妙细节,而这些细节对于建立有意义的人际关系至关重要。这可能导致社交技能的缺失,并且在与他人建立和维护关系方面遇到困难。
总之,虽然技术无疑使我们的生活更加便利和舒适,但重视技术过度依赖可能带来潜在的负面后果是很重要的。随着技术的融入,我们必须确保不过度依赖技术来解决问题。我们必须继续锻炼我们的批判性思维能力,培养创造力,并保持社交技能,以确保我们保持能力强大且独立的问题解决者。
这篇文章看起来非常自然,作为一篇文章也不错。但事实上,它并不是顶尖水平的。如果你知道如何更好地提问,你可以得到一篇更好的文章。
引导 ChatGPT 逐步撰写
语言模型可以根据上下文生成文本。在 ChatGPT 的例子中,上下文是您和系统之间最近的对话。此外,ChatGPT 的响应不是一次性生成的,而是一个令牌一个令牌地生成。因此,它记住了先前句子中说过的内容。
因此,如果给出一大段文字,很难对答案进行“微调”。将大写作任务拆分成更小的部分更为容易。
对于上述相同的话题,你可以这样做:
给我三段支持以下陈述的段落,每段一个论点。
随着人们越来越依赖技术解决问题,人类独立思考的能力肯定会退化。
现在产生了以下内容:
第一段:随着技术的不断进步,人们更容易依赖它来解决问题。这可能导致批判性思维能力的缺乏,因为人们可能不会被挑战去独立解决问题。例如,使用 GPS 导航的人可能不会培养空间感知或地图阅读技能,而这些技能在生活的许多领域中都很重要。此外,依赖计算器或计算机程序进行数学计算的人可能不会发展出强大的心理数学技能或对数学概念的理解。因此,他们独立思考和解决问题的能力可能会退化。
第二段:除了减少批判性思维能力,技术还可能对创造力产生负面影响。当人们依赖技术解决问题时,他们可能更不容易跳出框架,提出创造性的解决方案。这是因为他们习惯于遵循技术提供的预设算法或解决方案。这在艺术领域尤为明显,数字工具可以用来快速轻松地创作艺术作品。虽然这些工具很有用,但它们也可能通过使创作常规或衍生作品变得更容易来限制创造力。
第三段:最后,对技术的过度依赖可能导致社交技能的减少。随着人们花更多时间通过屏幕和设备进行交流,他们与他人面对面互动的机会可能减少。这会使他们更难理解社交线索、对他人产生共情,并建立牢固的关系。此外,依赖技术进行社交互动的人可能更容易感到孤独和隔离。这可能对心理健康产生负面影响,从而影响整体的认知功能和解决问题的能力。
这看起来更好。尤其是第一段有了具体的例子。但其他两段没有给出例子。让我们继续聊天,询问更多例子:
你能给出一些具体的例子,说明技术如何对创造力产生负面影响吗?
它回答了:
当然!以下是技术如何对创造力产生负面影响的几个例子:
模板驱动的设计:许多数字工具,如网站构建器,提供了可以用自己的内容进行自定义的预设计模板。虽然这些模板对初学者有帮助,但它们也可能通过限制设计选项和鼓励顺从来扼杀创造力。
对滤镜的依赖:社交媒体平台如 Instagram 提供了多种滤镜,用户可以将其应用于照片中以提升外观。虽然这些滤镜使用起来很有趣,但也可能会抑制创造力,使得制作出相似的、过于风格化的图片变得容易。
自动纠错和预测文本:虽然这些功能可以帮助避免拼写错误和加快写作过程,但它们也可能导致写作中的创造力缺乏。例如,如果有人过度依赖自动纠错,他们可能不会花时间学习正确的拼写或语法,这可能限制他们通过写作进行创造性表达的能力。
算法推荐:流媒体服务如 Netflix 和 Spotify 使用算法根据用户的观看或收听历史推荐内容。虽然这对发现新内容有帮助,但它也可能通过推广相似的内容限制创造力,并抑制用户探索新类型或艺术家的兴趣。
总的来说,虽然技术可以是增强创造力的强大工具,但必须意识到它的潜在局限性,并积极避免陷入创造性困境或过度依赖数字工具。
由于 GRE 分析写作的字数大约为 500 到 600 字,因此需要更简洁。然而,这些例子是有帮助的。你可以进一步询问有关原先生成的第三段的例子:
能否给出一些具体的例子说明技术如何导致社交技能的减少?请简要说明。
现在它的回答是:
当然,以下是一些技术如何导致社交技能减少的例子:
过度依赖短信和社交媒体可能导致面对面交流技能的缺乏,使得更难察觉社交线索。
过度花费时间在屏幕上可能会导致社交孤立和孤独感。
网络交流的匿名性可能导致缺乏同理心和网络欺凌的增加。
在线约会和社交网络应用程序可能会减少面对面社交互动的机会,使得建立深层、有意义的关系变得更加困难。
对技术的持续依赖可能会分散对现实社交情况的注意力,导致面对面交流时缺乏参与感和注意力。
好的,请注意这些例子不是段落形式,因为你需要指定 ChatGPT 如何回答。但你可以很容易将这些例子整合到你的文章段落中。
现在我们还需要一个引言和结论来完成这篇文章。让我们请 ChatGPT 来完成这些部分。
请为上述内容写一个引言段落。
这是它生成的内容:
技术无疑改变了我们生活的方式,从工作和沟通到获取信息和解决问题。尽管技术的好处多种多样且不可否认,但我们对数字工具的过度依赖也带来了一些负面影响。其中一个后果是社交技能的下降。随着人们花更多时间通过屏幕和设备进行沟通,他们可能会有更少的机会练习面对面的沟通技能,从而导致社交意识和同理心的下降。在这种情况下,探讨技术如何负面影响我们的社交技能及我们可以采取什么措施来减轻这些影响是值得的。
对于结论,你需要参考你文章的主要内容。你不必担心,因为 ChatGPT 会记住对话。你可以问:
请写一个结论段落,总结以上所有内容。
它回答了:
总结来说,尽管技术对我们的生活有许多积极的影响,但也必须认识到它存在一些负面后果,如批判性思维、创造力和社交技能的下降。技术可以提供捷径和即时满足,这可能会导致基本技能的侵蚀。意识到这些潜在的缺陷并采取措施减轻它们的影响至关重要,例如限制屏幕时间、参与面对面的交流,并找到以平衡和有意识的方式使用技术的方法。这样,我们可以继续享受技术的众多优势,同时确保保持使我们成为人类的技能和联系。
经过一些重新排序和润色,你现在就有了一篇完整的文章。
指导 ChatGPT 分步写作文章
如何运作
ChatGPT 能够很好地完成这项任务,因为它经过大量数据集的训练。因此,模型记住了许多“事实”,这有助于撰写这篇文章。如果你尝试使用较小的模型,如在你的计算机上运行的 GPT4All,你可能会发现结果不那么详尽。
然而,根据其架构背后的原理,词语是基于与您提供的提示和它之前生成的内容之间的最高相关性来选择的。因此,你设置的提示越准确,模型生成更好的响应的可能性就越大。
尽管如此,你不应期望这会完美。首先,提示有大小限制,因此你无法完全概述你的意图。其次,即使没有限制,由于你的认知偏差,也很难在提示中包含所有细节。最后,由于对它的训练,这样的模型更倾向于选择最常见的词而不是最适合上下文的词。这也是为什么我们发现 ChatGPT 生成的作品可能获得及格,但从未达到优秀水平的原因。
总结
在这篇文章中,你了解了 ChatGPT 如何帮助你写作。特别是,你学到了:
-
ChatGPT 可以在简单的指导下,快速为你写出一篇文章。
-
你可以将任务拆分成多个步骤,以便 ChatGPT 生成更详细的回应。
-
ChatGPT 在创建新回应时可以参考与您的对话。