引言
在 作为标注员的LLM 系列第一期,笔者讲解了将LLM引入标注系统的最简单方法: 蒸馏法 。
在第二期,笔者将介绍第二种方法: 多角度标注+弱监督学习法 。通过将LLM融入Snorkel[1]弱监督标注框架,从弱监督学习的视角,展现LLM与标注系统的更深入结合,发散读者们使用LLM来标注的思路。
本文以讲解Snorkel团队的论文Language Models in the Loop: Incorporating Prompting into Weak Supervision[2]为主。
作为一篇2022年5月的论文,彼时还没有chatGPT、GPT-4,PaLM的发布虽在同年4月,但也未进行比较。不过,这并不妨碍论文的启发性。
论文摘要
- LLM从多角度对一个样本进行标注,要 优于 单prompt的标注效果
- 但论文使用的单prompt太弱,该结论有局限性
-
用LLM+prompt代替规则来标注,可有效提升标注的召回率和覆盖率,准确率虽然也会受损,但整体来看 准召更加均衡
-
对于任务模型而言,LLM的标注效果 至少与规则相当 ,在某些任务上则有显著优势,表现出了较强的标注潜力
- 在垃圾识别任务上(Youtube、SMS),经过任务模型的学习,prompt标注结果略弱于规则标注结果(92% vs 94.9%、91.8% vs 92.4% )
- 但在Spouse关系抽取任务上,经过任务模型的学习,prompt标注可带来显著的提升(62.9% vs 37.9%,+25% )
背景知识:弱监督学习与Snorkel
由于标注成本高,一些场景仅有少量的标注样本,处于 low-resource 状态,监督学习方法难以取得好的效果。
弱监督学习(Weakly Supervised Learning,简称WSL)是一种解决low-resouce问题的技术,其核心在于 从有噪音的“弱”标注数据中,学习出泛化性强的模型 。
“弱”标注结果 的获取成本显著低于人类的标注,通常来自于各种 弱标注方法 ,例如正则表达式、词库匹配等。很明显,这样的标注结果存在许多噪音。
Snorkel是一个弱监督标注框架,专注 于在标注层减少noisy label(而非学习层、模型层),去噪后的label直接供任务模型训练。
使用Snorkel的步骤如下:
- 定义多种多样的Label Function(将sample映射到label的函数,简称LF),每个样本因此可得到多个weak label;
LF可以是一段正则表达式、基于词库的匹配、或对模型预测结果的组合
LF的输出为任务label集合中的某一个,或abstain(置信度不足时,放弃标注)
- 使用Label Model,对weak labels进行去噪,得到estimated label;
- 使用estimated label,以监督学习的方式训练任务模型。
Snorkel在一些工业场景进行了落地,感兴趣的读者可参考这篇文献[3]。
如何将LLM融入Snorkel
整体的框架仍然是Snorkel式的, LLM作为一种全新范式labeler,只需编写自然语言prompt,即可实现LF功能 。
具体而言,1. 领域专家编写多个prompt,实现多种prompted LF(每种LF对应一种角度);2. 在Label Map阶段,将LLM的输出映射到任务label集合上;3. 使用Label Model去噪,得到estimated label;4. 将estimated label用于任务模型的监督式学习中。
在Snorkel标注框架中, 引入LLM有什么好处呢?
- 领域专家只需要使用自然语言,即可编写完成LF,不再需要写代码(程序员存在的理由又少了一个);
- 通过在语义层面理解标注规则,能处理rule-based LF难以解决的模糊概念(例如要判断是否存在
联系方式
,使用正则需要考虑微信、座机、电话、邮箱等各种形式,使用prompted LF,则只需让LLM判断是否存在联系方式
即可)。
LLM融入Snorkel,看来是顺理成章的。
论文作者有一个精炼的总结:language models in the loop enables SMEs(领域专家) to distill information locked away in large foundation models into smaller, more servable models.
prompted LF示例
为便于读者理解何谓 多角度的prompted LF ,列举一些示例。
prompted LF vs rule-based LF
作者首先说明用LLM来标注的不同,列出了3个模糊程度逐步降低的prompt:
Does the following comment ask the reader to do something?
Does the following comment reference the speaker's channel?
Does the following comment contain the words 'check out'?
第一种prompt最为模糊,写规则非常难,涉及到对意图的理解;
第二种prompt有针对的实体(speaker's channel),但是这一实体也可以通过其他方式来表达,例如“Like and subscribe!",规则也难以穷尽;
第三种prompt最为具体,似乎规则最好处理,但即使是这一类情况, LLM仍可一战 。
针对第三个例子,作者在Youtube垃圾评论识别数据集上,对比了rule和prompt的标注结果:
- rule-based LF可以取得100%的precision,但是仅有45%的recall;
- prompted LF可以取得76%的precision和58%的recall;
- 计算F1的话,prompted vs rule-based = 65.8% vs 62%,LLM标注要更胜一筹 。
当然,不仅要看标注的准召, 更重要的是看最终任务模型的效果差异 。
作者选择了3个分类数据集进行比较:Youtube垃圾评论识别、SMS垃圾短信识别和Spouse关系抽取(判断两实体是否为配偶关系)。
rule-based LF对应第一行方法,prompted LF对应第二行 + Prompted WS
列(prompted LF + Snorkel弱监督学习,即本文提出的方法)的结果。论文所选择的任务模型backbone均为RoBERTa。
可以发现:
- 在Youtube和SMS数据集上,prompt方法要略弱一些;
- 在Spouse数据集上,prompt方法大幅提升25%(绝对值)。
因此可得结论: prompted LF在标注的泛化性上明显强于rule-based LF,基于LLM标注结果训练的任务模型效果至少与rule-based LF相当 。
笔者提醒,本论文并不旨在最大化LLM标注的效果,所设计的prompt只用于“平替”原有的规则,并未引入新的prompt,因此本节更多是 说明了LLM标注的潜力 。
多角度prompt标注 vs 单prompt标注
多角度标注是Snorkel的哲学,即使引入了LLM也是如此。论文作者的解释是: 任务的标注要从多方面考虑,难以通过单一的prompt来总结 。
作者的实验思路是对比LLM直接进行 zero-shot
和 Prompted WS
的效果。
首先,列出用于 zero-shot
的单prompt。
再看一眼对比实验结果。根据结果来看, Prompted WS
在几乎所有数据集、所有LLM上,都显著优于 zero-shot
的效果。
因此,作者的结论是: 多角度prompt比单prompt要好 。
笔者提醒,读者可能已经发现,作者使用的 单prompt较弱 ,没有使用
COT、self-consistency
等技术,可认为是LLM直接标注的效果下限,因此该结论具有局限性。
LLM的比较、校准
作者进行对比的LLM为 T0++、InstructGPT家族 。
T0++[4]:基于T5(pretrained encoder-decoder模型),通过
multitask prompted training
过程,即在大量的prompted data(将各种NLP任务改写为prompt形式而得到的数据)上训练所得到的模型,像GPT-3一样具备zero-shot learning能力;有11B和3B两个版本,本论文使用的是11B版本
至于为何没用OpenAI的DaVinci,作者给出的原因是: 太贵 。在2022.05的节点,标注本文的三个数据集,需花费2000刀,而InstructGPT - Curie只需200刀。
再看一眼对比实验结果,能发现 T0++显著好于InstructGPT家族(Curie为6.7B参数) 。
笔者认为,在标注这件事上,类T0++模型(更小、更专) vs 类GPT3模型(通用大模型,更大、更全面),是值得比较与研究的。
同时,论文着重提到了使用LLM的一个细节: contextual calibration
。
calibration,意指校准,目的是消除prompt设计、LLM本身的bias(例如对高频词、靠后词的倾向等),contextual calibration是一种无需训练的校准方法,只需借助content-free标识(如“N/A”、空字符等),详情请参阅原论文[5]。
引入 contextual calibration
带来了什么?
在整体效果方面,引入 contextual calibration
对F1指标几乎都有帮助 ,对InstructGPT的帮助更大,但也有反例,在YouTube数据集上,T0++的F1 降低 了3.5个点。
作者进一步在SMS数据集上,对prompted LF的覆盖率和准确率进行了分析。从上图的对比可以发现:
- rule-based LF集中在左上方:高准确率、低覆盖率 的区域,而prompted LF在覆盖率和准确率上更加平衡 ;
- prompted LF在
SPAM
和HAM
两个类别上,覆盖率差不多,但SPAM
的准确率明显更低 ; - 引入
contextual calibration
,InstructGPT的覆盖率明显提升 ,整体图形向右延伸;而T0++的变化不大。
综上所述,本节的结论如下:
- 在标注效果上,T0++比InstructGPT Curie更好 ;
contextual calibration
是值得尝试 的技术,可能带来效果提升,但在实践中建议进行对比实验后,再做选择。
LLM标注的多样性
Snorkel的多角度标注思想类似于ensemble,若 LF的关联性弱、可互相补充信息 ,则标注效果可达到最好。
因此,作者对prompted LF之间的关联性进行了评估实验。
在Youtube数据集上,绘制了prompted LF间的多样性热力图,多样性指标为各LF之间的 disagreement比例、agreement比例 (进一步又划分为Double Fault和Double Correct),热力图中每个方格代表一对prompted LF间计算的多样性指标,颜色越深表示值越大。
综合来看,T0++模型的 disagreement较多、agreement较少 ,因此LF间的关联性弱、能互相补充信息,进而可以提升整体效果。之前的对比实验,也的确说明T0++是更好的标注模型。
笔者认为,这个衡量不同标注员之间关联性的方法,对于分析LLM标注的效果,是很好的工具和视角。
局限性
论文的主体部分基本讲解结束,笔者再着重提下本论文的局限性:
- 论文所使用的单prompt较弱,未使用COT、self-consistency等技术
- 在论文实验中,prompted LF只是”平替“了rule-based LF,并未再做优化(如引入更适合LLM的prompted LF),还有提升空间
- 随着LLM技术的发展,目前出现了许多更强的LLM,如ChatGPT、GPT-4、PaLM等,受时空限制,本论文并未对这些模型进行比较
总结一下
在弱监督学习视角下, 使用LLM来标注,实际上仍是一种弱标注方法 。尽管相比规则而言,LLM要强的多,但实质没有改变。
因此,本文介绍了将LLM标注融入Snorkel的方法,通过多角度的prompt标注,LLM带来了 准召更均衡、关联性较弱 的标注结果,表现出了足够强的弱标注潜力,下游任务模型也可以取得较好的结果。
本文介绍的方法扩展性较强,可以帮助打开读者使用LLM标注的思路。
如果回顾本系列的第一期,可以发现,其作者之所以直接蒸馏,是因为在调优了prompt之后,预测出的单一标签已经足够好了。
但如果读者面临这样的场景: 无论如何调优,单prompt无法取得足够好的效果 ,或者读者决定采取ensemble标注的思想,计划 结合多个LLM一起来标注 ,则可以考虑使用本文提到的方法来进行实践。
下期预告
在前两期,笔者以讲解论文的方式,介绍了两种将LLM用于标注的方法:
- 蒸馏法 。LLM产出单一标注结果,直接蒸馏到任务模型中;
- 多角度标注 + 弱监督学习法 。先产出多角度的标注结果,再结合弱监督学习(Snorkel)对标注进结果去躁,随后再对任务模型进行监督式学习。
一个自然而然的问题是: 这些方法在此时此刻、在中文数据集上是否真的有效?成本与效果是否平衡?
因此,在本系列的第三期,笔者将开展 阶段性实验 。探究在中文数据集下,通过使用笔者介绍的方法,各个开源LLM到底能取得怎样的标注效果?在评估方面,笔者将对 成本、效果 进行综合考虑,以更符合实际场景的需要。
读者反馈收集
读者的任何反馈声音,都可扫描 下方问卷二维码 来提供,欢迎畅所欲言!
参考资料
[1] Snorkel: https://snorkel.ai/
[2] Language Models in the Loop: Incorporating Prompting into Weak Supervision: https://arxiv.org/pdf/2205.02318.pdf
[3] Snorkel在工业场景的落地: https://dl.acm.org/doi/pdf/10.1145/3299869.3314036
[4] T0++: https://openreview.net/pdf?id=9Vrb9D0WI4
[5] Calibrate Before Use: Improving Few-shot Performance of Language Models: http://proceedings.mlr.press/v139/zhao21c/zhao21c.pdf