对比学习的想法是,把不同类别的样本在特征空间推开,而让相似的样本距离更近,从而获得更好的样本表示
NLP中一个非常经典的是danqi女神的SimCSE:Raki的读paper小记:SimCSE: Simple Contrastive Learning of Sentence Embeddings
思想是构造正负样本对进行优化,在CV那边负样本非常容易构造,而NLP因为token的离散性并没有那么容易构造,而SimCSE发现仅仅使用dropout构造出的负样本就能达到很好的效果
对比学习是非常强大的无监督学习方法,一般来说负样本越多越好,MoCo引入了动量库的概念,SimCLR使用了多组样本对比,CLIP把对比学习引入到多模态,并在预测的时候使用prmopt来抽取特征,首次使用无监督方法预训练多模态模型,效果炸裂,开启了多模态预训练模型的时代
Prompt在这里的中文翻译是 提示
Prompt的思想是用上下文来提示模型预测输出,例如:
This is a [Mask] man,让模型来填空,
不同的prompt对模型性能的影响不小,比如现在的ChatGPT已经引流了Prompt Engineering的火热(?)
顺便提一下,也有一些工作用生成的Prompt来提高模型性能(魔改),对Prompt向量进行调整实际上就是fine-tune,暂时还没有真的有用的
Instruction跟prompt有点相似,他们的区别就是,prompt是让模型做填空,而instruction tuning是让模型做选择题,一般来说选择题是要比填空更简单的(判别 vs. 生成)
例如:
What is the sentiment of this sentence?[Mask] A. happy,B. sad C. nervous
ChatGPT就使用了instruction tuning的方法
思维链的思想是把复杂的任务拆分成不同的小问,诱导模型一步一步推导出正确的回答,也就是一种in-context learning?
改进的方法用对答案进行了多数投票(majority vote),并且发现其可以显著地提高思维链方法的性能
魔法句子:“Let’s do it step by step”,“so the anwser is”,使用这两句话就能让大模型的推导能力变强
所以说LLM就像女人一样,都是需要哄哄的嘛
最近突然流行一个词 - Emergent ability,中文意思是涌现能力,说的是模型大到一定程度后,会涌现出小模型不具备的能力,比如In-Context Learning,通过上下文学习的能力
比如few-shot?
目前对ICL的能力并没有一个很精准的解释,猜测的解释有:
Raki的猜测:LLM具有强大的上下文理解能力,通过人给出的prompt推断出更加准确的问题意义与表示,就像你告诉小孩,这是黑猫那是白猫,然后他就能分别出黑狗和白狗一样
名震天下的ChatGPT的核心技术就是RLHF,据Open AI说GPT-4很大程度就是靠他取得大幅效果提升的,核心是通过人类的反馈对LLM生成的回答进行打分排序,让模型拥有生成更符合人们偏好的回答的倾向
分别献上GPT-3.5
和 GPT-4自己对这个问题的回答
【炼丹技巧】功守道:NLP中的对抗训练 + PyTorch实现
最后提一嘴对抗训练Adversarial Training,是一种能使模型更加robust的训练trick,在NLP任务中,对抗训练的角色不再是为了防御基于梯度的恶意攻击,反而更多的是作为一种regularization,提高模型的泛化能力,属于现在竞赛刷榜基本操作
Fast Gradient Sign Method(FGSM)
经典且朴素的方法,对着梯度加扰动
Projected Gradient Descent(PGD)
一般来说竞赛中FGM看起来是最常用的,比较robust,其他复杂的对抗训练trick就不过多介绍了,我是大道至简的忠实信徒,就像GPT3,GPT4也只是使用了很simple的自回归模型一样。
看起来promising的方向已经好像也做干了
我们的东西被顶级机构做完了?winner takes all!
现在NLP community的首要任务是寻找新的方向保住community?
转行了转行了(orz Open AI)