openAI-微调分类器以提高真实性

目的

在一定比例的时间内,通过指导模型实现高质量的输出通常是相对容易的,这足以在看到精心挑选的示例时留下深刻印象,但这可能不够可靠,无法部署到生产中

例子

这通常发生在一类问题中,我们称之为输入的生成转换,其中的任务是将以一种格式呈现的信息转换为另一种格式。这些任务包括:

  • 根据结构化输入(如产品名称、颜色、尺寸、类别)创建吸引人的产品描述
  • 将大量客户评论总结为描述性、中性的总结、广告或吸引人的标语
  • 将一段内容改写为特定的品牌风格和格式,同时关注感兴趣的主题。(例如,根据一份关于新智能手机的新闻稿,写一则针对业余摄影师的广告。
  • 根据提供的上下文回答问题。

在本指南中,我们将着重于根据提供的上下文生成广告。我们希望广告真实、有背景支持、引人入胜。

想法

更好的提示可以提高该任务的性能,在大约50%到65%的时间内,但通常不会超过50%。然而,当观察温度稍高的约5代不同世代时,人类专家通常会发现一代具有高出版质量。

我们将对分类器进行微调,以执行与人类专家相同的辨别功能,从而有效地从生成的样本数量中选择最佳样本。最佳可能从一个领域到另一个领域,但通常真实性是“产品化”原型的主要限制。例如,偶尔出现一个稍微不那么吸引人的广告是可以容忍的,但不受输入支持的不真实的广告则是不可容忍的。

此外,我们还可以创建其他鉴别器,以验证广告对读者的吸引力。

openAI-微调分类器以提高真实性_第1张图片
该方法可分为以下步骤:

  1. 创建一个提示以生成合理的完成,其中一些将是高质量的。或者,根据所需的生成任务微调模型。我们将此模型称为生成器。
  2. 微调 ada 二元分类器,以根据几百到一千个专家标记的示例对每个完成的真实性进行评分,预测“是”或“否”。或者,使用我们训练的通用预构建的真实性和蕴涵模型。我们将这个模型称为鉴别器。
  3. 生成许多不同的完成(10-50),这最容易通过提高发电机的温度来实现。
  4. 根据步骤 2 中鉴别器“yes”标签的预测对数对每个完成进行排名,并仅选择具有足够高置信度的完成,以确保应用程序所需的真实性。如果没有完成达到该阈值,您可以尝试生成更多具有更高温度的样本,或者您可以返回一个特殊输出,指出生成的样本都不够真实。

如何微调鉴别器?

格式化输入

{“prompt”:”Context:\nAd:\nSupported:”, “completion”:” yes”}
{“prompt”:”Context:\nAd:\nSupported:”, “completion”:” no”}
{“prompt”:”Context:\nAd:\nSupported:”, “completion”:” yes”}

设置参数

我们建议使用 ada,因为它是最快的引擎,能够在微调后的分类任务中创建良好的预测。为了通过微调获得更好的分类性能,与少量镜头学习相比,我们通常需要每个类至少 100 个示例。随着示例数量的翻倍,性能趋于线性增加。

鉴别器的精度越高,就越容易找到模型足够自信的样本。

如何使用鉴别器来获得信心?

第一个生成的完成令牌的日志概率可用于确定置信度。要获取对数概率,可以将 logprobs=2 和 logit_bias={‘645’: 100, ‘3763’: 100}参数添加到完成请求中,其中 645 和 3763 分别是“no”和“yes”的令牌 ID。有关更多详细信息,请参阅分类指南的最后一部分。“yes”令牌的对数概率越高,预测支持输出的置信度就越高。

如何确定对数概率阈值?

要确定广告在98%以上的时间内可能被支持的阈值,我们可以:

  1. 使用鉴别器预测保留数据集上“yes”的概率
  2. 将对数概率度量转换为百分位数。这可以通过对预测进行排序来实现,并为每个对数概率分配一个百分位排名,该排名表示具有较低对数概率的预测的百分比。
  3. 对于每个百分位数,计算一个精度,即在该阈值以上找到的实际真实广告的份额。
  4. 然后,您可以找到精度略高于 98% 的百分位数。获得至少 98% 精度所需的对数概率阈值是保留数据集上此百分位数的对数概率。

这是保留数据集上的精度和真实性百分位数的图表。在此数据集上,98% 的精度是在 0.58% 处实现的,对应于 -0.000685 的对数概率。
openAI-微调分类器以提高真实性_第2张图片

从图中可以看出,如果我们接受任何对数概率为“yes”高于此阈值的样本,我们希望这些样本在~98%的时间内得到支持。这意味着,如果我们使用单个样本,我们只能在56%的时间内达到足够的精度。

通过生成更多样本提高真实性

通过生成几个样本,然后选择对数概率最高的一个,我们可以增加所选广告确实真实的概率。通过生成3个样本,我们可以达到98.3%的充分真实性阈值。通过生成10个样本,这可以提高到99.6%,通过生成17个样本,可以提高到99.5%。随着样本数量的显著增加,我们可以观察到这种方法的收益递减。
openAI-微调分类器以提高真实性_第3张图片

训练一个好的鉴别器需要多少样本?

精确召回曲线下面积(auprc)通常用于机器学习,以评估鉴别器性能。我们比较了微调鉴别器的性能,因为我们增加了训练示例的数量,使其达到了0.8 auprc的零炮davinci指令beta基线。
openAI-微调分类器以提高真实性_第4张图片
正如我们所看到的,当我们增加微调训练示例的数量时,任务的微调性能会增加。通常每个类需要大约100个示例,以获得比提示设计更好的性能,这也可以在这个数据集上观察到。然后,当我们将微调训练集的大小加倍时,性能保持大致线性增长。

我们想测试在一般推理任务上训练的模型在这个问题上的表现。它的表现似乎与20个例子的微调模型大致相同,或者是一个零射击的davinci指令测试版精心设计的提示。

可能扩展到多个鉴别器

我们可以训练多个鉴别器,并以有趣的方式组合它们的输出。

例如,我们可以训练鉴别器来预测生成的广告有多吸引人,然后从足够真实的广告中选择最吸引人的广告。

结论

通过使用所述技术采样10代,我们能够将可发布内容的百分比提高到99.5%以上。

你可能感兴趣的:(openAI,人工智能,深度学习,算法)