原文:zh.annas-archive.org/md5/cbab40341a2e11a6176db7dcf2884b55

译者:飞龙

协议:CC BY-NC-SA 4.0

前言

我们正处在一个快速技术变革的时代,其中人工智能AI)不再仅仅是一个工具,而是我们日常生活中的一位积极合作者。在众多 AI 进步中,生成式 AI 已成为一股颠覆性力量,重塑了我们与技术互动、创造内容和推动创新的方式。从生成类似人类的文本和制作令人惊叹的视觉效果,到创作音乐甚至编写代码,生成式 AI 解锁了曾经只属于科幻小说的可能性。

本书是生成式 AI 的全面指南,特别关注 ChatGPT,这是这个不断发展的格局中最有影响力的参与者之一。它旨在为希望了解底层原理、实际应用和企业规模实施的大型语言模型LLMs)的初学者和专业人员提供帮助。

本书分为三个部分:

  • 第一部分,生成式 AI 和 OpenAI 的基础,介绍了生成式 AI 的核心概念、AI 模型的演变以及大型基础模型背后的机制。它还深入探讨了 OpenAI,其模型家族(如 GPT-4、DALL·E 和 Whisper),以及 ChatGPT 的快速采用。

  • 第二部分,ChatGPT 实战,探讨了如何有效地与 ChatGPT 互动,涵盖了提示工程技巧以及跨多个领域的实际应用,包括生产力、软件开发、市场营销、研究和创造力。本节还介绍了 GPTs,这是 AI 定制的下一步,使用户能够构建自己的个性化 AI 助手。

  • 第三部分,OpenAI 企业应用,将重点转向企业规模的应用,讨论了企业如何通过 API 利用 OpenAI 的模型来开发强大的 AI 驱动解决方案。本书以一个前瞻性的序言结束,分析了更广泛的 AI 格局以及未来可以期待的内容。

这本书面向谁

这本书面向那些希望利用生成式 AI 力量的 AI 爱好者、商业专业人士和研究人员。无论你是探索 AI 驱动开发的软件工程师,利用 AI 进行内容创作的市场营销人员,还是制定 AI 采用策略的企业领导者,这本书都提供了你所需要的知识和实用见解。

这本书涵盖的内容

第一章,生成式 AI 简介,让你了解 AI 从传统方法到生成式 AI 的演变,探索 LLMs 的基础,并理解生成式 AI 如何推动文本、图像、音乐和视频的生成。

第二章,OpenAI 和 ChatGPT:超越市场炒作,深入探讨了 OpenAI 的生态系统,探讨了不同的模型家族(GPT-4、DALL·E 和 Whisper),并理解 ChatGPT 的快速崛起及其在日常和职业使用中的能力。

第三章理解提示工程,探讨了制作有效提示的艺术,包括 ReAct 和 思维链CoT)等技术,并展示了结构化提示如何增强 AI 生成的响应。

第四章用 ChatGPT 提升日常生产力,利用 ChatGPT 作为个人生产力助手,展示了如何自动化任务、改进写作、翻译内容、检索快速信息和提高研究效率。

第五章用 ChatGPT 开发未来,探讨了 ChatGPT 如何帮助开发者生成、优化和调试代码,以及翻译编程语言。

第六章用 ChatGPT 掌握营销,揭示了 ChatGPT 如何革命性地改变营销——增强内容创作、优化 SEO、进行 A/B 测试,并通过情感分析提高客户参与度。

第七章用 ChatGPT 重新发明研究,展示了 ChatGPT 如何帮助研究人员构思想法、构建研究、格式化参考文献,并以清晰简洁的方式展示研究结果。

第八章用 ChatGPT 唤醒视觉创造力,探讨了 ChatGPT 的多模态能力,包括 GPT-4 视觉和 DALL-E,实现 AI 驱动的图像生成、视觉问答和增强创意工作流程。

第九章探索 GPTs,介绍了 GPTs 的概念,探讨了基于助手的 AI 工作流程,并展示了如何构建自己的 AI 助手以执行研究、分析和营销等任务。

第十章利用 OpenAI 模型进行企业级应用,深入探讨了 OpenAI 的模型 API,理解了 LLM 的企业应用,并探讨了企业如何负责任地将生成式 AI 集成到其工作流程中。

第十一章结语和最后思考,反思了生成式 AI 的发展趋势,讨论了伦理影响,并展望了 AI 的未来。

附录 包含了一系列利用 OpenAI 和 Python 代码的实战案例,展示了现实世界的应用场景。

为了充分利用这本书

如果你记住以下事项,跟随起来会更容易:

  • 通过实战案例学习:许多章节包含了实际练习和现实世界的应用。尽可能使用 OpenAI 的 API、ChatGPT 和其他工具进行尝试。

  • 尝试不同的提示词:由于提示工程是与生成式 AI 一起工作的关键技能,尝试不同的提示词并观察细微的修改如何影响结果。

  • 探索 API 和开发者工具:如果你是开发者,花些时间探索 OpenAI 的 API 文档,并尝试将 AI 功能集成到自己的应用程序中。

  • 超越基础:这本书提供了一个基础,但 AI 是一个不断发展的领域。通过关注最新的研究和行业趋势来深化你的理解。

这里是一份你需要准备的事项清单:

本书涵盖的软件/硬件 系统要求
Python 3.7.1 或更高版本 Windows、macOS 或 Linux
Streamlit Windows、macOS 或 Linux
LangChain Windows、macOS 或 Linux
OpenAI 模型 API OpenAI 账户
Azure OpenAI 服务(可选) 启用 Azure OpenAI 的 Azure 订阅(可选)

下载示例代码文件

本书代码包托管在 GitHub 上,网址为github.com/PacktPublishing/Practical-GenAI-with-ChatGPT-Second-Edition。我们还有其他来自我们丰富图书和视频目录的代码包,可在github.com/PacktPublishing找到。查看它们!

使用的约定

本书使用了多种文本约定。

代码块设置如下:

{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"} 

粗体:表示新术语、重要单词或屏幕上看到的单词。例如,菜单或对话框中的单词在文本中显示如下。例如:“一如既往,需要一个领域专家(SME)参与审查结果。”

警告或重要注意事项如下所示。

小贴士和技巧如下所示。

联系我们

订阅 AI_Distilled,这是 AI 专业人士、研究人员和创新者的首选通讯简报,请访问packt.link/aWQQB

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/Valentina_Newsletter.png

我们始终欢迎读者的反馈。

一般反馈:请发送电子邮件至feedback@packtpub.com,并在邮件主题中提及书籍标题。如果您对本书的任何方面有疑问,请发送电子邮件至questions@packtpub.com

勘误:尽管我们已经尽最大努力确保内容的准确性,但错误仍然可能发生。如果您在这本书中发现了错误,我们将非常感激您向我们报告。请访问www.packtpub.com/submit-errata,点击提交勘误,并填写表格。

盗版:如果您在互联网上发现我们作品的任何非法副本,我们将非常感激您提供位置地址或网站名称。请通过链接至材料的方式与我们联系copyright@packtpub.com

如果您有兴趣成为作者:如果您在某个领域有专业知识,并且您有兴趣撰写或为书籍做出贡献,请访问authors.packtpub.com/

分享您的想法

一旦您阅读了《Practical Generative AI with ChatGPT, Second Edition》这本书,我们很乐意听听您的想法!请点击此处直接访问此书的 Amazon 评论页面并分享您的反馈。

您的评论对我们和科技社区非常重要,并将帮助我们确保我们提供高质量的内容。

下载此书的免费 PDF 副本

感谢您购买此书!

您喜欢在旅途中阅读,但无法随身携带您的印刷书籍吗?

您的电子书购买是否与您选择的设备不兼容?

别担心,现在,每购买一本 Packt 书籍,您都可以免费获得该书的 DRM 免费 PDF 版本。

在任何地方、任何地点、任何设备上阅读。直接从您最喜欢的技术书籍中搜索、复制和粘贴代码到您的应用程序中。

优惠远不止于此,您将获得独家折扣、新闻通讯以及每天收件箱中的优质免费内容。

按照以下简单步骤获取这些好处:

  1. 扫描下面的二维码或访问以下链接:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_Free_PDF_QR.png

packt.link/free-ebook/9781836647850

  1. 提交您的购买证明。

  2. 就这样!我们将直接将您的免费 PDF 和其他优惠发送到您的电子邮件。

第一部分

生成式 AI 和 OpenAI 的基础知识

在本书的第一部分中,介绍了生成式 AI 和 GPT 模型的基础知识,包括 OpenAI 的发展简史及其旗舰模型系列——GPT 家族。

本部分首先概述了生成式 AI 的领域,为你提供关于这一 AI 领域的知识基础,包括其历史和最前沿的发展。你还将熟悉生成式 AI 的应用,从文本生成到音乐创作。

然后介绍了将生成式 AI 的力量带给公众的公司:OpenAI。你将熟悉 OpenAI 最受欢迎的发布——ChatGPT——背后的技术,并理解从人工神经网络ANNs)开始的研究之旅,最终导致了大型语言模型LLMs)的诞生。

本部分包含以下章节:

  • 第一章生成式 AI 简介

  • 第二章OpenAI 和 ChatGPT:超越市场炒作

第一章:生成式 AI 简介

你好!欢迎来到 《ChatGPT 的实用生成式 AI》!在这本书中,我们将探索生成式人工智能AI)的迷人世界及其突破性的应用,特别关注 ChatGPT。

生成式 AI 已经改变了我们与机器互动的方式,使计算机能够在没有明确的人类指令的情况下进行创作、预测和学习。自 2022 年 11 月 OpenAI 的 ChatGPT 发布以来,我们在自然语言处理、图像和视频合成等多个领域见证了前所未有的进步。无论你是好奇的新手还是经验丰富的从业者,这本指南都将为你提供所需的知识和技能,以有效地探索生成式 AI 的激动人心领域。那么,让我们深入其中,从我们所处环境的定义开始这本书。

在本章中,我们关注生成式 AI 在各个领域的应用,如图像合成、文本生成和音乐创作,通过具体的例子和最新发展,突出生成式 AI 有潜力通过革命性的方式改变各个行业。了解生成式 AI 当前研究进展,将帮助你理解最近发展的基础和最先进模型。

所有这些,我们将在以下主题中涵盖:

  • 介绍生成式 AI

  • 探索生成式 AI 的领域

  • ChatGPT 发布两年后的主要趋势和创新

  • 生成式 AI 的法律和伦理环境

到本章结束时,你将熟悉生成式 AI 的激动人心世界,其应用,其背后的研究历史,以及可能——并且目前正在产生——对商业产生颠覆性影响的当前发展。

介绍生成式 AI

生成式 AI 是人工智能的一个令人兴奋的分支,专注于创建新的内容,如文本、图像、音乐,甚至视频,这些内容通常与人类制作的内容难以区分。

为了了解其适用范围,让我们将其分解:

  • AI:AI 是一个广泛的领域,它使机器能够模仿类似人类的行为,如决策或解决问题。

  • 机器学习ML):在人工智能领域,机器学习指的是机器从数据中学习模式以进行预测或决策的技术,而不需要明确编程。学习过程是通过称为算法的复杂数学模型实现的。

  • 深度学习DL):机器学习的一个子集,深度学习使用受人类大脑启发的复杂算法来处理大量数据并识别复杂的模式。由于它们的架构——受我们的大脑和神经连接的启发——这些算法被称为人工神经网络。

    定义

    人工神经网络是一种计算机程序,它通过模仿人脑处理信息的方式来学习模式。它不是遵循严格的、一步一步的规则,而是使用相互连接的“节点”(类似于虚拟脑细胞),这些节点共同工作并在时间中调整它们的连接。通过反复审查示例,它逐渐提高在识别图像、理解语音或预测结果等任务上的能力——所有这些都不需要为每一步提供明确的指令。

生成式 AI 源于深度学习(DL),并使用专门的算法根据从现有数据中学到的内容生成全新的东西。例如,一个在数千幅画作上训练的生成式 AI 模型可以创造出融合不同风格或主题的新艺术作品。

下图展示了这些研究领域之间是如何相互关联的:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_01.png

图 1.1:AI、ML、DL 和生成式 AI 之间的关系

生成式 AI 模型在大量数据上进行训练,然后可以根据用户请求生成新的示例。这里的变革性元素在于,这些请求是以最简单的方式提出的——使用我们的自然语言。这些模型被称为大型语言模型LLMs)。

定义

大型语言模型(LLMs)是一种具有特定架构框架“Transformer”的人工神经网络。它们以数十亿个参数(数量级)为特征,并在数十亿个单词上进行训练。给定训练集,LLMs 能够从用户查询中推断语言模式和意图,并生成自然语言响应。

与大型语言模型(LLMs)进行自然语言交互的可能性具有颠覆性,围绕这一活动诞生了一门全新的科学。这门科学被称为“提示工程”,这个名字来源于“提示”这个词,我们将在第三章中进行介绍。

定义

提示是你提供给生成式 AI 模型的具体文本、问题或描述,以引导它产生你想要的结果——无论是有用的解释、一个创意故事,还是详细的解决方案。你如何措辞提示可以极大地影响 AI 的响应。这种精心设计和完善提示的做法,通常被称为“提示工程”,涉及对不同词汇选择、指令和格式的实验,以提高 AI 输出的质量和准确性。通过学习如何制作有效的提示,你帮助确保 AI 更一致地给出有用、吸引人且符合你目标的结果。

尽管文本理解和生成可能是生成式 AI 最突出的功能之一,但这个领域涵盖了众多领域,我们将在下一部分进行介绍。

生成式 AI 的领域

近年来,生成式人工智能取得了显著进步,并将其应用扩展到艺术、音乐、时尚和建筑等多个领域。在这些领域中,它确实正在改变我们创造、设计和理解周围世界的方式。在其他领域,它正在改进现有流程和操作,使其更加高效。

例如,在制药行业的背景下,生成式人工智能通过快速设计新型治疗分子,正在彻底改变药物发现,从而显著缩短开发周期和成本。通过分析大量的化学和生物信息数据集,生成式人工智能模型可以识别有希望的药物候选物并预测它们在人体内的相互作用。例如,Insilico Medicine 利用生成式人工智能开发了 ISM001-055,这是一种用于治疗特发性肺纤维化的药物候选物,于 2023 年进入 II 期临床试验(Insilico Medicine 的博客:首个 II 期临床试验)。

另一个例子是生成式人工智能如何通过允许创建对玩家动作做出反应的动态和自适应环境,从而革命性地改变游戏开发。通过利用生成式人工智能,开发者可以程序性地生成庞大且不断变化的游戏世界,确保每次游玩都提供独特的体验。这项技术促进了具有适应玩家互动行为的真实非玩家角色(NPCs)的创建,使游戏叙事更加引人入胜。此外,生成式人工智能通过自动化资产创建简化了开发过程,从而减少了生产时间和成本。

因此,开发者可以更多地专注于创造创新的游戏玩法机制和丰富的叙事,最终提供更加个性化和吸引人的游戏体验(生成式人工智能在游戏开发中的应用:创建动态和自适应环境)。

最后,生成式人工智能对广告和视觉资产生成也有重大影响。例如,2023 年 3 月,可口可乐推出了“创造真实魔法”平台(可口可乐邀请全球数字艺术家使用新的 AI 平台创造真实魔法),邀请全球数字艺术家使用其档案中的标志性品牌资产创作原创艺术品。该平台与 OpenAI 和 Bain & Company 合作开发,结合了 GPT-4 和 DALL-E 的能力,使用户能够生成融合可口可乐遗产与现代 AI 技术的独特作品。参与者有机会提交他们的作品,以获得在纽约时代广场和伦敦皮卡迪利广场的可口可乐数字广告牌上展示的机会,这体现了品牌通过尖端技术培养创造力的承诺。这些只是生成式人工智能如何重塑业务流程的几个例子。

现在,生成式 AI 在许多领域的应用也意味着其模型可以处理不同类型的数据,从自然语言到音频或图像。在下一节中,我们将探讨生成式 AI 模型如何处理不同类型的数据和领域。

文本生成

在 AI 中,文本生成的演变是一段从早期的理论概念到今天复杂语言模型的旅程。20 世纪 50 年代标志着人工智能作为一个领域的正式诞生,先驱如艾伦·图灵探索了机器智能。20 世纪 60 年代和 70 年代的早期自然语言处理(NLP)努力导致了 ELIZA 等程序的出现,这些程序通过模式匹配模拟对话。20 世纪 80 年代和 90 年代,统计模型的发展通过概率预测词序列来改进语言建模。在这一时期,机器学习算法的出现进一步提升了文本生成能力。

2017 年,随着 Transformer 架构的引入,发生了重大突破,正如之前所述,这是今天 LLMs 所采用的框架。

这一系列新模型中,以生成式 AI 的景观为特色的独特之处在于——一旦它们被训练——它们可以通过最简单的方式被消费、查询和指令。LLMs 的引入标志着 AI 领域的一个范式转变,因为不需要高级技能就能从中受益。

今天,生成式 AI 最伟大的应用之一——也是我们将在整本书中最多讨论的应用——是其能够在自然语言中生成新内容的能力。确实,生成式 AI 模型可以用于生成不同语言中新的连贯且语法正确的文本,如文章、诗歌和产品描述。它们还可以从文本中提取相关特征,如关键词、主题或完整摘要。

这里是一个使用 GPT-4o 的例子,这是 OpenAI 最新发布的模型之一,并通过 ChatGPT 提供:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_02.png

图 1.2:ChatGPT 以自然语言回应用户查询的示例

正如你所见,该模型不仅能够用解释质子是什么的方式来回答我的问题;它还能根据特定的目标受众调整其风格和术语——在我这个例子中,是一个 5 岁的孩子。这一点非常了不起,因为它为许多以前不可能的超个性化场景铺平了道路。在接下来的章节中,我们将探讨许多这样的例子。

ChatGPT 是本书的重点,在接下来的章节中,你将看到展示这一强大应用功能的示例。

现在,我们将转向图像生成。

图像生成

生成式 AI 在图像合成中最早的也是最著名的例子之一是 I. Goodfellow 等人在 2014 年发表的论文中引入的 生成对抗网络(GAN)架构,Generative Adversarial Networks。GANs 的目的是生成与真实图像难以区分的逼真图像。这种能力有几种有趣的应用,例如生成用于训练计算机视觉模型的合成数据集,生成逼真的产品图像,以及生成用于虚拟现实和增强现实应用的逼真图像。

然后,在 2021 年,OpenAI 在这个领域引入了一个新的生成式 AI 模型 DALL-E。与 GANs 不同,DALL-E 模型旨在从自然语言描述中生成图像,并且可以生成各种图像。这里的主要区别在于,虽然 GANs 通常用于创建或改进逼真的图像,但像 DALL-E 这样的模型非常适合视觉创造力,将任何自然语言描述转化为插图。

DALL-E 在广告、产品设计、时尚等创意产业中具有巨大的潜力,可以创建独特且富有创意的图像。

从其首次发布到撰写本书的时间(2024 年 12 月),DALL-E 的改进非常显著,以下是一些示例。以下是在 DALL-E 生命之初的艺术创作:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_03.png

图 1.3:DALL-E 使用自然语言提示作为输入生成的图像

现在让我们看看在撰写本书时最新的模型版本 DALL-E3 可以产生什么(在这里,我们将使用由 DALL-E3 驱动的 Microsoft Image Creator,您可以在 https://copilot.microsoft.com/images/create 尝试):

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_04.png

图 1.4:DALL-E3 使用自然语言提示作为输入生成的图像

在不到 2 年的时间里看到这个模型的改进水平令人印象深刻。我们只是触及了正在快速发生的巨大改进的表面。

音乐生成

生成式 AI 用于音乐生成的最初方法可以追溯到 1950 年代,该领域的研究是算法作曲,这是一种使用算法生成音乐作品的技术。在 1957 年,Lejaren Hiller 和 Leonard Isaacson 为 String Quartet 创建了 Illiac Suite(https://www.youtube.com/watch?v=n0njBFLQSk8),这是第一首完全由 AI 作曲的音乐作品。从那时起,生成式 AI 在音乐领域的应用一直是持续研究的主题。

在近年来的发展中,新的架构和框架在公众中变得普遍,例如 Google 在 2016 年引入的 WaveNet 架构,它能够生成高质量的音频样本,以及由 Google 开发的 Magenta 项目,该项目使用 循环神经网络RNNs)和其他机器学习技术来生成音乐和其他艺术形式。

定义

RNNs是一种神经网络,通过循环结构保留先前输入的信息来处理序列数据。这使得它们能够识别随时间变化的模式和依赖关系,因此非常适合语言建模、时间序列预测和语音识别等任务。

2020 年,OpenAI 还宣布了 Jukebox,这是一个神经网络,当提供流派、艺术家和歌词作为输入时,可以生成音乐。

这些以及其他框架成为了许多音乐生成人工智能助手的基石。例如,索尼 CSL 研究开发的 Flow Machines。这个生成式人工智能系统在大量音乐作品数据库上进行了训练,以创作出多种风格的新音乐。法国作曲家本诺·卡雷(Benoît Carré)使用它创作了一张名为《Hello World*》(https://www.helloworldalbum.net/)的专辑,其中包含与多位人类音乐家的合作。

在这里,你可以看到一个完全由 Music Transformer 生成的曲目示例,它是 Magenta 项目中的一个模型:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_05.png

图 1.5:音乐 Transformer 允许用户聆听由 AI 生成的音乐表演(https://magenta.tensorflow.org/music-transformer)

生成式人工智能在音乐领域的另一个令人惊叹的应用是语音合成。这指的是能够根据文本输入创建音频的人工智能工具,并以知名歌手的声音输出。

例如,如果你一直想知道如果你的歌曲由 Lady Gaga 演唱会是什么样子,那么现在,你可以通过像 FakeYou Text to Speech(https://fakeyou.com/tts)或 UberDuck.ai(https://uberduck.ai/)这样的工具来实现你的梦想!

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_06.png

图 1.6:fakeyou.com 的文本到语音合成

结果非常令人印象深刻!如果你想找乐子,你还可以尝试你最喜欢的卡通中的声音,比如维尼熊。你需要做的只是输入你希望你最喜欢的声音大声唱出的歌曲文本。

让我们更进一步。如果我们能够从头开始生成一首歌,只需让生成式人工智能以自然语言为我们完成这项任务,那会怎么样呢?嗯,我们今天可以无缝地做到这一点,而且不需要任何音乐知识。在当今音乐市场上崛起的生成式人工智能产品中,Suno 就是其中之一,其使命是*“[…]构建一个任何人都可以创作出伟大音乐的未来。无论你是淋浴歌手还是排行榜上的艺术家,我们都打破了你们与梦想中的歌曲之间的障碍。无需乐器,只需想象力。从你的心中到音乐。”*(来源:https://suno.com/about)。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_07.png

图 1.7:Suno.com 从自然语言描述中生成的整首歌曲的示例

如您所见,在图片的左侧,我提供了一个非常简短的用自然语言描述的歌曲——这就是我的提示。基于此,模型不仅能够生成歌曲的标题和歌词(在右侧),还能生成音乐!

你能相信它成为了我 2024 年夏天的热门歌曲吗?如果你想创作自己的夏日热门歌曲,你可以在 https://suno.com/create 免费尝试。

视频生成

视频生成领域的生成式 AI 与图像生成领域的发展时间线相似。视频生成领域的一个关键发展是 GANs(生成对抗网络)的发展。得益于它们在生成逼真图像方面的准确性,研究人员开始将这项技术应用于视频生成。基于 GANs 的视频生成的一个最显著的例子是 DeepMind 的 Veo,它可以从单个图像和一系列动作生成高质量的视频。另一个很好的例子是 NVIDIA 的视频到视频合成Vid2Vid)基于 DL(深度学习)的框架,它使用 GANs 从输入视频中合成高质量的视频。

Vid2Vid 系统可以生成时间上一致的视频,这意味着它们在时间上保持平滑和逼真的运动。这项技术可以用于执行各种视频合成任务,例如以下任务:

  • 将视频从一个领域转换为另一个领域(例如,将白天视频转换为夜间视频或草图转换为逼真图像)

  • 修改现有的视频(例如,改变视频中对象的风格或外观)

  • 从静态图像创建新的视频(例如,将一系列静态图像动画化)

2022 年 9 月,Meta 的研究人员宣布Make-A-Video(https://makeavideo.studio/)的通用版正式发布,这是一个新的 AI 系统,允许用户将他们的自然语言提示转换为视频片段。在这项技术背后,你可以认出许多我们在其他领域提到过的模型——用于提示的语言理解、使用图像生成进行图像和运动生成,以及由 AI 作曲家创作的背景音乐。

现在,我们上面提到的所有内容与最新的文本到视频模型相比都显得黯然失色。以其中一个为例,OpenAI 在 2024 年 2 月宣布了一种名为SORA的文本到视频模型,并发布了一些早期实验:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_08.pnghttps://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_09.pnghttps://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_10.png https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_11.png

图 1.8:SORA 从自然语言提示中生成的视频。来源:https://openai.com/index/sora/

我确实鼓励您访问 SORA 网页,看看它创造的精彩视频。在撰写本文时,SORA 尚未公开发布,因为它正在通过 OpenAI 红队进行多项测试。

总体而言,生成式人工智能已经影响了多个领域多年,一些 AI 工具已经持续支持艺术家、组织和普通用户。尽管我们只用了两年时间在生成式人工智能上进行实验和构建应用,但已经有一些巩固的趋势和未来创新需要我们关注。让我们在下一节中探讨它们。

主要趋势和创新

从 2022 年 11 月至今,我们见证了生成式人工智能领域的大量创新。其中许多创新与公开推出的一系列全新模型有关,例如 OpenAI 的 GPT-4o 和 DALL-E3,还有 Google Gemini、Meta Llama 3、Microsoft Phi3 以及其他许多模型。

然而,最引人注目的成就可能在于我们与这些模型互动以及围绕这些模型构建应用的方式。在本节中,我们将探讨三个主要进展,这些进展标志着生成式人工智能应用中最受欢迎的参考架构。

检索增强生成

ChatGPT 以及一般而言的 LLM 的第一个局限性是知识库截止点。LLM 的知识仅限于它们训练的数据集,尽管这可能很全面,但并不更新(事实上,一旦模型训练完成,任何在此之后出现的新数据或信息都不会成为其知识的一部分,因为它们没有包含在原始训练集中)。此外,数据可能缺少对我们或我们的组织可能相关的专有知识库。例如,如果你问 ChatGPT,“我公司的员工医疗保险政策是什么?”模型将无法回答,因为它无法访问这些信息。

为了绕过这一限制,设计了一个新的框架,允许大型语言模型(LLM)在我们提供的定制文档中导航。这个框架被称为检索增强生成RAG)。

RAG 背后的想法是通过添加外部信息源来增强 LLM 的知识,而无需对模型结构进行任何修改。

定义

嵌入是将复杂信息(如单词、句子或图像)转换为数字列表(向量)的一种方式。这使得计算机更容易理解这些单词或句子的含义。如果两段文本具有相似的含义,它们的向量在数值空间中将彼此靠近。换句话说,嵌入让计算机根据内容而不是精确措辞来衡量不同输入的相似程度。

例如,如果两个概念相似,那么它们的向量表示也应该相似。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_12.png

图 1.9:四个不同单词的向量表示示例

在这个例子中,我们可以看到“Queen”和“King”对应的两个向量之间的数学距离与“Woman”和“Man”之间的差异大致相同。从语义上讲,这是有道理的,因为我们正在谈论类似的关系。一个类似的例子可以应用于国家和首都之间的关系:一旦嵌入到向量空间中,“Italy”和“Rome”之间的距离应该与“France”和“Paris”之间的距离相似,因为它们映射的是相同的关系。

RAG 由三个阶段组成:

  1. 检索:给定用户的查询及其对应的数值表示,检索出与用户查询向量最相似的文档片段(对应于与用户查询向量最近的向量),并将其用作 LLM 的基础上下文。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_13.png

图 1.10:从不同文档中检索三个不同片段的示例,因为它们由最接近用户查询的向量表示

  1. 增强:通过额外的指令、规则、安全护栏以及类似提示工程技术的典型做法,检索到的上下文得到丰富(我们将在第三章中介绍提示工程的主题)。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_14.png

图 1.11:向检索到的文档片段添加更多上下文的示例

  1. 生成:基于增强的上下文,LLM 生成对用户查询的响应。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_15.png

图 1.12:使用增强上下文作为系统消息的示例,以供模型生成最终答案

RAG 结合了生成模型和信息检索系统的优势,以增强生成内容的质和相关性。传统的生成模型完全依赖于其训练数据来生成响应,这有时会导致过时或不相关的信息。RAG 通过在生成过程中整合外部知识库来解决这一局限性。

多模态

在本章的早期,我们探讨了生成式 AI 的各个领域,从文本到图像,从视频到音乐。通常,大型基础模型倾向于特定于领域,正如我们在语言理解和生成案例中看到的 LLMs,或者在图像生成案例中的 DALL-E3。

然而,近年来生成式 AI 的进步使得大型多模态模型(LMMs)的开发成为可能,这些模型可以处理和生成不同类型的数据,如文本、图像、音频和视频。

LMMs 与标准LLMs 共享泛化和适应典型大型基础模型的能力。然而,LMMs 能够处理多样化的数据,其理念是模仿人类与周围生态系统互动的方式——也就是说,通过我们所有的感官。

多模态模型的一个很好的例子是 OpenAI 的 GPT-4o,它能够通过文本、图像和音频与用户进行交互。以下是一个例子:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_16.png

图 1.13:向 ChatGPT-4o 提供图片并要求它命名建筑物的示例

如你所见,该模型能够分析图像并对它进行推理。

现在我们来要求模型生成一幅插图:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_17.png

图 1.14:ChatGPT-4o 根据之前提供的图片生成插图的示例

LLM 与其他模型的不同之处在于它们保留高级推理能力,这使得它们特别适合在多样化的数据环境中处理复杂的推理任务,而传统的 AI 模型则不然。以传统的计算机视觉模型为例,它们是针对特定任务的,它们不会对图像进行推理,而是执行诸如检测对象或从图像中提取文本等任务。另一方面,LMMs 可以使用与 LLM 相同的推理能力,但它们可以将这些能力应用于除文本以外的数据。

让我们考虑这个最后的例子(只显示响应的前几行):

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_01_18.png

图 1.15:ChatGPT 4o 解决填字游戏的示例

如你所见,该模型能够:

  • 阅读并理解图像所呈现的场景

  • 对其进行推理并解决它所提供的复杂任务,即解决谜题

如你所想,这为各个行业的应用开辟了一片天地,我们将在接下来的章节中看到一些具体的例子。

AI 代理

在前面的章节中,我们揭示了 LLM 在生成内容方面的强大能力。然而,它们缺少一种能力,那就是采取行动并与周围生态系统进行交互,这种交互超越了单个用户。例如,如果我们想让我们的 LLM 不仅能够生成一篇精彩的 LinkedIn 帖子,还能在我们页面上发布它呢?

AI 代理作为克服这一限制的关键角色出现。但它们究竟是什么呢?代理可以被看作是受 LLM 驱动的 AI 系统,在给定用户查询的情况下,能够与周围生态系统进行交互,直到我们允许它们做到的程度。生态系统的边界由我们提供给代理的工具(或插件)界定(在我们之前的例子中,我们可能给代理提供一个 LinkedIn 插件,以便它能够发布生成的内容)。

代理由以下成分构成:

  • 一个 LLM,作为 AI 系统的推理引擎。

  • 一个系统消息,指示代理以某种方式行为和思考。例如,你可以设计一个代理作为学生的教学助手,以下是一个系统消息:“你是一名教学助手。面对学生的查询,永远不要提供最终答案,而是提供一些提示来引导他们。”

  • 一组代理可以利用的工具来与周围生态系统互动。

AI 代理是“LLM 作为应用程序推理引擎”这一含义的完美体现。实际上,代理的美丽之处在于它们可以选择最佳工具来完成用户的请求。例如,假设我们有一个 AI 代理来生成 LinkedIn 内容,我们向它提供两个工具:一个 LinkedIn 插件和一个网络搜索插件(每个都对其功能有正确的描述)。让我们探索代理在三个不同场景下的行为:

  • 生成一个关于一只小狗在山间漫步的故事:代理将生成故事而不使用插件。

  • 生成一篇关于米兰当前天气的故事:代理将调用网络搜索插件以获取米兰的当前天气。

  • 生成一篇关于米兰当前天气的 LinkedIn 帖子并发布在我的个人资料上:代理将调用网络搜索插件以获取米兰的当前天气,并使用 LinkedIn 插件在我的个人资料上发布。

指令和一组插件的组合使 AI 代理极其灵活,你可以创建高度专业化的实体来应对特定场景。

这还不是全部。

如果你可以创建自己的代理团队,相互交谈并合作,为什么只有一个代理呢?想象一下多个代理,每个代理都有特定的专业知识和目标,通过沟通和互动来完成一项任务。这就是多代理应用程序的样子,在过去的几个月里,这种模式开始显示出非常有趣的结果。

让我们考虑以下例子。我们想要生成一个关于气候变化的电梯演讲。为此,我们需要最新的信息(最新趋势和研究、未来展望等),以及基于学术论文的扎实研究。此外,我们需要简洁而尖锐、有效,在非常短的演讲中传达所有关键信息。

现在,我们可以要求一个代理完成所有这些工作,向它提供所有必需的工具和长指令来完成这项任务。然而,如果任务变得非常复杂,单个代理可能不是最佳方法,因为它可能导致不准确的结果。相反,让我们采用多代理方法,创建一个由以下 AI 专业人士组成的团队:

  • 一个能够搜索有关气候变化最新新闻的市场分析师:这将是一个具有网络搜索插件和特定搜索新闻指令的代理。

  • 一个能够轻松浏览关于气候变化学术研究论文的专家研究者:这将是一个带有 Arxiv(一个精选的研究共享平台)插件和如何检索相关信息的具体指令的代理。

  • 一个能够轻松将所有信息整合到一个电梯演讲中的公共演讲专家:这将是一个带有如何进行完美演讲的指令的代理。

  • 一个将审查提案并对公共演讲专家提出一些修改意见的评论家(如果需要的话):这将是一个带有如何通过识别陷阱和改进区域来审查和改进提案的指令的代理。

因此,当用户要求代理生成关于当前气候变化问题的电梯演讲时,所有代理都可以开始工作。

有许多框架可以帮助开发者处理多代理应用(包括 AutoGen、LangGraph 和 CrewAI),尤其是在我们希望代理遵循的流程方面。例如,我们可能希望强制执行特定的迭代次数;或者所有代理至少被调用一次;甚至可能涉及我们,作为用户,在每次迭代中提供进一步反馈以纳入即将到来的迭代。

在撰写本文时,多代理框架显示出有希望的发展,这是 LLMs 背后卓越推理能力的缩影,以及它们如何解锁新的问题解决方式。

小型语言模型

LLMs(大型语言模型)不出所料地很大。这意味着包含 LLMs 的ANN(人工神经网络)架构由数亿个参数组成。通常,大量的参数与性能更好的模型相关联,因为它能够处理更多的信息和示例,因此当用户提问时能够识别和推断出更多的模式。然而,大量的参数通常伴随着高昂的训练和托管成本,因为需要强大的 AI 基础设施。此外,这些模型的能耗引发了关于 LLM 训练的环境影响及其长期可持续性的严重问题。

这些较小的模型被称为小型语言模型SLMs),除了在基础设施方面更轻、需求更低之外,它们还表现出令人惊讶的高性能。

现在,我们可能会认为 GPT-3.5-turbo 已经过时;然而,我们必须记住,它一年前曾是市场上最强大的模型,看到 7B 模型能够取得更好的结果是非常令人瞩目的。

SLMs(小型语言模型)绝对是一个值得关注的科研领域,尤其是在我们可能希望本地部署模型或通过微调对其进行定制(我们将在下一章介绍微调)的场景中。

生成式 AI 的法律和伦理格局

在开发和部署生成式 AI 系统时,必须仔细处理广泛的法律法规和伦理考量,以确保其负责任和可持续的使用。这些考量不仅限于合规性,还进入了一个道德责任、公众信任和技术问责相交的领域。

版权和知识产权问题

LLMs 通常在从互联网上抓取的大量语料库上进行训练,包括可能受版权保护的内容。因此,存在将受版权保护的文本、音乐、图像或视频片段直接嵌入 AI 输出的实际风险,当这些输出被共享或商业化时,可能会无意中产生侵权行为。

这种具体风险在 2024 年 11 月也加剧了,当时包括《环球邮报》和 CBC/Radio-Canada 在内的主要加拿大新闻机构(https://www.reuters.com/sustainability/boards-policy-regulation/major-canadian-news-media-companies-launch-legal-action-against-openai-2024-11-29/)对 OpenAI 提起了诉讼。他们声称 OpenAI 未经授权使用他们的版权内容来训练其 AI 模型,寻求赔偿和禁止进一步未经授权使用的禁令。

错误信息、幻觉和虚假新闻的风险

当前生成式 AI 模型的一个已知局限性是它们倾向于产生幻觉——产生听起来完全合理但实际上错误的信息。这可能导致无意中传播错误信息,尤其是在消费者、记者或公众官员将 AI 生成内容视为事实时。

例如,在 2024 年 12 月,虚假信息研究员杰夫·汉考克(https://www.theverge.com/2024/12/4/24313132/jeff-hancock-minnesota-deepfake-law-ai-hallucinations-citation)承认,他在准备法庭文件时,ChatGPT 捏造了细节,导致提交了不存在的引用。这一事件强调了 AI 生成内容在关键文件中引入不准确性的风险。

持续接触不可靠的 AI 输出可能导致对所有数字内容的广泛怀疑,损害合法来源的信誉,并减少对专家评论和信誉良好的新闻的信任。因此,组织必须投资于事实核查流程、人工介入验证和透明的模型评估方法。

深度伪造和欺骗性操纵

深度伪造技术,作为生成式 AI 的一个高级子集,能够合成高度逼真的图像、视频和语音录音,可以被用来模仿公众人物、编造丑闻事件或制作操纵性的政治宣传。

定义

深度伪造是一种使用深度学习算法创建的人工媒体,其中一个人的肖像、声音或动作被数字化操纵以创建逼真但虚假的内容。通常,深度伪造涉及修改视频或图像,使其看起来像某人说了或做了他们实际上从未做过的事情。

最近的一个例子发生在 2023 年,当时一家跨国公司香港分行的财务职员在骗子使用深度伪造音频模仿高级管理人员后,被骗转款超过 2500 万美元,指示未经授权的资金转账(https://www.secureworld.io/industry-news/hong-kong-deepfake-cybercrime)。

受深度伪造攻击的公司、政府和个人可能会遭受严重的声誉损害,导致公众尴尬、经济损失或信任度降低。建立检测工具、实施数字水印技术以及建立惩罚恶意深度伪造创作者的法律框架是减轻这些风险的关键步骤。

偏见、歧视和社会伤害

生成式 AI 模型可能会无意中复制和放大其训练数据中存在的现有社会偏见。例如,模型可能会持续描绘某些职业为男性主导,或以刻板印象描绘特定的文化群体。

这些有偏见的输出可能会影响招聘决策、产品推荐和政策制定过程,最终对代表性不足的群体造成不利。

在这方面,2023 年的一项研究,文本到图像生成中的人口统计学刻板印象(https://hai.stanford.edu/sites/default/files/2023-11/Demographic-Stereotypes.pdf),强调了文本到图像生成 AI 模型往往编码了大量的偏见和刻板印象。例如,请求专业人士图像的提示通常会导致与传统性别角色一致的描绘,如男性医生和女性护士,从而强化了过时和歧视性的观点。

另一项研究,生成式人工智能的社会危险:综述和指南(https://dl.acm.org/doi/fullHtml/10.1145/3657054.3664243),调查了这些技术可能加剧现有不平等的程度。例如,AI 生成的内容可能会通过代表性不足或负面描绘某些社区来边缘化它们,导致社会伤害和强化系统性歧视。

组织必须承诺进行全面偏见审计,定期更新训练数据集,实施公平约束,并让多元化的利益相关者参与模型开发和评估。

这些只是与生成式 AI 相关的潜在风险和问题的几个例子。此外,重要的是要认识到,类似的法律和伦理影响并不仅限于生成式 AI,而是适用于更广泛的 AI 领域,其应用始终引发一些担忧(例如,在人脸识别方面的隐私考虑)。

然而,生成式 AI 工具的极端快速发展和——更重要的是——采用,凸显了组织、政策制定者和开发者合作制定稳健治理框架的紧迫需求,以应对生成式 AI 带来的独特挑战。这包括采用透明数据来源的标准,获取版权内容的明确许可,实施严格的验证程序以对抗虚假信息,并与监管机构紧密合作建立法律界限。这也要求 AI 从业者持续保持警惕,更新模型,改进算法,并与跨学科专家合作,以确保生成式 AI 作为创新和积极社会影响的动力,而不是伤害或道德妥协的来源。

摘要

在本章中,我们探索了生成式 AI 的激动人心的世界及其各种应用领域,包括图像生成、文本生成、音乐生成和视频生成。我们学习了由 OpenAI 训练的生成式 AI 模型,如 ChatGPT 和 DALL-E,如何使用深度学习技术在大数据集中学习模式,并生成既新颖又连贯的新内容。我们还讨论了生成式 AI 的历史、起源以及当前的研究状况。

本章的目标是提供生成式 AI 基础知识的坚实基础,并激发您进一步探索这个迷人的领域。

在下一章中,我们将重点关注市场上最具有前景的技术之一,ChatGPT。我们将探讨其背后的研究和由 OpenAI 的开发,其模型的架构,以及截至今天它可以解决的主要用例。

参考文献

  • 生成对抗网络:https://arxiv.org/abs/1406.2661

  • 分析和改进 StyleGAN 的图像质量:https://arxiv.org/abs/1912.04958

  • 视频到视频合成:https://arxiv.org/abs/1808.06601

  • 深度生成模型三合一:三个旨在利用大规模力量的进展:https://www.microsoft.com/en-us/research/blog/a-deep-generative- model-trifecta-three-advances-that-work-towards-harnessing- large-scale-power/

  • Vid2Vid: https://tcwang0509.github.io/vid2vid/

  • LLaMA:开放和高效的基座语言模型:https://arxiv.org/pdf/2302.13971

  • 介绍 Phi-3:https://azure.microsoft.com/en-us/blog/introducing-phi-3-redefining-whats-possible-with-slms/

加入我们的 Discord 和 Reddit 社区

对本书有任何疑问或想参与关于生成式 AI 和 LLMs 的讨论?加入我们的 Discord 服务器packt.link/I1tSU和 Reddit 频道packt.link/jwAmA,以连接、分享和与志同道合的爱好者合作。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/Discord.png https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/QR_Code757615820155951000.png

第二章:OpenAI 和 ChatGPT:超越市场炒作

本章概述了 OpenAI 及其最显著的发展——ChatGPT,突出了其历史、技术和能力。

我们还将探讨 OpenAI 在生成 AI 领域的成就,超越 ChatGPT——从语音到文本模型到图像生成,这将为你提供对一些最先进的生成 AI 技术现状的更广泛认识。

更具体地说,我们将涵盖以下主题:

  • 什么是 OpenAI?

  • OpenAI 模型家族概述

  • 开始使用 ChatGPT

到本章结束时,你将拥有关于 ChatGPT 及其使用方法以及其技术能力的基础知识,以及 OpenAI 模型家族的深入理解。

技术要求

要测试本章中的示例,你需要一个 OpenAI 账户。

如果你需要任何帮助,可以参考“创建 OpenAI 账户”部分。

什么是 OpenAI?

OpenAI 是一个成立于 2015 年的研究组织,由埃隆·马斯克、山姆·奥特曼、格雷格·布罗克曼、伊利亚·苏茨克维、沃伊切赫·扎伦巴和约翰·舒尔曼共同创立。正如 OpenAI 网页上所述,其使命是“确保通用人工智能(AGI)[…]造福全人类” (openai.com/index/planning-for-agi-and-beyond/)。近年来,OpenAI 已形成战略伙伴关系,以进一步推进其研究和部署工作。值得注意的是,微软对 OpenAI 进行了大量投资,为支持高级 AI 技术的发展提供了资源。OpenAI 继续在 AI 研究中处于领先地位,努力在创新与道德考量之间取得平衡,以确保 AI 技术的发展与社会的更广泛利益相一致。

通用人工智能AGI)是一种概念性的 AI 类型,能够以与人类智能相当的专业水平理解和利用跨不同任务的知识。与针对特定目的定制的窄 AI 系统不同,AGI 将展现出类似人类的认知适应性,使其能够完成人类能够完成的任何智力任务。

OpenAI 的起源

自成立以来,OpenAI 一直专注于深度强化学习DRL),这是机器学习ML)的一个子集,它将强化学习RL)与深度神经网络DNNs)相结合。

强化学习(RL)是一种机器学习(ML)范式,其中智能体通过与环境的交互来学习做出决策。智能体根据其行为获得反馈,形式为奖励或惩罚,并旨在最大化累积奖励。

深度强化学习(Deep RL)是强化学习(RL)和深度神经网络(DNNs)或深度神经网络(the latter is a type of artificial neural network with multiple layers between the input and output) 的结合。

在深度强化学习(DRL)中,深度神经网络(DNNs)被用来近似价值函数、策略或环境模型,使智能体能够处理复杂、高维的状态和动作空间。通过结合强化学习和 DNNs 的优势,DRL 已成功应用于诸如玩电子游戏、机器人控制和自动驾驶等任务,在这些任务中,传统方法在可扩展性和特征提取方面存在困难。

OpenAI 在该领域的首次贡献可以追溯到 2016 年,当时公司发布了 OpenAI Gym,这是一个用于研究人员开发和测试强化学习算法的工具包。

Gym(现称为 Gymnasium)的主要目标是标准化在人工智能研究环境中定义的方法,使得发表的研究更容易重现,并为用户提供一个简单的界面来与这些环境交互。OpenAI 在该领域持续研究和贡献,但其最显著的成就与生成模型——生成预训练 TransformerGPTs)相关。

GPT是一种高级人工智能模型,旨在处理和生成类似人类的文本。它通过在训练阶段从大量书面语言数据中学习模式、结构和上下文来运行。这种训练使 GPT 能够预测和生成连贯且上下文相关的文本,允许它以高度自然的方式理解和回应提示。

“预训练”这一方面指的是它在广泛的语言数据上的初始训练,使其具备对语法、句法、语义和不同沟通风格的普遍理解。而“生成”能力意味着它可以创建与给定输入相符合的新文本,而不仅仅是分析或分类数据。

“Transformer”这一方面指的是一种特定的架构设计,它包含一个高级机制——称为“注意力”——以高效地理解单词和短语之间的关系,使其能够以高精度处理复杂的语言任务。

ChatGPT 的出现

OpenAI 在其论文《通过生成预训练改进语言理解》中介绍了他们的第一个 GPT 模型,并将其命名为GPT-1,旨在证明语言模型可以在大型文本语料库上预训练,然后针对特定任务进行微调,从而在各种自然语言处理NLP)应用中实现显著的改进。

微调是将预训练模型适应新任务的过程。在微调过程中,预训练模型的参数被调整,要么通过调整现有参数,要么通过添加新参数,以便它们适合新任务的数据。这是通过在针对新任务的小型标记数据集上训练模型来完成的。微调背后的关键思想是利用从预训练模型中学到的知识,并将其微调到新任务,而不是从头开始训练模型。

之后不久,OpenAI 研究人员在 2019 年发布了其继任者 GPT-2。这个版本的 GPT 在一个称为 WebText 的语料库上进行了训练,当时包含略超过 800 万份文档,总共有 40 GB 的文本,这些文本来自 Reddit 提交中至少获得 3 个赞同的 URL。它有 12 亿个参数——是其前者的十倍。

在人工神经网络(包括 GPTs)的背景下,参数指的是模型在训练过程中学习和调整的内部变量。这些参数至关重要,因为它们定义了输入数据如何通过网络层进行处理以产生所需的输出。

然后,在 2020 年,OpenAI 首先宣布然后发布了 GPT-3,该模型拥有 1750 亿个参数(大约是地球人口的 21 倍),显著提高了 GPT-2 的基准测试结果。正是在 GPT-3 模型——更确切地说,是其经过微调的版本 GPT-3.5——的帮助下,我们在 2022 年 11 月进入了 ChatGPT 时代(在首次发布时,ChatGPT 由 GPT-3.5 驱动)。

从那时起直到今天,OpenAI 已经发布了其 GPT 系列的许多新版本:GPT-4、GPT-4 Turbo、GPT-4 Vision(第一个多模态模型)和 GPT-4o,其中“o”代表“Omni”,指的是其多模态能力。在撰写本书时(2025 年 1 月),最新的 OpenAI 聊天模型是 o1 家族的一部分,它们具有先进的推理能力,使其适合复杂任务或数学问题。

从下一节开始,在接下来的章节中,我们将主要关注 ChatGPT 中可用的 OpenAI 聊天模型,以及一些图像生成的示例。

OpenAI 模型系列的概述

在过去几年中,OpenAI 在模型开发领域取得了巨大进步,以极高的速度发布了新的模型版本。在本节中,我们将按领域查看主要模型:

  • 语言模型:OpenAI 的 GPTs 是高级语言模型,旨在根据给定的提示生成文本。它们功能多样,可用于各种 NLP 任务,如文本补全、翻译、摘要和编码。这是 OpenAI 展示卓越性能的领域,得益于其旗舰模型系列:GPTs。自 2022 年 11 月 ChatGPT 发布以来,OpenAI 已发布了以下模型:

    • GPT-3.5-turbo,ChatGPT 第一版背后的模型

    • GPT-4(第一个能够处理图像的模型)和 GPT-4 Turbo(针对聊天和助手进行了优化)

    • GPT-4o 和 GPT-4o mini(在训练的参数数量上有所不同),其中字母“o”代表“Omni”,意味着模型可以接收各种数据作为输入(文本、图像、声音)

    • o1 和 o1 mini(在参数数量上有所不同),这是一个代表重大进步的模型系列,特别是在增强推理能力方面

    • 基于 o1 系列的前一代能力(o3 系列),该系列在基准测试中表现出色(beebom.com/openai-unveils-o3-model-cracks-arc-agi-benchmark/),并且对未来应用前景非常乐观。

  • 图像模型:OpenAI 的图像模型,如 DALL-E,旨在根据文字描述生成和操作图像。DALL-E 模型可以创建高度详细和富有想象力的视觉图像,使用户能够创作独特的艺术作品、设计概念等。例如,DALL-E 3(撰写本文时的最新版本)能够根据详细的提示创建复杂和富有创意的图像,推动人工智能在视觉艺术领域的边界。这些模型在创意产业、数字营销以及任何从高质量、定制视觉中受益的领域特别有用(我们将在 第八章 中详细介绍 DALL-E)。

  • 文本到语音和语音到文本模型:OpenAI 的 Whisper 是一个 语音到文本STT)系统。它于 2022 年 9 月 21 日推出。该系统在 68 万小时的多种语言和多任务数据上进行了训练,擅长跨语言转录语音,并能将非英语语音翻译成英语。除此之外,OpenAI 还开发了 文本到语音TTS)模型,将书面文字转换为口语,提供清晰、富有表现力和自然的声音输出,使其适用于广泛的用途,从客户服务机器人到教育工具。

    • STT 技术将口语转换为书面文字。它常用于转录服务、语音助手和辅助工具等应用中。例如,将口述的词语转换为电脑上的文字或转录会议录音。

    • TTS 技术将书面文字转换为口语。它广泛应用于辅助工具(例如,为视障用户设计的屏幕阅读器)、交互式语音应答系统和内容朗读。例如,数字助手大声阅读消息或书籍。

这些模型有助于创建语音助手、提高视障用户的可访问性以及生成自动公告。

  • 文本到视频模型:随着 Sora 的发布,OpenAI 展示了其尖端文本到视频模型,能够根据文字描述生成逼真和富有想象力的视频场景。通过采用 DALL-E 的技术和集成变压器,Sora 可以创建高达一分钟的逼真视频。它在保持 3D 一致性、物体持久性和模拟视频中的交互方面表现出色。尽管仍面临准确模拟复杂物理学的挑战,但 Sora 在创意产业中具有重大潜力,为视频制作和叙事提供了新的可能性。

  • 嵌入模型:OpenAI 的嵌入模型将文本转换为称为向量(或嵌入)的数值表示,这些向量捕捉语义意义并在多维向量空间中进行投影。

第一章中,我们探讨了嵌入在检索增强生成RAG)场景中的作用,以及更广泛地,这种模式是如何重塑知识挖掘的。

OpenAI 的嵌入模型text-embedding-ada-002text-embedding-3-large通过创建文本的密集向量表示,在文本相似度、文本搜索和代码搜索等任务中提供最先进的性能。这些嵌入允许对大型文本数据集进行高效和有效的比较,提高搜索的准确性和相关性。

  • 审查模型:OpenAI 的审查模型旨在检测和过滤掉文本中的不适当、有害或不安全的内容。这些模型通过识别可能冒犯性或有害的语言,对于维护安全和尊重的在线环境至关重要。最新发布的审查模型,于 2024 年 9 月发布,名为omni-moderation-latest,建立在 GPT-4o 之上,并且能够过滤文本和图像。它帮助开发者和公司执行社区指南,防止有害内容的传播,从而促进更安全的数字互动。

其中一些模型——特别是语言、图像生成和 TTS/STT——可以在 ChatGPT 中使用,这可能是 OpenAI 作为消费应用发布的最受欢迎的产品。我们将在下一节中对其进行介绍。

开始使用 ChatGPT

2022 年 11 月,OpenAI 向公众发布了其对话式人工智能系统 ChatGPT 的网页预览。这在主题专家、组织和普通用户中引发了巨大的炒作——以至于在仅仅 5 天后,该服务就达到了 100 万用户!

在撰写关于 ChatGPT 的文章之前,我将先让它自我介绍,使用的是发布后几天拍摄的快照:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_02_01.png

图 2.1:ChatGPT 于 2022 年 11 月自我介绍

需要注意的是,ChatGPT 本身不是一个大型语言模型LLM),而是一个用户可以通过它来与底层模型交互的应用程序。实际上,ChatGPT 的核心是一个由人工智能驱动的聊天机器人,旨在模拟类似人类的对话。它支持各种任务,包括写作、编码以及提供关于各种主题的信息。由 OpenAI 开发的尖端语言模型提供支持,ChatGPT 通过 GPT-3、GPT-4、GPT-4o 和 o1 等迭代不断改进其理解和生成自然语言的能力。

除了集成最新的顶级模型外,ChatGPT 还通过整合外部工具(如网络搜索)并成为实际的开发者平台来构建自己的“GPTs”,但所有这些主题我们将在接下来的章节中详细讨论。

如前所述,ChatGPT 的第一个版本是在一个高级语言模型之上构建的——一个针对处理对话进行了优化的 GPT-3 的精调版本。这个精调版本被称为 GPT-3.5 Turbo。优化过程涉及强化学习与人类反馈RLHF)(arxiv.org/pdf/2009.01325),这是一种利用人类输入来训练模型以展示期望的对话行为的技巧。

我们可以将 RLHF 定义为一种机器学习方法,其中算法通过接收来自人类的反馈来学习执行任务。该算法被训练做出决策,以最大化人类提供的奖励信号,并且人类提供额外的反馈以改进算法的性能。当任务过于复杂而无法使用传统编程或当期望的结果难以提前指定时,这种方法很有用。

这里的相关区别在于,ChatGPT 是在人类参与下进行训练的,以便与用户保持一致。通过结合 RLHF,ChatGPT 被设计成能够以自然和吸引人的方式更好地理解和回应人类语言。

现在我们来看看如何开始使用 ChatGPT。

创建 OpenAI 账户

ChatGPT 是一个任何人都可以使用的免费应用程序;然而,自 2023 年 2 月起,OpenAI 宣布了一系列付费计划,为订阅者提供了包括访问最新模型、最快响应时间、一套优秀的插件以及可能在 GPTs 游乐场中创建自己的助手等优势。您可以在openai.com/chatgpt/pricing/找到价格概览。在接下来的章节中,我将使用 Plus 版本,但大多数动手示例也可以使用免费版本复制。

无论您选择哪个版本,为了跟上接下来的部分,您需要一个 OpenAI 账户。要在 OpenAI 上创建账户,请按照以下步骤操作:

  1. 打开网页浏览器并访问 OpenAI 网站platform.openai.com/signup/

  2. 提供您的电子邮件地址并创建一个密码。

  3. 一旦您的账户创建完成,您就可以开始使用 ChatGPT 的免费版本。

ChatGPT Plus 导览

让我们快速浏览一下撰写本文时的 ChatGPT 用户界面:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_02_02.png

图 2.2:chatgpt.com 的 ChatGPT 着陆页

让我们探索图 2.2中的每个编号部分:

  1. 您可以选择 ChatGPT 背后使用的模型。在我的情况下,我设置了 GPT-4o,这个模型只有付费订阅才能获得。这是我们将在整本书中使用的模型。

  2. 提供了一系列预构建的提示,以帮助您熟悉该应用程序。

  3. 文本框是您可以输入提示的地方。请注意,在右上角有一个小声音图标:它表示您可以使用语音而不是键入与模型进行交互的可能性。

  4. 在左侧侧边栏中,您可以查看与 ChatGPT 之前的聊天记录(我的已被覆盖)。这是一个极其有用的工具,因为在每次聊天中,通过您与模型的各种互动回合,您创建了一个 ChatGPT 所了解的上下文。这意味着,如果您想继续之前开始的对话,您可以打开相关的聊天并开始与模型交谈,而无需再次描述整个场景。

  5. ChatGPT Plus 最近增加的一个不错的新功能是拥有项目,这提供了一种简化的方式来组织个人使用的文件和聊天,使其更容易管理跨越多个对话的任务。通过将聊天、文件和自定义指令都放在一个地方,项目有助于保持秩序和专注。

  6. ChatGPT Plus 提供了创建 GPT 的可能性,这些是您可以针对特定功能定制的个性化助手。您可以选择保持您的 GPT 私密或将其发布在 GPTs 商店中,任何人都可以使用并对其进行评分。我们将在 第九章 中介绍 GPTs。

  7. 最后,ChatGPT 的 Plus 版本现在提供了一套工具,您可以在与模型交互时使用。

在撰写本书时(2025 年 1 月),提供的工具包括:

  • 附加文件 以分析用户上传的自定义文件

  • 网络搜索 将 ChatGPT 的模型知识与来自网络的最新信息相结合

  • DALL-E 根据自然语言查询创建图像

  • 画布功能提供并排的工作空间,使用户能够与 ChatGPT 一起协作起草、编辑和接收写作和编码项目的反馈。

在整本书中,我们将利用 ChatGPT Plus 来展示最新模型和功能的能力;尽管如此,我们将涵盖的大多数示例也可以使用 ChatGPT 的免费版本实现(目前由 GPT-3.5 Turbo 驱动)。

ChatGPT 的架构和训练方法的持续发展和改进有望进一步推动语言处理领域的边界。

ChatGPT 的可能性艺术

第四章 开始,我们将涵盖许多 ChatGPT 如何用于个人生产力和特定领域任务(如研究、营销和编码)的实际示例。然而,在到达那里之前,让我们先看看 ChatGPT 的可能性艺术,从一个 o1 模型的例子开始。o1 模型的独特特征是它们能够揭示它们的“思考”过程。当您提交查询时,会出现一个“思考”指示器,通过点击它,您可以查看模型到达其响应所采取的步骤。这对于深入了解模型如何处理复杂查询非常有帮助。

图像理解和生成

ChatGPT 中可用的最新模型是多模态的,这意味着它们能够接收多样化的数据(文本和图像)。

在生成式 AI 的背景下,多模态指的是 AI 系统处理、理解和生成各种形式数据或模态的能力,包括文本、图像、音频和视频。这种功能使得 AI 能够整合和解释多样化的输入,从而产生更全面和上下文相关的输出。

让我们考虑以下例子:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_02_03.png

图 2.3:图像理解和文本生成

在这种情况下,我要求 ChatGPT 描述提供的图片,该模型能够生成一个详细且科学的解释,说明了两种液体不混合在一起的原因。这表明了模型对图片的深入理解,以及物理学的一般知识。

基于这次初步分析,我们也可以让它评估额外的场景:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_02_04.png

图 2.4:深入评估

这些只是 ChatGPT 当前能力的一小部分例子。再次强调,ChatGPT 可以与不同的模型一起使用,其中一些模型并不展示所有可用功能(例如,GPT-3.5 不接收图像作为输入)。选择使用哪种模型高度取决于您希望 ChatGPT 解决的问题类型。

数学思维

最初,LLMs 在解决数学任务时遇到了困难。然而,OpenAI 在 2024 年 9 月推出的 o1 模型系列,与它的前辈 GPT-4o 相比,在数学推理方面取得了显著的进步。例如,o1 模型(尽管仍在预览中)在国际数学奥林匹克竞赛(IMO)的资格考试中取得了 83%的成功率(openai.com/index/introducing-openai-o1-preview/),这比 GPT-4o 的 13%有大幅提升。

让我们考虑以下例子:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_02_05.png

图 2.5:ChatGPT 的数学能力

如您所见,该模型不仅能够阅读和理解提供的图像,而且还能通过较小的推理步骤正确地解决问题。

分析能力

在之前的例子中,我们向模型提供了一个图像,但我们还可以进一步附加一个更复杂、结构化的文件进行定量分析。例如,我们可以向 ChatGPT(由 GPT-4o 驱动)附加一个.xls文件,并要求它进行一些财务分析(在我的案例中,我使用了这里可用的样本文件:learn.microsoft.com/en-us/power-bi/create-reports/sample-financial-download)。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_02_06.png

图 2.6:ChatGPT 展现的分析能力

除了上述的文本格式答案外,ChatGPT 还可以生成图表:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_02_07.png

图 2.7:使用 ChatGPT 生成图表

注意,为了执行这个特定的任务,ChatGPT 利用了一个名为 Code Interpreter 的功能,它允许它生成 Python 代码来分析数据并直接在上传的文件上运行。需要注意的是,你可以通过点击**[>_**]图标来可视化生成的代码:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_02_08.png

图 2.8:Code Interpreter

当涉及到结构化数据时,Code Interpreter 功能非常强大且多功能,它还可以被用来导入和训练高级机器学习模型,然后对数据进行预测。

摘要

在本章中,我们回顾了 OpenAI 的历史、研究领域以及最新的发展,直到 ChatGPT。我们还通过 ChatGPT 一瞥了可能的技艺,从对复杂图像进行推理到执行分析任务。

在下一章中,我们将开始本书的第二部分,我们将看到 ChatGPT 在各个领域的应用以及如何释放其潜力。你将学习如何通过合理设计你的提示来获取 ChatGPT 的最高价值,如何提高你的日常生产力,以及它如何成为任何消费者的优秀项目助手。

参考文献

加入我们的 Discord 和 Reddit 社区

对本书有疑问或想参与关于生成式 AI 和 LLMs 的讨论?加入我们的 Discord 服务器packt.link/I1tSU和 Reddit 频道packt.link/jwAmA,以连接、分享和与志同道合的爱好者合作。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/Discord.png https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/QR_Code757615820155951000.png

第二部分

ChatGPT 实战

在这部分,我们将开始探索 ChatGPT 为市场带来的新可能性景观之旅。从日常生产力到特定领域的应用案例,你将熟悉 ChatGPT 的能力以及它如何作为各种任务的推理引擎使用。

一旦我们探讨了技术先决条件,这部分将跳入 ChatGPT 用户界面的概述,包括聊天管理和问题修改。

然后转向获取 ChatGPT(以及一般而言,LLMs)最佳效果所需的最重要元素之一:提示设计概念。在这里,你将熟悉使 ChatGPT 发挥最佳性能的强大技术,包括关于这些强大技术的最新发展和研究论文。

这一部分也专注于如何在实际活动中使用 ChatGPT 的具体例子,从日常生产力开始,逐步过渡到更特定领域的学科,如市场营销、开发、研究和视觉创造力。在这里,你不仅能够了解 ChatGPT 在这些领域可以覆盖的应用案例,还能看到具体的例子,以便你在自己身上复现它们。

最后,你将了解如何进一步定制 ChatGPT 以适应你的特定用例,利用 GPT 和 GPT 商店。

这一部分包含以下章节:

  • 第三章,理解提示工程

  • 第四章,利用 ChatGPT 提升日常生产力

  • 第五章,用 ChatGPT 开发未来

  • 第六章,用 ChatGPT 精通市场营销

  • 第七章,ChatGPT 重新定义研究

  • 第八章,用 ChatGPT 视觉化释放创造力

  • 第九章,探索 GPTs

第三章:理解提示工程

在前几章中,我们多次提到“提示”一词,在提及 ChatGPT 中的用户输入和一般意义上的大型语言模型(LLMs)时。

由于提示对 LLM 的性能有巨大影响,提示工程是充分利用你的 GenAI 工具的关键活动。实际上,有几种技术不仅可以完善你的 LLM 的响应,还可以减少与幻觉和偏见相关的风险。

在本章中,我们将介绍提示工程领域的最新技术,从基本方法到高级框架。更具体地说,我们将探讨以下主题:

  • 什么是提示工程?

  • 探索零样本、单样本和少样本学习

  • 提示工程的原则

  • 查看一些高级技术

  • 避免偏见的伦理考量

到本章结束时,你将拥有构建功能强大且稳固的提示与 ChatGPT 以及更广泛的 GenAI 应用程序互动的基础。

技术要求

您需要一个 OpenAI 账户。您可以使用免费的 ChatGPT 版本来运行本章的示例。

什么是提示工程?

在解释提示工程之前,让我们首先定义一下提示。

提示是引导 LLM 行为以生成输出的文本输入。例如,每次我们与 ChatGPT 互动,提问或给出指令时,输入的文本就是一个提示。在 LLM 和 LLM 驱动的应用背景下,我们可以区分两种类型的提示:

  • 第一种类型是用户编写的并发送给 LLM 的提示。例如,一个提示可能是“给我 Lasagna Bolognese 的食谱”,或者“生成一个马拉松跑步的训练计划”。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_01.pnghttps://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_02.png

图 3.1:用户提示的示例

你会听到它被简单地称为提示查询用户输入

  • 第二种类型是指导模型以某种方式行为的提示,无论用户的查询如何。这指的是模型在与最终用户互动时所提供的自然语言指令集,以便以某种方式行为。你可以将其视为 LLM 的“后端”,这是将由应用开发者而不是最终用户处理的部分。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_03.pnghttps://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_04.png

图 3.2:系统消息的示例

我们将此类提示称为系统消息

提示工程是设计有效提示的过程,以从大型语言模型(LLMs)中获取高质量和相关的输出。提示工程需要创造力、对 LLM 的理解以及对你想要实现的目标的清晰理解。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_05.png

图 3.3:提示工程示例,以专门化 LLMs

在过去的几年里,提示工程已经成为一门全新的学科,这也是一个事实的证明,即与这些模型交互需要一套新的技能和能力,这些技能和能力在以前是不存在的。

提示的艺术在构建企业场景中的 GenAI 应用时已成为一项顶级技能;然而,它对于使用 ChatGPT 或类似 AI 助手进行日常任务的个人用户来说也极其有用,因为它显著提高了结果的质量和准确性。

在接下来的章节中,我们将看到一些如何利用 ChatGPT 构建高效、健壮提示的示例。

理解零样本、一样本和少样本学习

在前面的章节中,我们提到了 LLMs 通常以预训练的格式出现。它们已经在大量数据上进行了训练,并且已经相应地配置了它们的(数十亿)参数。

然而,这并不意味着那些 LLMs 不能再学习了。在第二章中,我们学习了微调的概念。在附录中,我们还将看到,通过微调来定制 OpenAI 模型并使其更能够处理特定任务的一种方法。

微调是一种适当的训练过程,需要训练数据集、计算能力和一些训练时间(取决于数据量和计算实例的数量)。

正因如此,测试另一种方法让我们的 LLMs 在特定任务上变得更加熟练是值得的:少样本学习

定义

在 LLMs 的背景下,少样本学习指的是模型在推理期间提供不同数量的任务特定示例时执行任务的能力。这些少样本学习范式使 LLMs 能够以最小或没有额外训练的情况下适应新任务,增强其在自然语言处理应用中的灵活性和效率。

理念是让模型从简单的示例中学习,而不是整个数据集。这些示例是我们希望模型响应的样本,这样模型不仅学习内容,还学习在响应中使用的内容、格式、风格和分类法。

此外,少样本学习是通过提示直接发生的(正如我们将在以下场景中看到的那样),因此整个体验更加节省时间且易于执行。

提供的示例数量决定了我们所指的少样本学习的水平。换句话说,如果没有提供示例,我们称之为零样本;如果提供了一个示例,我们称之为一样本;如果提供了两个以上的示例,我们称之为少样本。

让我们关注这些场景中的每一个。

零样本学习

在这种学习类型中,模型被要求执行一个它没有看到任何训练示例的任务。模型必须依赖先前的知识或关于任务的通用信息来完成它。例如,零样本学习的方法可能是要求模型生成一个描述,如我在提示中定义的那样:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_06.png

图 3.4:零样本学习示例

单样本学习

在这种学习类型中,模型被要求为每个新任务提供一个示例。模型必须使用其先验知识从这个单一示例中泛化以执行任务。如果我们考虑前面的例子,我可以在要求模型生成新示例之前,向我的模型提供一个提示完成示例:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_07.png

图 3.5:单样本学习示例

如前一个截图所示,模型能够生成一个与提供的示例风格和模板相匹配的答案。当提供多个示例时,情况类似,如下一节所述。

少样本学习

在这种学习类型中,模型被要求为每个新任务提供少量(通常在 2 到 5 个之间)的示例。模型必须使用其先验知识从这些示例中泛化以执行任务。让我们继续我们的例子,并向模型提供更多的示例:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_08.png

图 3.6:三个示例的少样本学习示例

如前所述,记住这些学习形式与传统监督学习和微调是不同的。在少样本学习中,目标是让模型从非常少的示例中学习,并从这些示例中泛化到新的任务。此外,我们并没有修改模型的架构和知识,这意味着当用户开始新的对话,并且之前的提示超出了上下文窗口时,模型将“忘记”它。

定义

监督学习是一种机器学习方法,模型在标记数据集上进行训练,这意味着输入数据与相应的正确输出(标签)配对。目标是让模型学习输入和输出之间的关系,以便它可以准确预测新、未见过的数据的输出。

现在我们已经学会了如何让 OpenAI 模型从示例中学习,让我们专注于如何正确地定义我们的提示,以使模型的响应尽可能准确。

提示工程原则

传统上,在计算和数据处理的背景下,使用了“垃圾输入,垃圾输出”的表达,意味着输出质量取决于输入质量。如果将不正确或低质量的输入(垃圾)输入到系统中,输出也将是错误的或无意义的(垃圾)。

当涉及到提示时,故事是相似的:如果我们希望从我们的 LLMs 中获得准确和相关的结果,我们需要提供高质量的输入。然而,构建好的提示不仅仅是关于响应质量的问题。实际上,我们可以构建好的提示来:

  • 最大化 LLM 响应的相关性。

  • 指定响应的类型格式和风格。

  • 提供对话上下文。

  • 减少内部 LLMs 的偏见,提高公平性和包容性。

  • 减少幻觉。

    定义

    在 LLM 的背景下,幻觉指的是生成事实错误、无意义或未基于训练数据的文本或响应。这发生在 LLM 产生听起来自信但错误或虚构的信息时。例如,一个用户可以问一个 LLM:“《隐形城市》这本书的作者是谁?”如果模型回答:“《隐形城市》是加布里埃尔·加西亚·马尔克斯写的。”,这便是一种幻觉,因为正确的作者是伊塔洛·卡尔维诺。模型生成了一个听起来可信但实际上错误的答案。

在接下来的几节中,我们将看看一些基本的提示工程技巧,以实现这些结果。

明确指令

明确指令的原则是向模型提供足够的信息和指导,以便正确且高效地完成任务。明确的指令应包括以下要素:

  • 任务的目标或目标,例如“写一首诗”或“总结一篇文章。”

  • 预期输出的格式或结构,例如“使用四行押韵的词”或“使用每项不超过 10 个单词的项目符号。”

  • 任务的约束或限制,例如“不要使用任何粗俗语言”或“不要复制任何源文本。”

  • 任务的上下文或背景,例如“这首诗是关于秋天的”或“这篇文章来自科学期刊。”

例如,假设我们希望我们的模型从文本中提取任何类型的指令,并以项目符号列表的形式返回教程。如果提供的文本中没有指令,模型应通知我们。让我们在 ChatGPT 中看看一个例子:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_09.png

图 3.7:ChatGPT 中明确指令的示例

注意,如果我们向模型传递不包含任何指令的其他文本,它将能够按照我们的指示进行回应:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_10.png

图 3.8:遵循指令的聊天模型示例

注意

在之前的图中,我们看到 ChatGPT 在对话开始时我们给出的指令的指导下进行。这是因为 ChatGPT 有一个所谓的上下文窗口,等于一个单独的聊天:我们在聊天会话中输入的一切都将成为 ChatGPT 的上下文,从而成为其知识的一部分;当我们从头开始一个新的会话时,ChatGPT 将不会记住任何之前的指令。

通过给出明确的指令,你可以帮助模型理解你想要它做什么以及你希望它如何去做。这可以提高模型输出的质量和相关性,并减少进一步修订或纠正的需求。

然而,有时清晰度并不足够。我们可能需要推断我们的 LLM 的思维方式,使其在任务上更加稳健。在下一小节中,我们将探讨一种实现这一目标的技术——这在解决复杂任务的情况下非常有用。

将复杂任务分解为子任务。

当我们与 LLM 互动,让他们解决某些任务时,有时这些任务过于复杂或含糊不清,以至于无法通过单个提示处理,因此最好将它们分解为更简单的子任务,这些子任务可以通过不同的提示来解决。

这里有一些将复杂任务分解为子任务的示例:

  • 文本摘要:一项复杂的任务,涉及生成长文本的简洁、准确摘要。这项任务可以分解为以下子任务:

    • 从文本中提取主要观点或关键词。

    • 以连贯的方式重写主要观点或关键词。

    • 将摘要修剪到所需的长度或格式。

  • 诗歌生成:一项创造性的任务,涉及创作遵循特定风格、主题或情绪的诗歌。这项任务可以分解为以下子任务:

    • 为诗歌选择一个诗歌形式(如十四行诗、俳句、雷姆里克等)和一个韵律(如 ABAB、AABB、ABCB 等)。

    • 根据用户的输入或偏好为诗歌生成标题和主题。

    • 生成符合所选形式、韵律和主题的诗歌行或诗句。

    • 精炼和润色诗歌,以确保其连贯性、流畅性和原创性。

  • 代码生成:一项技术任务,涉及为视频游戏生成有效代码。这项任务可以分解为以下子任务:

    • 创建基本动作并将它们的逻辑整合到游戏引擎的循环中。

    • 添加高级动作功能,如带有重力的打印或跳跃逻辑。

    • 确保启用物理和碰撞处理。

    • 通过生成测试程序来启用调试和优化。

    • 生成文档供将来参考。

让我们考虑以下示例。我们将向模型提供一个简短的文章,并要求它根据这些指示进行总结:

  • 你是一个总结文章的人工智能助手。

  • 要完成这项任务,请执行以下子任务:

    • 全面阅读提供的文章内容,并确定主要主题和关键点。

    • 生成一个段落摘要,概括当前文章内容,传达主要思想。

    • 打印每个步骤。

这是我们将提供的简短文章:

Large Language Models (LLMs), a subset of artificial intelligence, have revolutionized the field of natural language processing by demonstrating an unprecedented ability to understand and generate human-like text. These models are trained on vast datasets comprising diverse linguistic inputs, enabling them to produce coherent and contextually relevant responses across a wide range of topics. By leveraging architectures such as transformers, LLMs like GPT-3 and its successors can complete text, answer questions, perform translations, and even engage in complex dialogue. Their applications span from automated customer support and content creation to advanced research and education tools. Despite their incredible capabilities, LLMs also pose challenges, including the potential for biases inherent in training data and the risk of generating misleading or false information. As the development of LLMs continues to advance, ongoing efforts in ethical AI research and deployment strategies are crucial to harness their benefits responsibly and effectively. 

让我们看看模型是如何工作的:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_11.png图 3.9:OpenAI GPT-4o 将任务分解为子任务以生成摘要的示例

将复杂任务分解为更简单的子任务是一种强大的技术。然而,它并没有解决 LLM 生成内容的主要风险之一,即输出可能不正确。在接下来的两个小节中,我们将看到一些主要旨在解决这一风险的技术。

请求进行论证。

在提示工程中,要求模型为其响应提供解释可以增强透明度和可靠性。这种做法使用户能够评估模型答案背后的推理,确保它们是逻辑的,并且基于相关信息(arxiv.org/abs/2303.08769)。通过理解模型的思想过程,用户可以识别潜在的偏见或不准确性,从而做出更明智的决定,并有效地利用 AI 系统。

例如,当 AI 模型提出医学诊断时,要求其提供推理可以揭示建议是否基于相关的症状和病史,或者是否受到无关数据的影响。同样,在法律环境中,如果 AI 系统提供案例推荐,理解其解释有助于确保建议基于适当的法律先例。这种程度的洞察力对于建立对 AI 应用的信任以及改进提示以获得更准确和上下文相关的响应至关重要。

让我们考虑以下例子。我们希望我们的 LLM 能够解决谜题,我们用以下指令提示它:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_12.png

图 3.10:OpenAI 的 GPT-4o 在解决谜题后提供解释的示例

使用类似的方法,我们也可以在不同的提示级别上进行干预,以改善我们 LLM 的性能。例如,我们可能会发现模型在系统地解决数学问题时采取了错误的方法,因此我们可能希望在元提示级别上直接建议正确的方法。

另一个例子可能是要求模型生成多个输出及其解释,以评估不同的推理技术,并在元提示中提示最佳的一个。我们将在下一小节中关注这一点。

生成许多输出,然后使用模型选择最佳的一个

在提示工程中,指导模型对单个提示生成多个响应的技术被称为自洽性。这种方法涉及指导模型为给定输入生成多个输出,然后对这些输出进行评估,以确定最一致或最准确的响应。通过比较这些多个输出,用户可以辨别出共同的主题或解决方案,从而提高 LLM 性能的可靠性。

让我们来看一个例子,继续探讨上一节中讨论的谜题:

  • 你是一个专门解决谜题的人工智能助手。

  • 给定一个谜题,你必须为这个谜题生成三个答案。

  • 对于每个答案,具体说明你的推理。

  • 然后,在三个答案中,选择最有可能的答案。

在这个例子中,我提示模型为谜题生成三个答案,然后告诉我最有可能的答案,并解释原因。让我们看看结果:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_13.png

图 3.11:GPT-4o 生成三个可能的答案并选择最有可能的一个的示例,提供理由

如前所述,强迫模型以不同的方法解决一个问题是一种收集多个推理样本的方法,这些样本可能作为元提示中的进一步指令。例如,如果我们想让模型始终提出不是解决问题的最直接解决方案的东西——换句话说,如果我们想让它“思考不同”的话——我们可能强迫它以 N 种方式解决问题,然后使用最富有创造性的推理作为元提示的框架。

我们将要检查的最后一个是我们要赋予我们的元提示的整体结构。

使用分隔符

最后要讨论的原则与我们想要赋予我们的元提示的格式有关。这有助于我们的 LLM 更好地理解其意图,以及在不同段落之间建立联系。

为了实现这一点,我们可以在我们的提示中使用分隔符。分隔符可以是任何字符或符号的序列,它清楚地映射一个模式而不是一个概念。例如,我们可以考虑以下序列分隔符:

  • >>>>

  • ====

  • ------

  • ####

  • ` ` ` ` `

让我们以一个旨在指导模型将用户的任务翻译成 Python 代码的元提示为例,并提供一个这样的例子:

You are a Python expert that produces Python code as per the user's request.
===>START EXAMPLE
---User Query---
Give me a function to print a string of text.
---User Output---
Below you can find the described function:
```def my_print(text):

    #返回打印的文本

    return print(text)

```py
<===END EXAMPLE 

让我们看看它是如何工作的:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_14.png

图 3.12:使用分隔符的系统消息的模型样本输出

如您所见,它还打印了系统消息中显示的反引号内的代码。

到目前为止所检查的所有原则都是一般规则,可以使您与 ChatGPT 的互动,以及更广泛地说,与 GenAI 工具的互动对您的目标更有意义。在下一节中,我们将看到一些针对提示工程的高级技术,这些技术针对模型推理和思考答案的方式,在提供给最终用户之前。

元提示

在提示工程中,指导模型改进其自己的提示——也称为元提示(arxiv.org/abs/2401.12954)——是一种提高提示质量的有效技术,从而提高生成输出的相关性。通过让模型参与提示改进的迭代过程,用户可以利用模型的语言理解能力来识别初始提示中的歧义或改进领域。这个自我改进的循环导致更精确和上下文相关的提示,进而从模型中获得更准确和有用的响应。

例如,假设我们想要为我们的新可持续品牌跑步鞋生成一个电梯简报。你将如何请求 LLM 来完成这个任务?嗯,你可能会利用上述的一些技巧,比如清晰的指令或将任务分解成子任务;或者(或附加地),你可以请求 LLM 本身细化你的提示,使其更符合你的目标。

为了做到这一点,我们可以最初指示模型按照以下方式细化提示:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_15.png

图 3.13:用户请求 ChatGPT 细化提示的示例

现在,让我们发送我们的提示:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_16.png

图 3.14:ChatGPT 细化用户提示的示例

如你所见,ChatGPT 能够细化我们的提示,使其更符合我们的目标。注意,在上面的例子中,我们只要求了一次细化;然而,这可以是一个迭代过程,不仅能够增强提示的清晰度和精确度,还能确保模型的输出更符合用户的特定要求,使交互更加高效和富有成效。

探索一些高级技巧

在前面的章节中,我们介绍了一些基本的提示工程技巧,这些技巧可以提高你尝试完成任何类型任务时 LLM 的响应。

另一方面,还有一些可能针对特定场景实施的高级技巧,我们将在本节中介绍。

注意

一些高级提示工程技巧,如思维链CoT)提示,已集成到现代模型中,例如 OpenAI 的 o1 系列。这些模型被设计为通过生成逐步逻辑序列并在得出最终答案之前内部处理复杂的推理任务,从而增强其解决问题的能力。这种内部推理过程允许 o1 模型更有效地处理复杂查询,而无需用户显式提供 CoT 提示。然而,使用 CoT 提示仍然可以在指导模型针对特定任务的推理过程时带来好处,并且更广泛地说,在与之前版本不显示高级推理能力的模型交互时,这是一种良好的实践。

思维链

在 Wei 等人撰写的论文《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》中引入的 CoT 是一种通过中间推理步骤实现复杂推理能力的技巧。它还鼓励模型解释其推理过程,“迫使”它不要过于迅速,以免给出错误响应(如我们在前面的章节中看到的)。

假设我们想要提示我们的语言模型(LLM)解决一元方程。为此,我们将提供一个通用的推理列表作为元提示:

To solve a generic first-degree equation, follow these steps:
1\. **Identify the Equation:** Start by identifying the equation you want to solve. It should be in the form of "ax + b = c," where 'a' is the coefficient of the variable, 'x' is the variable, 'b' is a constant, and 'c' is another constant.
2\. **Isolate the Variable:** Your goal is to isolate the variable 'x' on one side of the equation. To do this, perform the following steps:

   a. **Add or Subtract Constants:** Add or subtract 'b' from both sides of the equation to move constants to one side.

   b. **Divide by the Coefficient:** Divide both sides by 'a' to isolate 'x'. If 'a' is zero, the equation may not have a unique solution.
3\. **Simplify:** Simplify both sides of the equation as much as possible.
4\. **Solve for 'x':** Once 'x' is isolated on one side, you have the solution. It will be in the form of 'x = value.'
5\. **Check Your Solution:** Plug the found value of 'x' back into the original equation to ensure it satisfies the equation. If it does, you've found the correct solution.
6\. **Express the Solution:** Write down the solution in a clear and concise form.
7\. **Consider Special Cases:** Be aware of special cases where there may be no solution or infinitely many solutions, especially if 'a' equals zero.
Equation: 

让我们看看它是如何工作的:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_17.pnghttps://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_18.png

图 3.15:使用 CoT 方法求解方程的模型输出

这种方法性的方法通过将任务分解为可管理的步骤来模拟人类问题解决,增强了清晰度并减少了错误。

使用 CoT,我们正在提示模型生成中间推理步骤。这也是我们将要考察的另一种推理技术的组成部分。

ReAct

由姚等人发表的论文《ReAct:在语言模型中协同推理和行动》中引入的Reason and ActReAct)是一个将推理和行动与 LLMs 结合的通用范式。ReAct 提示语言模型为任务生成口头推理轨迹和行动,并从外部来源接收观察,如网络搜索或数据库。这使得语言模型能够执行动态推理,并根据外部信息快速调整其行动计划。例如,你可以提示语言模型通过首先对问题进行推理,然后执行一个动作向网络发送查询,然后从搜索结果中接收观察,接着继续这个思考、行动、观察的循环,直到得出结论。

CoT 和 ReAct 方法之间的区别在于,CoT 提示语言模型为任务生成中间推理步骤,而 ReAct 提示语言模型为任务生成中间推理步骤、行动和观察。

注意,“行动”阶段通常与我们的 LLM 与外部工具(如网络搜索)交互的可能性有关。然而,在以下示例中,我们不会使用工具,而是将“行动”一词用于我们要求模型为我们执行的任何任务。

这就是 ReAct 元提示可能的样子:

Answer the following questions as best you can.
Use the following format:
 ---------------
Question: the input question you must answer
Thought: you should always think about what to do
Action: the action to take
Action Input: the input to the action
Observation: the result of the action
... (this Thought/Action/Action Input/Observation can repeat N times)
Thought: I now know the final answer
Final Answer: the final answer to the original input question
-----------------
This is my question: Who won the climbing Olympics in 2024? 

让我们看看它如何通过一个简单的用户查询来工作:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_19.png

图 3.16:ReAct 提示示例

如你所见,在这个场景中,模型利用了动作输入处的网络工具。

这是一个很好的例子,说明了如何通过提示模型逐步思考和明确详细每个推理步骤,使其在回答之前变得更加“聪明”和谨慎。这同样是一种防止幻觉的出色技术。

总体而言,提示工程是一门强大的学科,尽管它仍处于起步阶段,但已经在 LLM 驱动的应用中得到广泛应用。在接下来的章节中,我们将看到这些技术的具体应用。

避免偏差的伦理考量

每当我们处理像 LLMs 这样的 AI 系统时,我们必须意识到它们相关的隐藏偏差风险,这种偏差直接来源于模型训练所使用的知识库。

定义

隐藏偏见,也称为隐含或无意识偏见,指的是那些微妙且非故意的态度、刻板印象或关联,它们在不经意间影响一个人的感知和行为,而他们自己并没有意识到。这些偏见可能会以反映社会刻板印象的方式塑造行为和决策,往往导致无意的歧视。例如,有人可能无意中将领导角色与男性而非女性联系起来,这可能会影响招聘或晋升选择。在 LLM 的背景下,隐藏偏见在模型输出中表现为它复制或放大了训练数据中存在的偏见,可能导致偏颇或不公平的回应。解决隐藏偏见对于促进公平和减少系统性不平等至关重要。

例如,关于 GPT-3 的主要训练数据块,即Common Crawl,一项 2012 年的研究(commoncrawl.org/blog/a-look-inside-common-crawls-210tb-2012-web-corpus)揭示了超过 55%的语料库来自.com域名,其中十二个顶级域名各自代表了超过 1%的数据。

由于*.com*域名在西方实体中被广泛使用,这种集中性表明数据集中存在显著的西方影响。此外,Common Crawl 中英语内容的普遍存在进一步表明存在以西方为中心的偏见,因为英语在西方国家的使用占主导地位。

如果情况如此,我们已经在面对模型的隐藏偏见(更具体地说,是种族和语言偏见),这不可避免地会模仿一个有限且不具有代表性的类别的人类。

在他们的论文《语言模型是少样本学习者》(arxiv.org/abs/2005.14165)中,OpenAI 的研究员汤姆·布朗等人创建了一个实验设置,以调查 GPT-3 中的种族偏见。模型被提示使用包含种族类别的短语,并为每个类别生成了 800 个样本。生成的文本的情感是通过基于词共现的 Senti WordNet 在-100 到 100 的范围内测量的(正分数表示积极词汇,反之亦然)。

结果显示,与每个种族类别相关的情感在不同模型中有所不同,亚洲始终具有高情感(意味着很多积极词汇)和黑人始终具有低情感(意味着很多负面词汇)。作者警告说,这些结果反映了实验设置,社会历史因素可能会影响与不同人口统计数据相关的情感。

这种隐藏偏见可能会产生不符合负责任 AI 原则的有害回应。

然而,值得注意的是 ChatGPT 以及所有 OpenAI 模型都受到持续改进的影响。这也与 OpenAI 的 AI 对齐(openai.com/index/our-approach-to-alignment-research/)一致,其研究重点在于训练 AI 系统变得有帮助、真实和安全。

例如,如果我们要求 GPT-4o 根据人们的性别和年龄来制定猜测,它不会满足我们的确切要求,而是提供一个假设函数以及一个巨大的免责声明:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_03_20.png

图 3.17:GPT-4o 随时间改进的示例,因为它提供了无偏见的响应

总体而言,尽管在道德原则领域持续改进,但在使用 ChatGPT 时,我们应始终确保输出与这些原则一致。ChatGPT 和 OpenAI 模型中的偏见和伦理概念在整个负责任 AI 主题中具有更广泛的含义,我们将在本书最后一章中关注这一点。

摘要

在本章中,我们深入探讨了 prompt engineering 的概念,因为它控制 ChatGPT 和 LLMs 输出的关键组成部分。我们学习了如何利用不同级别的 shot learning 来使 LLMs 更符合我们的目标。

我们从介绍 prompt engineering 的概念及其重要性开始,然后转向基本原理——包括清晰的指令、要求证明等。

然后,我们转向更高级的技术,这些技术旨在塑造我们的 LLMs 的推理方法:少样本学习、CoT 和 ReAct。

Prompt engineering 是一门新兴学科,它为融入 LLMs 的新类别应用铺平了道路。

从下一章开始,我们将探讨 ChatGPT 可以提高生产力和对我们今天工作方式产生颠覆性影响的各个领域。

参考文献

以下为本章的参考文献:

第四章:使用 ChatGPT 提升日常生产力

在本章中,我们将介绍 ChatGPT 可以为一般用户每天执行的主要活动,以提升他们的生产力。本章将侧重于写作辅助、决策和信息检索的具体示例,并提供建议和提示,以便你可以自己实施。

到本章结束时,你将学会如何将 ChatGPT 用作以下活动的助推器:

  • 每日活动,如安排日程、餐前准备和购物

  • 生成全新的文本内容

  • 提高你的写作技能并适应不同的受众

  • 获取研究和竞争情报的文档和信息

技术要求

对于这一章节,你需要一个 ChatGPT 账户。参考第二章了解如何开设 ChatGPT 账户。

ChatGPT 作为日常助手

ChatGPT 可以作为有价值的日常助手,帮助你管理任务并简化工作流程。通过提供个性化帮助,它可以优化你的日常日程,从而节省你的时间并提高你的效率。

在撰写此书时,ChatGPT 的响应附带了一系列功能:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_01.png

图 4.1:ChatGPT 用户界面上的图标

让我们逐一检查它们:

这些功能使得与 ChatGPT 的整体用户体验更加互动和可调整。让我们从一项关于如何使我的日子更加高效的一般建议开始:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_07.png

图 4.2:ChatGPT 生成的一个生产力例程示例

在组织我的周计划中,ChatGPT 的另一个有趣用途是,我可以将其用作餐前准备助手。请注意,在这里我也要求了特定的表格格式:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_08.png

图 4.3:ChatGPT 生成的我工作周餐前准备

除了餐前准备,ChatGPT 还可以根据我的要求生成锻炼计划:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_09.png

图 4.4:ChatGPT 生成的锻炼计划

ChatGPT 还可以成为忠诚而有纪律的学习伙伴。例如,它可以帮你总结长篇论文,让你对讨论的主题有一个概述,或者帮助你准备考试。

假设你正在使用由 Lorenzo Peccati 等人撰写的大学教材《经济学与商业数学》准备数学考试。在深入阅读之前,你可能想了解内容概述和讨论的主要主题,以及是否有先决条件——最重要的是,如果我正在准备考试——学习它需要多长时间。你可以向 ChatGPT 提出这个问题:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_10.png

图 4.5:ChatGPT 提供大学书籍概述

注意

总要记住,像 ChatGPT 这样的生成式 AI 模型,如果没有提供特定的上下文,可能会生成基于平均值的成果。例如,这类书籍的学习时间可能因学生而异。这时,提示工程——如角色提示或迭代提示——可以提供极大的帮助,以便你可以根据你自己的独特个人资料缩小模型的专长。

重要的是要记住,当涉及到关于特定资产或个人信息的问题时,我们正在增加 ChatGPT 幻觉的风险。

实际上,在上一个例子中,模型能够回答是因为书籍的简介显然是训练集的一部分,但模型并不知道书籍的具体内容,因为它没有在网络上免费提供。如果是这种情况,启用网络搜索工具可能是一个好习惯,这样 ChatGPT 就可以在网络上导航。

让我们看看一个例子:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_11.png

图 4.6:ChatGPT 调用网络插件的示例

如你所见,ChatGPT 现在已经调用了网络插件并搜索了五个网站,同时也提供了它所导航的链接。

你也可以要求 ChatGPT 提出一些关于你刚刚学习的内容的问题:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_12.png

图 4.7:ChatGPT 作为教授的示例

注意

“扮演…的技术”是高效提示技术的绝佳例子,它可以在第三章描述的例子中列出。

现在,让我们看看更多使用 ChatGPT 完成更具体任务的例子,包括文本生成、写作辅助和信息检索。

生成文本

作为一种语言模型,ChatGPT 特别适合根据用户的指令生成文本。例如,你可以要求 ChatGPT 生成针对特定受众的电子邮件、草稿或模板:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_13.png

图 4.8:ChatGPT 生成的电子邮件示例

另一个例子可能是要求 ChatGPT 为你即将准备的演示文稿创建一个提案结构(这里只提供第一张幻灯片作为示例):

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_14.png

图 4.9:ChatGPT 生成的幻灯片议程和结构

您也可以用这种方式生成关于热门话题的博客文章或文章。以下是一个示例:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_15.png

图 4.10:ChatGPT 生成的带有相关标签和 SEO 关键词的博客文章示例

我们甚至可以让 ChatGPT 缩小帖子的尺寸,使其适合推文。以下是我们可以这样做的步骤:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_16.png

图 4.11:ChatGPT 将文章缩减为 Twitter/X 帖子

最后,ChatGPT 还可以生成视频或戏剧剧本,包括布景设计和建议的编辑。在这种情况下,我们可能希望结合前一章中介绍的一些提示工程技巧,如上下文、期望的结果和结构。例如,考虑以下提示:

Write a short, humorous theatre dialogue for a 3-minute comedy sketch.
Context:
Setting: A coffee shop.
Characters:
Alex – Sarcastic, quick-witted, unimpressed.
Jamie – Overly dramatic, easily flustered, indecisive.
Scenario: Jamie attempts to order a simple black coffee but overcomplicates it with unnecessary details and existential crises. Alex, unimpressed, tries to keep things simple but unintentionally escalates the absurdity.
Desired Outcome:
A fast-paced and snappy comedic dialogue.
Filled with witty comebacks, misunderstandings, and exaggerated reactions.
Ends with an unexpected and absurd twist that makes the audience laugh.
Structure of Output:
Title: A catchy title that reflects the comedic theme.
Cast: List the characters.
Scene Description: Briefly describe the setting and mood.
Dialogue Format: Clearly labeled lines with stage directions in brackets (e.g., [Alex sighs]).
Ending: A punchy, unexpected comedic twist. 

让我们看看结果:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_17.png

图 4.12:ChatGPT 生成的带有布景设计的戏剧对话

我只提供了 ChatGPT 生成的四个场景中的一个,以保持您对结局的好奇心…

总体而言,每当需要从头开始生成新内容时,ChatGPT 都能很好地提供一个初稿,这可以作为进一步改进的起点。

然而,ChatGPT 也可以通过提供写作辅助和翻译来支持现有内容,我们将在下一节中看到。

提高写作和翻译技巧

有时,与其生成新内容,您可能更愿意回顾现有的文本。这可能是为了改进风格、改变受众、语言翻译、语气等目的。

让我们看看一些例子。想象一下,我为我的一位客户草拟了一封邀请他参加网络研讨会(webinar)的电子邮件。我写了两个简短的句子。在这里,我希望 ChatGPT 改进这封电子邮件的形式和风格,因为目标受众将是高管级别:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_18.png

图 4.13:ChatGPT 重新审视的电子邮件示例,以针对高管受众

现在,让我们用不同的目标受众来提出相同的问题:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_19.png

图 4.14:ChatGPT 生成针对不同受众的同一封电子邮件的示例

ChatGPT 还可以就您的写作风格和结构提供一些反馈。

例如,假设您为名为《自然语言处理的历史》的论文撰写了摘要:

自然语言处理NLP)已经从 20 世纪 50 年代的基于规则的模型发展到今天的深度学习驱动的 AI 系统。早期的方法依赖于符号方法,后来被隐马尔可夫模型和 n-gram 等统计模型所取代。21 世纪见证了神经网络、词嵌入(Word2Vec、GloVe)和转换器架构(BERT、GPT)的革命,极大地提高了语言理解能力。NLP 现在为聊天机器人、翻译和 AI 驱动的通信提供动力。本文追溯了 NLP 的演变,突出了塑造其在现代技术和 AI 中角色的关键突破。

现在,你想要一些关于写作风格及其与标题一致性的反馈(输出已截断):

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_20.png

图 4.15:ChatGPT 对一个论文引言的反馈示例

如你所见,ChatGPT 不仅提供了关于整体论文的反馈和建议,而且还根据提示进行了模块化分析(与标题的相关性、清晰度和参与度)。

现在,让我们揭示本章的最后一个 ChatGPT 技能。ChatGPT 也是一个出色的翻译工具。它至少知道 95 种语言(如果你对所需的语言是否受支持有疑问,你总是可以直接询问 ChatGPT)。然而,这里有一个可能出现的考虑:当我们已经拥有像 Google Translate 这样的尖端工具时,ChatGPT 在翻译方面的附加值是什么?

要回答这个问题,我们必须考虑一些关键的区别因素以及我们如何利用 ChatGPT 内置的翻译功能:

  • ChatGPT 可以捕捉到意图。这意味着你也可以绕过翻译阶段,因为这是 ChatGPT 可以在后台完成的。例如,如果你写一个提示来生成一篇法语社交媒体帖子,你可以用任何你想要的语言来写这个提示——ChatGPT 会自动检测它(无需事先指定)并理解你的意图:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_21.png

图 4.16:ChatGPT 生成与输入语言不同的输出的示例

  • ChatGPT 可以捕捉到俚语或成语的更精细的含义。这使得翻译不再是字面意义上的,从而可以保留其深层含义。例如,让我们考虑英国的表达方式It’s not my cup of tea,这表示某物不符合个人的喜好或偏好。让我们请 ChatGPT 和 Google Translate 将其翻译成意大利语:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_22.png

图 4.17:ChatGPT 和 Google Translate 在将英语翻译成意大利语时的比较

如你所见,ChatGPT 可以提供与原始表达等价的几个意大利成语,包括它们的俚语格式。另一方面,Google Translate 进行了直译,遗留下了成语的真正含义。

  • 就像任何其他任务一样,您始终可以向 ChatGPT 提供上下文。因此,如果您希望您的翻译具有特定的俚语或风格,您可以在提示中指定它,例如使用分隔符来突出上下文占位符(正如我们在第三章中探讨的那样)。或者,甚至更有趣,您可以要求 ChatGPT 用讽刺的语气翻译您的提示。在以下示例中,我用以下文本的意大利语版本提示了 ChatGPT:

OpenAI 是一个专注于人工智能的非营利研究组织,其目标是以造福人类的方式促进和开发友好的人工智能。

成立于 2015 年底,该组织位于旧金山,旨在通过使专利和研究公开,与其他机构和研究人员‘自由合作’。

创始人(包括埃隆·马斯克和山姆·奥特曼)部分受到通用人工智能带来的存在风险所激励。

并要求 ChatGPT 用讽刺的语气将其翻译成英文:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_23.png

图 4.18:ChatGPT 带有讽刺意味地翻译提示的示例。提示的原始内容来自 OpenAI 的维基百科页面:https://it.wikipedia.org/wiki/OpenAI

所有这些场景都突出了 ChatGPT 和 OpenAI 模型的一般关键特性。正如我们所见,这些特性并非旨在针对单一任务(即受约束)进行专业化。相反,它们旨在动态服务于多个场景,以便您可以使用单个模型解决广泛的用例。

总结来说,ChatGPT 不仅能生成新的文本,还能操纵现有材料以适应您的需求。它还证明在翻译语言之间非常精确,保持了术语和特定语言的表达方式。

在下一节中,我们将看到 ChatGPT 如何帮助我们检索信息和竞争情报。

快速信息检索和竞争情报

信息检索和竞争情报是 ChatGPT 带来变革的更多领域。

当我们谈论信息检索时,尽管如此,我们需要区分三种主要场景:

  • 在 ChatGPT 的知识层面上发生的检索,意味着用户请求的特定信息是模型训练集的一部分

  • 使用 ChatGPT 中可用的 WebSearch 插件时发生的检索,该插件使模型能够导航网络并检索最新信息

  • 使用我们上传到 ChatGPT 的外部知识源时发生的检索

在本节中,我们将重点关注前两种场景。

一个例子是要求 ChatGPT 提供我们可能感兴趣的书籍的快速总结或评论(在这种情况下,“哈利·波特”系列是模型训练集的一部分,因此它在第一个检索场景中被使用):

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_24.png

图 4.19:ChatGPT 提供书籍总结和评论的示例

或者,我们可以根据我们的偏好要求一些关于我们希望阅读的新书的建议:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_25.png

图 4.20:ChatGPT 根据我的偏好推荐书籍列表的示例

现在,让我们更进一步,考虑一个你可能需要最新信息的场景。

你可能想快速检索一些关于你想要了解更多信息的主题的参考资料——例如,前馈神经网络。如果是这种情况,你可以启用网络搜索工具,并查看 ChatGPT 的实时超链接作为信息来源:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_26.png

图 4.21:ChatGPT 列出相关参考的示例

如你所见,ChatGPT 能够为我提供相关参考资料以开始研究这个主题。此外,如果你点击“来源”按钮,你可以进一步展开查看更多附加链接的推荐:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_27.png

图 4.22:通过“来源”按钮揭示的附加链接

让我们在竞争情报方面更进一步。

让我们考虑撰写一本名为《卷积神经网络入门——Python 实现》的书。我想对市场上的潜在竞争对手进行一些研究。我想调查的第一件事是是否已经有一些具有相同内容的竞争性标题,因此我可以要求 ChatGPT 生成具有相同内容的现有书籍列表:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_28.png

图 4.23:ChatGPT 提供竞争对手书籍列表的示例

你还可以要求关于你想要发布的市场的饱和度的反馈:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_04_29.png

图 4.24:ChatGPT 关于如何在市场上保持竞争力的建议

总体而言,ChatGPT 可以成为信息检索和竞争情报的有价值助手。然而,重要的是要记住知识库截止日期是 2021 年。这意味着,无论何时我们需要检索实时信息,或者在进行今天的竞争市场分析时,我们可能无法依赖 ChatGPT。

尽管如此,这个工具仍然提供了无论知识库截止日期如何都可以应用的优秀建议和最佳实践。

摘要

本章中我们看到的所有示例只是 ChatGPT 帮助你提高生产力的一个谦逊展示。这些小技巧可以极大地帮助你处理那些可能重复性(例如创建回复模板或制定日常流程)或繁重(例如搜索文档或竞争情报)的活动。

注意,在本章中,我们仅通过文本与 ChatGPT 进行交互:在整本书中,我们还将看到如何融入视觉交互。

在下一章中,我们将更深入地探讨 ChatGPT 正在改变游戏规则的主要三个领域——开发、营销和研究。

加入我们的 Discord 和 Reddit 社区

对本书有任何疑问或想对生成式 AI 和 LLMs 的讨论做出贡献?加入我们的 Discord 服务器packt.link/I1tSU和 Reddit 频道packt.link/jwAmA,与志同道合的爱好者建立联系、分享和协作。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/Discord.png https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/QR_Code757615820155951000.png

第五章:与 ChatGPT 共同开发未来

在本章中,我们将讨论开发者如何利用 ChatGPT。本章重点关注 ChatGPT 在开发者领域解决的主要用例,包括代码审查和优化、文档生成和代码生成。本章将提供示例,并使您能够亲自尝试这些提示。

在简要介绍开发者为何应该将 ChatGPT 作为日常助手的原因之后,我们将重点关注 ChatGPT 及其如何执行以下任务:

  • 为什么开发者应该使用 ChatGPT?

  • 生成、优化和调试代码

  • 生成与代码相关的文档并调试您的代码

  • 解释机器学习ML)模型,以帮助数据科学家和商业用户实现模型可解释性

  • 翻译不同的编程语言

  • 在画布上与代码协作

到本章结束时,您将能够利用 ChatGPT 进行编码活动,并将其用作助手以提高您的编码效率。

技术要求

您可以在本书配套的 GitHub 仓库中找到本章的完整代码:github.com/PacktPublishing/Practical-GenAI-with-ChatGPT-Second-Edition

免责声明

虽然本章探讨了 ChatGPT 如何生成和与代码协作,但我想要强调的是,欣赏其潜力并不需要深厚的专业技术背景。与其仅仅关注编码的机制,我鼓励您考虑生成式 AI 如何弥合软件开发者与不具备编码专业知识的人之间的差距。

为什么开发者应该使用 ChatGPT?

个人而言,我认为 ChatGPT 最令人惊叹的能力之一是处理代码——任何类型的代码。在前面的章节中,我们已经看到了一些 ChatGPT 生成 Python 代码的例子。然而,ChatGPT 为开发者提供的功能远不止这些示例。它可以成为代码生成、解释和调试的日常助手。

无论您是后端/前端开发者、数据科学家还是数据工程师,只要您使用编程语言,ChatGPT 都可以成为游戏规则的改变者;在接下来的几个示例中,我们将看到这一点。

从下一节开始,我们将更深入地探讨 ChatGPT 在处理代码时可以实现的具体示例。我们将看到涵盖不同领域的端到端用例,以便我们熟悉使用 ChatGPT 作为代码助手。

生成、优化和调试代码

您应该利用的主要功能是 ChatGPT 代码生成。您有多少次寻找一个现成的代码片段来开始?或者寻找可以生成函数、样本数据集、SQL 模式等的代码?ChatGPT 能够根据自然语言输入生成代码:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_01.png

图 5.1:ChatGPT 生成用于写入 CSV 文件的 Python 函数的示例

如你所见,ChatGPT 不仅能够生成函数,还能够解释函数的功能、如何使用它以及如何在通用占位符,如my_folder中进行替换。

现在让我们提高难度。如果 ChatGPT 能够生成一个 Python 函数,那么它能否生成一个完整的视频游戏呢?让我们试试。我想做的是向 ChatGPT 提供一个我想开发的游戏的示例,并要求它用代码来复制它。以下是我想要的游戏的示例(你能猜到名字吗?):

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_02.png

图 5.2:游戏《吃豆人》的插图

现在,让我们要求 ChatGPT 重新生成它:

![图片 B31559_05_03.png]

图 5.3:ChatGPT 生成 HTML、CSS 和 JS 代码的示例

如 ChatGPT 的免责声明所示,完整的游戏需要大量的代码;然而,让我们看看到目前为止生成的代码是如何工作的(为了运行代码,我使用了在线工具codepen.io):

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_04.png

图 5.4:ChatGPT 生成的《吃豆人》游戏

如你所见,草稿产品已经非常接近我想要的目标了!这是生成式 AI 如何帮助你克服从头开始的困难的一个例子;事实上,从一张白纸开始有时可能会阻碍进程,而有一个草稿产品作为起点不仅可以加快整体过程,还可以激发创造力并提高结果的质量。

ChatGPT 也可以成为代码优化的优秀助手。实际上,它可能通过优化我们输入的脚本来为我们节省一些运行时间或计算能力。这种能力在自然语言领域可以与我们在“提高写作技巧和翻译”部分的第四章中看到的写作辅助功能相提并论。

例如,假设你想从一个列表中创建一个以另一个列表为起始点的奇数列表。为了达到这个结果,你将编写以下 Python 脚本(为了这个练习的目的,我还会使用timeitdatetime库来跟踪执行时间):

from timeit import default_timer as timer
from datetime import timedelta
start = timer()
elements = list(range(1_000_000)) data = []
for el in elements: if not el % 2: # if even number
data.append(el)
end = timer() print(timedelta(seconds=end-start)) 

让我们看看它们运行需要多长时间:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_05.png

图 5.5:Python 函数的执行速度

执行时间为00.115022秒。如果我们要求 ChatGPT 优化这个脚本会发生什么呢?

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_06.png

图 5.6:ChatGPT 生成 Python 脚本的优化替代方案

ChatGPT 给了我两个示例,以更低的执行时间达到相同的结果。

让我们在 Jupyter 笔记本中测试这两个示例:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_07.png

图 5.7:ChatGPT 生成的两个替代函数的执行速度

如您所见,两种方法分别将时间减少了 44.30%和 20.68%。

除了代码生成和优化之外,ChatGPT 还可以用于错误解释和调试。有时,错误很难解释;因此,自然语言解释对于识别问题和引导你走向解决方案是有用的。

例如,当我从命令行运行.py文件时,我得到了以下错误:

File "C:\Users\vaalt\Anaconda3\lib\site-packages\streamlit\elements\text_widgets.py", line 266, in _text_input text_input_proto.value = widget_state.value
TypeError: [] has type list, but expected one of: bytes, Unicode 

让我们看看 ChatGPT 是否能够让我理解错误的本质。为了做到这一点,我只需向 ChatGPT 提供错误的文本,并要求它给我一个解释:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_08.png

图 5.8:ChatGPT 用自然语言解释 Python 错误

最后,让我们假设我写了一个 Python 函数,它接受一个字符串作为输入,并返回在每个字母后面带有下划线的相同字符串。

在先前的例子中,我预期看到g_p_t_的结果;然而,它只返回了t_,使用以下代码:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_09.png

图 5.9:有错误的 Python 函数

让我们请 ChatGPT 为我们调试这个函数:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_10.png

图 5.10:ChatGPT 调试 Python 函数的示例

非常令人印象深刻,不是吗?再次,ChatGPT 提供了正确的代码版本,并帮助解释了错误在哪里以及为什么会导致错误的结果。让我们看看它现在是否有效:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_11.png

图 5.11:ChatGPT 调试后的 Python 函数

嗯,显然是有效的!

这些以及其他许多与代码相关的功能真的可以大大提高你的生产力,缩短执行许多任务的时间。

然而,ChatGPT 的功能远不止纯调试。得益于 GPT 模型的不可思议的语言理解能力,这个生成式 AI 工具能够与代码一起生成适当的文档,并准确解释一段代码将做什么,我们将在下一节中看到。

生成文档和代码可解释性

无论你是在处理新的应用程序或项目,将你的代码与文档关联起来总是一个好的实践。这可能以 docstring 的形式存在,你可以将其嵌入到你的函数或类中,以便其他人可以直接在开发环境中调用它们。

例如,让我们考虑上一节中开发的相同函数,并将其制作成一个 Python 类:

class UnderscoreAdder:
def __init__(self, word):
    self.word = word
def add_underscores(self):
    return "_".join(self.word)  # More efficient 

我们可以这样测试:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_12.png

图 5.12:测试 UnderscoreAdder 类

现在,假设我想能够使用UnderscoreAdder?约定检索文档字符串文档。通过使用 Python 包、函数和方法这样做,我们就有了对该特定对象功能的完整文档,如下(以pandas Python 库为例):

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_13.png

图 5.13:pandas 库文档示例

因此,现在让我们让 ChatGPT 为我们生成UnderscoreAdder类的相同结果。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_14.png

图 5.14:ChatGPT 更新带有文档的代码

因此,如果我们像前面代码中那样使用UnderscoreAdder?更新我们的类,我们将得到以下输出:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_15.png

图 5.15:新的UnderscoreAdder类文档

最后,ChatGPT 还可以用来用自然语言解释脚本、函数、类或其他类似事物的作用。我们已经看到了许多 ChatGPT 通过清晰的解释丰富其与代码相关响应的例子。然而,我们可以通过就代码理解提出具体问题来增强这一能力。

例如,让我们让 ChatGPT 为我们解释以下 Python 脚本的功能:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_16.png

图 5.16:ChatGPT 解释 Python 脚本的示例

代码可解释性也可以是前面提到的文档的一部分,或者它可以在想要更好地理解其他团队复杂代码的开发者之间使用;(有时这也发生在我身上)记住他们之前写过的内容。

多亏了 ChatGPT 和本节中提到的功能,开发者可以轻松地用自然语言跟踪项目生命周期,这样新团队成员和非技术用户就能更容易地理解到目前为止完成的工作。

在下一节中,我们将看到代码可解释性是如何在数据科学项目中成为机器学习模型可解释性的关键步骤。

理解机器学习模型的可解释性

模型可解释性指的是人类理解机器学习模型预测背后逻辑的难易程度。本质上,这是理解模型如何做出决策以及哪些变量对其预测有贡献的能力。

让我们通过一个使用深度学习卷积神经网络CNN)进行图像分类的模型可解释性示例来了解一下。我使用 Python 和 Keras 构建了我的模型。为此,我将直接从keras.datasets下载 CIFAR-10 数据集;它包含 10 个类别(飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船和卡车)中的 60,000 个 32x32 彩色图像(因此是 3 通道图像),每个类别有 6,000 个图像。在这里,我将分享模型的主体部分;你可以在书籍的 GitHub 仓库中找到所有相关的代码,该仓库位于github.com/PacktPublishing/Modern-Generative-AI-with-ChatGPT-and-OpenAI-Models/tree/main/Chapter%206%20-%20ChatGPT%20for%20Developers/code

model=tf.keras.Sequential()
model.add(tf.keras.layers.Conv2D(32,kernel_ size=(3,3),activation='relu',input_shape=
(32,32,1)))
model.add(tf.keras.layers.MaxPooling2D(pool_size=(2,2))) model.add(tf.keras.layers.Flatten()) model.add(tf.keras.layers.Dense(1024,activation='relu')) model.add(tf.keras.layers.Dense(10,activation='softmax')) 

上述代码由几个执行不同操作的层组成。我可能对获取模型结构以及每层的用途的解释感兴趣。让我们请 ChatGPT 帮忙(以下是你可以看到的响应摘录):

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_17.png

图 5.17:ChatGPT 的模型可解释性

如前图所示,ChatGPT 能够为我们清晰地解释我们 CNN 的结构和层。它还添加了一些注释和提示,例如使用最大池化层有助于减少输入的维度。

我还可以在验证阶段得到 ChatGPT 在解释模型结果方面的支持。因此,在将数据分为训练集和测试集并在训练集上训练模型后,我想看看它在测试集上的表现:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_18.png

图 5.18:评估指标

让我们再请 ChatGPT 详细说明我们的验证指标(截断输出):

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_19.png

图 5.19:ChatGPT 解释评估指标示例

再次强调,结果真的很令人印象深刻,它为如何设置训练集和测试集的机器学习实验提供了清晰的指导。它解释了为什么模型足够泛化非常重要,这样它就不会过拟合,并且能够对它以前从未见过的数据进行准确预测。

模型可解释性之所以重要,有很多原因。一个关键因素是它缩小了业务用户与模型背后的代码之间的差距。这对于使业务用户能够理解模型的行为,并将其转化为有用的商业想法至关重要。

此外,模型可解释性使得负责任和道德 AI 的一个关键原则——模型背后 AI 系统的思考和行为的透明度——成为可能。解锁模型可解释性意味着检测模型在生产过程中可能存在的潜在偏差或有害行为,并防止其发生。

总体而言,ChatGPT 可以在模型可解释性的背景下提供有价值的支持,在行级别生成见解,正如我们在前面的例子中所看到的。

接下来我们将探讨 ChatGPT 的下一个也是最后一个功能,这将进一步提高开发者的生产力,尤其是在同一个项目中使用了多种编程语言的情况下。

不同编程语言之间的翻译

第四章中,我们看到了 ChatGPT 在翻译不同语言之间具有强大的能力。真正令人难以置信的是,自然语言并不是它的唯一翻译对象。实际上,ChatGPT 能够在不同的编程语言之间进行翻译,同时保持相同的输出和风格(即,如果存在,它将保留 docstring 文档)。

有许多场景,这可能会成为游戏规则的改变者。

例如,你可能需要学习一种全新的编程语言或你从未见过的统计工具,因为你需要快速交付一个基于该语言的工程项目。借助 ChatGPT,你可以开始用你偏好的语言进行编程,然后让它翻译成你想要的语言,在这个过程中你将学习到新的编程语言。

想象一下,项目需要用 MATLAB(MathWorks 开发的一种专有数值计算和编程软件)交付,而你一直使用 Python 进行编程。该项目包括从修改后的国家标准与技术研究院MNIST)数据集(原始数据集描述和相关论文可在yann.lecun.com/exdb/mnist/找到)中分类图像。该数据集包含大量的手写数字,常被用于教授各种图像处理系统。

首先,我编写了以下 Python 代码来初始化一个用于分类的深度学习模型:

from tensorflow.keras import layers
# Load the MNIST dataset
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_ data()
# Preprocess the data
x_train = x_train.reshape(-1, 28*28) / 255.0 x_test = x_test.reshape(-1, 28*28) / 255.0 y_train = keras.utils.to_categorical(y_train) y_test = keras.utils.to_categorical(y_test)
# Define the model architecture model = keras.Sequential([
layers.Dense(256, activation='relu', input_shape=(28*28,)), layers.Dense(128, activation='relu'),
layers.Dense(10, activation='softmax')
])
# Compile the model
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# Train the model
history = model.fit(x_train, y_train, validation_split=0.2, epochs=10, batch_size=128)
# Evaluate the model
test_loss, test_acc = model.evaluate(x_test, y_test, verbose=0) print('Test accuracy:', test_acc) 

现在我们来看看,如果我们将前面的代码作为上下文提供给 ChatGPT 并要求它将其翻译成 MATLAB 会发生什么:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_20.png

图 5.20:ChatGPT 将 Python 代码翻译成 MATLAB

代码翻译也可以缩小新技术与当前编程能力之间的技能差距。

代码翻译的另一个关键含义是 应用程序现代化。确实,想象一下,你想刷新你的应用程序堆栈,即迁移到云端。你可以决定从简单的提升和转移到 基础设施即服务IaaS)实例(如 Windows 或 Linux 虚拟机VMs))开始。然而,在第二阶段,你可能想要重构、重新设计或甚至重建你的应用程序。

下图展示了应用程序现代化的各种选项:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_21.png

图 5.21:您可以将应用程序迁移到公共云的四种方式

ChatGPT 和 OpenAI Codex 模型可以帮助您进行迁移。以主机为例。

主机计算机主要被大型组织用于执行诸如人口普查、消费者和行业统计、企业资源规划和大规模交易处理等活动的批量数据处理等基本任务。主机环境的应用程序编程语言是 通用商业面向语言COBOL)。尽管它是在 1959 年发明的,但 COBOL 仍然在使用中,并且是现存最古老的编程语言之一。

随着技术的不断进步,驻留在主机领域中的应用程序一直处于持续迁移和现代化的过程中,旨在增强现有遗留主机基础设施在接口、代码、成本、性能和维护性等方面的能力。

当然,这意味着将 COBOL 翻译成更现代的编程语言,如 C# 或 Java。问题是 COBOL 对大多数新一代程序员来说都是未知的;因此,在这个背景下存在巨大的技能差距。

让我们考虑一个 COBOL 脚本,该脚本读取一个输入数字,将其加 10,然后打印结果:

 IDENTIFICATION DIVISION.
       PROGRAM-ID. AddTen.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  INPUT-NUMBER    PIC 9(5).
       01  RESULT-NUMBER   PIC 9(5).
       PROCEDURE DIVISION.
           DISPLAY 'Enter a number: '.
           ACCEPT INPUT-NUMBER.
           COMPUTE RESULT-NUMBER = INPUT-NUMBER + 10.
           DISPLAY 'Result after adding 10: ' RESULT-NUMBER.
           STOP RUN. 

我随后将之前的 COBOL 脚本传递给 ChatGPT,以便它能够将其作为上下文来制定其响应。现在让我们让 ChatGPT 将该脚本翻译成 C#:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_22.png

图 5.22:ChatGPT 将 COBOL 翻译成 C# 的示例

像 ChatGPT 这样的工具可以通过引入一个了解编程过去和未来的层来帮助减少在这个和类似场景中的技能差距。

总之,ChatGPT 可以成为应用程序现代化的有效工具,除了提供代码升级外,还能提供有价值的见解和建议,以增强遗留系统。凭借其先进的语言处理能力和广泛的知识库,ChatGPT 可以帮助组织简化现代化努力,使过程更快、更高效、更有效。

在画布上与代码协作

第四章 中,我们提到了新的 ChatGPT 画布功能,它允许用户在协作工作区中动态修改模型的响应。然而,当涉及到代码开发时,这个功能真正闪耀。

实际上,它提供了一个代码开发、执行和调试的环境。

让我们看看一个例子。我们将从一个简单的查询开始,向 ChatGPT 提问:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_23.png

图 5.23:使用 ChatGPT 生成代码

如预期,ChatGPT 能够生成所需的代码。现在,如果我们点击编辑图标,我们将能够访问画布工作区,在那里我们可以:

  • 修改代码:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_24.png

图 5.24:使用画布工作区修改代码

  • 运行代码并在控制台中查看结果:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_25.png

图 5.25:无缝测试和修改代码

这对软件开发来说是一个变革性的进步;这意味着在与 ChatGPT 交互的同时,你有机会无缝测试和执行代码,而无需离开这个应用切换到你的开发环境。

让我们更进一步。另一种与画布交互的方式是通过将其作为工具调用:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_26.png

图 5.26:直接调用画布

通过这样做,ChatGPT 将自动进入代码工作状态。让我们提出与之前相同的问题,但这次直接利用画布工具。

在这种情况下,ChatGPT 将直接为我们打开一个画布工作区,提供额外的编码工具:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_05_27.png

图 5.27:画布工作区

使用这些工具,你有四个主要功能:

  • 添加注释功能向 ChatGPT 提供指令,在你在工作的画布上修改你的代码

  • 添加日志功能将打印语句或日志机制插入到你的代码中,有助于跟踪执行流程和诊断问题

  • 通过选择修复错误快捷键,ChatGPT 会分析你的代码以识别和纠正错误,增强代码可靠性

  • 转换为其他语言功能可以将你的代码无缝转换为另一种编程语言

通过整合这些功能,ChatGPT 的画布提供了一个全面的代码开发、执行和调试环境,提高了生产力并促进了更流畅的编码工作流程。

摘要

ChatGPT 可以成为开发者提升技能和简化工作流程的有价值资源。我们首先看到 ChatGPT 如何生成、优化和调试你的代码,但也涵盖了其他功能,例如在代码旁边生成文档、解释你的机器学习模型,以及在不同编程语言之间进行翻译以实现应用现代化。

不论你是经验丰富的开发者还是初学者,ChatGPT 都提供了一个强大的学习和成长工具,缩小了代码与自然语言之间的差距。

在下一章中,我们将深入探讨另一个应用领域,ChatGPT可能会成为一个变革者:市场营销。

加入我们的 Discord 和 Reddit 社区

对本书有任何疑问或想参与关于生成式 AI 和大型语言模型(LLMs)的讨论?加入我们的 Discord 服务器packt.link/I1tSU,以及我们的 Reddit 频道packt.link/jwAmA,与志同道合的爱好者们连接、分享和协作。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/Discord.png https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/QR_Code757615820155951000.png

第六章:用 ChatGPT 精通营销

在本章中,我们将关注营销人员如何利用 ChatGPT,探讨 ChatGPT 在该领域的主要应用案例,以及营销人员如何将其作为有价值的助手来利用。

我们将学习 ChatGPT 如何协助以下活动:

  • 利用 ChatGPT 进行营销

  • 新产品开发和市场进入策略

  • 营销比较的 A/B 测试

  • 通过搜索引擎优化提高网站和帖子的效率

  • 文本数据的情感分析

到本章结束时,您将能够利用 ChatGPT 进行与营销相关的活动,并提高您的生产力。

技术要求

您需要 OpenAI 账户才能访问 ChatGPT。请参考第二章了解如何创建 ChatGPT 账户。您可以在本书配套的 GitHub 仓库中找到本章的完整代码:github.com/PacktPublishing/Practical-GenAI-with-ChatGPT-Second-Edition

利用 ChatGPT 进行营销

营销是那些领域之一,ChatGPT 和 OpenAI 模型的创造力可以以最纯粹的形式得到利用。

它们可以是支持新产品、营销活动、搜索引擎优化SEO)等方面的实用工具。总的来说,营销人员自动化并简化了许多工作流程,同时提高了营销工作的质量和效果。

这里有一个例子。ChatGPT 在营销中最突出和最有前途的应用案例之一是个性化营销。例如,营销团队可以使用 ChatGPT 分析客户数据,并开发针对特定客户偏好和行为的定向电子邮件活动。这可以增加转换的可能性,并导致更高的客户满意度。通过提供客户情感和行为洞察,生成个性化的营销信息,提供个性化的客户支持,并生成内容,ChatGPT 可以帮助营销人员提供卓越的客户体验并推动业务增长。

这是 ChatGPT 在营销中应用的许多例子之一。在接下来的章节中,我们将探讨 ChatGPT 支持的端到端营销项目的具体实例。

注意,在某些部分,我将添加一个额外的提示增强部分,供您尝试一些更高级的选项,以用于您自己的项目。

新产品开发和市场进入策略

您可以将 ChatGPT 引入营销活动的第一种方式可能是作为新产品开发和市场进入GTM)策略中的助手。

在本节中,我们将逐步介绍如何开发和推广一款新产品。我们已经有了一个名为 RunFast 的运动服装品牌,到目前为止,我们只生产鞋子,因此我们希望通过新的产品线来扩展我们的业务。我们将从头脑风暴想法开始,以创建一个 GTM(Go To Market)策略。当然,这一切都由 ChatGPT 提供支持:

  • 头脑风暴想法:ChatGPT 可以支持我们的第一件事是头脑风暴和为新产品线起草选项。它还将提供每个建议背后的推理。所以,让我们询问我们应该关注哪种新产品线:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_01.png

图 6.1:ChatGPT 生成的新想法示例

在三个建议中,我们将选择第二个,因为它可以带来积极的环境影响,同时提升我们的品牌声誉。更具体地说,我们将从环保型运动袜开始。

  • 产品名称:现在我们已经确定了想法,我们需要为它想一个吸引人的名字。同样,我们将再次询问 ChatGPT 以获取更多选项,然后我们可以从中选择我们最喜欢的一个:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_02.png

图 6.2:潜在产品名称列表

GreenStride听起来对我足够好了——我会继续使用这个名字。

  • 生成吸引人的标语:除了产品名称之外,我们还想分享名称背后的意图和产品线的使命,以便我们的目标受众能够被它吸引。我们希望激发客户的信任和忠诚,并让他们在我们的新产品线的背后看到自己的影子。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_03.png

图 6.3:我们新产品名称的标语列表

太好了——现在我对将要使用的商品名称和标语感到满意,这些将在稍后用于创建独特的社交媒体公告。在这样做之前,我想花更多的时间进行目标受众的市场研究。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_04.png

图 6.4:我新产品线要接触的目标人群群体列表

在心中考虑你受众的不同群体是很重要的,这样你就可以区分你想传达的信息。在我的情况下,我想确保我的产品线能够满足不同的人群,例如竞技跑者、休闲跑者和健身爱好者。

  • 产品变体和销售渠道:根据前面的潜在客户群体,我可以生成产品变体,以便它们更针对特定的受众:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_05.png

图 6.5:产品线变体的示例

类似地,我也可以要求 ChatGPT 为前面提到的每个群体提出不同的销售渠道:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_06.png

图 6.6:ChatGPT 对不同销售渠道的建议

  • 脱颖而出于竞争:我想让我的产品线在非常饱和的市场中脱颖而出,并具有独特性。本着这个目的,我要求 ChatGPT 包括社会考虑因素,如可持续性和包容性。让我们请 ChatGPT 在这方面提一些建议:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_07.png

图 6.7:ChatGPT 生成的突出特征示例

如您所见,它能够生成有趣的特征,使我的产品线独具特色。

  • 产品描述:现在是我们开始构建 GTM 计划的时候了。首先,我想为我的网站生成一个产品描述,包括所有之前独特的差异化因素。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_08.png

图 6.8:ChatGPT 生成的描述和 SEO 关键词示例

  • 公平价格:另一个关键要素是为我们的产品确定一个公平的价格。由于我为不同受众(竞技跑者、休闲跑者和健身爱好者)区分了产品变体,我也希望有一个考虑这种聚类的价格范围。请注意,在以下示例中,ChatGPT 正在调用网络搜索插件来检索有关当前跑步袜市场价格的最新信息。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_09.png

图 6.9:产品变体的价格范围

我们几乎完成了。我们已经经历了许多新产品开发和 GTM 步骤,在每个步骤中,ChatGPT 都扮演了一个伟大的支持工具。

最后,我们可以请 ChatGPT 为我们新产品生成一条 Instagram 帖子,包括相关的标签和 SEO 关键词。然后我们可以生成 DALL-E 图像,它作为 ChatGPT Plus 中的一个嵌入式插件。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_10.png

图 6.10:ChatGPT 生成的社交媒体帖子

此外,得益于 DALL-E 的特殊贡献:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_11.png

图 6.11:由 DALL-E 3 驱动的 ChatGPT 生成的插图示例

这里是最终结果:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_12.png

图 6.12:由 ChatGPT 和 DALL-E 3 完全生成的 Instagram 帖子

当然,这里还缺少许多元素,以完成完整的产品开发和 GTM。然而,在 ChatGPT(以及 DALL-E 3 的特殊贡献)的支持下,我们成功地头脑风暴了一个新产品线及其变体、潜在客户、吸引人的口号,以及生成了一条相当不错的 Instagram 帖子来宣布 GreenStride 的上市!

奖励提示

当谈到头脑风暴营销想法时,一个你可能想尝试的不错的提示模板是游戏玩法技术。

提示

让我们玩一个游戏来头脑风暴营销想法!

  1. 游戏规则:
  • 你将扮演[特定角色,例如,营销专家,创意消费者]。

  • 为[特定产品或服务]提供营销想法。

  • 遵循每一轮提供的主题或限制。

  1. 游戏回合:
  • 第一轮:[初始挑战或主题,例如,社交媒体活动]。

  • 第二轮:[引入新的限制,例如,环保焦点]。

  • 第三轮:[探索突破常规的方法,例如,游击营销]。

  1. 评分标准:
  • 理念将根据创意、可行性和与业务目标的一致性进行评估。

让我们从第一轮开始:[描述产品/服务和目标受众]。你能想出什么想法?

使用游戏提示技巧进行头脑风暴使过程更具创意、吸引力和高效性。将头脑风暴视为游戏鼓励跳出思维定式。

游戏引入了限制和意外的角度,导致新的想法。它们还使头脑风暴更有趣和难忘,提高动力。

当涉及到目标受众识别时,另一个有趣的提示技术可以是“反转互动”方法。在这种方法中,ChatGPT 通过提问来引导对话,收集信息,旨在实现特定目标。

例如,指导模型“我想提高我的公共演讲技巧;请问我问题以确定改进的区域”使 ChatGPT 能够引导用户通过自我评估过程。以下是一个例子。

提示:

我的目标是为我们新的环保产品线开发营销活动。请问我问题以确定我们的目标受众和关键信息策略。继续提问,直到你收集到足够的信息来提供全面的目标受众画像和信息策略计划。确保涵盖以下主题:

角色属性:

人口统计:你理想客户的可能年龄范围、收入水平、教育程度和居住地是什么?

心理统计:他们可能有哪些价值观、兴趣或爱好?

行为:你预计他们如何购物、与品牌互动或做出购买决定?

产品适配:

这个产品为每个角色解决了什么具体问题?

这个产品将如何使他们的生活变得更轻松或更好?

验证:

这些角色与真实世界数据或现有客户相比如何?

我们是否应该探索其他细分市场?

让我们开始吧!

使用这种方法,你正在迫使 ChatGPT 提问,从而明确意图(或在这种情况下,目标受众的属性)。

市场比较的 A/B 测试

ChatGPT 可以协助营销人员的一个有趣领域是 A/B 测试。

A/B 测试在营销中是一种比较两个不同版本的市场营销活动、广告或网站以确定哪个表现更好的方法。在 A/B 测试中,创建了同一活动或元素的两种变体,两个版本之间只有一个变量不同。目标是查看哪个版本能产生更多的点击、转化或其他期望的结果。

A/B 测试允许营销人员优化他们的活动和元素以实现最大效果,从而带来更好的结果和更高的投资回报率。

由于这种方法涉及生成相同内容的许多变体,ChatGPT 的生成能力肯定可以帮助在这个方面。

让我们考虑以下例子:

我正在推广我开发的新产品:一款专为速度攀岩者设计的新款、轻便、薄的攀岩安全带。我已经进行了一些市场调研,并且我知道我的目标受众。我还知道,对于这个受众群体来说,一个很好的沟通渠道是在在线攀岩博客上发布,其中大多数攀岩馆的会员都是读者。我的目标是创建一篇出色的博客文章来分享这款新安全带的发布,并且我想在两组人中测试它的两个不同版本。

我即将发布的博客文章,并且我希望它是我的 A/B 测试的对象如下:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_13.png

图 6.13:发布攀岩装备的博客文章示例

在这里,ChatGPT 可以在两个层面上帮助我们:

  • 第一个层面是重新措辞文章,使用不同的关键词或不同的吸引注意力的口号。为此,一旦这篇文章提供为上下文,我们就可以要求 ChatGPT 对文章进行工作并稍微改变一些元素:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_14.png

图 6.14:ChatGPT 生成的新版博客文章

根据我的要求,ChatGPT 能够仅重新生成我要求的元素(标题、副标题和结束语),这样我可以通过观察两个受众群体的反应来监控这些元素的有效性。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_15.png

图 6.15:攀岩博客上发布的示例博客文章

我们可以直接向 ChatGPT 提供 HTML 代码,并要求它更改一些布局元素,例如按钮的位置或它们的文字。例如,与其说是“立即购买”,不如说一个“我想要一个!”按钮更能吸引读者的注意。

因此,让我们向 ChatGPT 提供 HTML 源代码:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_16.png

图 6.16:ChatGPT 更改 HTML 代码

让我们看看输出结果是什么样的(我也更改了标题、副标题和段落,用 ChatGPT 生成的那些):

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_17.png

图 6.17:网站的全新版本

如您所见,ChatGPT 仅在按钮级别进行干预,略微改变了它们的布局、位置、颜色和文字。

总之,ChatGPT 是营销中 A/B 测试的有价值工具。它快速生成相同内容的不同版本的能力可以缩短新活动的上市时间。通过利用 ChatGPT 进行 A/B 测试,您可以优化您的营销策略,并最终为您的业务带来更好的结果。

奖励提示

在 A/B 测试的背景下,一种好的提示工程方法是所谓的替代方法模式。在提示工程中,这种模式涉及指示语言模型为给定问题生成多个解决方案或观点。这种技术利用模型产生多样化响应的能力,增强创造力并提供更广泛的选择范围。例如,当寻求提高客户参与度的方法时,您可能会提示,“你能提出各种提高客户参与度的策略吗?”然后模型会提供多种方法,如个性化营销、忠诚度计划或互动内容。

提示

你是一位创意内容策略师,负责为新产品攀岩绳索的发布生成 A/B 测试变体。你的目标是通过改变以下元素来提供两篇不同的博客内容版本:

  1. 标题

  2. 副标题

  3. 结尾句子

指令:

  1. 创建关注[特定角度,例如,强调速度和效率]的变体 A。

  2. 创建关注[替代角度,例如,安全性和多功能性]的变体 B。

  3. 确保两种变体都能吸引攀岩者,并针对博客内容进行优化。

可交付成果:

请按照以下格式提供您的回答:

<<<变体 A>>>

[插入变体 A 的内容]

<<<变体 A 结束>>>

<<<变体 B>>>

[插入变体 B 的内容]

<<<变体 B 结束>>>

这种方法在头脑风暴会议中特别有用,因为它鼓励探索不同的可能性,并减少专注于单一解决方案的可能性。

提升 SEO

ChatGPT 成为颠覆者的另一个有希望的领域是SEO。这是在搜索引擎如 Google 或 Bing 中排名的关键元素,它决定了您的网站是否对寻找您产品的用户可见。

定义

SEO 是一种用于提高网站在搜索引擎结果页面SERPs)上的可见性和排名的技术。这是通过优化网站或网页来增加来自搜索引擎的有机(未付费)流量数量和质量来实现的。SEO 的目的是通过针对特定的关键词或短语来优化网站,以吸引更多目标访客。

假设你经营一家名为 Hat&Gloves 的电子商务公司,正如你可能猜到的,该公司只销售帽子和大衣。你现在正在创建你的电子商务网站,并希望优化其排名。让我们让 ChatGPT 列出一些相关的关键词,以便嵌入我们的网站:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_18.png

图 6.18:ChatGPT 生成的 SEO 关键词示例

如您所见,ChatGPT 能够创建一个关键词列表。

SEO 的另一个关键要素是搜索引擎意图。搜索引擎意图,也称为用户意图,指的是用户在搜索引擎中进行的特定搜索查询的潜在目的或目标。理解搜索引擎意图很重要,因为它有助于企业和营销人员创建更精准和有效的内 容和营销策略,这些策略与搜索者的需求和期望相一致。

通常有四种类型的搜索引擎意图:

  • 信息意图:用户正在寻找特定主题或问题的信息,例如 “法国的首都是什么?”“如何在家制作披萨。”

  • 导航意图:用户正在寻找特定的网站或网页,例如 Facebook 登录Amazon.com

  • 商业意图:用户正在寻找购买产品或服务,但可能还没有做出最终决定。商业意图搜索的例子包括 1000 美元以下的最佳笔记本电脑在线折扣鞋

  • 交易意图:用户有一个特定的目标来完成交易,这可能涉及实物购买或订阅服务。交易意图的例子可能包括 购买 iPhone 13注册健身房会员

通过理解特定搜索查询背后的意图,企业和营销人员可以创建更精准和有效的内 容,以满足目标受众的需求和期望。这可能导致更高的搜索引擎排名、更多的流量,最终,更多的转化和收入。

现在,问题是,ChatGPT 能否确定给定请求的意图?在回答之前,值得注意的是,推断给定提示的意图的活动是包括 GPT 在内的大型语言模型(LLMs)的核心业务。所以,当然,ChatGPT 能够捕捉提示的意图。

这里的附加值在于,我们希望看到 ChatGPT 是否能够在具有精确分类的精确领域(即营销领域)中确定意图。这就是为什么提示设计再次成为引导 ChatGPT 走向正确方向的关键。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_19.png

图 6.19:ChatGPT 按用户意图聚类的关键词示例

最后,我们还可以进一步利用“扮演…”技巧,这在第三章中已经提到过。确实很有趣,如果我们能对我们的网站进行评估,了解它是否按照预期进行了优化。在营销中,这种分析被称为SEO 审计。SEO 审计是对网站 SEO 性能和潜在改进区域的评估。通常由 SEO 专家、网站开发人员或营销人员执行,涉及对网站技术基础设施、内容和反向链接档案的全面分析。

在 SEO 审计过程中,审计员通常会使用一系列工具和技术来识别改进区域,例如关键词分析、网站速度分析、网站架构分析和内容分析。审计员随后将生成一份报告,概述关键问题、改进机会以及解决这些问题的建议措施。

让我们请 ChatGPT 扮演 SEO 专家来执行这项审计。作为参考网站,我们将使用上面提到的攀岩博客。我将给 ChatGPT 代码,并给出以下指示:“扮演 SEO 专家,对上述 HTML 代码生成一份简短的 SEO 审计(最多 300 字)。”这是回复:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_20.png

图 6.20:ChatGPT 在攀岩博客的 HTML 代码上生成 SEO 审计

ChatGPT 能够生成相当准确的分析,包括相关的评论和建议。总体而言,ChatGPT 在 SEO 相关活动方面具有有趣的潜力,无论是从零开始构建网站还是想要改进现有网站,它都可以成为一个好工具。

质量和客户满意度情感分析

情感分析是营销中用于分析和解释客户对品牌、产品或服务的情感和意见的技术。它涉及使用自然语言处理(NLP)和机器学习(ML)算法来识别和分类文本数据(如社交媒体帖子、客户评论和反馈调查)的情感。

通过执行情感分析,营销人员可以深入了解客户对其品牌的看法,识别改进区域,并基于数据驱动的决策来优化他们的营销策略。例如,他们可以跟踪客户评论的情感,以确定哪些产品或服务获得了正面或负面的反馈,并相应地调整他们的营销信息。

总体而言,情感分析是营销人员了解客户情感、衡量客户满意度并开发与目标受众产生共鸣的有效营销活动的重要工具。

情感分析已经存在了一段时间,所以你可能想知道 ChatGPT 能带来什么额外的价值。好吧,除了分析的准确性(它是目前市场上最强大的模型)之外,ChatGPT 与其他情感分析工具的不同之处在于它由一个 LLM 驱动;因此,它是“通用”的而不是“专用”的。

这意味着当我们使用 ChatGPT 进行情感分析时,我们并不是使用其专门为此任务设计的特定 API;ChatGPT 和 OpenAI 模型背后的核心思想是它们可以同时协助用户完成许多一般性任务,与任务互动并根据用户请求改变分析的范畴。

因此,ChatGPT 当然能够捕捉到给定文本的情感,比如 X/Twitter 帖子或产品评价。然而,ChatGPT 还可以更进一步,帮助识别产品或品牌中那些对情感有积极或消极影响的具体方面。例如,如果客户持续以负面方式提及产品的某个特定功能,ChatGPT 可以将其突出显示为需要改进的领域。或者,ChatGPT 可能被要求对特别敏感的评价生成回应,考虑到评价的情感并以此作为回应的上下文。再次,它可以生成报告,总结在评价或评论中找到的所有正面和负面元素,并将它们分类。

让我们考虑以下例子。一位客户最近从我的电子商务公司 RunFast 购买了一双鞋,并留下了以下评价:

“我最近买了 RunFast Prodigy 鞋子,感觉有些复杂。它们非常舒适,具有良好的缓震和支撑,减少了我在跑步时的脚部疲劳。设计也很吸引人,我收到了很多赞美。然而,耐用性令人失望;外底很快磨损,透气性上部的磨损迹象在几周后就出现了。考虑到高昂的价格,尽管它们舒适且设计出色,我还是犹豫是否推荐。”

让我们要求 ChatGPT 捕捉这个评价的情感:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_21.png

图 6.21:ChatGPT 分析客户评价

从前面的图中,我们可以看到 ChatGPT 并没有仅仅提供标签:它还解释了评价中具有混合情感的正面和负面元素,因此可以将其整体标记为中性。

注意

通常,情感分析的细微差别很棘手。当 ChatGPT 被给予少量提示以帮助它理解情感时,它表现得最好,正如我们在第三章中探讨的那样。关于这个话题的进一步讨论,你可以参考这里的一个初步研究:arxiv.org/abs/2304.04339

让我们深入探讨这个问题,并提出一些改进产品的建议:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_22.png

图 6.22:基于客户反馈的产品改进建议

最后,让我们生成一个响应给客户,表明我们作为一家公司确实关心客户的反馈,并希望改进我们的产品。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_06_23.png

图 6.23:ChatGPT 生成的响应

我们看到的例子是一个非常简单的例子,只有一个评论。现在,想象一下我们拥有大量的评论,以及多样化的销售渠道,我们从中获得反馈。想象一下 ChatGPT 和 OpenAI 模型等工具的力量,它们能够分析和整合所有这些信息,识别你产品的优点和缺点,以及捕捉客户趋势和购物习惯。此外,为了客户关怀和保留,我们还可以使用我们偏好的写作风格自动处理评论响应。事实上,通过调整聊天机器人的语言和语气以满足客户的特定需求和期望,你可以创造一个更具吸引力和有效性的客户体验。

这里有一些例子:

  • 同理心聊天机器人:一种使用同理心语气和语言与可能遇到问题或需要帮助处理敏感问题的客户互动的聊天机器人

  • 专业聊天机器人:一种使用专业语气和语言与可能寻求特定信息或需要帮助解决技术问题的客户互动的聊天机器人

  • 对话聊天机器人:一种使用轻松友好的语气与可能寻求个性化体验或进行更一般性咨询的客户互动的聊天机器人

  • 幽默聊天机器人:一种使用幽默和机智的语言与可能寻求轻松体验或缓解紧张局势的客户互动的聊天机器人

  • 教育聊天机器人:一种使用教学风格的沟通方式与可能想了解更多关于产品或服务的客户互动的聊天机器人

总之,ChatGPT 可以成为企业进行情感分析、提高质量和保留客户的有力工具。凭借其先进的 NLP 能力,ChatGPT 可以实时准确地分析客户反馈和评论,为企业提供有关客户情感和偏好的宝贵见解。通过将 ChatGPT 作为其客户体验策略的一部分,企业可以迅速识别可能对客户满意度产生负面影响的问题,并采取纠正措施。这不仅可以帮助企业提高质量,还可以增加客户忠诚度和保留率。

摘要

在本章中,我们探讨了 ChatGPT 如何被营销人员用来增强他们的营销策略。我们了解到 ChatGPT 可以帮助开发新产品以及定义其 GTM 策略,设计 A/B 测试,增强 SEO 分析,以及捕捉评论、社交媒体帖子和其他客户反馈的情感。

ChatGPT 对营销人员的重要性在于其潜力可以彻底改变公司与客户互动的方式。通过利用 NLP、ML 和大数据的力量,ChatGPT 使公司能够创建更个性化和相关的营销信息,提高客户支持和满意度,并最终推动销售和收入。

随着 ChatGPT 的持续发展和演变,我们可能会看到它在营销行业中的更多参与,尤其是在公司如何与客户互动的方式上。事实上,过度依赖 AI 使公司能够更深入地洞察客户行为和偏好。

对于营销人员来说,关键是要拥抱这些变化,适应 AI 驱动的营销的新现实,以便在竞争中保持领先并满足客户的需求。

在下一章中,我们将探讨本书中涵盖的 ChatGPT 应用的第三个也是最后一个领域——研究。

加入我们的 Discord 和 Reddit 社区

对本书有任何疑问或想参与关于生成式 AI 和 LLMs 的讨论?加入我们的 Discord 服务器packt.link/I1tSU和 Reddit 频道packt.link/jwAmA,与志同道合的爱好者连接、分享和协作。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/Discord.png https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/QR_Code757615820155951000.png

第七章:用 ChatGPT 重新发明研究

本章是为希望利用 ChatGPT 的研究者准备的。本章将介绍 ChatGPT 可以解决的几个主要用例,以便你通过具体示例了解 ChatGPT 在研究中的应用。

到本章结束时,你将熟悉以多种方式使用 ChatGPT 作为研究助手,包括以下内容:

  • 研究者对 ChatGPT 的需求

  • 为你的研究头脑风暴文献

  • 为你的实验设计和框架提供支持

  • 生成和格式化参考文献,以便纳入你的研究

  • 生成研究展示

本章还将提供示例,并使你能够亲自尝试这些提示。

研究者对 ChatGPT 的需求

ChatGPT 可以成为研究人员在广泛领域中的极其宝贵的资源。作为一个在大量数据上训练的复杂语言模型,ChatGPT 可以快速准确地处理大量信息,并生成通过传统研究方法可能难以或耗时才能发现的见解。

此外,ChatGPT 可以通过分析可能对人类研究者来说并不立即明显的变化模式和趋势,为研究人员提供其领域的独特视角。例如,想象一位研究气候变化并希望了解公众对此问题看法的研究者。他们可能会要求 ChatGPT 分析与气候变化相关的社交媒体数据,并识别在线人们表达的最常见的主题和情感。然后,ChatGPT 可以为研究者提供一份全面的报告,详细说明与这一主题相关的最常见词汇、短语和情感,以及任何可能有用的新兴趋势或模式。

通过与 ChatGPT 合作,研究人员可以获取尖端技术和见解,并保持在他们的领域前沿。

让我们现在深入探讨四个 ChatGPT 可以提升研究生产力的用例。

注意

本章中提出的多数示例都是基于最新信息的;实际上,你将经常看到 ChatGPT 利用网络搜索插件。

为你的研究头脑风暴文献

文献综述是对特定主题或问题现有已发表研究的批判性和系统性的审查过程。它涉及搜索、审查和综合相关已发表的研究和其他来源,如书籍、会议记录和同行评审文献。文献综述的目的是在特定领域识别研究空白、不一致性和进一步研究的机遇。

文献综述过程通常包括以下步骤:

  1. 定义研究问题:进行文献综述的第一步是定义感兴趣主题的研究问题。比如说,我们正在进行关于社交媒体对心理健康影响的研究。现在,我们感兴趣的是头脑风暴一些可能的研究问题,以便将研究聚焦,我们可以利用 ChatGPT 来完成这项工作:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_01.png

图 7.1:基于给定主题的研究问题示例

这些都是可以进一步研究的有意思的问题。由于我对第一个问题特别感兴趣——“社交媒体使用频率和类型如何影响青少年的焦虑和抑郁水平?”——我将把它作为我们分析下一步的参考。

  1. 搜索文献:既然我们已经明确了研究问题,下一步就是使用各种数据库、搜索引擎和其他来源来搜索相关文献。研究人员可以使用特定的关键词和搜索词来帮助识别相关的研究。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_02.png

图 7.2:在 ChatGPT 支持下进行的文献搜索

从 ChatGPT 的建议开始,我们可以开始深入研究这些参考文献。

  1. 筛选文献:一旦确定了相关文献,下一步就是筛选这些研究,以确定它们是否符合综述的纳入标准。这通常涉及审查摘要,必要时还要审查全文。比如说,如果我们想深入研究《社交媒体与青少年焦虑:哈佛大学教育学院见解》这篇研究论文。我们可以让 ChatGPT 为我们筛选:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_03.png

图 7.3:特定论文的文献筛选

ChatGPT 能够为我提供论文的概述。考虑到其研究问题和主要讨论主题,我认为这对我的研究将非常有用。

  1. 提取数据:在确定了相关研究之后,研究人员需要从每项研究中提取数据,例如研究设计、样本量、数据收集方法和关键发现。例如,假设我们想从 Hinduja 和 Patchin 于 2018 年发表的论文《数字自残:流行率、动机和结果》中收集以下信息:

    • 论文中收集的数据来源和研究主题

    • 研究者采用的数据收集方法

    • 数据样本量

    • 分析的主要局限性和缺点

    • 研究者采用的实验设计

下面是具体步骤:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_04.png

图 7.4:从给定论文中提取相关数据和框架

  1. 综合文献:文献综述过程的最后一步是综合研究的结果,并就该领域的知识现状得出结论。这可能包括识别共同主题,突出文献中的差距或不一致,以及确定未来研究的机遇。

让我们设想,除了 ChatGPT 提出的论文外,我们还收集了其他我们想要综合的标题和论文。更具体地说,我们想要了解它们是否得出相同的结论,共同趋势是什么,以及哪种方法可能比其他方法更可靠。对于这种情况,我们将考虑三篇研究论文:

下面是结果呈现的方式:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_05.png

图 7.5:三篇研究论文的文献分析和基准比较

此外,在这种情况下,ChatGPT 能够对提供的这三篇论文产生相关的总结和分析,包括方法之间的基准比较和可靠性考虑。

总体而言,ChatGPT 能够在文献综述领域执行许多活动,从研究问题头脑风暴到文献综合。正如往常一样,需要一个领域专家(SME)参与其中以审查结果;然而,在 ChatGPT 的帮助下,许多活动可以更高效地完成。

注意

作为一项常见的最佳实践,建议在发布任何由 AI 工具(可能是 ChatGPT 或类似工具)开发(即使部分开发)的内容时,始终添加免责声明。这确保了与您产品(研究论文、文章、书籍等)的最终用户之间的透明度,并使他们处于更容易接受潜在偏见或幻觉的位置。

ChatGPT 还可以支持另一个活动,即设计研究人员想要执行的研究实验。我们将在下一节中探讨这一点。

奖励提示

当我们与 ChatGPT 互动,就可能的研究问题进行头脑风暴时,一种好的提示技术可能是问题细化提示。采用这种方法,LLM 将用户引导通过一系列迭代以最终确定一个问题。让我们看看一个例子:

迭代问题细化以进行研究头脑风暴

目标:通过与 ChatGPT 的迭代反馈和对话,共同细化有影响力的研究问题。

第一步:初步头脑风暴

提示:“我正在进行一个关于 [插入领域/主题] 领域的研究。我感兴趣的具体领域是 [插入具体领域或主题]。请生成 5 个初步研究问题,探讨该领域的关键挑战、趋势或知识差距。”

第二步:细化

跟进提示:“感谢你的问题!以下是我的反馈:

问题 [插入编号] 需要更多地关注 [插入关注领域]。

问题 [插入编号] 感觉太宽泛。你能将其缩小到关注 [特定方面] 吗?

问题 [插入编号] 很有吸引力,但可以通过解决 [特定受众、结果或数据] 来受益。

根据这个反馈,改进问题以更好地符合我的目标。”

第三步:最终润色

跟进提示:“我赞赏这些改进。现在:

将问题 [插入编号] 的元素合并成一个连贯的问题。

确保语言清晰简洁。

建议任何最终调整以使这些问题更具影响力。”

采用这种方法,我们正在“鼓励”模型逐步工作并逐步完善其输出。

另一种有趣的提示技术,这对于构建查询输出非常有用,是利用所谓的提示模式。由 Jules White 博士及其同事开发,提示模式是可重复使用的解决方案,旨在解决与 LLM 交互时遇到的常见挑战。它们的功能类似于软件设计模式,通过提供结构化方法在 LLM 交互中实现特定结果。这种方法在他们的论文《A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT》中有详细说明(原始目录可在arxiv.org/abs/2302.11382找到)。

例如,当从文档中提取相关信息(如本节所述)时,我们可能想要确保收集到具体元素,如研究问题或研究设计:

提示

我需要一个结构化的模板,以便高效地从研究论文中提取关键数据。该模板应包括以下部分:

论文详情(标题、作者、年份、期刊、DOI/URL)。

研究问题(或目标)。

研究设计(例如,实验性、观察性、荟萃分析)。

方法(样本大小、数据收集技术、使用的工具)。

关键发现或结果。

局限性和建议。

请将此模板格式化为表格或清单,以便研究人员在审阅论文时容易填写。

使用这样的模板模式,你可以确保从多个来源收集的数据保持一致性。

同样,当比较不同的研究论文或更一般地说,文档时,可以使用相同的技巧。在本节中,我们提供了一个示例,说明我们如何利用网络搜索工具检索论文信息并进行比较。然而,如果您想遵循更结构化和受控的方法,您可以上传您想要基准测试的两个或多个论文,并运行以下提示(来自怀特博士的目录。您可以在arxiv.org/abs/2302.11382找到原始目录):

提示

我已经审阅了几篇关于[插入主题,例如,“社交媒体对心理健康的影响”]的研究论文,并附上了。我需要将它们的发现综合成一个连贯的摘要,突出以下内容:

论文之间的共同主题或趋势。

  • 关键差异或冲突结果。

  • 在文献中确定的差距或局限性。

  • 对未来研究或实际应用的启示。

请按以下结构组织综合:

引言:对主题和已审阅论文范围的简要概述。

共同主题:识别和总结共享的发现或重复出现的模式。

对比结果:强调论文之间任何主要的不同或矛盾。

差距和机遇:讨论需要进一步研究的地方。

结论:提供总体总结和未来研究的潜在方向。

通过应用这些提示模式,用户可以系统地设计提示,引导 LLMs 产生更可靠和上下文相关的输出,从而提高人机协作的效率和效果。

为您实验的设计和框架提供支持

实验设计是规划并执行科学实验或研究以回答研究问题的过程。它包括对研究设计、要测量的变量、样本大小以及收集和分析数据的程序做出决策。

ChatGPT 可以通过建议您研究框架,如随机对照试验、准实验设计或相关研究,并在实施该设计时支持您,来帮助您进行实验设计。

让我们考虑以下场景。我们想调查新教育项目对学生数学学习成果的影响。这个新项目包括基于项目的学习PBL),这意味着学生被要求在真实世界的项目中协作工作,使用数学概念和技能来解决问题和创造解决方案。

为了这个目的,我们定义了我们的研究问题如下:

新的 PBL 项目与传统教学方法相比,在提高学生表现方面有何不同?

这是 ChatGPT 如何帮助的:

  • 确定研究设计:ChatGPT 可以帮助确定适合研究问题的适当研究设计,例如随机对照试验、准实验设计或相关研究。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_06.png

图 7.6:ChatGPT 建议适合您实验的适当研究设计

ChatGPT 建议进行随机对照试验(RCT),并清楚地解释了这样做的原因。

定义

RCT 是一种科学研究设计,通过随机分配参与者到两个或多个组来衡量干预措施的有效性:

  • 实验组:接受正在测试的干预或治疗

  • 对照组:接受安慰剂、标准治疗或无干预

通过随机分配参与者,RCT 最小化了偏差,并确保结果差异是由于干预本身而不是外部因素造成的。它们被认为是临床和社会科学研究在建立干预措施与其效果之间因果关系时的黄金标准。

我认为继续这种方法是合理的:下一步将是确定实验中要考虑的成果指标和变量。

  • 识别成果指标:ChatGPT 可以帮助您识别一些潜在的成果指标,以确定测试结果。让我们为我们的研究请求一些建议:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_07.png

图 7.7:给定研究的学习成果

选择考试成绩作为成果指标是合理的。

  • 识别变量:ChatGPT 可以帮助研究人员识别研究中的自变量和因变量:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_08.png

图 7.8:ChatGPT 为给定研究生成变量

注意,ChatGPT 还能够生成我们考虑的研究设计(RCT)中特有的变量类型,称为控制变量。

控制变量,也称为协变量,是在研究研究中保持恒定或控制的变量,目的是隔离自变量(们)和因变量之间的关系。这些变量不是研究的重点,但包括在内是为了最小化混杂变量对结果的影响。通过控制这些变量,研究人员可以降低获得假阳性或假阴性结果的风险,并提高其研究的内部可靠性、有效性、透明度和可重复性。

在前面的变量基础上,我们已准备好设置实验。现在我们需要选择参与者,ChatGPT 可以协助我们完成这一步。

  • 抽样策略:ChatGPT 可以建议潜在的研究抽样策略:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_09.png

图 7.9:ChatGPT 提出的 RCT 抽样策略建议

注意,始终要求 AI 工具生成更多带有解释的选项是一个好习惯,这样你可以做出有理的决策。对于这个例子,让我们继续按照 ChatGPT 给出的建议进行,这些建议还包括关于目标人群和样本大小的建议。

  • 数据分析:ChatGPT 可以帮助研究人员确定分析从研究中收集的数据的适当统计测试,例如 ANCOVA、t 检验或回归分析。

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_10.png

图 7.10:ChatGPT 为给定研究建议一个统计测试

ChatGPT 提出的所有建议都是连贯的,并在关于如何进行统计测试的论文中得到证实。它还能够识别我们可能是在讨论一个连续变量(即分数),因此我们知道所有前面的信息都是基于这个假设。如果我们想要有离散的分数,我们可能需要通过添加这些信息来调整提示,然后 ChatGPT 将建议不同的方法。

ChatGPT 明确指定假设并解释其推理是做出基于其输入的安全决策的关键。

总之,ChatGPT 在设计实验时可以成为研究人员的一个宝贵工具。通过利用其自然语言处理NLP)能力和庞大的知识库,ChatGPT 可以帮助研究人员选择适当的研究设计,确定抽样技术,识别变量和学习成果,甚至建议用于分析数据的统计测试。

在下一节中,我们将继续探讨 ChatGPT 如何支持研究人员,重点关注参考文献生成。

奖励提示

当你设计研究实验时,怀特博士的提示目录也非常有用。例如,让我们考虑一下食谱模式(来源:arxiv.org/pdf/2302.11382):

提示

对 AI 的说明:请提供一个逐步计划,用于为这个研究目标设计一个稳健的实验。确保响应包括以下组件:

参与者:如何选择和分配参与者。

预测试:测量参与者基线表现的步骤。

干预:概述 PBL 项目实施和控制组治疗方法。

后测试:评估干预后成果的方法。

数据分析:指定比较结果和确保有效性的统计方法。

输出格式:

  • 清晰简洁地呈现每个步骤。

  • 为每个步骤提供理由,以证明其包含的合理性。

  • 总结为什么这种研究设计适合回答研究问题。

当用户对他们的目标有一般了解,并且对一些必要的步骤有所了解,但需要帮助将这些步骤组织成一个连贯且完整的序列时,这种模式确实特别有益。

另一个你可能想尝试用于实验设计的修订版提示如下:

提示

背景:您正在设计一个随机对照试验(RCT),以比较基于项目学习(PBL)项目与传统教学方法在提高学生表现方面的有效性。该研究需要定义具体的成果指标来评估项目的成功。

指导:生成一个详细的结果指标列表,这些指标是具体、可衡量且与评估学生表现相关的。包括学术、认知和行为领域的指标。

局限性:

  • 避免使用过于笼统的指标(例如,“学生进步”)。

  • 确保指标在 RCT 的背景下是现实和可行的。

  • 专注于可以全面评估两种教学方法指标的指标。

输出:提供至少 5-7 个结果指标的有序列表,每个指标都简要说明其如何有助于评估 PBL 项目的有效性。

在这个案例中,我们使用了清晰的分隔符和结构化的输出模式,以确保 ChatGPT 遵循科学的方法。此外,我们还纳入了限制条件,这是一种有效且明确地减少幻觉的方法。

生成和格式化参考文献

ChatGPT 可以通过提供自动化的引用和参考文献工具来支持研究人员在文献生成方面的需求。这些工具能够为包括书籍、文章、网站等多种来源生成准确的引用和参考文献。ChatGPT 了解多种引用风格,如 APA、MLA、芝加哥和哈佛风格,使得研究人员可以根据自己的工作选择合适的风格。此外,ChatGPT 还可以根据研究人员的输入建议相关来源,帮助简化研究过程并确保所有必要的来源都包含在参考文献中。通过使用这些工具,研究人员可以节省时间并确保他们的参考文献准确且全面。

让我们考虑以下例子。假设我们完成了一篇题为技术对工作场所生产力的影响:一项实证研究的研究论文。在研究和写作过程中,我们收集了以下需要包含在参考文献中的论文、网站、视频和其他来源的引用(按顺序,三篇研究论文、一个 YouTube 视频和一个网站):

显然,我们不能在我们的研究论文中包含上述列表;我们需要对其进行适当的格式化。为此,我们可以向 ChatGPT 提供参考文献的原始列表,并要求它以特定的格式重新生成它——例如,芝加哥风格,这是教育、心理学和社会科学中常用的参考文献格式风格。

让我们看看 ChatGPT 是如何工作的:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_11.png

图 7.11:ChatGPT 生成的芝加哥格式参考文献列表

注意,我明确指出不要添加细节,以防 ChatGPT 不知道。事实上,我注意到有时 ChatGPT 会添加出版月份和日期,造成一些错误。

ChatGPT 还可以提供的另一种有趣的帮助是建议我们可能想要引用的潜在参考文献。我们已经在本章中看到 ChatGPT 在写作过程之前能够构思相关文献;然而,一旦论文完成,我们可能已经忘记了引用相关文献,甚至没有意识到我们引用了别人的作品。

ChatGPT 可以成为我们可能遗漏的可能参考文献的绝佳助手。让我们再次考虑我们的论文,该论文聚焦于研究问题“社交媒体的使用频率和类型如何影响青少年的焦虑和抑郁水平。”让我们假设我们设定了以下标题,它具有以下摘要:

标题:

社交媒体使用对青少年心理健康的影响:探讨社交媒体使用频率、内容类型与焦虑和抑郁水平之间的关系

摘要:

社交媒体已经成为青少年生活的一个组成部分,但其对心理健康的影响仍然是一个有争议的话题。本研究调查了社交媒体使用频率和类型与青少年焦虑和抑郁水平之间的关系。采用混合方法,我们分析了 13 至 18 岁青少年的调查数据,以评估他们的社交媒体习惯、内容偏好和自我报告的心理健康症状。研究发现,过度使用社交媒体,尤其是与负面情绪或高度编辑的内容互动,与更高的焦虑和抑郁水平相关。相反,积极的互动和支持性的在线社区可能减轻这些影响。该研究强调了理解社交媒体心理影响的必要性,并建议干预措施以促进青少年更健康的数字习惯。

让我们请 ChatGPT 列出所有可能与这类研究相关的可能参考文献:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_12.png

图 7.12:与提供的摘要相关的参考文献列表

您也可以用这种方法重复处理论文的其他部分,以确保您没有遗漏任何需要包含在参考文献中的相关引用。

一旦你的研究准备就绪,你可能需要用电梯演讲稿来展示它。在下一节中,我们将看到 ChatGPT 如何也支持这项任务。

生成研究展示

研究研究的最后一公里往往是向各种受众展示。这可能包括准备幻灯片、提案或网络研讨会,研究人员需要面对不同类型的受众。

例如,假设我们的研究现在题为社交媒体使用对青少年心理健康的影响:探讨频率、内容类型与焦虑和抑郁水平之间的关系,是针对硕士学位论文讨论的。在这种情况下,我们可以要求 ChatGPT 生成一个持续 15 分钟并遵循科学方法的提案结构。让我们看看会产生什么样的结果(作为背景,我指的是之前给出的摘要):

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_13.png

图 7.13:ChatGPT 生成的论文讨论

那真是太令人印象深刻了!在我大学时代,有一个这样的工具来帮助我在讨论设计中会很有用。

从这个结构出发,我们也可以要求 ChatGPT 生成一个幻灯片作为论文讨论的视觉辅助。

让我们继续这个请求:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_14.png

图 7.14:基于讨论提案的幻灯片结构

然后,你还可以要求 ChatGPT 生成一个可下载的资产作为幻灯片:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_15.png

图 7.15:生成可下载的幻灯片

在后端发生的情况是 ChatGPT 生成 Python 代码来创建你的幻灯片:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_16.png

图 7.16:ChatGPT 在后台运行 Python 代码

如果你点击提供的链接,你将能够下载生成的幻灯片:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_17.png

图 7.17:生成的幻灯片

如你所见,大纲已经根据我们的要求保留。

最后,让我们设想一下,如果我们的论文讨论非常出色,以至于可能被选中获得研究资金以继续研究该主题,那么我们现在需要一份电梯演讲稿来说服资助委员会。让我们向 ChatGPT 寻求一些支持:

https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_07_18.png

图 7.18:给定论文的电梯演讲稿

我们总是可以调整结果,使它们更符合我们的需求;然而,拥有现成的结构和框架可以节省大量时间,并允许我们更多地关注我们想要带来的技术内容。

总体来说,ChatGPT 能够支持研究过程中的端到端旅程,从文献收集和综述到生成研究的最终提案,我们已经展示了它如何成为研究人员的优秀 AI 助手。

此外,请注意,在研究领域,最近还开发了一些与 ChatGPT 不同但同样由 GPT 模型驱动的工具。一个例子是 Humata.ai,这是一个 AI 驱动的工具,允许您上传文档并对它们执行多项操作,包括总结、即时问答以及基于上传文件生成新论文。

这表明了由 GPT 驱动的工具(包括 ChatGPT)正在为研究领域的多项创新铺平道路。

摘要

在本章中,我们探讨了将 ChatGPT 作为研究人员宝贵工具的使用。通过文献综述、实验设计、参考文献生成和格式化以及演示生成,ChatGPT 可以帮助研究人员加快那些低或零附加价值的活动,以便他们可以专注于相关活动。

注意,我们只关注了 ChatGPT 可以支持研究人员的一小部分活动。在研究领域的许多其他活动中,ChatGPT 的支持也可能带来益处,其中包括数据收集、研究参与者招募、研究网络、公众参与等。

将此工具融入其工作的研究人员可以从其多功能性和节省时间的特性中受益,最终导致更具影响力的研究成果。

然而,重要的是要记住,ChatGPT 只是一个工具,应该与专家知识和判断力结合使用。与任何研究项目一样,仔细考虑研究问题和研究设计对于确保结果的准确性和可靠性是必要的。

在下一章中,我们将开始看到一些多模态的例子,通过结合 ChatGPT 的视觉能力来进行图像理解和生成。

参考文献

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐