无需标注即可Prompt Engineering:3种评估Prompt效果的无监督方法

大模型云安全机器学习
引言

Prompt Engineering的过程就是选择效果更好的prompt的过程,其关键在于 衡量prompt的效果

本文介绍3种 无需Ground Truth的prompt效果衡量方法 :Entropy(包括GlobalE、LocalE)[1]、Mutual Information(MI)[2]、Minimum Description Length(MDL)[3]。

无需Ground Truth意味着,在没有验证集或验证集数量不足的情况下,仍然可以用这些方法来prompt engineering。

关注笔者

方法1:Entropy(GlobalE和LocalE)

包括2种方法: Global EntropyLocal Entropy

  • Global Entropy(GlobalE)

核心思想:对一批样本而言,好的prompt不会产生非常不均衡的label分布。

picture.image

picture.image

picture.image

即给定1批unlabel data,对每个data赋予概率最大的label,然后计算label分布的熵,这个值就是GlobalE。GlobalE希望 越大越好

这一思想和Label Bias Calibration技术[4])是一体两面。 Bias Calibration技术的思路是在prompt固定的前提下,尽量消除label bias,而prompt engineering的思路是一开始就要挑选label bias小的prompt。 (感兴趣的读者可移步笔者有关Bias Calibration的文章

  • Local Entropy(LocalE)

    核心思想:对单个样本而言,好的prompt不会产生过于自信的预测

picture.image

picture.image

这一思想与GlobalE的思想一脉相承,LocalE也是希望 越大越好

方法2:Mutual Information(MI)

核心思想:好的prompt能够最大化(prompt + x)与Y之间的互信息。

picture.image

picture.image

picture.image

其中f(x)可理解为prompt + x,也就是经过处理后给到LLM的input。

从公式上看, H(Y)类似于GlobalE指标(但此处未进行One-Hot转换),H(Y|f(x))等同于LocalE

也就是说,给定一批unlabel data,MI方法希望 整体预测的label分布更均匀,同时单个的预测又要更自信 。其中第二点 与LocalE正好相反。

方法3:Minimum Description Length(MDL)

核心思想:好的prompt能够更好地压缩信息。

作者引入 Minimum Description Length(MDL)方法,公式如下。

picture.image

其中第二项与排序无关,可忽略,第一项的计算公式如下。

picture.image

由于没有label y,因此使用数学期望来进行近似,公式如下。

picture.image

因此最终的排序公式如下。

picture.image

从最终公式来看, MDL方法等同于最小化LocalE,与LocalE的思路相反

同时论文作者提到,当有验证集时,无需再用数学期望来近似, 此时MDL等同于交叉熵loss ,说明了MDL方法的合理性。

Corpus Level & Instance Level讨论

这里有必要介绍prompt enginerring的两种粒度:

  • corpus level :面对一个Task Corpus,进行一次prompt engineering,选出一个prompt之后,后续所有的test instance都使用这一个prompt;
  • instance level :对于每一个test instance,进行单独的prompt engineering,选择不同的prompt。

instance level的效果上限比corpus level 更高 ,但同时也 更耗时 ,每一次inference都需要调用多次LLM来进行prompt engineering,如果使用收费API,那么费用是 成倍增长 的。(并且很遗憾的是,研究指出LLM之间的prompt engineering是较难迁移的[1],因此无法用小LLM来减少这个挑选成本)

在原论文中,GlobalE、LocalE、MI都应用在corpus level场景,MDL则应用在instance level场景。

那么,GlobalE、LocalE、MI可以应用在instance level场景吗? 答案是:LocalE可以,其他不行。当只有一条样本时,GlobalE和MI均=0,无法用于prompt排序。

MDL可以应用在corpus level场景吗? 答案是:可以。不严谨地看,MDL就是-LocalE,当然也可以使用了。

因此,当你需要corpus level的prompt engineering时,本文介绍的方法都可以尝试;当你需要instance level时,可以尝试LocalE与MDL。

总结

本文介绍的3种方法之间互有联系,本质上属于同一类方法,只是细节各有不同。

由于目前的LLM对于prompt仍然敏感,进行良好的prompt engineering非常重要。有足够验证集的时候,可直接通过验证集的表现来挑prompt;而如果没有验证集、或验证集数量不足,则可以尝试本文的方法。

至于本文的哪一个方法更好,综合理论本身以及各论文的实验结果,笔者的感觉是: 如果你需要corpus level的prompt engineering,那么优先尝试MI方法,如果你需要instance level,那么优先尝试MDL方法

另外,这些方法属于无监督学习范畴,可以发现,在LLM时代,经典理论仍然是很重要的。

参考资料

[1] Fantastically Ordered Prompts and Where to Find Them: Overcoming Few-Shot Prompt Order Sensitivity: https://aclanthology.org/2022.acl-long.556/

[2] An Information-theoretic Approach to Prompt Engineering Without Ground Truth Labels: https://aclanthology.org/2022.acl-long.60/

[3] Self-Adaptive In-Context Learning: An Information Compression Perspective for In-Context Example Selection and Ordering: https://aclanthology.org/2023.acl-long.79/

[4] Calibrate Before Use: Improving Few-shot Performance of Language Models.: http://proceedings.mlr.press/v139/zhao21c.html

关注笔者

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论