GPT 模型直到 2022 年 11 月才广泛流行,当时 OpenAI 构建了其语言模型的继任者ChatGPT 。自 2023 年 3 月起,ChatGPT 现已正式发布,带有 API 和 SDK,可将模型集成到您的产品中。虽然表面上有过多的应用程序,但 ChatGPT 为不同类型的技术和业务流程提供了广泛的改进。所以在这里我们将测试最可行的方法,看看它能把我们带到哪里。
我将与您分享我对我们如何从不同自动化级别的 GPT 模型中获益的看法,同时为您提供对“我需要什么才能在我的产品中实施 GPT 模型?”这个问题的简明回答。
请注意:所有测试都是在预发布阶段进行的。
如果您已经知道什么是 ChatGPT 和其他 GPT 模型,则可以跳过这一部分。因为在这里,我将从不同的角度定义 ChatGPT ,以及如何利用它的能力来挖掘数据并为我们提供必要的信息。最简单的方法是简单地询问模型,以下是 ChatGPT 识别自己的方式:
ChatGPT是在GPT 3.5基础上开发的最新GPT模型。它能够以对话的形式与用户互动,并根据 2021 年之前的事件和信息提供几乎所有问题的答案。GPT 模型非常有能力解决一系列自然语言处理 (NLP) 任务定制的可能性,例如:
截至 2023 年 3 月,ChatGPT 可通过 API 使用,Snapchat 等一些公司已经在使用它。因此,从技术角度讨论如何将 ChatGPT 集成到您的应用程序中是有意义的。这里有一些选择:
在这里,该模型作为智能目录运行,帮助用户浏览内容并使用 GPT 的响应更快地做出选择。但是,定制和个性化不可用。
此类模型可用于根据用户操作/期望和其他用例创建个性化的聊天机器人推荐系统。使用您自己的数据,可以训练 GPT 模型以引入个性化元素。微调 GPT 模型所需的数据量取决于各种因素,例如数据集的大小和复杂性,以及模型的预期性能。通常,至少需要几百个示例才能有效地微调 GPT 模型。然而,在复杂领域中,可能需要数万甚至数百万个示例才能达到最佳模型性能。
要了解您是否需要微调模型,我建议您执行以下 5 个步骤:
请记住,GPT 模型并不是一个涵盖开箱即用的所有域领域的完整产品。您还需要它的应用程序和后端的管理工具。然后,必须使用 NLP 方法处理 GPT 模型的输出,以便提取有意义的信息。该模型以多个句子的文本形式返回答案,如列表。此输出应以一个或多个单词的形式呈现,将在管道的以下部分中用作过滤器或关键字。所以这意味着 GPT 模型也将需要其他模型才能运行。
知道了这一点,让我们讨论 GPT 模型作为适合不同业务和技术需求的补充工具。
ChatGPT 比其前辈更强大,因为它是在强化学习与人类反馈 (RLHF) 技术的帮助下进行训练的。与同样流行的 GPT 3 模型相比,这提供了显着的性能水平。正因为如此,ChatGPT 现在被用于使用其 NLP 功能的一系列业务和技术任务。让我们问一下 ChatGPT 对其业务用例的看法:
在这里,我们可以看到模型提供了一个答案,列出了一些最常见的用例。由于该模型依赖的数据仅限于 2021 年,因此它甚至不是完整列表,而且我们可以将大量低级任务委托给 ChatGPT。我们也可以尝试缩小我们的关注点,并在单个领域中提取一些价值:
基于这些示例,我们可以针对三个最有前途的业务用例得出一系列结论:
ChatGPT 是一款功能强大的对话机器人,可以使用您自己的数据进行定制。由于即使语法结构损坏或句法部分缺失,它也能正确理解问题,因此它可以被视为客户支持系统即聊天机器人的现成解决方案。
在上一点之后,相同的功能可以用于潜在客户生成活动,因为在大多数情况下,ChatGPT 的语音级别与人们可以编写的内容没有太大区别。
在某些时候,GPT 模型可能会成为现代商业智能和数据分析解决方案的替代方案。因为它们可以对庞大的历史数据数据库进行操作,并为人类工作者提供有价值的见解。
然而,当涉及到需要不断更新和最新可用信息的实时数据分析时,GPT 模型就显得笨拙了。使用 RLHF 技术进行训练的过程很复杂,除此之外,它还需要一个具有自动再训练和重新部署模型的机器学习管道。这有点像火箭科学……现在。
所以严重依赖实时数据更新的应用程序还不太适合 GPT 模型。我们还能用它做什么?
关于语言模型和神经网络最流行的说法之一是,它们绝对可以胜任文案的工作,或者至少可以在很大程度上提高写作速度。让我们看看今天是否如此。我们将使用两种类型的请求来检查模型将如何处理有关软件工程主题的文章写作。第一种类型的请求只是陈述文本的总体思路,而第二种类型的请求将指定我希望模型描述的内容并提供专家意见或论据。
请求:“给我写一篇关于不同 PHP 框架的文章。”
ChatGPT 输出:
请求:“给我写一篇关于 Laravel 和 Symfony 框架之间区别的文章,以及我应该为电子商务应用程序选择哪种 PHP 框架。”
ChatGPT 输出:
在这两种情况下,该模型都很好地处理了有关信息观点的主题。语法和文体上的文本也很好。但是,论到创意水平、易读性、推理性、某点的论证性,就显得很标准,没有说服力。
虽然 ChatGPT 当然可以生成一些蓝图来简化您的营销工作,但它给人工校对人员带来了一个问题。由于模型自行解析数据,因此很难找到信息来源并证明模型的主张。因此,要用于营销目的,ChatGPT 需要微调和 AI 可解释性等附加功能才能有效和有用。
如果 GPT 模型可以说人类语言,那么没有什么能阻止他们使用编程语言来编写应用程序。我们的 PHP/DevOps 小组负责人 Anton Logvinenko 对此进行了测试,以了解通过利用该模型在 PHP 中为各种功能编写代码可以取得什么结果。
请求:“在 Laravel 框架上编写一个 PHP 代码,它将显示用户列表”。
ChatGPT 响应:
在大多数情况下,这段代码肯定会起作用。在这个特定的例子中,它缺少数据库结构,以及每个用户有哪些字段,比如名字和姓氏。所以你应该记住,目前 ChatGPT 没有为你提供可以现成使用的完成代码。
我可以看到的用例是支持初级开发人员学习 PHP 或其框架,并稍微加快这个过程。虽然代码本身是以语法正确的方式编写的,但仍有很多地方需要改进。
安东·罗格维年科
PHP/DevOps 组长
请求:“编写一个 PHP 代码,实现带有文章资源 CRUD 端点的 REST API”。
ChatGPT 响应:
再一次,看看模型的建议,代码看起来像是 PHP 的初学者级别的工作,但如果您设置数据库、配置访问等,它很可能会工作。尽管这段代码是以实习生 PHP 开发人员的水平编写的,但它没有使用任何可用的框架,也没有经过优化,您也无法轻松地将其扩展到整个应用程序。此外,ChatGPT 还存在 SQL 注入形式的潜在安全威胁,这在任何情况下都不好。
安东·罗格维年科
PHP/DevOps 组长
ChatGPT 响应:
在此示例的第一次尝试中,我希望 ChatGPT 根据提供的示例生成项目树。然而,输出结果是垃圾代码,我发现我没有在提示中指定它是一棵树。因此,在第二次尝试时,我添加了对输出所需内容的解释。
安东·罗格维年科
PHP/DevOps 组长
ChatGPT 响应:
在第二次尝试中,ChatGPT 完成了任务,除了代码质量之外,树看起来还不错。我们可以从这个小实验中得出什么结论?显然,ChatGPT 还不能取代软件工程师,因为方法和代码编写的质量仍然很浅。但归根结底,随着时间的推移,这件事肯定会有所改善。目前,将 ChatGPT 称为自动代码编写器还为时过早。
Anton Logvinenko PHP/DevOps 组长
如果您正在考虑部分自动化编码工作流程并支持您的开发人员的选项,我们建议您使用Copilot 。 Copilot 使用 OpenAI Codex 实时建议代码片段和函数,事实证明它更容易被中级/高级软件工程师使用,并且代码质量更高。与仅通过谷歌搜索完成代码所需的内容相比,Copilot 可实现更快的工作流程,因此是 ChatGPT 目前建议的更好替代方案。
鉴于我们知道 GPT 模型可以完成大部分 NLP 任务,我们可以将其视为训练您自己的语言模型的替代方案。遵循这一传统,我将通过质疑 ChatGPT 为什么它是比训练自定义 NLP 模型更好的选择来提供基础知识:
认识到这种方法的局限性很重要。由于 GPT 模型无法访问实时数据,因此它们只能帮助您在没有初始数据收集的情况下启动某些服务。随着时间的推移,您将能够从模型与用户的交互中收集实时数据,但这并不能作为所有特定 NLP 任务的修补程序。
相反,我们可以考虑可以使用 GPT 模型的数据科学中的其他应用领域。
为了构建分类、回归或预测模型,我们需要执行探索性数据分析 (EDA) 步骤。 EDA 使我们能够找到数据中不同特征之间的关系,并表示洞察力和异常值,以了解这种或那种异常行为的原因。因此,大多数数据科学项目将需要执行 4 个步骤:
在 GPT 模型的帮助下,上述管道可以简化为对 GPT 模型的单个精心制定的请求。例如,让我们使用有关亚马逊季度销售数字的请求,并要求 ChatGPT 从该信息中提取见解。
在这里,我们可以看到 ChatGPT 根据之前提供的数据得出了哪些见解和结论:
ChatGPT 响应:
“见解:
结论(原因):
模型的输出质量可能会有所不同,因此确实需要对初始提示进行监督或微调。但是,可以轻松应用此类功能来简化 EDA 阶段,并有可能使数据科学管道任务自动化。
在各种平台和各种应用程序中,推荐系统或推荐引擎已变得与搜索引擎一样普遍。推荐执行一项非常重要的任务:了解每个客户的偏好,建议相关内容并尽可能长时间地让客户留在平台上。
但是,尽管推荐系统可以提供竞争优势,但我们无法在不收集数据、试验和训练工作模型的情况下构建推荐系统这一事实似乎是不是每个人都能负担得起推荐的主要原因。要开始推荐,我们通常需要先收集有关我们内容的数据,然后有条不紊地跟踪我们的客户倾向于哪些内容类别。
在这种情况下,我们可以使用 ChatGPT 作为推荐引擎的替代方案,因为它内部已经拥有大量数据。虽然它没有针对您的内容进行微调,也不知道您用户的搜索历史记录,但一旦我们使用足够具体的提示,它就可以提供相当具体的建议。
例如,我们使用了这种类型的请求:“我想去旅行。我有一个 2 岁的孩子,喜欢在海边度过时光。我应该去哪儿?”。这是输出:
ChatGPT 回复:“和 2 岁的孩子一起去海边旅行是个好主意。以下是一些可能适合您和您的家人的目的地建议:
值得注意的是,这些目的地还为成人和儿童提供各种其他活动和景点,例如游泳、日光浴、水上运动、游乐场和主题公园。在做出决定之前考虑其他因素也很重要,例如天气、安全和可达性。”
如果我们通过添加详细信息来指定我们的请求,答案可能如下所示:
请求:“我想去旅行。我有一个 2 岁的孩子,喜欢在海边度过时光,我有 3000 美元。我应该去哪儿?”。
ChatGPT 响应:
“和 2 岁的孩子一起去海边旅行是个不错的主意。在计划您的旅行时考虑您的预算很重要。以下是一些在您的预算范围内可能适合您和您的家人的目的地建议:
值得注意的是,这些目的地还为成人和儿童提供各种其他活动和景点,例如游泳、日光浴、水上运动、游乐场和主题公园。此外,与 2 岁的孩子一起旅行时,重要的是要考虑可达性、安全性以及优质住宿和服务的可用性,例如好的医院和儿童保育设施。”
如您所见,输出未围绕我们作为请求提供的参数构建,因为模型试图通过初始提示。甚至那些原始结果也比尝试通过应用数十个过滤器来查找内容表现得更好,因为它需要一个人使用正确的词来获得令人满意的结果。这基本上是基于 NLP 的建议相对于标准方法的主要优势。
由于 GPT 模型是在文本数据上训练的,因此很明显我们不能以这种方式取代计算机视觉模型。然而,ChatGPT 可以简化计算机视觉管道某些部分的实现,例如:
ChatGPT 提供的信息在为不同领域的计算机视觉模型分析和准备数据时非常有用。例如,在 OCR 任务中,该模型可用于从图片中拖动文本,如身份证识别。这是准备训练数据的一个单独步骤。
由于身份证在每个国家/地区都有自己的格式和不同的字段,因此识别身份证的任务可能非常耗费资源。使用 GPT 模型,我们可以减少从图像中提取文本数据所需的时间,因为 ChatGPT 可以自行处理管道的某些部分。
提示工程基本上是创建像技术任务一样传递给 GPT 模型的工作输入文本的学科。输出将始终取决于您如何解释您的需求,它涉及了解什么是指向您请求的各个方面的最佳方式,这样模型就不会为您产生一些科学怪人。 GPT模型快速开发有几个基本原则:
具体:提示越具体,生成的文本与手头的任务就越相关。
定义上下文:模型拥有的上下文越多,GPT 模型的任务就越清晰。以您希望收到答案的相同语言和相同术语(使用域区域的功能)设置提示。
在提示长度和特异性之间找到折衷:更长和更具体的提示可以导致更准确和相关的答案,但也会使模型管理复杂化。在某些情况下,复杂而冗长的提示会触发模型中断并写入未完成的响应,我们在测试期间曾多次遇到这种情况。
以下所有示例都是在预发布阶段利用 ChatGPT 制作的,它显示出比其前身更好的结果。然而,OpenAI 在 2023 年第一季度宣布了 GPT 4 模型,它使用的数据样本是 GPT 3 的 500 倍。因此,跟踪发布日期也很有意义,而且情况非常动态,你可能更喜欢OpenAI 为您的产品开发的未来模型。
GPT 模型的主要优点是能够在没有初始大量数据的情况下找到解决问题的方法。显然,此类模型无法完全替代所需的功能。然而,在产品的第一次迭代中,使用此类模型有助于开始开发,在为用户提供服务的同时收集自定义数据。
也发布在这里。