最近阅读LLaMA, DeltaEdit paper时,阅读到了一些好文章值得分享跟纪录 (绝对不是我把这帐号当记事本用),因此本文章基于以下网站进行撰写,如下:
然后再随笔补上一些自己过去学习机器学习的经历。
1. Autoregressive v.s Non-autoregressive
这个在李鸿毅2021的机器学习课程就有提到过,Autoregressive以及Non-autoregressive重点差别在于 输出产生方式 (补充:输出可以是文字, phoneme):
Autoregressive (AT):输出从 BEGIN 的 Token 开始,将上一个文字的预测输出当作是下一个预测文字的输入,直到输出END才结束句子生成。Non-autoregressive (NAT):而是一次吃的是一整排的 BEGIN 的 Token,把整个句子一次性都产生出来有关于NAT 之 控制BEGIN的个数可以用以下方法实现:
1. 另外训练一个 Classifier: 吃 Encoder 的 Input,输出是一个数字,代表 Decoder 应该要输出的长度。
2. 给它一堆 BEGIN 的 Token,直到输出END才结束句子生成。
以上内容出自我很久以前的笔记,实在发现我忘了太多了==。
2. zero-shot, one-shot, few-shot learning
我发现许多人不太清楚这三种的差别,
...待写
3. Fine-tuning vs Instruction tuning vs Prompt tuning
Prompt tuning 是我最近在看 DeltaEdit 的 paper 时发现不太清楚的概念,因此想要在这边做纪录。
...待写
4. NSP 以及 MLM 是甚么?
NSP跟MLM都是pre-train model的常用训练方法,我最初接触的时候是在阅读BERT用于pre-trained的时候,使得文字语料可以对模型进行预训练:
MLM 又被称作是 Masked Language Modeling
简而言之,该任务会用符号(ex:"[MASK]") 随机掩盖掉输入的Token,
顺带一提,在BERT的原文是这样说的:
In order to train a deep bidirectional representation, we simply mask some percentage of the input tokens at random, and then predict those masked tokens. In this case, the final hidden vectors corresponding to the mask tokens are fed into an output softmax over the vocabulary, as in a standard LM. In all of our experiments, we mask 15% of all WordPiece tokens in each sequence at random.
而NSP的缺点会导致pre-training跟fine-tuning两阶段训练目标差距过大的问题,这点也在BERT的论文也有被提到:
Although this allows us to obtain a bidirecetional pre-trained model, a downside is that we are creating a mismatch between pre-training and fine-tuning, since the [MASK] token does not appear during fine-tuning.
因此BERT也同时採用了NSP的方法。
NSP 又被称作是 Next Sentense Prediction
该训练的任务目标是建立模型理解词彙间的能力,例如「小明爱小华」「小华爱小明」这两句虽然人名对调,但意思完全不一样对吧?
NSP 在训练上会採用二分类的方法,也就是随机找文章中的上下两段话,去对机器进行上下文的QA问答。
举例来说:我们会拿一个句子去问机器说「小明爱小华」的下一句是不是「但小华有男朋友了」?然后机器就会根据当下训练的参数去进行IsNext或是NotNext的猜测,这时我们只要把答案给机器看(答案的形式为IsNext/NoNext),告诉机器下一句其实是「但小华只有8岁」,答案是NoNext,这样就可以完成训练搂~
参考资料:
For 好文章
Prompt-Tuning——深度解读一种新的微调范式For NSP && MLM
BERT原理与NSP和MLM