为什么你不能只训练ChatGPT(以及应该做什么)

ChatGPT中文站
Image by vectorjuice on Freepik

每个人,从销售团队到企业家,再到教授,都想使用ChatGPT使他们的工作更轻松。其强大的功能、易用性和自动化处理时间消耗的任务的能力太引人注目,不容错过。但是,对于如何使用ChatGPT与您自己的专有数据的共同误解,即使是那些每天使用ChatGPT的人也是如此。虽然大多数ChatGPT用户今天正在使用它来改善他们的网站,但他们中的许多人希望能够自定义ChatGPT,使其适用于他们的数据,他们认为这样做就像“喂入”所有文档到ChatGPT中,以便它可以成为对其中内容的专家一样简单。实际上,ChatGPT需要进行精细调整,或提供上下文信息而不超过上下文窗口大小,而“喂入文档”的行为今天并没有做任何事情,只是为以后的问题提供了上下文。但是,有绕过这些障碍的方法,虽然需要额外的工程努力和基础设施,但是可以使用ChatGPT与您自己的数据。

教授ChatGPT

当OpenAI创建ChatGPT时,他们必须训练它以提供用户提示的正确响应。这个看似简单的行为实际上是一个大规模数据科学和工程技巧的壮举,需要许多复杂的步骤和互联网规模的数据。最终系统,我们今天使用的系统,现在能够以表现智能的方式对各种提示做出相应的回应。它是一个通用系统,可在各种主题上提供高质量的回复,但它不能使用您的特定数据,因为它以前没有见过,也无法满足您特定工作的需求。这意味着您不能要求它从您的知识库回答基于事实的问题,或者为您的SaaS平台上的用户提供回答有关其帐户的问题的接口,或者根据他们的订单信息为您的客户提供客户服务。任何需要特定的专有知识的用例,如果它没有被训练或没有足够的经验来提供恰当的回应,将导致幻觉或简短不足的回答。

您可以看到ChatGPT的训练过程非常复杂,大多数人和企业无法掌握,但是有几种方法可以使用ChatGPT处理自己的数据或用于自己的用例:

  1. 用您自己的示例提示和响应对ChatGPT 3进行微调
  2. 每次提问时提供上下文信息
  3. 提供一些可用于学习如何适当回应的示例。

在这三种情况下都存在一些权衡取舍,当然可能没有一种选项适合您的使用情况,但我发现其中至少一种选项通常对大多数企业而言是足够的。在本文的其余部分,我将更深入地探讨每个选项。

Fine-tuning调优

ChatGPT 介绍

ChatGPT 是一个大型语言模型(LLM),这意味着它学习了一系列通用规则、策略、概率和方法,以提供对提示的自然语言响应。就像与人类一样,LLM需要学习大量技能来进行写作——从简单的语法构成到高级概念和推理技巧。OpenAI 提供了一种微调 ChatGPT 的方法,这意味着您可以使用更大、更通用的模型(已经学会所有这些技能)来重新训练它学习特定领域的信息,从而使其成为新数据的专家。

这听起来恰好是你需要的,但是有一些注意事项使得这种策略对许多公司来说是不可行的。

使用这种策略的最大障碍是,截至本文发布时,甚至不可能在OpenAI的最新模型ChatGPT 3.5和ChatGPT 4上使用。目前,微调仅在ChatGPT 3上可用,它是比其最新兄弟模型更少功能的模型。即使你训练 ChatGPT 模型使用您自己的数据,其底层的训练逻辑的推理、分析和概念化技能也不如3.5或4,所以即使它成为您数据上的专家,它也可能不足以满足您的需求。

使用微调的第二个问题是需要许多例子用于训练过程。你需要为微调ChatGPT提供一组的例子,在一般情况下,你提供的例子数量越多,模型就学得越好。这个被称为“标注”的过程在机器学习领域中被广泛认为是构建机器学习系统中最耗费时间、费用和人力的部分之一。你可能已经有许多prompt + response的例子可以使用,但即使你拥有数千个例子,当你微调ChatGPT时,它仍然只能从你提供的例子中学习,没有记忆任何概念性数据或上下文信息。这意味着你需要有足够广泛的例子集,模型才能学会一切需要回应你提出的问题的知识。我听说在微调ChatGPT之前,需要几千个例子才能得到生产级别的结果。

对于大多数企业来说,调整ChatGPT并不是开始使用ChatGPT处理自己的数据的最佳选项。

上下文信息检索

提供足够的上下文信息是调整ChatGPT的另一种选择,以使系统可以完全从所提供的上下文中回答问题。在这一策略中,每次询问ChatGPT回答时,您都会提供与用户问题相关的广泛信息集,并指示ChatGPT使用您提供的上下文信息进行回答。这种策略在从ChatGPT中检索事实或基于上下文的信息方面效果很好,但它也有其缺点。

首先,当您想让ChatGPT提供大型、特定上下文的文档时,如论文或剧本时,它无济于事。它主要用于信息检索、搜索和问题回答。

尽管这些可能是可以接受的权衡,但上下文信息检索的更大问题在于为每个问题提供正确的上下文环境。ChatGPT一次只能接受几千个单词,这意味着您无法为问题提供大量百科全书信息。这意味着您需要能够在发送提示时智能地选择正确的上下文。目前的最新技术是将所有潜在信息源存储在向量数据库中,然后,当用户提出新问题时,使用向量数据库来查找您的文档中有可能包含答案信息的部分。这需要用户提出一个具有足够特定性的问题,以便向量数据库可以高效地找到相关文档,并且还需要创建、维护和支付服务器基础设施来存储和检索这些文档。

另一个担忧是这种策略并不总是容易找到文档,或者文档中包含答案的部分,考虑到ChatGPT有限的上下文窗口,可能需要多次提供正确的上下文信息给ChatGPT来寻找答案。这可能会增加用户获取答案所需的时间,也会增加使用ChatGPT的成本,因为更多的文档导致更多的标记使用。

一个关键警告是,实施上下文信息检索策略时,用户可能会认为一旦他们向ChatGPT提供了一些上下文信息,ChatGPT就会从这些上下文信息中学习,以便在以后的交互中使用。实际上,除非OpenAI将它们纳入培训过程中,否则ChatGPT不会从这些提示和答案中学习,因此用户可能会因每次询问类似问题时需要提供多轮相同的上下文信息而感到沮丧。由于这些问题,最好使用ChatGPT的API实现自动化过程来实施这种策略。

少样本学习

无论您使用微调还是上下文信息检索,都有一种策略可能有助于ChatGPT利用您自己的数据提供更好的更加明智的答案,那就是给它提供您希望在提问时您所需的响应的示例。这种特殊的方法更像是一种策略而不是策略,因为它是一种优化您的答案的方法,无论是否提供ChatGPT与您自己的数据。在这种方法中,每当您向ChatGPT提出问题时,您可以为其提供几个类似问题和答案的示例,然后它可以使用这些示例推断应该如何回答您。这可能有助于它提供更相关于您数据的答案,但它应该允许您拥有更有针对性和相关的答案,因为您向ChatGPT展示了它在响应您时应该如何思考和响应。

最后的选择

如果这些策略对您都不吸引,您可以使用来自 HuggingFace 等供应商的开源模型来使用自己的数据学习自己的 LLM。虽然这些模型通常被认为比 ChatGPT 能力较弱,并且您可能需要大量文本数据来生成合理的模型,但这种策略将允许您创建一个高度特定于您所需的领域的系统。这将需要一支精通数据工程、数据处理和基础设施创建与维护的优秀工程和运维团队。大多数公司不会从这种方法中获得很多好处,但可能对您有用。

无论使用什么方法,始终要考虑你所构建的系统的目标、预期使用方式和用户群体。这些都是创建任何系统时都需要重视的因素,但尤其在大型语言模型领域尤为重要。如果您有兴趣探索任何这些技术,在Locusive,我们正在创建企业可以使用的系统和软件,以将其数据与ChatGPT连接起来。如果您认为我们可以提供帮助,请随时与我们联系。

2023-10-20 16:43:41 AI中文站翻译自原文