> 工具软件 > Openai微调分类器以提高真实性 在一定比例的时间内,使用指导模型实现高质量输出通常相对容易,这足以在看到精心挑选的示例时给人留下深刻印象,但这可能不够可靠,无法部署到生产环境中。
例子
这通常发生在我们称为输入的生成转换的一类问题中,其中的任务是将以一种格式作为输入呈现的信息转换为另一种格式。这些任务包括:
根据结构化输入(例如产品名称、颜色、尺寸、类别)创建引人入胜的产品描述
将大量客户评论总结成描述性的中性语气摘要、广告或朗朗上口的标语
将一段内容重写为特定的品牌风格和格式,同时关注感兴趣的话题。(例如,根据有关新智能手机的新闻稿,写一则针对业余摄影师的广告。
根据提供的上下文回答问题。
出于本指南的目的,我们将专注于根据提供的上下文生成广告。我们希望广告是真实的,有上下文的支持并且引人入胜。
主意
更好的提示可以提高此任务的性能,在大约 50% 到 65% 的时间内给出好的结果,但通常不会超过。然而,当观察温度稍高的 ~5 个不同世代时,人类专家通常会发现一个具有高发布质量的世代。
我们将微调分类器以执行与人类专家相同的判别功能——从生成的样本数量中有效地选择最佳样本。最佳范围可能从一个领域到另一个领域,但通常真实性是能够“生产化”原型的主要限制因素。例如,时不时地出现一个稍微不那么吸引人的广告是可以容忍的,但一个不受输入支持的不真实的广告则不是。
此外,我们可以创建其他鉴别器,专注于验证广告对读者的吸引力。
方法
该方法可以分解为以下步骤:
创建一个生成合理完成的提示,其中一些将是高质量的。或者根据所需的生成任务微调模型。我们将这个模型称为生成器。
微调 ada 二元分类器,根据几百到一千个专家标记的示例对每个完成的真实性进行评级,预测“是”或“否”。或者,使用我们训练的通用预建真实性和蕴含模型。我们将这个模型称为鉴别器。
生成多个不同的完成 (10-50),这最容易通过提高生成器的温度来实现。
根据步骤 2 中鉴别器的“是”标签的预测对数概率对每个完成度进行排序,并仅选择对您的应用程序所需的真实性具有足够高置信度的完成度。如果没有完成达到该阈值,您可以尝试生成更多具有更高温度的样本,或者您可以返回一个特殊的输出,表示生成的样本都不够真实。
如何微调鉴别器?
请阅读案例研究:模型是否做出了不真实的陈述?有关此主题的更多背景信息。
格式化输入
{“prompt”:”Context:<elaborate dry context>\nAd:<generated ad>\nSupported:”, “completion”:”yes”}
{“prompt”:”Context:<elaborate dry context>\nAd:<generated ad>\nSupported:”, “completion”:”no”}
{“prompt”:”Context:<elaborate dry context>\nAd:<generated ad>\nSupported:”, “completion”:”yes”}
设置参数
我们建议使用 ada,因为它是最快的引擎,并且能够在微调后在分类任务中创建良好的预测。为了通过微调获得更好的分类性能,与少量学习相比,我们通常每个类至少需要 100 个示例。随着示例数量的任何翻倍,性能往往会线性增加。
判别器的准确性越高,就越容易找到模型对其有足够信心的样本。
如何使用鉴别器获得信心?
第一个生成的完成令牌的对数概率可用于确定置信度。获取对数概率,可以在完成请求中加上logprobs=2和logit_bias={‘645’: 100, ‘3763’: 100}参数,其中645和3763分别是`no`和`yes`的token ID . 在分类指南的最后一节中查看更多详细信息。“是”标记的对数概率越高,预测支持输出的置信度就越高。
如何确定对数概率阈值?
要确定一个阈值,超过该阈值,广告可能会在 98% 以上的时间内得到支持,我们可以:
使用鉴别器预测在保留数据集上“是”的概率
将对数概率度量转换为百分位数。这可以通过对预测进行排序,并为每个对数概率分配一个百分位等级来实现,它表示具有较低对数概率的预测的百分比。
对于每个百分位数,计算一个精度,即高于该阈值的实际真实广告的份额。
然后你可以找到一个精度刚好高于 98% 的百分位数。获得至少 98% 的精度所需的对数概率阈值是保留数据集上该百分位数的对数概率。
这是保留数据集上精度和真实性百分位数的图表。在此数据集上,98% 的精度是在 0.58 个百分位数处实现的,这对应于 -0.000685 的对数概率。