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

译者:飞龙

协议:CC BY-NC-SA 4.0

第八章:使用 ChatGPT 视觉化释放创造力

在本章中,我们专注于 ChatGPT 的视觉能力,从传统的 DALL-E 图像生成到模型中嵌入的更复杂的设计和格式化活动。

在过去的几个月里,ChatGPT 的视觉能力有了显著提升,因为我们现在正进入多模态时代。事实上,ChatGPT 现在不仅能从自然语言描述中生成图像,还能对多模态数据进行推理并解决复杂查询。这种多模态思维使 ChatGPT 更接近我们大脑处理周围现实的方式,而周围现实主要由视觉输入构成。

在本章中,我们将涵盖以下主题:

  • 使用 DALL-E 生成令人惊叹的插图

  • 利用 ChatGPT 作为设计师助手

  • 探索 GPT 商店中的高级插件

到本章结束时,你将能够通过在你的对话中结合视觉输入和输出,最大限度地发挥 ChatGPT 的作用。

什么是多模态?

第一章中,在介绍最新趋势和创新时,我们将多模态作为大型多模态模型(大型基础模型的一个子集)的典型特征引入,它包括处理和生成不同类型的数据,如文本、图像、音频和视频。

定义

大型语言模型LLMs)和大型多模态模型LMMs)都是生成式 AI 领域的一部分,并具有 Transformer 架构。

大型语言模型(LLMs)在大量的文本数据上进行训练,这使得它们能够理解和生成类似人类的文本。它们被应用于内容创作、语言翻译和客户服务代理等应用中。

另一方面,大型多模态模型(LMMs)在 LLMs 的基础上,通过处理和整合多种数据类型,包括文本、图像、音频和视频。这使得它们能够从文本描述中生成图像,用文本上下文分析视频,并创建结合各种数据形式的内容。

LMMs 的附加值在于,它们能够全面地推理异构的周围环境,处理情境的潜在语义,而不是对每种“现实资产”类型进行孤立的推理。我知道这可能听起来过于抽象,所以让我给你举一个例子。

想象一下,你正坐在一个房间里,你能意识到周围发生的每一件事。你听到声音,看到物体,阅读一本好书。所有这些感官都是不同类型的输入进入你的大脑。但你的大脑并没有将它们分开;它将所有这些信息一起处理,让你能够整体地理解你的环境。例如,你可能会将你在书中读到的东西——比如说,一幅美丽的风景——与你从房间窗户看到的景象联系起来。

现在,将 LMM 想象成这个房间里的人。它不仅仅能理解文字(比如阅读一本书),还能“看到”图片(图像)、“听到”声音(语音),并在它们之间建立关联。所有这些信息同时流入,模型将它们结合起来理解整个环境,就像你的大脑将一切融合在一起帮助你理解正在发生的事情。

因此,就像你可以坐在一个房间里并把它当作一个整体体验来感知一样,LMM 可以一次性处理不同类型的数据,无论是图片、文本还是音频剪辑。它不会将这些输入分开处理,而是理解所有结合在一起的全局背景。

在接下来的章节中,我们将探讨在视觉创造力背景下单模态和多模态模型。

使用 DALL-E 生成令人惊叹的插图

在前面的章节中,我们学习了当涉及到生成相关结果时,编写良好的提示是多么关键。这对于生成的文本和图像来说同样适用。因此,当我们利用像 DALL-E 3(基模型 DALL-E 的最新版本)这样的模型时,它接收自然语言指令作为输入并生成图像作为输出,编写一个精心设计的提示至关重要。

注意

在撰写本书时(2024 年 10 月),DALL-E 3 已集成到 ChatGPT 应用程序中。这意味着:

  • 在创建图像之前,你可以无缝地与 ChatGPT 交互,以便你可以想出更有创意的想法(我们将在下一节中看到这个场景)。

  • DALL-E 3 本身是建立在 ChatGPT 之上的,这意味着当用想法提示时,后者将在其后端自动生成一个更精细的提示,以在调用 DALL-E 3 时获得最佳结果。

为 DALL-E 3 设计提示是一个创造性的过程,涉及精心制作描述以产生视觉上令人惊叹且情境合适的图像。让我们探索一些设计提示的关键技术,从设定主题到调整技术细节,如长宽比。

定义主题和场景

主题是任何提示的核心。它是你希望 DALL-E 3 可视化的中心对象或概念。你对主题越具体和清晰,DALL-E 就越能准确地解释和创建图像。例如,与其只说“一只狗”,不如指定“一只在花园里玩耍的金毛猎犬。”添加元素,如场景,可以进一步细化图像,例如“在春天盛开的郁金香花园里玩耍。”

示例提示: “一只金毛猎犬在春天盛开的郁金香花园里玩耍。”

这告诉 DALL-E 不仅要知道主题是什么(小狗),还要知道它在哪里存在(花园)以及什么条件下(春天),为生成的图像提供更清晰的背景。

让我们在 ChatGPT 中嵌入的 DALL-E 3 中试试:

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

图 8.1:DALL-E 3 在 ChatGPT 中生成图像的示例

图片质量已经非常高;然而,我们可能希望更具体地说明最终产品应该是什么样子。

用色彩和光照设定氛围

一旦主题和场景确定,下一步就是通过控制色彩调色板光照条件来塑造图像的氛围和气氛。图像的基调可以根据场景是明亮生动还是昏暗平静而大幅改变。颜色可以唤起特定的情绪,而像柔和的日光、强烈的正午光线或情绪化的阴影这样的光照条件可以影响图像的整体感觉。

示例提示:“一只金毛猎犬在春天郁金香盛开的花园中玩耍,在柔和的晨光下,花朵为柔和色调。”

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

图 8.2:DALL-E 3 根据要求添加更多细节的示例

在这里,“柔和的晨光”营造出温暖宁静的氛围,而“柔和色调的花朵”则添加了特定的色彩调色板,增强了气氛。

介绍摄像机角度和材料

通过结合技术方面,如摄像机视角或使用的材料,可以将你的提示从简单转变为复杂。通过添加这些细节,你指导 DALL-E 以更有意或艺术的方式呈现图像。你可以指定拍摄类型——是特写、广角还是用于复杂细节的微距镜头。

此外,提及材料或纹理,如“画布”、“金属表面”或“木材”,为 DALL-E 提供了如何呈现特定细节的指示。

示例提示:“一只金毛猎犬在春天郁金香盛开的花园中玩耍,以特写角度拍摄,焦点柔和,突出花朵和毛发的纹理。”

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

图 8.3:DALL-E 3 根据要求添加更多细节的示例

这告诉 DALL-E 专注于特写细节,增强纹理并创造亲密的拍摄效果。

植入艺术影响

另一种提高提示工程的技术是借鉴既定的艺术风格或特定艺术家。通过引用特定艺术家艺术运动,你可以给图像注入独特的特征,如梵高的笔触或毕加索的抽象形状。或者,你可以指导 DALL-E 遵循更广泛的艺术运动,如印象派、超现实主义或写实主义,具体取决于你想要的风格。

示例提示:“一只金毛猎犬在春天郁金香盛开的花园中玩耍,以印象派风格绘制。场景中有柔和的斑驳阳光透过花朵,模糊而鲜艳的郁金香花瓣。”

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

图 8.4:DALL-E 3 根据要求进一步添加细节的示例

这将引导 DALL-E 模仿印象派风格,其重点在于光、色和形状的柔和融合,为图像创造梦幻般的质感。

设置文化和历史背景

在你的提示中添加文化历史背景可以加深意义并影响最终图像。无论你是在创作具有历史主题的作品,如“中世纪欧洲”,还是带有“科幻城市”的未来感,包括这些元素有助于 AI 模型理解时间段、建筑风格和场景风格。

示例提示: “一只金毛猎犬在 18 世纪欧洲的郁金香花园中玩耍,周围环绕着华丽的石制喷泉和巴洛克建筑。”

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

图 8.5:DALL-E 3 根据要求进一步添加细节的示例

这不仅确立了一个时间段,还提供了如巴洛克建筑这样的文化参考,为 DALL-E 提供了关于风格和细节的特定视觉提示。

选择媒介和形式

在提示工程中,另一个强大的技术是指定图像“创建”的媒介。这可以是摄影、绘画,甚至是雕塑。每种媒介都有自己的纹理、形式和视觉规则,DALL-E 可以模仿。同样,描述物体的形式形状可以进一步引导构图。

示例提示: “一只金毛猎犬在春天的郁金香花园中玩耍,以柔和的笔触和鲜明的色彩对比捕捉成数字绘画。”

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

图 8.6:DALL-E 3 根据要求进一步添加细节的示例

在这里,媒介的选择——数字绘画——为 DALL-E 提供了如何构建图像的指示,确保它反映了与数字艺术常见的纹理和技术。

添加风格、技术和画幅比例

最后,一个精心制作的提示的完成细节通常来自于包括关于风格技术画幅比例的细节。无论你希望图像看起来像油画,以逼真的细节呈现,还是匹配特定的图像格式,如宽屏或方形,这些选择最终确定了美学方向。

例如,你可以指示 DALL-E 遵循特定的摄影风格,如“黑白肖像摄影”,或请求具有电影画幅比例的图像,如“16:9”,以创建宽屏风景。

示例提示: “一只金毛猎犬在春天的郁金香花园中玩耍,以生动的色彩捕捉成数字绘画,宽屏 16:9 的画幅比例,类似于全景风光画。”

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

图 8.7:DALL-E 3 根据要求进一步添加细节的示例

这个最后的细节为 DALL-E 提供了如何构图和风格化图像的精确指令。

结合技术以实现最大影响

虽然上述每种技术都可以单独使用,但提示工程的实际力量在于将多个元素结合起来,以产生丰富、层次分明的描述。

综合示例提示:“一只金毛猎犬在春天郁金香盛开的花园中玩耍,以特写角度拍摄,焦点柔和。画面以印象派风格绘制,有柔和的阳光和柔和的彩色花朵。场景有松散的笔触,将小狗的毛发与精致的郁金香在梦幻般、温暖的氛围中融合在一起。画作以 16:9 的宽高比数字化呈现,以柔和、模糊的效果捕捉光与色的温柔游戏,让人联想到经典的印象派艺术。”

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

图 8.8:DALL-E 3 根据要求进一步添加细节的示例

通过结合主题、场景、氛围、艺术影响和技术细节,这个提示为 DALL-E 提供了详细的指令,这可能会产生一个高度准确、视觉上吸引人的图像。

DALL-E 3 的提示工程是一个需要平衡创造性和精确性的微妙过程。通过深思熟虑地结合诸如主题、场景、氛围、风格和技术参数等元素,您可以生成高度定制且视觉上引人入胜的图像。

然而,DALL-E 3 与 ChatGPT 的本地集成带来了更多的可能性。事实上,集成的真正价值在于这项服务提供的多模态能力,我们将在下一节中介绍这一点。

利用 ChatGPT 作为设计师助理

随着 GPT-4 Vision 和随后的 GPT-4o 的出现,我们在多模态领域见证了巨大的加速,因为这些模型能够处理图像和自然语言。然而,它们只能产生文本输出(当然包括代码)。随着 DALL-E 3 集成到 ChatGPT 体验中,我们现在有一个能够以图像和文本(以及为了完整性,还有音频)的形式与我们进行交互的 AI 系统。

让我们看看一些具体的应用。

时尚助理

假设我们身处时尚界,并被要求围绕最新趋势制作博客内容,以及提出新的时尚想法。我们最近参加了一个时尚活动并拍摄了一些照片作为可能的灵感来源。让我们看看 ChatGPT 如何帮助我们:

  1. 首先,让我们要求模型生成一篇关于提供的服装的简短博客文章:

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

图 8.9:ChatGPT 理解图像并基于它生成文章的示例

  1. 现在我们来提出一个更具体的问题,关于裙子的材质:

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

图 8.10:ChatGPT 分析图像中裙子材质的示例

  1. 现在我们希望我们的模型生成一幅插图,以油画风格再现这套装扮:

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

图 8.11:DALL-E 3 基于提供的图像生成插图的示例

  1. 要求一些调整:

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

图 8.12:DALL-E 3 根据要求细化图像的示例

  1. 现在让我们用一些配饰来扩展这套装扮:

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

图 8.13:DALL-E 3 为图像添加细节的示例

  1. 最后,让我们生成一套全新的装扮:

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

图 8.14:DALL-E 3 生成全新装扮的示例

在过去几个月里,该模型的图片质量和文本理解能力不断提高,你现在可以欣赏到 GPT-4o 和 DALL-E 3 在同一用户界面内的多模态协作。

注意,与之前章节中探讨的其他任务类似,上述示例可以是一个迭代过程,其中我们要求 ChatGPT 根据我们的要求进一步细化结果。

UX 设计师

第五章中,我们探讨了如何利用 ChatGPT 生成、优化和调试代码。当然,当涉及到我们想要构建的网站的用户体验UX)设计时,这可以与更高级的辅助工具相结合。例如,在生成代码之前,我们可能想要询问 ChatGPT 如何组织 UX,使用哪种调色板,组件的整体风格等等。

假设我们想要开发我们的作品集着陆页,并与 ChatGPT 进行头脑风暴会议:

  1. 我将首先要求 ChatGPT 为我技术作品集建议一些设计风格(截断输出):

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

图 8.15:ChatGPT 为我网站建议不同风格的示例

  1. 我们选择简约而时尚的设计。现在我想得到一些关于调色板的灵感(输出截断):

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

图 8.16:ChatGPT 为简约 UX 建议不同调色板的示例

  1. 我们选择选项 1,并让模型建议一些我应该嵌入我的作品集(截断输出)的进一步用户体验(UX)功能:

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

图 8.17:ChatGPT 建议在 UX 中包含的功能的示例

  1. 现在我非常想看到我网站的草案。正如我们所学的,我们可以要求模型生成构建它的代码;然而,在此之前,我们可能想要有一个视觉表示,以便我们可以对我们要达到的最终产品有一个概念。让我们看看嵌入的 DALL-E 3 模型是否能够做到这一点:

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

图 8.18:我们 UX 可能看起来如何的视觉草图示例

嗯,正如你可能已经注意到的,图像模型在生成文本方面仍然存在困难。然而,它仍然设法产生了一个符合我偏好的设计——一个简约、经典的色调,带有蓝色调,并提供了额外的 UX 功能。

在下一段中,我们将看到 ChatGPT UX 设计能力的更多示例,特别是当我们将它们纳入现有的网页设计平台(如 Wix 或 Canva)时。

样式迁移

我要展示的最后一个例子是如何将一个插图的风格迁移到另一个。如果你正在开发一套具有一致风格的插图,然后你非常欣赏你想要加入列表中的某个视觉元素,但这个视觉元素与之前一直应用于所有插图的风格不匹配,这可能很有用。然而,这个视觉元素并不符合你一直应用于所有插图的风格。如果是这种情况,你可以向 ChatGPT 提供一个你风格的示例以及你想要应用该风格的插图,并请求进行样式迁移。

让我们看看实际效果。想象一下,我们正在使用以下草图风格的插图:

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

图 8.19:草图风格插图示例

然后你发现了一个非常棒的插图,你希望将其包含在你的集合中:

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

图 8.20:你想要以不同风格展示的插图示例

让我们看看如果要求 ChatGPT 进行样式迁移会发生什么:

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

图 8.21:使用 DALL-E 3 的样式迁移示例

太棒了!正如你所见,新的插图完美地符合我正在应用于插图集中的草图风格。

样式迁移的酷之处在于,即使你没有参考图片,你仍然可以应用它。例如,假设你想要将表现主义风格应用于你的插图。

让我们要求 ChatGPT 将这种风格迁移到船的插图上,而不提供上述参考图像:

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

图 8.22:使用 DALL-E 3 的样式迁移示例

现在,所有这些视觉助手都可以作为独立的聊天机器人使用;然而,如果它们与我们在之前活动中通常使用的软件(如用于图像编辑的 Photoshop 或用于视觉设计的 Canva)集成,将会更加无缝。

另一种实现这种进一步整合的方法是利用插件,并从 GPT 商店构建自己的 GPT。我们将在下一章中介绍 GPT,所以不会深入探讨它们是什么以及如何从头开始创建自己的 GPT;然而,在下一节中,我将向你展示一些预先构建并公开可用的 GPT,它们正好提供这种与第三方服务的无缝集成,并可以提升你的视觉创造力。

探索 GPT 商店中的高级插件

2024 年 1 月,OpenAI 推出了 GPTs,这些可以被定义为 ChatGPT 的专用和定制版本。用户可以通过指定系统消息、一系列动作、语气和其他我们将要介绍的功能来创建自己的 GPT。一旦你创建了你的 GPT,你就可以通过 GPT 商店将其公开,这是一个对所有拥有 ChatGPT Plus 的用户开放的优质市场。

你可以通过chatgpt.com/gpts访问商店,并从那里浏览由消费者和公司开发的许多 GPT。在本节中,我们将介绍一些由在视觉设计领域工作的公司开发的有趣 GPT,这些公司通过插件(在 GPT 术语中,这些插件被称为“动作”)整合生成式 AI(我们将在下一章中介绍这个话题)。

Canva

Canva是一个于 2013 年在澳大利亚推出的图形设计平台。它的目标是使设计民主化,让每个人都能使用,无论他们的技能水平如何。Canva 提供了一系列工具和模板,用于创建从社交媒体图形和演示文稿到海报、促销物品,甚至网站的一切。

Canva 的一个关键特性是其直观的拖放界面,它使用户能够轻松地自定义他们的设计。无论你是在使用电脑还是移动设备,Canva 都通过其网页和移动应用提供无缝体验。此外,Canva 还包含强大的照片和视频编辑功能,使其成为满足所有设计需求的综合工具。

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

图 8.23:Canva 插件

让我们测试一下:

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

图 8.24:ChatGPT 利用 Canva 插件的示例

你还可以展开Talked to chatgpt-plugin.canva.com标签页来查看 API 调用的配置(正如我们将在下一章中看到的,GPT 动作本质上都是 REST API 调用)。

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

图 8.25:Canva 插件 API 调用的细节

Canva GPT 所做的是根据你的自然语言请求从 Canva 的模板中检索一些选项供你选择,并且还会添加一个标题使其与你的主题相关。一旦你确定了一个符合你需求的提案,你就可以点击它,并在 Canva 中直接进行编辑:

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

图 8.26:Canva 插件的输出示例

Canva GPT 是一个非常实用的工具,可以帮助你用自然语言起草你的视觉设计,并且它与 Canva 平台的无缝集成允许你在不同平台之间保持流畅,不会丢失想法。

Wix

Wix是一个领先的基于云的网站开发平台,它使用户能够轻松地创建令人惊叹的专业网站。成立于 2006 年,Wix 彻底改变了人们构建和管理在线存在的方式。凭借其直观的拖放界面,用户可以设计网站而无需任何编码技能。

Wix 提供了一系列可定制的模板和高级功能,包括电子商务功能、SEO 工具和集成营销解决方案。无论你是小企业主、艺术家、博主还是企业家,Wix 都提供了你需要的工具,让你的愿景变为现实,并有效地触及你的受众。

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

图 8.27:Wix 插件

利用 ChatGPT 背后的对话模型,Wix 允许客户与 ChatGPT 协同设计他们的网站,同时直接在 Wix 中创建后端。一旦对话和协同创作结束,用户可以直接跳转到最终网站,并在 Wix 中继续编辑它。

假设,例如,我们想要设计一个展示我们作品的组合:

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

图 8.28:Wix 插件的交互示例

自从这些最初的互动以来,我已经为与我的 GPT 进行协同设计会议做好了准备,在这个案例中,GPT 被定制得可以继续向我提出有用的问题,以构建最终产品。在提出的名字中,我认为我会选择 Coded Creations。

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

图 8.29:Wix 插件生成网站的示例

一旦它收集了一些更多信息,GPT 就在 Wix 上为我生成了网站,并提供了链接。在这种情况下,你还可以展开与 wix.com 交谈选项卡来查看通话的配置(正如我们将在下一章中看到的,GPT 操作本质上都是 REST API 调用)。

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

图 8.30:Wix 插件 API 调用的详细信息

让我们看看结果:

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

图 8.31:Wix 插件的最终输出示例

就这样!现在你可以继续进行这个设计,或者让嵌入在 Wix 中的 AI 进行一些轻微的修改后重新生成它。或者,你可以直接通过 ChatGPT 进行修改,如下所示:

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

图 8.32:Wix 插件根据用户请求调整 API 调用示例

如 API 调用参考所示,lookAndFeel字段已更改为我们所要求的。让我们看看结果:

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

图 8.33:Wix 插件调整输出的示例

就这样!仅仅通过几次交互,我们就创建和修改了我们的着陆页的第一稿。再次强调,你总是有进一步定制的可能性,但从一个非空白页面开始通常会更加高效。

Veed.io

Veed.io是一个创新的在线视频编辑平台,让所有技能水平的创作者都能制作出专业质量的视频。成立于 2017 年,总部位于英国伦敦,Veed.io 迅速在数字内容创作领域树立了声誉。该平台旨在通过一系列用户友好的工具和功能简化视频编辑过程。从自动字幕和文本转视频功能到屏幕录制和背景噪音消除,Veed.io 提供了将创意愿景变为现实所需的资源。Veed.io 专注于易用性和可访问性,正在改变视频的制作方式,使高质量的制作对每个人来说都变得可行。

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

图 8.34:Veed.io 插件

让我们测试一下:

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

图 8.35:Veed.io 插件请求进一步详情以进行 API 调用示例

如你所见,GPT 要求我提供更多详情以确保它能完成任务。一旦提供了所需的信息,GPT 就会继续生成最终的视频:

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

图 8.36:Veed.io 插件生成最终输出的示例

让我们检查 API 调用:

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

图 8.37:Veed.io 插件 API 调用详情

让我们看看结果:

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

图 8.38:Veed.io 插件输出的示例

一旦点击链接,你将被引导到新视频的编辑页面。旁白是我们向 GPT 指示的女性头像,你可以看到视频已经包含了多个不同的场景和视觉效果。

这些只是市场上众多视觉 GPT 中的三个例子。许多公司正在发布他们自己的 GPT,以允许与他们的平台无缝集成,它们值得探索!

摘要

利用 ChatGPT 作为视觉助手可以提高你的生产力,同时保持你的创造力。

通过掌握提示设计,你可以生成令人惊叹的、量身定制的插图,满足你的确切需求。无论你是在进行品牌建设、内容创作还是艺术项目,ChatGPT 都充当一个可靠的设计助手,简化复杂任务同时实现高质量的输出。

此外,探索 GPT 商店中的高级插件可以提升体验,提供更广泛创造可能性的专业工具。实际上,ChatGPT 设计和其视觉能力(以及其一般能力)的真实价值在于我们能够将它们整合到我们自己的工具和流程中,解锁无缝的生产力流程。正如本章所展示的,这可以通过 GPT 的行为实现,更广泛地说,通过 GPT——这是我们将在下一章更详细讨论的主题。

参考文献

第九章:探索 GPT

在前几章中,我们看到了如何利用 ChatGPT 进行各种活动的几个例子,从个人生产力到市场营销,从研究到软件开发。对于这些场景中的每一个,我们总是面临一个类似的情况:我们从一个通用工具 ChatGPT 开始,然后通过特定领域的问题和额外的上下文来定制它。

然而,如果我们旨在获得针对我们自己的极端专业化的模型,有时这可能还不够。这就是为什么我们可能需要构建一个特定目的的 ChatGPT。幸运的是,OpenAI 本身已经开发了一个无代码平台来构建这些定制助手,这些助手被称为 GPT。

在本章中,我们将探讨 GPT 的特点、能力和实际应用,涵盖我们在前几章中看到的相同用例,以便您可以看到输出质量的不同。此外,我们还将了解如何发布您的 GPT 并将其集成到外部系统中,使其不仅对您自己,也对他人成为生产应用。

到本章结束时,您将能够:

  • 了解 GPT 是什么以及它能完成哪些任务

  • 不用写一行代码就构建您自己的 GPT

  • 发布您的 GPT 并将其与外部系统集成

让我们从一些基本定义开始,然后进入实践。

技术要求

要在 ChatGPT 中访问和使用 GPT,需要 ChatGPT Plus 订阅。在撰写本书时,这个订阅的价格为每月 20 美元。

GPT 是什么?

2023 年 11 月,OpenAI 推出了 GPT,这是 ChatGPT 的专用版本,旨在提高生产力和满足特定任务和需求。与通用 ChatGPT 不同,这些定制版本允许用户在没有编码知识的情况下创建定制的 AI 模型。

注意

在本章中,有一个重要的考虑因素将贯穿始终。当我们提到 GPT 这个词时,您将在本书中找到两个主要定义。

第一个指的是 OpenAI 语言模型背后的正确生成式预训练 TransformerGPT)模型架构。我们在第一部分提到了这个架构,并且我们知道这是 ChatGPT 本身的框架。

第二个更通用地指的是 OpenAI 允许用户通过无代码方法创建的专用助手。在 GPT 的语境中,一个 GPT 指的是您利用该平台(对所有拥有 ChatGPT Plus 的用户开放)创建的一个助手。

在本章中,无论何时您读到 GPT 或 GPTs,请记住我们使用的是第二个定义。

GPT 的想法类似于 AI 代理。实际上,通过 GPT,我们正在构建由 LLM 驱动的实体,具有特定的指令,并提供一个自定义的知识库以及一套工具或插件来与周围环境交互。

让我们更详细地看看这些组件。首先,你可以全面查看所有已公开发布的 GPT。为此,你可以通过以下页面进行导航:chatgpt.com/gpts。

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

图 9.1:GPT 的着陆页面

如前图所示,这是一个所有现有 GPT 的市场。你可以通过类别(框 1)或通过在搜索栏中说明你正在寻找的内容(框 2)来探索它。

然后,要创建你自己的 GPT,你可以通过chatgpt.com/gpts/edit页面进行导航,并使用你的 OpenAI 账户登录。或者,你可以进入 ChatGPT,点击页面左上角的探索 GPTs,然后点击创建(如图中 3 号框所示)。

一旦进入编辑器,你将需要配置你的 GPT,而在右侧,你可以实时测试它。

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

图 9.2:从头开始创建你的 GPT 的编辑页面

让我们探索所有这些组件:

  • 名称:你想要给你的 GPT 取的名字。

  • 描述:描述你的 GPT 的功能。这一点非常重要,尤其是如果你打算在市场上发布你的 GPT,以便其他用户可以轻松找到它(如我们之前提到的,GPT 可以通过搜索 GPTs 栏中的自然语言进行搜索。此外,这个描述也将帮助其他用户了解 GPT 的用途。

  • 指令:这是你的 GPT 的系统消息,即一组针对你特定需求的自然语言指令,最终用户看不到。

  • 对话启动词:这是一组用户可以开始与 GPT 交互并对其使用建立信心的示例提示。

  • 知识:这指的是我们可以将模型基于的定制文档。当我们在这里上传文档时,我们的 GPT 将能够通过检索增强生成模式在这些文档中导航,这样我们就可以提供额外的知识,甚至根据我们的需求限制我们的助手对定制知识库的响应。

  • 功能:这些指的是我们可以提供给 GPT 的一组内置插件,而无需编写任何代码。你可以从上面的图片中看到,有三种插件是默认提供的:

    • 网络浏览用于搜索网络并检索最新信息

    • DALL-E 3 图像生成用于生成插图

    • 代码解释器与数据分析用于在沙盒化的 Python 环境中执行代码并与分析文件(如电子表格)交互

  • 动作:动作也可以被视为插件;然而,由于它们不是内置的,而是由 GPT 开发者指定的,因此它们在功能上有所不同。例如,你可能生成一个如下所示的动作:

    注意

    在动作的上下文中,你可以通过点击添加动作然后从 ActionsGPT 获取帮助来从集成到配置面板中的专用 GPT 获得支持。

![img/B31559_09_03.png]

图 9.3:如何从 ActionsGPT 获取支持的示例

通过这样做,你将看到 ActionsGPT 界面:

![img/B31559_09_04.png]

图 9.4:ActionsGPT 的着陆页

看到我们正在见证一个“GPT 中的 GPT”,你不觉得这很神奇吗?

除了标准配置页面外,还有一个选项以更“对话式”的方式构建你的 GPT。实际上,你可以切换到创建标签页,并用自然语言解释你希望通过你的 GPT 实现什么:

![img/B31559_09_05.png]

图 9.5:从自然语言对话开始创建 GPT

我们将在本章的实践部分看到这两种方法——标准配置和对话式配置。

既然我们已经知道了 GPT 是什么,让我们看看如何创建一个。在接下来的几节中,我们将创建五个不同的 GPT:

  • 前四个将专注于我们已经用通用 ChatGPT 涵盖的四个领域——个人生产力、代码开发、营销和研究。我们的想法是比较特定领域 GPT 与通用 ChatGPT 的整体效率和准确性。

  • 第五个将涵盖一个新的领域,与艺术创造力相关。我们将利用内置的 DALL-E 插件以及其他由设计公司(如 Canvas)开发的插件。

让我们从使用专用 GPT 提高我们的个人生产力开始。

个人助手

在这种情况下,我们将构建一个 GPT 来提高我们的健身房锻炼。为此,我们将利用内置插件。此外,我们还将添加一些相关文档,以便助手基于特定的知识库。

我的目的是拥有一个可以根据我的健身目标、可用性、性别、年龄、偏好等构建锻炼计划的助手。我还希望我的助手对我的建议背后的原因提供清晰的解释。

为了完成所有这些,我想确保我的助手将:

  • 问我它需要设计最适合我的最佳锻炼计划的具体问题

  • 提供与我响应相关的相关信息和来源

  • 考虑我的反馈,但能够保持立场,如果它认为这是正确的

  • 如果它们不合理或对我的健康有风险,不要满足我的请求

让我们看看如何创建这个 GPT,按照前一小节中提到的所有配置步骤进行:

  1. 名称:我将我的助手命名为 WorkoutGPT。

  2. 描述:这是我设置的描述:“帮助用户根据他们的需求设计锻炼计划的锻炼助手。”

  3. 说明:在这里,我们来到了我们 GPT 的真正核心。这是我提供给 GPT 的指令集:

    “你是一个工作 AI 助手,根据用户的需求帮助他们创建训练计划。”

在生成计划之前,确保询问以下问题:

  • 健身目标和时间预期

  • 年龄和性别

  • 身体素质

  • 工作时间

  • 所有其他你需要来定义一个合适的训练计划(例如,设备,潜在伤害……)

如有必要,使用提供的文件来丰富你的回答。

如果用户向你建议一些对他们目标来说不切实际的事情,坚持你的假设,并礼貌地解释背后的原因。

如果用户问你一些可能对他们的健康有风险的问题,礼貌地建议他们采取更简单和替代的方法,并解释背后的原因。”

  1. 对话开场白:在这里,我设置了三个不同训练的示例:

    • 我想在 6 个月内为马拉松训练。

    • 无需任何设备生成 30 分钟的高强度间歇训练(HIIT)计划。

    • 仅使用哑铃生成 45 分钟的力量训练计划。

  2. 知识:在这里,我上传了标准的国家力量与条件协会NSCA)训练负荷图表,这是一个帮助运动员和教练确定不同练习和训练课的适当训练负荷的工具。它看起来如下:

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

图 9.6:NSCA 训练负荷图表。来源:https://www.nsca.com/contentassets/61d813865e264c6e852cadfe247eae52/nsca_training_load_chart.pdf

我差点忘记一个关键步骤——添加插图!这可能看起来很肤浅,但为你的 GPT 添加一个图标会使它更具吸引力,尤其是如果你打算将其发布给所有用户。幸运的是,我们直接在配置面板中集成了 DALL-E:

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

图 9.7:如何设置你的 GPT 图标的示例

这就是配置看起来像的样子:

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

图 9.8:WorkoutGPT 配置页面

太好了!现在让我们看看一些示例对话。

首先,让我们选择关于马拉松训练的第一个对话开场白:

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

图 9.9:WorkoutGPT 询问的问题示例,以评估用户的整体目标和健身水平

如你所见,我们的 WorkoutGPT 立即要求我们提供继续计划所需的信息。一旦提供了上述信息,我的助手生成了以下 24 周的计划(我在这里只分享了前四周):

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

图 9.10:由 WorkoutGPT 生成的马拉松训练工作表示例

此外,它还具体说明了周五的力量训练如下:

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

图 9.11:WorkoutGPT 生成的力量训练示例

让我们专注于力量训练。我想更好地了解如何校准权重。以下图显示了响应的第一部分:

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

图 9.12:WorkoutGPT 解释如何在力量训练中确定要举起的重量

在同一响应中,助手还引用了作为知识库提供的 NCSA 训练负荷图表:

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

图 9.13:WorkoutGPT 从自定义知识库中检索 NSCA 训练负荷图表信息的示例

现在,我想挑战我的 WorkoutGPT,询问一些可能对我有害的事情。例如,一个月内没有任何经验就准备马拉松绝对是一个糟糕的想法。让我们看看一旦我向它提供了一系列起始问题的答案,我的助手对此有何看法:

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

图 9.14:WorkoutGPT 在考虑到请求相关的风险时,温和地引导用户调整目标和期望的示例

如您所见,我的 WorkoutGPT 正在引导我改变对比赛的方法。虽然它仍然为我提供了为期 3 周的跑步训练计划(这里,输出被截断),但它并不专注于准备我在 3 小时 15 分钟内完成马拉松,而是专注于建立耐力和力量。

注意,如果我们向通用 ChatGPT 提出相同的问题,它将如下回应:

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

图 9.15:ChatGPT 尽管表达了自己的担忧,但仍然满足了用户请求的示例

注意 ChatGPT 尽管在表达担忧方面直言不讳,但仍然满足了我的请求,为我提供了一个完成全程马拉松的计划。这可能会鼓励我——一个认为跑马拉松是玩笑的鲁莽新手——投身于这个愚蠢的冒险,这对我的健康有严重的后果。

总体而言,GPTs 允许你非常具体地定义你的助手应该如何表现,以及他们应该避免说什么或做什么。

代码助手

在本节中,我想开发一个针对数据科学项目的助手。更具体地说,我希望我的助手能够:

  • 根据用户的任务提供如何设置数据科学实验的明确指导。

  • 生成运行实验所需的 Python 代码。

  • 利用代码解释器的功能运行和检查代码。

  • 将最终代码推送到 GitHub 仓库。

    注意

    当涉及到代码生成时,定制 GPT 相对于通用 ChatGPT 可以提供显著的优势。通过结合特定领域的知识和定制说明,定制 GPT 可以生成更准确、更高效且符合特定要求的代码。这种定制允许模型理解和遵守与特定项目相关的编码标准、框架或库,从而降低错误发生的可能性以及需要大量修订的需求。此外,得益于动作,GPT 实际上可以执行在开发生命周期中自动化的活动,从而加快产品的上市时间。

让我们一步步看看如何做:

  1. 设置说明:

这个 GPT 是一个数据科学助手,它帮助用户设置和运行数据科学实验。它提供了如何定义和组织任务的明确指导,并生成实验所需的 Python 代码,并利用代码解释器的功能来运行和检查代码。GPT 将接受用户的输入,并逐步提供结构化实验、创建必要的脚本和执行代码的说明。

GPT 将执行代码以查看其是否工作。一旦用户接受最终代码,它可以作为**.ipynb**文件推送到 GitHub 仓库。

  1. 设置(可选)对话启动器:

    • 我该如何设置分类实验?

    • 为随机森林模型生成 Python 代码。

    • 你能帮我预处理这个数据集吗?

    • 运行此代码并检查错误。

  2. 启用代码解释器和数据分析插件:

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

图 9.16:启用代码解释器和数据分析插件

  1. 创建与 GitHub 通信的动作:为此,我们需要点击创建新动作并定义所需的架构。

    注意

    要使用 OpenAPI 3.1.0 规范设置 ChatGPT 动作的架构,您定义动作将处理的数据(请求和响应)的结构。这涉及到在 API 路径中指定内容下的架构属性。架构概述了请求和响应体的预期数据类型、必填字段和可能的值。

定义架构的步骤如下:

  1. 识别数据结构:确定操作将处理的数据类型(例如,JSON 对象或数组)。

  2. 定义属性:在架构下指定属性、它们的类型以及任何约束。例如,如果操作需要用户名和电子邮件,您将在属性下定义这些。

  3. 设置必填字段:使用必填数组来指定哪些字段必须提供。

  4. 应用到路径:将架构放置在路径中适当的 HTTP 方法下(例如,POST 或 GET)。

让我们考虑以下示例:

openapi: 3.1.0
info:
  title: ChatGPT Action API
  version: 1.0.0
paths:
  /perform-action:
    post:
      operationId: performAction
      summary: Perform a specific action with given inputs.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                action:
                  type: string
                  description: The action to perform
                parameters:
                  type: object
                  description: Parameters for the action
                  properties:
                    userId:
                      type: string
                    content:
                      type: string
              required:
                - action
                - parameters
      responses:
        '200':
          description: Successful action response
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string 

在这个例子中,POST 方法的requestBody定义了一个包含操作和参数的架构,这些参数作为必填字段。响应也被定义,指定了执行操作后返回的数据结构。

这是架构看起来像什么:

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

图 9.17:GitHub 动作架构的配置

这是我在此使用的完整架构:

openapi: 3.1.0
info:
  title: GitHub API
  description: API for interacting with GitHub, including pushing code to a repository.
  version: 1.0.0
servers:
  - url: https://api.github.com
    description: GitHub API server
paths:
  /repos/{owner}/{repository}/contents/{path}:
    put:
      operationId: updateFileContents
      summary: Create or update a file in a GitHub repository
      description: Use this endpoint to create a new file or update an existing file in a repository.
      parameters:
        - name: owner
          in: path
          required: true
          description: The owner of the repository.
          schema:
            type: string
        - name: repo
          in: path
          required: true
          description: The name of the repository.
          schema:
            type: string
        - name: path
          in: path
          required: true
          description: The file path in the repository.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                message:
                  type: string
                  description: Commit message for the file change.
                content:
                  type: string
                  description: The new file content, Base64 encoded.
                sha:
                  type: string
                  description: SHA of the file being replaced, if updating.
                branch:
                  type: string
                  description: The branch where the file should be created or updated.
                committer:
                  type: object
                  properties:
                    name:
                      type: string
                    email:
                      type: string
              required:
                - message
                - content
      responses:
        '200':
          description: Successful file update or creation.
        '201':
          description: Successful file creation.
        '422':
          description: Validation failed or the file already exists.
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: token
  schemas:  # This subsection contains schema definitions (if needed).
    ExampleSchema:  # Example object schema
      type: object
      properties:
        exampleProperty:
          type: string 

为了允许动作与我的代码库通信,我在 GitHub 个人资料下的设置>开发者设置>个人访问令牌中创建了一个访问令牌。

你可以按照以下步骤测试连接:

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

图 9.18:测试动作的示例

现在我们来浏览一下代码库,看看它是否工作正常:

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

图 9.19:通过 GPT 动作上传文件的示例

太好了!正如你所看到的,我们现在有一个包含预定义内容的新文件。

现在我们来创建它并测试它:

  • 让我们从如何设置一个分类实验的简单问题开始(输出被截断):

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

图 9.20:DataScience 助手提供如何解决分类问题的指导示例

  • 按照这些说明,我们现在已经准备好设置我们的实验。我们想要解决众所周知的泰坦尼克号乘客生存预测问题。我们将上传我们的数据集(你可以在网上找到许多免费版本;我的是从github.com/datasciencedojo/datasets/blob/master/titanic下载的.csv 文件)并利用逻辑回归模型。

    注意

    泰坦尼克号生存预测任务是数据科学和机器学习中的一个经典问题。目标是根据年龄、性别、乘客等级、票价等特征预测泰坦尼克号上的乘客是否会生存,这是一个典型的用于教授分类技术的任务,模型在标记数据集上训练,然后用于预测新数据的结果。挑战在于选择相关特征、处理缺失数据以及选择合适的机器学习算法以实现准确的预测。

这是我的查询:

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

图 9.21:DataScience 助手设计泰坦尼克号生存实验的示例

我现在将分享一些模型对每个步骤的响应的屏幕截图:

  1. 加载数据

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

图 9.22:DataScience 助手执行实验步骤 1 的示例

  1. 探索和清理数据

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

图 9.23:DataScience 助手探索和清理数据的示例

注意,当你看到符号[>_]时,这意味着 Code Interpreter 插件已被触发。你可以点击它来查看执行的代码:

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

图 9.24:数据科学助理利用代码解释器插件生成的代码示例

  1. 特征工程

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

图 9.25:数据科学助理进行特征工程示例

  1. 数据拆分

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

图 9.26:数据科学助理将数据集拆分为训练集和测试集的示例

  1. 训练逻辑回归模型

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

图 9.27:数据科学助理训练逻辑回归模型的示例

  1. 评估模型

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

图 9.28:数据科学助理评估模型输出的示例

这非常酷!它非常准确,可以节省大量时间。此外,如果你考虑在大企业中工作的数据科学家在多个项目中,拥有类似的助手也有助于在项目之间遵循固定标准,以确保维护在团队之间保持一致。

当然,保持主题专家在流程中(在这种情况下,是数据科学家)是至关重要的,因为我们不仅需要验证输出,还需要验证推理过程。

我们将要求我们的 GPT 将代码推送到我们的仓库。让我们看看它是如何工作的:

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

图 9.29:数据科学助理利用操作在 GitHub 上推送代码示例

如果我们点击链接,我们可以看到文件已成功上传:

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

图 9.30:通过数据科学助理操作上传的文件

这成功了!再次,这是一个例子,说明了 GPT 如何加快开发人员和数据科学家的生产力。按照通用框架设计数据科学实验,并启用无需切换到 GitHub 的推送工作流程可以节省宝贵的时间,这样数据科学家就可以专注于他们项目的核心方面。

营销助理

正如我们在第六章中看到的,AI 助理在这个领域非常有价值。事实上,生成文本内容——如社交媒体帖子、博客文章或营销活动——可能是这些模型表现最好的活动之一。

定义

撰稿人是专门从事撰写具有说服力和吸引力的内容的职业人士,通常用于营销和广告目的。他们的工作通常包括撰写促销材料,如广告、手册、网站、电子邮件、社交媒体帖子以及其他旨在说服受众采取特定行动(如购买或订阅服务)的内容形式。

在本节中,我们将创建一个针对此类活动的定制文案助手。为此,我给我的助手命名为 Copywriting Companion,并设置了以下配置组件:

  1. 指令:

Copywriting Companion 是一款多功能的助手,旨在帮助用户完成各种写作任务。它专门根据用户输入生成产品说明书,包括文本和图像,制作用于通讯或推广目的的电子邮件活动,为新产品创建吸引人的视觉内容,以及为不同平台撰写定制的社会媒体帖子。

在执行任务时,它确保逐步验证您的思维过程和推理。

它确保内容具有说服力、吸引人,并与目标受众保持一致,旨在有效提高参与度并推广产品或服务。助手会根据用户的需求调整其风格,并在所有输出中追求创意、清晰和相关性。它以轻松、友好的语气进行沟通,使互动感觉起来易于接近和轻松。

  1. 话题开启:

你能为我新产品写一个产品描述吗?

我需要一个关于攀岩文章的吸引人的标题

给我一些关于跑步博客文章的想法

  1. 功能:

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

图 9.31:Copywriting Companion 启用的插件

让我们看看它的实际效果:

  1. 我首先要求它从提供的图片开始写一个产品说明书(输出被截断):

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

图 9.32:Copywriting Companion 生成产品描述的示例

作为一名文案撰写者,我可能希望将这组信息插入到一个更结构化的存储库中,比如一个 Excel 文件。让我们请助手这样做,利用它的代码解释器插件:

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

图 9.33:Copywriting Companion 利用代码解释器插件将其之前的响应转换为 Excel 文件的示例

这是最终结果:

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

图 9.34:Copywriting Companion 生成的 Excel 文件

  1. 现在让我们要求助手生成一个 Instagram 帖子来赞助我们的鞋子:

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

图 9.35:Copywriting Companion 生成 Instagram 帖子的示例

正如您所看到的,助手还提出了一个利用 DALL-E 插件生成的图像描述。由于描述对我来说是有意义的,我将继续要求它生成:

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

图 9.36:Copywriting Companion 利用 DALL-E 插件生成图像的示例

  1. 最后,我想了解一些主要竞争对手品牌——如耐克和阿迪达斯——如何进行他们的营销活动。为此,我将要求我的助手从网络上收集一些证据:

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

图 9.37:文案伴侣利用 Web 浏览插件进行竞争分析的示例

如您所见,我们的伴侣正确地利用了 Web 浏览插件来检索所需信息。此外,它还为我们提供了关于两家竞争公司投资哪些领域的强大见解,这样我们就可以思考(或询问我们的伴侣)哪些独特的差异化因素可以帮助我们的品牌在竞争激烈的市场中脱颖而出。

我们还可以更进一步,通过利用代码解释器与数据分析插件来获取更多关于竞争的具体见解。比如说,我们创建了一个具有以下结构的 Excel 表:

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

图 9.38:Excel 表上的竞争分析

现在我们想从中生成一些视觉内容。让我们请我们的文案伴侣来做这件事:

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

图 9.39:文案伴侣生成的柱状图和散点图示例

这里还有更多视觉内容:

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

图 9.40:文案伴侣生成的折线图示例

如请求,执行报告也已生成:

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

图 9.41:文案伴侣生成的执行报告示例

总体而言,当涉及到生成新内容、设计营销策略和进行网络竞争分析时,为营销活动定制 ChatGPT 可以非常有用。

研究助理

在这种情况下,我们将再次专注于研究,但这次特别关注论文检索。更具体地说,我们希望我们的助手能够做到以下几点:

  • 从我们提供的自定义知识库中检索信息。

  • 将自定义文档与仅来自 arXiv 的论文集成,启用此任务的 Web 插件。

  • 从数据库(在我们的案例中,它将在 Notion 上托管)检索其他研究人员现有的正在进行的工作,这样我们就不会冒险覆盖已经被其他人覆盖的论文内容。

让我们看看所有步骤:

  1. 上传自定义文档。为此,我将使用两篇关于机器学习图像分类的论文:J. Bird 等人撰写的*“CIFAKE:图像分类和可解释的 ai 生成合成图像识别”和 Khalis 等人撰写的“在图像分类任务中对视觉 Transformer 的全面研究”*。

  2. 您可以在配置面板的相关部分上传它们:

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

图 9.42:在配置面板中上传自定义文档

  1. 将自定义文档与网络参考集成。为此,我们需要启用 Web 插件:

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

图 9.43:在配置面板中启用 Web 浏览插件

此外,我们还需要指定助手只能导航 arXiv 存档。我们将在我们创建的指令集中看到如何指定这一点。

  1. 从 Notion 数据库中检索信息。在这里,我们的想法是,作为研究人员,我们可能会提出一些已经被我们的同事研究和开发的想法。想象一下,我们跟踪所有正在进行的研究在一个具有以下结构的 Notion 数据库中:

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

图 9.44:Notion 数据库结构

要做到这一点,我们需要创建 GPT 动作。要做到这一点,有两个步骤要遵循:

  1. 在你的 Notion 工作区中,你需要创建一个新的标记为内部的连接,并创建一个新的内部集成密钥(或 API 密钥)。你可以称这个连接为“chatgpt”或类似。

  2. 在你的 GPT 配置面板中,你需要设置一个新的动作架构。由于在我们的案例中我们需要查询特定的数据库,架构将看起来如下。当涉及到认证时,你可以点击认证并选择API 密钥。输入以下信息:

    • API 密钥:使用你在 Notion 中新建连接的内部集成密钥。

    • 认证类型:Bearer。

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

图 9.45:Notion 动作架构

整个架构看起来是这样的:

openapi: 3.1.0
info:
  title: Notion API
  description: API for interacting with Notion's pages, databases, and users.
  version: 1.0.0
servers:
  - url: https://api.notion.com/v1
    description: Main Notion API server
paths:
  /databases/{database_id}/query:
    post:
      operationId: queryDatabase
      summary: Query a database
      parameters:
        - name: database_id
          in: path
          required: true
          schema:
            type: string
        - name: Notion-Version
          in: header
          required: true
          schema:
            type: string
          example: 2022-06-28
          constant: 2022-06-28
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                filter:
                  type: object
                sorts:
                  type: array
                  items:
                    type: object
                start_cursor:
                  type: string
                page_size:
                  type: integer
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  object:
                    type: string
                  results:
                    type: array
                    items:
                      type: object
                  next_cursor:
                    type: string
                  has_more:
                    type: boolean 

很好,现在我们已经有了所有配料,我们需要设置我们的系统消息和可选的对话开始。在这种情况下,我设置了以下指示:

你是一个 AI 研究助理,负责通过利用各种工具和资源来帮助研究人员。你的主要职责包括从自定义知识库、arXiv 上的学术论文以及存储在 Notion 数据库中的正在进行的研究项目中检索、整合和交叉引用信息。遵循以下指南以确保你的帮助准确、全面且避免重复:

  1. 始终根据提供的文档进行回答。

  2. 如果你觉得需要,可以在网上进行扩展搜索。你只能导航的网站是 arXiv。

  3. 如果用户要求,检查该主题是否已在 Notion 数据库中覆盖。

以下是对话开始:

VGGNet、ResNet 和 Inception 在图像分类的准确性和效率上有哪些不同?

图像分类模型面临哪些挑战,以及数据增强和迁移学习等技术如何帮助?

CNN 的深度如何影响图像分类,ResNet 的残差连接又是如何帮助的?

最终产品看起来是这样的:

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

图 9.46:我们的 ResearchGPT 的着陆页

让我们测试一下:

  1. 我会先提出一个通用问题,这个问题将由提供的论文来解答:

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

图 9.47:ResearchGPT 从提供的文档中检索知识的示例

  1. 然后,我想看看这个主题是否已经被涵盖:

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

图 9.48:ResearchGPT 使用预定义动作与 Notion 对话的示例

  1. 最后,我想将这个主题整合进去,使其独一无二:

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

图 9.49:ResearchGPT 使用网络浏览器插件的示例

如您所见,我们的助手可以利用我们提供的所有工具,在需要时调用 Notion 数据库。

摘要

在本章中,我们探讨了如何定制 GPT 以实现我们的特定目标。定制 ChatGPT 的可能性开辟了一个新的场景领域,其中高度专业化的 AI 助手成为专业人士的日常伴侣。此外,OpenAI 提供了一个无代码 UI 来创建 GPT,这样所有公民开发者不仅可以从可用的解决方案扩展的市场中受益,还可以从他们自己的创作中受益。

通过插件的扩展性和自定义知识库,定制的 GPT 可以为您执行无限的任务。然后,通过添加强大的动作,它们还可以与周围环境进行通信,并从“仅仅”生成进化到自动化。

通过本章,我们也总结了本书的第二部分,其中我们专注于 ChatGPT 的实用应用。从下一章开始,我们将更详细地介绍大型企业如何利用 OpenAI 模型并将它们嵌入到其业务流程中。

参考文献

加入我们的 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 企业版

本部分将带您进入 OpenAI 模型在企业应用领域的世界。

这一部分首先介绍了 OpenAI 与微软的合作关系,以及随之而来的 Azure OpenAI 服务推向市场的举措,这是一项云管理的服务,它提供了 OpenAI 模型,具有云规模架构典型的所有可扩展性、灵活性和安全性。

接着,它回顾了本书涵盖的所有内容,包括最近几周发布的最新公告和发布信息。它还提供了一个部分,包含一些关于仅几个月内生成式人工智能技术指数级增长的反思和最终思考,以及未来可以期待的内容。

本部分包含以下章节:

  • 第十章利用 OpenAI 模型进行企业级应用

  • 第十一章结语与思考

第十章:利用 OpenAI 模型进行企业级应用

本章,我们将重点关注企业级应用 生成式人工智能GenAI)以及更具体地说,OpenAI 的模型。我们将看到不同行业近年来如何受到 GenAI 的巨大影响,以及出现了哪些趋势模式和应用程序。

本章中,我们将讨论以下主题:

  • 由强大的 LLMs 驱动的各个行业(包括医疗保健、金融服务、零售等)的最新进展,突出了最热门的应用案例

  • OpenAI 模型驱动的自定义应用程序背后的架构框架,揭示模型 API 的多功能性和采用情况

  • Azure OpenAI 介绍,这是微软基于云的服务,它反映了 OpenAI 的游乐场,并在 Azure 订阅范围内直接提供 OpenAI 的模型

到本章结束时,你将了解各个行业中主要的 GenAI 模式,以及如何在你的应用程序中利用 OpenAI 模型的 API。此外,你将对 Azure OpenAI 的云规模服务有一个更清晰的理解,以及如何在开发基于 AI 的解决方案时考虑道德因素。

技术要求

以下为本章的技术要求:

  • OpenAI 账户、聊天模型和嵌入模型部署

  • [可选] 一个 Azure 订阅和 Azure OpenAI 实例,包括聊天模型和嵌入模型部署

  • Python 3.7.1 或更高版本

你可以参考以下存储库以获取 OpenAI Python SDKs:https://github.com/openai/openai-python。

GenAI 如何颠覆行业

LLMs 和 GenAI 在一般意义上正在通过引入前所未有的自动化、创造力和效率来改变各个行业。近年来,我们见证了不同行业创新浪潮的巨大浪潮,所有这些行业都认为,如果不抓住 GenAI 机会,就意味着在竞争激烈的市场中落后。

让我们看看一些例子。

医疗保健

在医疗保健领域,通用人工智能(GenAI)和大型语言模型(LLMs)正在增强诊断、个性化医疗和行政任务:

  • 诊断:LLMs 如 GPT-4 正被用于分析医学图像、预测疾病和提出治疗方案。例如,AI 驱动的工具现在可以以高精度分析放射学图像,识别癌症或心脏病等疾病的早期迹象,通常在速度和一致性方面优于人类放射科医生。在 Tyler J. Bradshaw 等人发表在《核医学杂志》(https://jnm.snmjournals.org/content/early/2025/01/16/jnumed.124.268072)上的文章中,给出了计算机视觉领域最新进展的一个很好的例子,“大型语言模型和大型多模态模型在医学成像中的应用:为医生提供入门指南”。

  • 个性化医疗:通用人工智能(GenAI)通过分析包括遗传信息在内的患者数据,帮助开发个性化治疗方案。这导致了定制疗法,从而改善了结果。

  • 行政效率:大型语言模型(LLMs)正在简化行政任务,如患者记录管理和预约安排。AI 聊天机器人可以处理患者查询,减轻医疗人员的工作负担。

案例研究

OpenAI 与 Summer Health 合作,Summer Health 是一家提供通过短信快速便捷获取儿科护理的健康服务公司。这次合作旨在通过整合 OpenAI 的高级语言模型来增强 Summer Health 平台的功能。这种集成使得对父母医疗咨询的响应更加高效和准确,为儿童的健康问题提供快速、可靠的医疗建议。这导致了效率的提高和及时性的改善,同时数据保持匿名。由 AI 驱动的平台帮助简化父母和医疗专业人员之间的沟通,提高了儿科护理的整体体验和可及性。

来源: https://openai.com/index/summer-health/.

金融

在金融领域,通用人工智能(GenAI)和大型语言模型(LLMs)正在改变风险管理、客户服务和投资策略:

  • 索赔管理:大型语言模型(LLMs)被用于自动化索赔的总结、审查、分类和裁决。例如,慕尼黑再保险公司开发了一个由 LLM 驱动的索赔管理解决方案,该方案使索赔流程简化,减少了人工工作量,并提高了决策准确性(https://www.munichre.com/us-life/en/insights/future-of-risk/large-language-models-in-underwriting-and-claims.html)。

  • 客户服务:在金融领域,由 AI 驱动的聊天机器人和虚拟助手现在很常见,它们处理客户咨询、处理交易并提供财务建议。ING 的 AI 助手是一个典型的虚拟助手示例,它通过提供见解、提醒和交易详情来帮助客户管理他们的财务(https://www.mckinsey.com/industries/financial-services/how-we-help-clients/banking-on-innovation-how-ing-uses-generative-ai-to-put-people-first)。

  • 投资策略:对冲基金和投资公司正在使用通用人工智能(GenAI)来创建预测模型,这些模型为交易决策提供信息。AI 算法分析市场数据以识别模式并做出实时交易决策。BlackRock 的 Aladdin 平台就是这样一个例子,它利用 AI 来管理投资和评估市场风险(https://www.blackrock.com/aladdin/solutions/aladdin-copilot)。

案例研究

标准普尔评级公司(Moody’s Corporation),作为全球领先的信用评级、研究和风险分析提供商,已与微软合作开发由 GenAI 驱动的增强风险数据分析和研究解决方案。这次合作将标准普尔在金融风险和数据分析方面的广泛专业知识与微软先进的 AI 技术相结合。结果是提供实时洞察金融风险的工具集,使金融机构和其他利益相关者能够做出更精确的决策并改善风险管理。

来源:https://news.microsoft.com/2023/06/29/moodys-and-microsoft-develop-enhanced-risk-data-analytics-research-and-collaboration-solutions-powered-by-generative-ai/?msockid=2dc01bb6f864693933ed0eb3f9a668dc.

零售和电子商务

在零售和电子商务领域,GenAI 和 LLMs 正在提升客户体验、库存管理和个性化营销:

  • 客户体验:AI 驱动的聊天机器人提供个性化客户服务,帮助购物者找到产品、解决问题并完成购买。

  • 库存管理:LLMs 通过分析销售数据、季节性趋势和客户行为,帮助零售商预测需求并优化库存水平。

  • 个性化营销:通用人工智能(GenAI)正在推动超个性化营销活动。通过分析客户数据,AI 可以创建有针对性的广告和产品推荐。

案例研究

可口可乐公司推出了一项创新计划,邀请数字艺术家使用与谷歌云平台GCP)合作开发的新 AI 平台创作独特的艺术作品。该平台允许艺术家通过结合可口可乐的标志性品牌元素和他们的创造力来生成数字内容。名为“创造真实魔法”的这项计划利用先进的 AI 工具激发和赋权艺术家,促进与可口可乐品牌理念产生共鸣的数字艺术创作。该项目突显了 AI 如何在零售和消费品行业中架起创造力和技术之间的桥梁。

来源:https://brandthechange.com/creativity/create-real-magic-inside-coca-colas-first-ai-powered-campaign/#:~:text=The%20Coca-Cola%20Company%20has%20partnered%20with%20OpenAI%20and%2Cusing%20iconic%20creative%20assets%20from%20the%20Coca-Cola%20archives.

制造业

在制造业中,GenAI 和 LLMs 正在推动自动化、质量控制和供应链优化:

  • 自动化:AI 驱动的机器人和系统正在自动化重复性任务,如装配线工作和物料处理。

  • 质量控制:大型语言模型(LLMs)用于实时监控生产过程,识别缺陷或不效率。AI 系统可以分析传感器和摄像头数据,以检测产品中的异常,确保更高的质量。

  • 供应链优化:AI 模型通过预测需求、管理库存和选择供应商,帮助制造商优化其供应链。

案例研究

Iveco 集团,全球领先的商用车制造商,已与微软合作,将 Azure OpenAI 服务整合到其业务流程中。客户开发了一个名为“Chat IVG”的内部智能聊天机器人,可用于问答以及从组织自己的数据和文档中提取信息。此外,还在开发和部署大量用例和自主项目,这些项目要么利用 Chat IVG 的特定定制,要么以 Chat IVG 的架构为基础。Chat IVG 通过提升内部业务用户体验、提高各个业务单元的生产力以及实现更快、更高效的客户支持产生了重大影响。

来源:https://www.microsoft.com/en/customers/story/1706380538888475836-iveco-group-azure-openai-service-manufacturing-italy.

媒体和娱乐

在媒体和娱乐领域,生成式 AI 和 LLMs 正在革命性地改变内容创作、受众参与和媒体分发:

  • 内容创作:生成式 AI 被用于生成内容,从撰写文章到创作音乐。例如,《华盛顿邮报》使用 AI 撰写简短的新闻文章和报道,让记者能够专注于更复杂的故事。在音乐领域,像 OpenAI 的 MuseNet 这样的 AI 平台可以创作各种风格的原声音乐曲目,帮助音乐家在创作过程中。

  • 受众参与:LLMs 通过分析用户数据来提供个性化的内容推荐,保持受众的参与度。Netflix 使用 AI 根据观众的偏好推荐电影和电视剧,显著提高了观众的留存率。

  • 媒体分发:AI 通过分析受众人口统计和消费模式,也在优化媒体分发。Spotify 使用 AI 来创建个性化的播放列表,确保用户发现符合他们口味的全新音乐。

案例研究

微软的 Xbox 部门宣布与 Inworld AI 签订了一项多年合作协议,旨在开发用于游戏开发的先进生成式 AI 工具。这次合作旨在通过整合 Inworld 在生成式 AI 方面的专业知识与微软的 Azure OpenAI 服务和微软研究洞察力,来提升角色对话和叙事创作。目标是赋予游戏开发者创造更动态和沉浸式游戏体验的能力。

来源:https://developer.microsoft.com/en-us/games/articles/2023/11/xbox-and-inworld-ai-partnership-announcement/.

法律服务

在法律行业,生成式 AI 和 LLMs 正在改变研究、合同分析和案例预测:

  • 法律研究:AI 工具通过分析大量法律文件、案例法和法规来加速法律研究。例如,ROSS Intelligence 利用 AI 在几秒钟内为律师提供相关的案例法和法律先例,这原本需要手动查找数小时。

  • 合同分析:LLMs 被用于审查和分析合同,识别关键条款、风险和合规问题。这有助于加快谈判并确保合同无懈可击。Kira Systems 就是一个例子,它使用 AI 审查合同以进行尽职调查,识别条款和潜在风险。

  • 案例预测:GenAI 正在被用于根据历史数据预测法律案件的结果。通过分析过去的案例,AI 可以为律师提供可能判决的见解,帮助他们更好地制定策略。例如,Lex Machina 使用 AI 预测法官在知识产权纠纷中可能如何判决。

案例研究

Ironclad,一家领先的数字合同平台,已与 OpenAI 合作,将其高级 AI 功能集成到其法律工作流程中。通过利用 OpenAI 的语言模型,Ironclad 增强了其平台自动化合同分析、生成和审查法律文件以及更高效地向法律团队提供见解的能力。

这种集成使得合同处理更快、更准确,减少了手动审查所需的时间,并使法律团队能够专注于更高价值的工作。这种合作凸显了 AI 在通过提高合同管理中的准确性和生产力来转型法律行业中所日益增长的作用。

教育

在教育领域,GenAI 和 LLMs 正在改变学习体验、个性化教育和行政任务:

  • 学习体验:AI 驱动的平台正在根据学生的优势和劣势为学生创建个性化的学习路径。例如,Coursera 等平台使用 AI 推荐课程和资源,这些课程和资源是根据每个学习者的进度和偏好定制的。

  • 个性化教育:LLMs 可以通过回答问题、解释概念和提供作业反馈来辅导学生。Khan Academy 的 AI 辅导老师就是一个例子,为在特定主题上遇到困难的学生提供个性化帮助。

  • 行政任务:AI 还被用于自动化诸如评分和排程等行政任务。例如,Turnitin 使用 AI 来评分和检测剽窃,节省了教育者的时间并确保了学术诚信。

案例研究

可汗学院与 OpenAI 合作,将先进的 AI 功能整合到其教育平台上。通过集成 OpenAI 的语言模型,可汗学院能够提供个性化辅导,回答学生问题,并以更互动和动态的方式协助学习。这次合作旨在通过提供实时帮助和定制支持,增强教育体验,使学习更加便捷和有效。AI 驱动的工具帮助学生掌握复杂概念,提供即时反馈,并适应个人学习风格,进一步通过技术民主化教育。更多信息

来源

上述例子只是 GenAI 在各个行业中实现的可能性的一个子集。然而,有一个元素将所有涵盖的例子统一起来:在每个场景中,都通过利用 LLM API 构建了定制应用程序。

理解 OpenAI 模型 API

在本书的第一章中,我们看到了 LLM 如何在 AI 领域中引入范式转变:与“ChatGPT 时代之前”以 AI 为特色的定制、高度专业化的模型不同,LLM 现在能够被泛化并根据用户的查询处理不同的任务。

此外,还有一个额外的元素将 LLM 与之前的模型区分开来:实际上,LLM 通常作为预训练对象提供,任何人——即使没有任何 AI 领域的经验——也可以通过最简单的方式与之交互:自然语言。

当然,没有人阻止你从头开始设计和训练你的大型语言模型(LLM),但请注意,这至少需要:

  • 设计模型的技术知识

  • 大量的训练数据

  • 支持训练和推理阶段的专业基础设施

  • 在项目中投入大量时间

如果上述元素过去曾是许多 AI 开发者进入该领域的障碍,那么现在范式已经转变。实际上,新的焦点是如何高效地构建围绕 LLM 的所有内容,例如系统消息、向量数据库VectorDBs)、插件等等。这就是为什么现在使用 LLM 的 API 已经成为构建 GenAI 应用程序的验证模式。

什么是模型 API?

在讨论 OpenAI 模型 API 之前,让我们首先刷新一下 API 的定义。

应用程序编程接口API)是一套规则和工具,允许不同的软件应用程序之间相互通信。它就像一个翻译者,通过以标准化的方式共享数据和功能,帮助不同的程序或系统协同工作。例如,当你使用应用程序检查天气时,该应用程序使用 API 从天气服务获取天气信息。

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

图 10.1:使用 API 收集信息的天气应用程序

现在,当涉及到 LLMs 的 API 时,机制是相似的。更具体地说,LLMs 的 API 属于 表示状态转移REST)API 的范畴,这意味着它们:

  • 使用标准 HTTP 方法(POST 用于发送提示,GET 用于检索数据)。

  • 通过 HTTP/HTTPS 进行通信。

  • 以 JSON 格式返回响应。

  • 遵循无状态模型,意味着每个请求都是独立的。

    定义

    REST API 是遵循 REST 原则的基于 Web 的 API,使用 HTTP 方法如 GET、POST、PUT 和 DELETE 通过 URL 与资源交互。它是无状态的,意味着每个请求都是独立的,并且通常以 JSON 格式交换数据。其他类型的 API 包括 SOAP,它依赖于 XML 进行结构化消息和严格的安全;GraphQL,它允许客户端请求特定数据以获得更多灵活性;gRPC,它使用 Protocol Buffers 进行高效的微服务通信;WebSockets,它使实时双向通信成为可能;以及 流式 API,它提供连续数据流,常用于 AI 响应和股市信息流。

让我们探讨您如何使用 OpenAI 模型的 API 来创建一个营销助理。这个助理帮助营销人员生成内容,如社交媒体帖子、电子邮件草稿、广告文案或博客文章想法。让我们分解整个过程:

  1. 发送请求

    • 使用您应用程序的营销人员可能会输入一个提示,例如:“创建一篇推广我们新环保产品系列的社交媒体帖子。”

    • 您的市场助理将此提示作为请求的一部分发送到 OpenAI 模型的 API。该请求包括提示和任何特定指令,包括要使用的模型——比如说,GPT-4o。

  2. 模型处理

    • OpenAI API 接收请求并使用指定的模型(在我们的例子中是 GPT-4o)处理提示。

    • 模型通过分析输入并利用其广泛的知识库生成响应。它考虑因素如目标受众、常见营销用语和期望的语气,以创建相关内容。

  3. 接收响应

    • API 将生成的内容作为响应发送回您的营销助理应用程序。

    • 例如,模型可能会生成类似以下内容:“兴奋地推出我们新的环保产品系列!可持续、时尚,完美适合有意识的消费者。加入我们,共同创造积极影响——现在购物并拯救地球,一次一个产品!#环保友好 #可持续性。”

  4. 显示响应

    • 您的应用程序从 API 接收内容并将其显示给营销人员。

    • 营销人员可以随后根据需要审查、编辑和发布内容,从而在内容创作过程中节省时间和精力。

  5. 附加功能

    • 定制:营销人员可以进一步定制请求。例如,他们可能会要求一系列帖子或请求变化以测试不同的营销角度。

    • 反馈循环:应用程序可能还允许营销人员对生成的内容进行评分。这种反馈可以用于微调未来的请求,随着时间的推移提高内容的关联性和质量。

  6. 幕后

    • API 密钥和身份验证:要使用 OpenAI API,您的应用程序需要一个 API 密钥(一个用于验证和识别向 API 发送请求的应用程序或项目的唯一字母数字字符串),这确保只有授权用户可以访问该服务。

    • 处理多个请求:OpenAI API 被设计为可以同时处理多个请求,这意味着它可以在不减速的情况下同时为许多营销人员提供服务。

    • 速率限制和成本:根据 API 使用情况,可能会有速率限制(例如,每分钟可以发送多少请求)以及与处理文本数量相关的成本。您的应用程序需要管理这些因素,可能通过优先处理某些请求或批量处理它们。

通过 API 消耗 OpenAI 模型为开发者提供了在自定义围绕 LLM 的应用逻辑方面的巨大灵活性。在下一节中,我们将看到如何使用 Python 实际利用这些 API。

如何使用 Python SDK 调用 OpenAI 模型的 API

要在您的编程 IDE 中使用 OpenAI 模型的 API,您首先需要从您的 OpenAI 账户创建一个访问令牌。

注意

在消耗 OpenAI 的 API 时,您将承担与模型使用成比例的费用。更具体地说,OpenAI 的定价模式是按令牌计费,其中令牌代表一段文本(大约 4 个英文字符)。为了估算您的令牌消耗——因此您的费用——您可以参考这篇文章链接:https://help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them

每个 API 请求都会根据输入(提示)和输出(响应)消耗令牌。价格因模型而异,更强大的模型每令牌的成本更高

您可以在 https://openai.com/api/pricing/找到 OpenAI 的定价模型。

要这样做,您可以遵循以下步骤:

  1. 导航到 https://platform.openai.com/api-keys

  2. 点击+ 创建新的密钥

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

图 10.2:OpenAI API 平台

  1. 这将创建一个新的 API 密钥,您可以将它保存在您选择的密钥库中。

一旦您创建了 API 密钥,您就可以使用以下脚本使用它来消耗您的模型:

from openai import OpenAI
client = OpenAI(api_key = "xxx")
response = client.chat.completions.create(
  model="gpt-4o",
  messages=[
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "What is the recipe for Margherita Pizza?"}
  ]
) 

上述示例使用了 Python SDK。然而,您也可以按照 OpenAI 文档中的说明使用 Node.js 或 curl 进行调用。

注意

您客户端的架构可能因您使用的模型和数据格式而异。例如,如果您使用 gpt-4o-mini 进行图像处理,您的客户端将类似于以下结构:

response = client.chat.completions.create(

model=”gpt-4o-mini”,

messages=[

{

“role”: “user”,

“content”: [

{“type”: “text”, “text”: prompt},

{

“type”: “image_url”,

“image_url”: {“url”: f”data:{img_type};base64,{img_b64_str}”},

},

],

}

],

)

您可以在以下 GitHub 仓库github.com/openai/openai找到 OpenAI Python 库。

让我们检查响应是如何构建的(我截断了响应的内容):

response.to_dict()
{'id': 'chatcmpl-9znQeWUbRyGmy3pWf7VfFWAppMCo7',
 'choices': [{'finish_reason': 'stop',
   'index': 0,
   'logprobs': None,
   'message': {'content': 'To make Margherita Pizza []
    'role': 'assistant'},
   'content_filter_results': {'hate': {'filtered': False, 'severity': 'safe'},
    'self_harm': {'filtered': False, 'severity': 'safe'},
    'sexual': {'filtered': False, 'severity': 'safe'},
    'violence': {'filtered': False, 'severity': 'safe'}}}],
 'created': 1724515040,
 'model': 'gpt-4o-2024-05-13',
 'object': 'chat.completion',
 'system_fingerprint': 'fp_abc28019ad',
 'usage': {'completion_tokens': 193, 'prompt_tokens': 55, 'total_tokens': 248},
 'prompt_filter_results': [{'prompt_index': 0,
   'content_filter_results': {'hate': {'filtered': False, 'severity': 'safe'},
    'self_harm': {'filtered': False, 'severity': 'safe'},
    'sexual': {'filtered': False, 'severity': 'safe'},
    'violence': {'filtered': False, 'severity': 'safe'}}}]} 

如您所见,有许多组件构成了响应对象:

  • id: 这是 API 调用的唯一标识符。在这种情况下,chatcmpl-9znQeWUbRyGmy3pWf7VfFWAppMCo7是与这个特定的聊天完成请求相关联的特定 ID。

  • choices: 这是一个包含模型生成的不同可能响应(选择)的数组。在这个响应中,只有一个选择(index 0),这对于大多数单响应完成来说是典型的:

    • index: 表示此特定选择在选择列表中的位置(在这种情况下,0)。

    • finish_reason: 表示模型停止生成令牌的原因。stop通常意味着模型自然到达其响应的末尾,无需截断。

    • logprobs: 如果启用,这将包含完成中每个令牌的对数概率。这里为None,表示你没有请求此信息。

    • message: 包含响应的内容('content')和说话者的角色('role'):

      • content: 辅助生成的实际文本,在这个例子中是关于支持客户管理密钥的 Azure AI 服务的响应

      • role: 对话中说话者的角色,这里为‘assistant’,表示响应来自 AI 助手

    • content_filter_results: 这包含响应的内容过滤结果,检查类别如仇恨、自残、性内容和暴力中的任何有害内容。在这种情况下,所有类别都被标记为'safe''filtered': False,表示未检测到任何问题内容。

  • created: 这是一个表示响应生成时间的戳记。数字1724515040是 UNIX 时间戳(自 1970 年 1 月 1 日起的秒数)。

  • model: 这表示生成响应的模型的版本。

  • object: 这表示返回的对象类型。在这种情况下,'chat.completion'表示这是一个来自聊天 API 的完成。

  • system_fingerprint: 这是一个 OpenAI 用于跟踪或诊断处理请求的系统的内部标识符。'fp_abc28019ad'是此交易的特定指纹。

  • usage: 此对象跟踪 API 调用的令牌使用情况:

    • completion_tokens: 生成响应中使用的令牌数(193 个令牌)

    • prompt_tokens: 输入提示中使用的令牌数(55 个令牌)

    • total_tokens: 请求中消耗的总令牌数,这是提示和完成令牌的总和(248 个令牌)

  • prompt_filter_results:这个数组包含在生成响应之前应用于输入提示的内容过滤结果。它确保提示不包含有害内容。与选择部分中的content_filter_results一样,它包括对仇恨、自残、色情内容和暴力的检查。所有这些都标记为'safe''filtered': False,表示未发现任何问题。

在所有输出参数中,当涉及到管理可能有害的结果时,content_filter_results可能特别相关。事实上,你可能希望对可能有害的内容采取更加保守的方法,无论是输入还是输出。如果是这种情况,你可以简单地实施一个确定性规则,防止模型进一步处理任何触发特定风险级别的请求。

这是一个有意义的例子,说明了利用 OpenAI 模型 API 如何为围绕 LLM 构建应用逻辑提供极大的灵活性。

使用模型 API 构建应用的架构模式

通用人工智能(GenAI)和大型语言模型(LLMs)的兴起为软件开发领域带来了革命性的变革。事实上,从“现代应用”——指的是基于微服务架构和 CI/CD 的快速创新——我们现在谈论的是“智能应用”,这些应用通过自然语言交互、数据驱动体验和新模型发布速度注入了 GenAI 模型。

一个智能应用可以用以下插图来描述:

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

图 10.3:由 LLM 提供动力的智能应用的解剖结构

在上述架构中,我们用以下特性描述了智能应用的解剖结构:

  • 它具有自然语言界面(可能是基于文本或语音的)。

  • 它由一个作为应用“大脑”的 LLM 提供动力。

  • 它有一个模型可以查询的知识库,通常使用检索增强生成RAG)技术。

  • 它有一套工具或插件,可以用来与外部环境交互。

这种软件开发的新范式带来了一组典型的人工智能应用的新应用组件。让我们更详细地探讨这些新组件。

新的应用组件

在 AI 开发方面,主要的转变是指我们与模型合作的方式:从生产模型,现在的趋势是消费模型,正如我们多次提到的,这些模型不过是 API。

这种转变导致了一系列新的软件开发组件(或现有组件的调整)在开发领域的出现:

  • 模型:模型就是我们决定嵌入到我们应用中的 LLM 类型。主要有两种模型类别:

    • 专有 LLM:由特定公司或组织拥有的模型。例如,由 OpenAI 开发的 GPT-4o,或由 Google 开发的 Gemini。由于它们的源代码和架构不可用,这些模型不能从头开始使用自定义数据进行重新训练,但在需要时可以进行微调。

    • 开源:具有代码和架构自由可用和分发的模型,因此它们也可以从零开始使用自定义数据进行训练。例如,由阿布扎比的技术创新研究所TII)开发的 Falcon LLM,以及由 Meta 开发的 Llama。

  • 系统消息:这是我们提供给模型的指令集,它会影响我们 AI 应用的风格和行为。我们可以在元提示中直接塑造许多功能,包括:

    • 通过指定模型只引用提供的知识库来减少幻觉(这个过程被称为“扎根”)

    • 通过指定,例如,不响应恶意查询或不要生成可能有害的响应来实施负责任的 AI 实践

    • 指示模型在回答之前总是提出一个额外的问题来巩固上下文

  • 记忆与 VectorDB:当我们谈论 AI 应用中的记忆时,我们需要区分两种类型的记忆:

    • 短期记忆:这是应用保持用户与 LLM 之间交互在上下文窗口中的能力。这意味着每条消息都会为模型的现有元提示提供输入,而无需用户重复已经提到的内容。

    • 长期记忆:这种类型的记忆指的是我们使用嵌入提供的模型的外部知识库。在这种情况下,我们通常利用 VectorDBs,这是一种新型数据库(或现有数据库的新功能),它存储了提供的文档的数值表示。

      定义

      VectorDB 是一种基于向量嵌入存储和检索信息的数据库类型,这些嵌入是捕获文本意义和上下文的数值表示。通过使用 VectorDB,你可以根据意义的相似性而不是关键词进行语义搜索和检索。一些 VectorDB 的例子包括 Chroma、FAISS、Elasticsearch、Milvus、Pinecone、Qdrant 和 Weaviate。

  • 工具/插件:这些可以被视为可以集成到 LLM(大型语言模型)中的附加模块或组件,以扩展其功能或适应特定的任务和应用。这些插件作为附加组件,增强了 LLM 在核心语言生成或理解能力之外的特性。

插件的背后理念是使 LLM 更加灵活和适应性强,允许开发者和用户根据他们的特定需求定制语言模型的行为。可以创建执行各种任务的插件,并且它们可以无缝地集成到 LLM 的架构中。

以下是一个由 LLM 驱动的应用程序的主要组件的说明:

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

图 10.4:LLM 驱动应用程序的高级架构

如上图所示,高级架构的核心是 AI 调度器。通过 AI 调度器,我们指的是使嵌入和调度 LLM 在应用程序中变得更容易的轻量级库。

AI 调度器

由于 LLM 在 2022 年底走红,市场上已经出现了许多库。在接下来的几节中,我们将重点关注其中的三个:LangChain、Semantic Kernel 和 Haystack。

LangChain

LangChain 是由 Harrison Chase 在 2022 年 10 月作为开源项目推出的。它可以在 Python 和 JS/TS 中使用。

LangChain 是一个用于开发由语言模型驱动的应用程序的框架,使其具备数据感知(具有扎根)和代理性——意味着能够与外部环境交互。

LangChain 为我们之前提到的与语言模型一起工作的组件提供了模块化抽象,例如提示、记忆和插件。除了这些组件之外,LangChain 还提供了预构建的 ,这些链是组件的结构化连接。这些链可以是针对特定用例预构建的,也可以是定制的。

总体而言,LangChain 具有以下核心模块:

  • 模型:这些是将成为应用程序引擎的 LLM 或大型基础模型。LangChain 支持专有模型,例如 OpenAI 和 Azure OpenAI 中可用的模型,以及可以从 Hugging Face Hub 消费的开源模型。

    定义

    Hugging Face 是一家公司和社区,它构建和分享自然语言处理(NLP)和其他机器学习领域的最先进模型和工具。它开发了 Hugging Face Hub,这是一个人们可以创建、发现和协作机器学习模型、LLM、数据集和演示的平台。Hugging Face Hub 在各个领域和任务中托管了超过 120k 个模型、20k 个数据集和 50k 个演示,例如音频、视觉和语言。

除了模型之外,LangChain 还提供了许多与提示相关的组件,使管理提示流程变得更容易。

  • 数据连接:这些是指构建块,用于检索我们希望提供给模型的额外非参数化知识。数据连接的例子包括文档加载器或文本嵌入模型。

  • 记忆:它允许应用程序在短期和长期内保留对用户交互的引用。它通常基于存储在 VectorDB 中的矢量嵌入。

  • :这些是预定的一系列动作和对 LLM 的调用,这使得构建需要将 LLM 与彼此或其他组件链接的复杂应用程序变得更容易。链的一个例子可能是:获取用户查询,将其分成更小的部分,嵌入这些部分,在 VectorDB 中搜索相似的嵌入,使用 VectorDB 中最相似的三个部分作为上下文来提供答案,生成答案。

  • 代理:代理是驱动 LLM 驱动的应用程序中决策的实体。它们可以访问一系列工具,并根据用户输入和上下文决定调用哪个工具。代理是动态和自适应的,这意味着它们可以根据情况或目标改变或调整其行为。

干草堆

干草堆是一个基于 Python 的框架,由 deepset 开发,deepset 是一家成立于 2018 年的柏林初创公司,由 Milos Rusic、Malte Pietsch 和 Timo Möller 创立。deepset 为开发者提供构建基于 NLP 的应用程序的工具,随着干草堆的引入,他们将其提升到了新的水平。

干草堆具有以下核心组件:

  • 节点:这些是执行特定任务或功能的组件,例如检索器、阅读器、生成器、摘要器等。节点可以是 LLM 或其他与 LLM 或其他资源交互的实用工具。在 LLM 中,干草堆支持专有模型,例如 OpenAI 和 Azure OpenAI 中可用的模型,以及来自 Hugging Face Hub 的开源模型。

  • 管道:这些是调用执行自然语言任务或与其他资源交互的节点的序列。管道可以是查询管道或索引管道,这取决于它们是在一组文档上执行搜索还是为搜索准备文档。管道是预先确定和硬编码的,这意味着它们不会根据用户输入或上下文进行更改或适应。

  • 代理:这是一个使用 LLM 生成对复杂查询准确响应的实体。代理可以访问一系列工具,这些工具可以是管道或节点,并且可以根据用户输入和上下文决定调用哪个工具。代理是动态和自适应的,这意味着它可以根据情况或目标改变或调整其行为。

  • 工具:代理可以调用的函数,用于执行自然语言任务或与其他资源交互。工具可以是代理可用的管道或节点,它们可以分组到工具包中,工具包是一组可以完成特定目标的工具集。

  • 文档存储:这些是存储和检索用于搜索的文档的后端。文档存储可以基于不同的技术,包括 VectorDB(例如 FAISS、Milvus 或 Elasticsearch)。

Haystack 以其简单易用而闻名,具有模块化架构,允许开发者构建用于语义搜索和问答等任务的定制管道。这种设计使其特别适合RAG应用,其中高效的数据检索至关重要。

Semantic Kernel

Semantic Kernel是我们将在本章中探索的第三个开源 SDK。它由微软开发,最初是用 C#编写的,现在也提供了 Python 版本。

这个框架的名字来源于“内核”的概念,一般而言,内核指的是系统的核心或本质。在这个框架的上下文中,内核的作用是作为引擎,通过链式和串联一系列组件形成管道,鼓励函数复合

定义

在数学中,函数复合是将两个函数组合起来创建一个新函数的方法。其思想是使用一个函数的输出作为另一个函数的输入,形成一个函数链。两个函数 f 和 g 的复合表示为https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_10_001.png,其中首先应用函数https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_10_001.png,然后是函数https://github.com/OpenDocCN/freelearn-dl-zh/raw/master/docs/prac-genai-cgpt-2e/img/B31559_10_002.png

计算机科学中的函数复合是一个强大的概念,通过将较小的函数组合成较大的函数,可以创建更复杂和可重用的代码。它增强了模块化和代码组织,使程序更容易阅读和维护。

Semantic Kernel 具有以下主要组件:

  • 模型:这些是作为应用引擎的 LLM 或大型基础模型。Semantic Kernel 支持专有模型,例如 OpenAI 和 Azure OpenAI 中可用的模型,以及可以从 Hugging Face Hub 获取的开源模型。

  • 内存:这允许应用程序在短期和长期内保持对用户交互的引用。在 Semantic Kernel 的框架内,可以通过三种方式访问记忆:

    • 键值对:这包括保存存储简单信息的环境变量,例如名称或日期。

    • 本地存储:这包括将信息保存到可以按其文件名检索的文件中,例如 CSV 或 JSON 文件。

    • 语义记忆搜索:这与 LangChain 和 Haystack 的记忆相似,因为它使用嵌入来表示和基于其意义搜索文本信息。

  • 函数:函数可以看作是混合 LLM 提示和代码的技能,目的是使用户的请求可解释和可操作。有两种类型的函数:

    • 语义函数:这些基本上是一个模板化的提示,它是一个自然语言查询,指定了 LLM 的输入和输出格式,同时也结合了提示配置,该配置设置了 LLM 的参数。

    • 原生函数:这些是指可以路由语义函数捕获的意图并执行相关任务的本地计算机代码。

举个例子,一个语义函数可能会要求 LLM 写一段关于 AI 的短段落,而一个原生函数实际上可以在 LinkedIn 等社交媒体上发布。

  • 插件:这些是连接到外部来源或系统的连接器,旨在提供额外的信息或执行自主操作的能力。语义内核提供了现成的插件,例如 Microsoft Graph 连接器套件,但您可以通过利用函数(无论是原生还是语义,或者两者的混合)来构建自定义插件。

  • 规划器:由于 LLM 可以被视为推理引擎,它们也可以被用来自动创建链或管道以满足新用户的需求。这个目标是通过一个规划器实现的,它是一个接受用户任务作为输入并产生实现目标所需的一组动作、插件和函数的函数。

下面是语义内核解剖结构的插图:

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

图 10.5:语义内核的解剖结构。来源:https://learn.microsoft.com/en-us/semantic-kernel/overview/

总体而言,这三个框架提供了更多或更少的类似核心组件,有时被称为不同的分类法,但涵盖了协同系统概念中所示的所有块。因此,一个自然的问题可能是,“我应该使用哪一个来构建我的 LLM 驱动应用程序?”

下面是一些您可能想要考虑的标准:

  • 您熟悉或更愿意使用的编程语言。不同的框架可能支持不同的编程语言或具有不同程度的兼容性或集成。例如,语义内核支持 C#、Python 和 Java,而 LangChain 和 Haystack 主要基于 Python(尽管 LangChain 也引入了 JS/TS 支持)。您可能希望选择一个与您的现有技能或偏好相匹配的框架,或者允许您使用最适合您的应用领域或环境的语言。

  • 您想要执行或支持的自然语言任务类型和复杂性。不同的框架可能具有不同的能力或特性来处理各种自然语言任务,例如摘要、生成、翻译、推理等。例如,LangChain 和 Haystack 提供了编排和执行自然语言任务的实用工具和组件,而语义内核允许您使用自然语言语义函数来调用 LLM 和服务。您可能希望选择一个提供您应用目标或场景所需的功能和灵活性的框架。

  • 您需要或希望对 LLMs 及其参数或选项进行定制和控制的程度。不同的框架可能有不同的方式来访问、配置和微调 LLMs 及其参数或选项,例如模型选择、提示设计、推理速度、输出格式等。例如,Semantic Kernel 提供了连接器,使得向你的 AI 应用添加记忆和模型变得容易,而 LangChain 和 Haystack 允许你将不同的组件插入到 DocumentStore、检索器、阅读器、生成器、摘要器和评估器中。你可能希望选择一个能够提供你对 LLMs 及其参数或选项所需或希望达到的定制和控制程度的框架。

  • 框架的文档、教程、示例和社区支持的可获得性和质量。不同的框架可能具有不同水平的文档、教程、示例和社区支持,这些支持可以帮助你学习、使用和调试框架。例如,Semantic Kernel 有一个包含文档、教程、示例和 Discord 社区的网站;LangChain 有一个包含文档、示例和问题的 GitHub 仓库;Haystack 有一个包含文档、教程、演示、博客文章和 Slack 社区的网站。你可能希望选择一个具有文档、教程、示例和社区支持的可获得性和质量,这可以帮助你开始使用框架并解决相关问题的框架。

好吧,没有正确或错误的答案!上面讨论的三个编排器都非常有效。然而,某些功能可能更适合特定的用例或开发者的偏好。根据这一点做出你的选择。

介绍公共云:Azure OpenAI

2016 年,OpenAI 同意利用微软的 Azure 云基础设施来运行其 AI 实验,这导致了 2019 年科技巨头对萨姆·奥特曼的公司(news.microsoft.com/2019/07/22/openai-forms-exclusive-computing-partnership-with-microsoft-to-build-new-azure-ai-supercomputing-technologies/)投资了 10 亿美元。

这标志着两家公司之间战略合作的开始,旨在开发对人类有益的 AI 模型和技术。这个合作基于以下三个主要支柱:

  • 微软和 OpenAI 将共同构建新的 Azure 超级计算基础设施来训练 AI 模型。

  • OpenAI 将从 Azure 云中提供其模型和技术。

  • 微软将成为 OpenAI 在市场上商业化新 AI 解决方案的首选合作伙伴。

自那时起,两家公司一直持续投资和研究,最终在 2023 年 1 月,OpenAI 模型作为托管服务在 Microsoft Azure 上提供:Azure OpenAI Service(简称,AOAI)。

随着 AOAI 服务的全面上市,我们达到了一个新的里程碑,并且微软的人工智能产品组合通过 OpenAI 强大的 LLMs 得到了扩展。

AOAI 服务

AOAI 服务是微软的一个产品,它提供了一个游乐场和 API,用于与 OpenAI 的所有强大语言模型进行交互和消费。重要的是要强调,模型是完全相同的:唯一的区别是,如果您通过 AOAI 消费它们,您将利用自己的 Azure 订阅,并自动继承所有典型的微软公共云企业功能,包括安全、基于角色的访问控制、数据隐私等。

要创建您的 AOAI 资源,请按照以下说明操作:

  • 导航到您的 Azure 站点 ms.portal.azure.com/

  • 点击创建资源

  • 输入 azure openai 并点击创建

  • 填写所需信息并点击Review + create

如下截图所示:

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

图 10.6:创建 AOAI 资源步骤

此过程可能需要几分钟。一旦准备就绪,您可以直接跳转到其用户友好的界面 AOAI Studio,在部署之前测试您的模型:

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

图 10.7:AOAI Studio 和聊天游乐场

要使用 AOAI 模型,您必须启动一个部署,这是一个可以附加到模型的无服务器计算实例。

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

图 10.8:通过 Azure OpenAI 站点创建新的 AOAI 部署

最后,就像我们在上一节中为 OpenAI 模型 API 所做的那样,从 AOAI Studio,您可以通过 API 消费您已部署的模型。为了快速入门,您可以导航到聊天游乐场并点击查看代码按钮。一个脚本将准备好复制粘贴到您喜欢的编程 IDE 中,以及访问资源所需的秘密密钥:

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

图 10.9:通过 API 消费已部署的模型

通过这样做,您可以将 Azure OpenAI 的 LLMs 无缝地集成到您自己的应用程序中。

摘要

在本章的开头,我们概述了 GenAI 如何颠覆行业,从提高内部流程的效率到通过个性化体验增强客户的旅程。许多这些应用可以通过高度的定制来实现,而预构建的面向消费者的应用程序,如 ChatGPT,可能就不够了。

正因如此,我们引入了 OpenAI 模型 API。通过模型 API,您可以在自己的应用程序中利用 ChatGPT 背后模型的力量,根据您自己的行业和场景进行定制。然而,开发 AI 驱动的应用程序需要一套新的组件,这也标志着软件开发领域的新范式。

最后,我们看到从 2023 年起,OpenAI 模型(无论是在游乐场中还是在通过 API 中)已通过 Microsoft Azure 作为托管服务:Azure OpenAI 提供使用。这为大型企业采用新的一波铺平了道路,这些企业可以从公共云中已有的所有安全和治理层中受益(按设计,企业级就绪)。

在下一章中,我们将回顾本书涵盖的所有内容,包括最新的公告和发布。我们还将关注在短短几个月内生成式 AI 技术的指数级增长以及未来可以期待的内容。

参考文献

  • OpenAI 与微软建立独家计算合作伙伴关系,共同构建新的 Azure AI 超级计算技术:OpenAI 与微软建立独家计算合作伙伴关系

  • Azure OpenAI 服务全面上市,扩大了对大型、先进 AI 模型的访问,并增加了企业级优势:Azure OpenAI 服务全面上市-with-added-enterprise-benefits/

  • 微软首席执行官萨提亚·纳德拉:人类和人工智能可以共同努力解决社会的挑战:微软首席执行官萨提亚·纳德拉:人类和人工智能可以共同努力解决社会的挑战

  • 微软呼吁政府对面部识别技术进行监管:微软呼吁政府对面部识别技术进行监管

  • 指导微软面部识别工作的六个原则:微软面部识别工作的六个原则

  • 负责任 AI 原则和方法:负责任 AI 原则和方法

  • 微软负责任 AI 工具箱:微软负责任 AI 工具箱

  • CommonsenseQA 上的常识平等:通过外部注意力增强自注意力:通过外部注意力增强自注意力

  • 使用 Azure OpenAI 服务定制模型:https://learn.microsoft.com/en-gb/azure/cognitive-services/openai/how-to/fine-tuning?pivots=programming-language-studio&openai-cli-data-preparation-tool

  • 惠誉与微软开发由生成式 AI 驱动的增强风险、数据、分析、研究和协作解决方案:https://ir.moodys.com/press-releases/news-details/2023/Moodys-and-Microsoft-Develop-Enhanced-Risk-Data-Analytics-Research-and-Collaboration-Solutions-Powered-by-Generative-AI/default.aspx

  • 提高儿科就诊记录的准确性:https://openai.com/index/summer-health/

  • 可口可乐邀请数字艺术家使用新的 AI 平台“创造真实[魔法]”:https://www.coca-colacompany.com/media-center/coca-cola-invites-digital-artists-to-create-real-magic-using-new-ai-platform

  • IVECO 集团利用 Azure OpenAI 服务转型制造:https://customers.microsoft.com/en-us/story/1706380538888475836-iveco-group-azure-openai-service-manufacturing-italy

  • Ironclad 与 OpenAI 合作:https://openai.com/index/ironclad/

  • Inworld AI 与 OpenAI 合作:https://openai.com/index/inworld-ai/

  • 可汗学院与 OpenAI 合作:https://openai.com/index/khan-academy/

加入我们的 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 之外当前大型基础模型LFMs)的汇编,以及生成式人工智能AI)领域的最有希望的研究领域和围绕这些新强大模型出现的担忧。

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

  • 到目前为止我们所学的概述

  • 并非所有都是关于 OpenAI

  • 生成式 AI 的伦理影响以及为什么我们需要负责任的 AI

  • 近期可以期待什么

到本章结束时,你将更全面地了解生成式 AI 领域的最先进发展,它如何影响行业,以及在新发展和社会关注方面可以期待什么。

到目前为止我们所学的概述

我们从介绍生成式 AI 的概念及其各种应用开始这本书。我们看到了生成式 AI 不仅关乎文本,还关乎图像、视频和音乐。

第二章中,我们转向了研究将生成式 AI 推向最大普及的公司:OpenAI。成立于 2015 年,OpenAI 主要专注于一种特定类型的生成模型,生成预训练转换器GPT)。然后,在 2022 年 11 月,OpenAI 发布了 ChatGPT,这是一个由 GPT 模型驱动的免费网络应用程序,用于对话助手。它获得了巨大的关注度,仅用五天时间就达到了一百万用户!

ChatGPT 已经是一个颠覆性的产品。它对日常生产力和各个行业领域的影响是巨大的。我们还在第三章中看到了如何正确设计使用生成模型如 ChatGPT 时最重要的元素:提示。提示是用户的输入,不过是自然语言中的指令。设计提示是获取你生成模型最大价值的关键步骤,以至于提示工程已经成为一个新的研究领域。

一旦我们熟悉了 ChatGPT 和提示设计,我们就转向了第四章,在那里我们终于得到了 ChatGPT 如何提高你的日常生产力并成为你的日常助手的具体例子。从电子邮件生成到提高你的写作技巧,我们看到了 ChatGPT 的生成能力如何改善许多活动。

但我们并没有停止在这里。通过第五章、第六章、第七章和第八章,我们看到了 ChatGPT 如何不仅提高日常生产力,还能提升特定领域的活动——对于开发者来说,从代码生成和优化到解释机器学习模型;对于营销人员来说,从新产品开发到改进搜索引擎优化SEO);对于研究人员来说,从实验设计到基于研究的演示文稿生成;对于那些需要视觉创意助手的人来说,从设计建议到图像和画布的创建。

此外,在第九章中,我们探讨了如何通过构建高度专业化的助手 GPT,利用 OpenAI 的 GPT Store,进一步定制所有之前的 ChatGPT 功能(代码生成、市场研究等)。有了 GPT,用户可以构建利用 ChatGPT 背后模型力量的个人助手,同时受益于更专业和范围更广的行为,利用用户自身提供的知识库、插件和精确指令——这一切都不需要编写一行代码!

通过第十章,我们将对话转向企业层面,探讨 OpenAI 的模型也可以通过 API 进行消费,并嵌入到定制应用程序中。这允许个人和组织构建强大的 AI 增强应用程序,这些应用程序受益于 OpenAI 的 LLMs,同时在后端应用程序逻辑和前端 UI 方面提供了极大的灵活性。

这段旅程旨在让您对我们讨论的流行词汇,如 ChatGPT、OpenAI 和 LLMs,有更清晰的了解。

然而,在下一节中,我们将看到最近几个月 AI 的快速发展是如何在已有的基础上带来全新的技术的。

并非一切都与 OpenAI 有关

在整本书中,我们涵盖了“所有关于 OpenAI 的内容”。众所周知,OpenAI 是生成式 AI 领域的第一个进入者。很难否认 ChatGPT 的推出是标志着 AI 领域所谓范式转变的里程碑,从两个角度来看:

  • 从技术角度来看,ChatGPT(或者更准确地说,它背后的模型——GPT-3.5-turbo)在它上线时(2022 年 11 月)是最强大的 LLM。这给了 OpenAI 一个竞争对手难以衡量的竞争优势。

  • 从行为角度来看,ChatGPT“打破了互联网”的界限,因为几乎每个人都对其易用性和非凡的能力感到震惊。这导致了一波新的用户,尽管他们不是 AI 专家,但对这个问题产生了兴趣,并开始探索产品的无限能力,几个月来不断提高期望值。

然而,在 2022 年 11 月之后不久,许多其他参与者进入了市场,并开始用新的条目填充 LFMs 的格局,既有专有技术也有开源技术。

让我们探索一些目前的关键参与者。

Mistral AI

这家总部位于法国的公司在其开源模型方面取得了显著进展。Mistral AI 因其 Mistral 7B 和 Mixtral 模型而闻名,这些模型因其性能和效率而受到赞誉。该公司致力于创建高度能效的模型,使其对更广泛的 AI 社区可访问,通过开源贡献促进创新。他们的模型旨在处理各种任务,从文本生成到代码补全,成为 AI 工具箱中的多功能工具。

Meta

Meta 在推进大型语言模型(LLM)方面发挥了关键作用,特别是其大型语言模型 Meta AILLaMA)系列。这些模型在推动 LLM 所能达到的边界方面发挥了重要作用,特别是在可扩展性和效率方面。Meta 的研究集中在优化训练这些大型模型所需的基础设施上,确保它们可以有效地部署在各种应用中。他们的工作还强调了开源模型的重要性,允许全球开发者在其创新的基础上构建。

微软

正如我们在第十章中提到的,微软通过多年的合作,利用其 Azure 平台支持 OpenAI 的开发和部署。微软还将其 Azure 平台上提供的整个 LLM 目录通过 API(包括专有和开源)公开。

除了其合作伙伴关系外,微软还开发了其自己的 Phi 系列模型。Phi-3 系列模型,包括 Phi-3-mini、Phi-3-small 和 Phi-3-medium,旨在高度高效且成本效益高。这些模型在各种基准测试中表现出色,在语言理解、推理、编码和数学等任务上优于更大的模型。例如,Phi-3-mini 支持高达 128K 个标记的上下文窗口,使其适用于不同的应用非常灵活。微软专注于优化这些模型,以便在各种平台上部署,包括 Azure AI、Hugging Face 和本地环境,确保它们对广泛的用户既可访问又实用。这种致力于开发稳健、可扩展和高效的模型,突显了微软在生成 AI 领域的重要贡献。

谷歌

谷歌凭借其 Gemini 模型在多模态应用领域处于领先地位,这些模型能够处理和生成各种格式的内容,包括文本、图像和视频。谷歌在检索增强生成RAG)方面的创新通过整合来自云数据库的实时数据,提高了大型语言模型(LLM)输出的准确性和可靠性。这种方法有助于缓解诸如幻觉等问题,确保生成的内容既相关又准确。

Anthropic

Anthropic 开发了 Claude 系列大型语言模型,这些模型以其安全性和伦理考量而闻名。Claude 模型旨在最小化偏见并促进公平,使其适用于广泛的用途。

Anthropic 对负责任 AI 开发的关注在行业中树立了高标准,确保其模型不仅强大,而且符合伦理指南。对安全和透明的承诺使 Claude 在生成式 AI 社区中成为一个值得信赖的品牌。

在生成式 AI 市场中,LLM 的激增正在呈指数增长。然而,重要的是要承认,我们选择“最适合我们应用的最好 LLM”的选择不应该仅仅基于平均性能最高的模型。截至写作时,有许多在特定领域或专业知识(如数学推理、代码生成、特定语言等)上训练的 LLM,平均性能远低于像 OpenAI 的 o1 这样的通用模型。尽管如此,在开发我们的应用程序时,我们可能需要考虑不同的变量。

例如,我们可能对具有特定行业特定分类法非常具体理解的模型感兴趣。如果是这样,我们可能希望利用为这一目的训练和微调的 LLM,比如微软的 BioGPT。或者,我们可能需要在本地运行我们的模型,在不连接的场景中(想想海洋中部的离岸工厂);如果是这样,我们无法运行,比如说,GPT-4o——首先,因为它是一个专有模型,不能“下载”;其次,我们是否有能够托管超过 100 万亿参数的超级计算机?

有许多场景需要除了“最先进”的模型之外的模型,评估特定用例所需模型类型是新一代与 AI 相关工作的部分职责。

生成式 AI 的伦理影响以及为什么我们需要负责任的 AI

前一节强调了随着生成式人工智能技术的广泛知识和采用,一个普遍的关注正在上升。

人工智能技术的快速发展带来了大量的伦理考虑和挑战,必须仔细解决以确保其负责任和公平的部署。其中一些列在这里:

  • 数据隐私和安全:由于人工智能系统在学习和决策过程中高度依赖数据,确保数据隐私和安全变得至关重要。在生成式人工智能的背景下,这是一个影响最初用于训练模型的数据的话题。尽管 ChatGPT 用于生成响应的知识库是公开的,但使用这些信息生成响应的涉及用户的同意阈值在哪里?

  • 偏见和公平性:人工智能模型通常从历史数据中学习,这可能会无意中引入偏见。解决人工智能系统中的偏见和公平性问题包括以下方面:

    • 多样化的数据集:确保训练数据多样化,并代表各种人口统计特征,可以帮助减少人工智能模型中的偏见。

    • 算法公平性:开发优先考虑公平性且不对特定人口群体进行歧视的算法至关重要。

    • 监控和审计:定期监控和审计人工智能系统可以帮助识别和纠正偏见,确保结果公平。

  • 透明度和问责制:随着人工智能系统的日益复杂,理解其决策过程可能具有挑战性。这涉及到以下两个重要方面:

    • 可解释的人工智能:开发能够为其决策提供明确解释的人工智能模型可以帮助用户理解和信任该系统。

    • 责任和问责制:明确人工智能系统的责任和问责制对于确保开发者、组织和用户对人工智能驱动决策的后果负责至关重要。

  • 工作的未来:人工智能驱动的自动化有可能在某些行业取代工作,引发对工作未来的担忧。在这本书中,我们看到了 ChatGPT 和 OpenAI 模型如何能够提高个人和企业的生产力。然而,也可能会有些重复性任务被人工智能彻底取代,这将影响一些工人。这是变革和发展过程的一部分,而且接受变化而不是与之抗争至关重要。

在这个方向上的一些行动可能是再培训和技能提升计划——政府、组织和教育机构应投资于再培训和技能提升计划,以帮助工人适应不断变化的就业市场并获得新兴角色所需的新技能。

最重要的是,应鼓励人机协作。开发能够补充和增强人类能力的人工智能系统可以帮助创造新的就业机会,并促进协作工作环境。

通过解决这些伦理考虑和挑战,我们可以朝着正确的方向努力,确保人工智能技术得到负责任地开发和部署,为所有人创造一个更好、更公平的未来。

现在,下一个合乎逻辑的问题可能是:鉴于最近几个月人工智能技术的巨大加速,我们应该期待在不久的将来会发生什么?

近期可以期待什么

近几个月来,人工智能研究和发展的加速令人难以置信。从 2022 年 11 月到撰写本文时(2025 年 2 月),我们看到了以下情况发生:

  • 2022 年 11 月:OpenAI 发布了基于 GPT-3.5 的对话式人工智能模型 ChatGPT,因其类似人类的文本生成能力而迅速引起广泛关注。

  • 2022 年 12 月:ChatGPT 在发布后的五天内用户数量超过一百万,突显了公众对 AI 驱动对话工具的快速接受。

  • 2023 年 1 月:微软宣布对 OpenAI 进行数十亿美元的投资,旨在将其先进的人工智能技术集成到其产品和服务中。这是 Copilot 系统的基石。

  • 2023 年 3 月:OpenAI 揭晓 GPT-4,这是一个先进的跨模态 AI 模型,能够处理文本和图像输入,标志着 AI 理解和生成能力的重大飞跃。

  • 2023 年 5 月:谷歌推出 Gemini,这是一个由谷歌 DeepMind 开发的跨模态 LLM,旨在同时处理多种数据类型,包括文本、图像、音频和视频。

  • 2023 年 12 月:谷歌推出 Gemini 1.0,将其集成到 Bard 和 Pixel 设备等产品中,并计划在其服务中实现更广泛的应用。

  • 2024 年 2 月:OpenAI 推出 Sora,一个能够根据文本描述生成逼真视频的文本到视频模型,扩展了 AI 生成内容的应用范围。

  • 2024 年 5 月:OpenAI 发布了 GPT-4o,这是一个处理和生成文本、图像和音频的多模态模型,在 AI 性能的多个任务中设定了新的基准。

  • 2024 年 6 月:Anthropic 揭晓 Claude 3.5 Sonnet,这是一个在编码、多步骤工作流程和图像分析方面表现出色的人工智能模型,有助于 AI 应用的多样化。

  • 2024 年 7 月:OpenAI 推出 GPT-4o mini,这是 GPT-4o 的一个更易于访问的版本,旨在使高级 AI 能力惠及更广泛的受众。

  • 2024 年 9 月:OpenAI 发布了 o1-preview 和 o1-mini 模型,旨在提高推理准确性,特别是在科学、编码和复杂推理任务中。

  • 2024 年 12 月:OpenAI 揭晓 o3 和 o3-mini,作为 o1 模型的继任者,专注于改进推理和效率,并开始与选定用户测试这些模型。

  • 2025 年 1 月:中国 AI 初创公司 DeepSeek 发布其 R1 模型,这是一个开源 AI 助手,在性能上与领先模型相媲美,同时成本效益显著。该发布对全球科技市场产生了重大影响,导致美国主要科技公司股价大幅波动。

此外,2025 年 1 月,一项新的突破性计划被宣布:Stargate 项目。该项目是一个大规模的倡议,旨在开发美国下一代 AI 基础设施。由 OpenAI、软银、甲骨文和 MGX 支持,该项目预计在未来四年内获得高达 5000 亿美元的投资。第一阶段涉及 1000 亿美元的初始投资,并计划随着需求的增长而扩大。

该倡议旨在建设尖端数据中心和能源设施,确保美国在人工智能发展上保持竞争力。像微软、英伟达和 Arm 这样的主要技术公司正在贡献专业知识和资源。该项目预计将创造数十万个工作岗位并推动经济增长,德克萨斯州被选为首个建筑工地,其他地点正在审查中。除了经济影响之外,Stargate 被定位为加强人工智能基础设施和提升国家安全的战略努力。

这种令人难以置信的速度使得预测接下来会发生什么变得困难。正如我们所看到的,这种速度也因这些新技术缺乏监管而引起了机构、公司和公众人物的关注。同时,公司和机构不可避免地需要适应这个新环境,以便跟上竞争对手。

当我们展望未来时,生成式人工智能的发展轨迹指向越来越自主和协作的系统。人工智能代理——无需人类干预即可执行复杂任务的自主实体——正在迅速发展。这些代理预计将管理各个领域的复杂流程,从自动化业务运营到提高个人生产力。多智能体系统的集成,其中多个人工智能代理协作以实现共同目标,有望通过模仿有效的人类团队合作来革新问题解决方式。

摘要

生成式人工智能技术的快速发展正在引领一个创新和变革的新时代。这些进步具有革命性改变行业和重塑日常生活的巨大潜力,它们正在重新书写人机交互的规则。

随着我们站在这个由人工智能驱动的未来的门槛上,确保这些技术被负责任和道德地使用是我们共同的责任。通过拥抱机遇和应对挑战,我们可以培养一个世界,在那里人工智能赋予人类力量,并提升我们的潜力达到新的高度。

生成式人工智能时代“仅仅”始于两年前,如果你考虑它在这一时间段内产生的影响,我们不禁会想象我们可能会在不久的将来见证的所有伟大成就。

参考文献

加入我们的 Discord 和 Reddit 社区

对这本书有疑问或想参与关于生成式人工智能和大型语言模型(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 的视角探索了 OpenAI 模型的力量,深入其对话界面,并理解了它如何改变我们与 AI 互动的方式。然而,OpenAI 的世界远不止 ChatGPT 熟悉的基于聊天的体验。为了充分利用这些模型的能力,了解 OpenAI 提供的更广泛工具和界面至关重要。

本附录致力于探索这样一个工具:OpenAI 游乐场。游乐场提供了一个灵活的环境,可以用来实验 OpenAI 的模型,允许用户对参数、输出和行为有更多的控制。无论您是想微调响应、测试不同的用例,还是仅仅想更深入地了解模型的能力,游乐场都是一个无价的资源。

在本附录中,我们将:

  • 演示游乐场界面及其关键特性。

  • 展示如何从游乐场直接与 OpenAI 模型交互。

  • 提供使用游乐场时最大化结果的技巧和最佳实践。

到本附录结束时,您将具备使用 OpenAI 的游乐场及其模型的知识和信心,超越 ChatGPT。

在游乐场中尝试 OpenAI 模型

要访问 OpenAI 游乐场,您需要创建一个 OpenAI 账户并导航到platform.openai.com/playground。这是着陆页的样貌:

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

图 1:OpenAI 游乐场,位于 https://platform.openai.com/playground

如您从图 1中看到的,游乐场提供了一个用户界面,用户可以从中开始与模型交互,您可以在聊天界面的顶部选择模型。请注意,无论何时通过 OpenAI 游乐场使用模型,您都将根据交互量支付费用。您可以在 https://openai.com/api/pricing/找到定价页面。

在深入探讨游乐场的主要部分之前,让我们首先定义一些您在本章中会看到的术语:

  • 标记:标记可以被认为是 API 用于处理输入提示的词片段或段。与完整单词不同,标记可能包含尾随空格甚至单词片段。一般来说,一个英文标记大约相当于四个字符,或者是一个单词的三分之四(您可以在以下链接中参考如何将单词转换为 OpenAI 模型中的标记:https://platform.openai.com/tokenizer)。

  • 提示词:在自然语言处理(NLP)和生成式 AI 的背景下,提示词指的是作为输入提供给 AI 语言模型以生成响应或输出的文本片段。提示词可以是一个问题、一个陈述或一个句子,它被用来为语言模型提供上下文和方向。

  • 上下文:在 GPT 领域,上下文指的是用户提示之前的单词和句子。这个上下文被语言模型用来根据训练数据中发现的模式和关系生成最可能的下一个单词或短语。

  • 模型置信度:模型置信度是指 AI 模型对特定预测或输出的确定性或概率水平。在 NLP 的背景下,模型置信度通常用于表示 AI 模型对其生成的针对给定输入提示的响应的正确性或相关性的信心程度。

  • 工具:通过工具,我们为模型提供额外的技能,使其能够调用以完成用户的任务。一个函数总会有自然语言描述,以便模型知道何时调用它。

在 Playground 中,有四个主要部分可以与模型交互。让我们在下一节中探讨它们。

聊天

在这里,你可以测试今天所有可用的聊天模型,包括仅文本模型(如 GPT-3.5)和多模态模型(如 GPT-4o)。你可以提供系统消息——你提供给模型的指令集——全部使用自然语言。

定义

在 LLMs 的背景下,系统消息是在对话开始时提供的指令,用于确立模型的角色、行为和响应指南。这条消息设定了总体上下文,指导模型的交互以符合特定的目标或约束。例如,系统消息可能指定模型应充当友好的旅行顾问或保持正式的语气。这种配置可以在 AI 开发者后端级别设置,这样最终用户将无法访问它,因此无法“强迫”模型以不同的方式行事。

你还可以比较对同一问题的两个不同模型的输出。以下是如何做到这一点的示例:

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

图 2:两个模型之间比较的示例

对于每个模型,你还可以调整一些你可以配置的参数。以下是一个列表:

  • 温度(范围从 0 到 2):这控制着模型响应的随机性。低温度使模型更加确定,意味着它倾向于对相同的问题给出相同的输出。例如,如果我将温度设置为 0 多次询问我的模型“什么是 OpenAI?”的话,它大多数时候会给出相同的答案。另一方面,如果我用大于 0 的温度做同样的事情,它将尝试每次修改其答案,包括措辞和风格。

  • 最大令牌数:这控制着模型对用户提示的响应长度(以令牌为单位)。

  • 停止序列(用户输入):这使响应在期望的点结束,例如句子的结尾或列表的结尾。

  • 最高概率(范围从 0 到 1):这控制了模型在生成响应时将考虑哪些标记。这意味着模型将从累积概率总和达到分布 90%的最小标记集中进行选择。

  • 频率惩罚(范围从 0 到 1):这控制了在生成的响应中相同标记的重复。惩罚越高,同一响应中看到相同标记超过一次的概率越低。惩罚会根据标记到目前为止在文本中出现的频率成比例地减少(这是与以下参数的关键区别)。

  • 存在惩罚(范围从 0 到 2):这与之前的参数类似,但更严格。它减少了重复任何到目前为止已出现在文本中的标记的机会。由于比频率惩罚更严格,存在惩罚还增加了在响应中引入新主题的可能性。

助手

OpenAI 助手可以被视为一种更快、更简单地开发 AI 代理的方法。实际上,助手可以被定义为由 LLM 驱动的实体,具有要遵循的指令和要使用的工具或插件集。

在 OpenAI 助手的案例中,它们附带三个预构建的工具:

  • 文件搜索:这允许用户上传自定义文档,以便助手可以导航这些文档以完成用户的查询。它使用基于 RAG 的框架。

  • 函数调用:这允许用户定义一组自定义函数,这些函数可以被助手调用以完成特定任务。

  • 代码解释器:这指的是助手运行代码的能力,无论是针对提供的文档(例如,在需要数学计算的电子表格或分析论文的情况下)还是简单地解决用户提供的复杂任务(例如,复杂的数学问题)。

在以下屏幕截图中,您可以看到一个名为与 PDF 聊天的助手示例,该助手专门用于响应提供的文档(在我的情况下,我上传了 Hugo Touvron 等人撰写的论文《LLaMA:开放和高效的基座语言模型》)。

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

图 3:OpenAI 助手的示例

如您从前面的屏幕截图中所见,助手能够回答我的问题,从提供的文档中检索知识。实际上,我的问题相当模糊,因为“毒性”一词可以指多个领域;尽管如此,助手知道要监视提供的文档作为主要信息来源。

完成内容

本节涉及一类称为基础模型的模型,如 GPT-3。它们是所谓“助手模型”(或聊天模型,如我们之前所看到的)的基础。例如,聊天模型 GPT-3.5 Turbo(ChatGPT 背后的模型)是基础模型 GPT-3 的微调版本。

定义

完成模型(基础模型)旨在生成对提示的单个响应,这使得它们适合像文本生成和摘要这样的任务,而不需要在多次交互中保持上下文。另一方面,聊天(助手)模型针对交互式对话进行了优化,能够在多个回合中保持上下文,非常适合聊天机器人和虚拟助手等应用。

下面您可以看到游乐场中一个典型的完成任务的示例:

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

图 4:OpenAI 游乐场中完成任务的示例

如您所见,使用我的话“今天我去了一家杂货店和”,模型用最可能出现的词语完成了这个句子。

今天,完成模型很少使用,因为它们在聊天模型面前表现不佳,但它们可以被进一步微调以适应特定的用例(我们将在本节稍后讨论微调)。

文本转语音

除了上述的语音识别模型 Whisper 之外,OpenAI 还发布了一个 文本转语音TTS)模型,该模型可以直接在游乐场中测试。

让我们看看一个例子:

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

图 5:在游乐场中使用 OpenAI 的 TTS 模型的示例

如您从上面的截图中所见,您可以选择声音、模型、速度和生成的音频格式。

所有的前述模型都是预先构建的,也就是说,它们已经在庞大的知识库上进行了预训练。

然而,有一些方法可以使你的模型更加定制化,更适合你的用例。

定制你的模型

定制你的模型的第一个方法嵌入在模型的设计方式中,它涉及到在少量样本学习方法中向模型提供上下文。

例如,你可以要求模型生成一篇文章,其模板和词汇库回忆起你之前已经写过的另一篇文章。为此,你可以向模型提供生成文章的查询,以及前述文章作为参考或上下文,这样模型就能更好地准备你的请求。

这里有一个例子:

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

图 6:使用 OpenAI 游乐场中的少量样本学习方法的对话示例

在前面的例子中,我指示模型只输出推文情感的标签,并提供了三个如何做到这一点的示例。

定制你的模型的第二种方法更为复杂,被称为 微调。微调是将预训练模型适应新任务的过程。

在微调中,预训练模型的参数被调整,无论是通过调整现有参数还是添加新参数,以更好地适应新任务的数据。这是通过在针对新任务的小型标记数据集上训练模型来完成的。微调背后的关键思想是利用从预训练模型中学到的知识,并将其微调到新任务,而不是从头开始训练模型。看看下面的图:

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

图 7:模型微调

在前面的图中,你可以看到一个关于如何在 OpenAI 预构建模型上执行微调的架构。想法是,你有一个带有通用权重或参数的预训练模型可用。然后,你用自定义数据(通常是键值提示和完成)来喂养你的模型,如下所示:

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

一旦完成训练,你将拥有一个针对特定任务表现特别出色的定制模型,例如,对你公司文档的分类。

微调的好处在于,你可以根据你的用例定制预构建模型,而无需从头开始重新训练它们,同时利用较小的训练数据集,因此需要更少的训练时间和计算。同时,模型保留了通过原始训练学习到的生成能力和准确性,这是在大量数据集上进行的。

摘要

OpenAI 游乐场提供了一个强大的工具,通过零样本或少量样本学习和微调技术进行高级 AI 模型的实验。游乐场允许用户直接与预训练模型互动,使其更容易为特定任务(如情感分析或文档分类)进行定制和增强。

对于希望利用 OpenAI API 构建 AI 应用的开发者来说,掌握这些技术对于确定特定模型的配置是否满足特定应用的需求至关重要。

尽管本书的重点主要在 ChatGPT 上,但在企业级场景(我们在第十章中讨论过)中,当涉及到 AI 用例时需要更多定制的方法;这就是为什么熟悉游乐场和 OpenAI 模型 API 的概念对于拥抱这一波 AI 驱动应用开发的新思维非常有价值。

加入我们的 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

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

packt.com

订阅我们的在线数字图书馆,全面访问超过 7,000 本书和视频,以及领先的行业工具,帮助您规划个人发展并推进职业生涯。欲了解更多信息,请访问我们的网站。

为什么订阅?

  • 使用来自 4,000 多位行业专业人士的实用电子书和视频,减少学习时间,增加编码时间

  • 通过为您量身定制的技能计划提高学习效果

  • 每月免费获得一本电子书或视频

  • 完全可搜索,便于轻松访问关键信息

  • 复制粘贴,打印和收藏内容

www.packt.com,您还可以阅读一系列免费的技术文章,订阅各种免费通讯,并享受 Packt 书籍和电子书的独家折扣和优惠。

您可能还会喜欢的其他书籍

如果您喜欢这本书,您可能会对 Packt 的以下其他书籍感兴趣:

https://www.packtpub.com/en-in/product/generating-creative-images-with-dall-e-3-9781835089903

使用 DALL-E 3 生成创意图像

Holly Picano

ISBN: 9781835087718

  • 掌握 DALL-E 3 的架构和训练方法

  • 以精确的方式创建精细印刷和其他 AI 生成的艺术作品

  • 无缝融合人工智能与传统艺术

  • 解决人工智能艺术中的伦理困境

  • 探索数字创造力的未来

  • 为您的艺术追求实施实用的优化技术

https://www.packtpub.com/en-in/product/building-ai-applications-with-openai-apis-9781835884010

使用 OpenAI API 构建人工智能应用

Martin Yanev

ISBN: 9781835884003

  • 在使用 OpenAI API 进行自然语言处理任务方面打下坚实的基础

  • 构建、部署并将支付集成到各种桌面和 SaaS 人工智能应用中

  • 将 ChatGPT 与 Flask、Django 和 Microsoft Office API 等框架集成

  • 通过集成 DALL-E API 到您的桌面应用程序中,释放您的创造力,生成令人惊叹的 AI 艺术

  • 体验 Whisper API 的语音识别和文本到语音功能

  • 了解如何针对您的特定用例微调 ChatGPT 模型

  • 掌握 AI 嵌入技术以衡量文本字符串的相关性

Packt 正在寻找像您这样的作者

如果您有兴趣成为 Packt 的作者,请访问 authors.packtpub.com 并今天申请。我们已与成千上万的开发者和技术专业人士合作,就像您一样,帮助他们将见解与全球技术社区分享。您可以提交一般申请,申请我们正在招募作者的特定热门话题,或提交您自己的想法。

分享您的想法

您已经完成了《Practical Generative AI with ChatGPT, Second Edition》,我们很乐意听听您的想法!如果您在亚马逊购买了这本书,请点击此处直接进入亚马逊评论页面并分享您的反馈或在该购买网站上留下评论。

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

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐