OpenAI API包括一个微调服务,将任务分为“提示”和“完成”
https://platform.openai.com/docs/guides/fine-tuning
文档中说准确性指标是根据完成情况计算的,但对于损失,据说是“根据训练批次”计算的。
我的理解是,GPT模型的第一次训练总是以最大可用大小的批进行,使用特殊的标记来分离上下文,但总是要求预测所有条目的下一个标记。因此,这里的损失函数是所有输出上的明显交叉熵。但在微调中,有机会学习预测“模板提示”或不预测。这两个决定都可能是明智的;学习模板相当于训练语法分析,屏蔽模板可以避免过拟合。
那么,OpenAI目前的实践是什么?
1条答案
按热度按时间hjzp0vay1#
Open AI API有一个参数
prompt_loss_weight
,其默认值为0.01,而完成的权重始终为1.0。因此,是的,它将提示的预测视为损失函数的一部分。这种用法似乎与使用Huggingface transformers库等其他工具的微调教程不同,这些工具允许遮罩丢弃部分输出,但不考虑损失的不同权重。