[ICML2023] PromptBoosting: Black-Box Text Classification with Ten Forward Passes

PromptBoosting: Black-Box Text Classification with Ten Forward Passes

原文链接

Hou B, O’connor J, Andreas J, et al. Promptboosting: Black-box text classification with ten forward passes[C]//International Conference on Machine Learning. PMLR, 2023: 13309-13324.
[ICML2023] PromptBoosting: Black-Box Text Classification with Ten Forward Passes_第1张图片
核心思想:不优化prompt,而是优化verbalizer,把多个弱prompt和弱verbalizer用AdaBoost算法整合在一起。

verbalizer M M M 的作用是将LLM输出的词汇概率分布映射到类别集合中,而一个weak learner就是有限地优化一下矩阵 M M M

对于一个Verbalizer,作者基于L1 loss做了一遍数学推导,然后"state without detailed derivations"地说 M M M应该是啥样的。反正这个过程我觉得也略奇怪,可能是我的现代水平不够吧。不过这一步也只是为了得到一个能用就行的verbalizer。

得到每个prompt对应的verbalizer后,推理时用AdaBoost将这些弱分类器组合起来,AdaBoost简介转自知乎。
(1)首先,是初始化训练数据的权值分布D1。假设有N个训练样本数据,则每一个训练样本最开始时,都被赋予相同的权值:w1=1/N。
(2)然后,训练弱分类器hi。具体训练过程中是:如果某个训练样本点,被弱分类器hi准确地分类,那么在构造下一个训练集中,它对应的权值要减小;相反,如果某个训练样本点被错误分类,那么它的权值就应该增大。权值更新过的样本集被用于训练下一个分类器,整个训练过程如此迭代地进行下去。
(3)最后,将各个训练得到的弱分类器组合成一个强分类器。各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器的权重,使其在最终的分类函数中起着较大的决定作用,而降低分类误差率大的弱分类器的权重,使其在最终的分类函数中起着较小的决定作用。
换而言之,误差率低的弱分类器在最终分类器中占的权重较大,否则较小。

[ICML2023] PromptBoosting: Black-Box Text Classification with Ten Forward Passes_第2张图片

这样做之后,整个模型就训练完成了。测试结果虽然不能SOTA,但胜在参数量小、速度快。另外这篇工作还主打一个框架性,因为什么样的prompt都可以作为弱分类器的prompt,但其实有点局限于分类问题。在生成问题上做类似的工作可能要对AdaBoost做一个改进。

你可能感兴趣的:(自然语言处理)