目录
3/10 机器如何生成文句
Finetuning vs. Prompting:對於大型語言模型的不同期待所衍生的兩類使用方式
语言模型:(两个方向的代表模型)
GPT:文字接龙;BERT:文字填空
对于大型模型的两种不同期待:成为专才or成为通才
专才的优点:在单一任务上有机会赢过通才(如专用于翻译的软体)
通才的优点:只要重新设计prompt(≈催眠方式)就可以快速开发新功能不用写新的程序
-
成为专才实例:BERT
BERT是一个语言模型,对其进行改造(加外挂+微调参数),成为不同领域的专才(BERT只会进行文字填空,无法像GPT一样写出句子说话)
具体来说:
1. 加外挂Head
2. 微调参数Finetune
用会做文字填空的BERT模型的参数作为初始值,在这个基础上再用gradient descent进行对应方向的调参。
3. 对预训练模型做改造:Adapter
优势:只需要存一个BERT,对应专业任务存储不同的adapter
-
成为通才的例子:GPT
机器要学会读题目叙述Instruction Learning或题目范例In-context Learning
- 先介绍In-context Learning
通过带有正负面标签的句子进行训练,学会进行情感分析
为了验证机器能否通过这种方式学习,尝试给机器错误的例子观察学习情况
蓝色:无例子;橙黄:正确例子;橙红:错误例子
再加入无关输入对照
从左至右:正确/错误/无关/不给例子
(这里有些疑惑,图中的橙红色应该给的是随机对错的例子,有错有对的,但老师直接说是错误例子)
实验推论:语言模型本来就会做情感分析,只是需要被指出需要做情感分析的任务(唤醒它)
佐证:给的例子少,但收敛速度也很快
另一篇论文的结论:大模型对错误例子更敏感(更容易收到影响),大机器才能做到In-context Learning,
并且当错误的例子越多,机器会倾向于给出错误的答案(证明有学到)
使用上述机器直接进行分类任务,希望能否从语言模型直接变为分类器,结果是可以的
- 第二个是Instruction Learning
要先对机器进行Instruction-tuning,具体来说:在training阶段教机器对文句做摘要、做翻译,期待机器在testing时能有修正文句的能力
相关模型:T0
FLAN
FLAN训练方法
FLAN结论:能学习到(下面三幅统计图下标为没有training的项目,例如第一幅:训练了Reading Comprehension和Closed-Book QA,测试了Natural language inference的能力)
上面介绍了两种给机器范例的方法(In-context Learning和Instruction Learning),还有一种是:
-
Chain of Thought (CoT) Prompting
前提:机器在推理题方面做的不好
CoT概念:在给机器例子的答案中加入推理过程,期待它能因为写出过程而得出正确答案
实验证明有用
其他类似CoT的做法:
1.不进行CoT,在输入问题时加上“Let’s think step y step”,机器自觉开始列出推理过程。
其他类似话术和使用后的答案正确率
2.使用Self-consistency的方法:让机器产生多个答案,选概率高的作为答案
3.Least-to-most prompting:先让机器自己将问题进行拆分,再将问题和拆分后的问题一起给机器,让他接龙。(首先要先让机器学会In-context Learining) -
用机器自己来找Prompt
1.Hard Prompt与soft Prompt(类似于加上Adapter)
2.使用reinforcement learining
3.使用LM(Language Modal,语言模型)寻找
相关论文:http://arxiv.org/abs/2211.01910
自督導式學習(二) - BERT簡介
有了BERT技术后,机器的自然语言处理又向前迈进一步
BERT应用实例(共4个case)
- Case1:
输入:句子;输出:类别(分类问题)
举例:情感分析(正面or负面)
具体流程:
CLS(一个token)+句子放入BERT,4个输入就会有4个输出;
CLS对应输出一个向量,进行linear transform,再通过softmax,最后输出类别class
前提:
- 大量已标注正面负面的句子实例,用于训练模型
- BERT部分的参数初始值是继承于:学习了做填空题的BERT(Linear的参数初始值是随机生成的)
下面是用会做填空题BERT初始化,和随机参数初始化的BERT的比较图
(Pre-train:fine-tune;Random Initialization:scratch)
Pre-train+fine-tune=semi supervise
- Case2:
输入:一个句子;输出:一个句子(类似输入)
流程:类似Case1
- Case3:
输入:两个句子;输出:
举例:自然语言推断NLI(一个前提一个假设,判断能否推出);立场分析(赞成or反对)
Model如下
- Case4:
输入:文章+问题;输出:问题答案(受限问答系统,答案一定在文章中出现)
输入D、Q序列,输出s、e(答案在文章中的起始位和终止位,直接截取文章),生成答案A
举例:
Model:
找s
找e
- Seq2seq的预训练model:
输入“被弄坏”的句子,输出还原正确的句子
“弄坏”的方法:MASS/BART(相关论文)
相关论文:Transfer Text-to-text Transformer(T5,超长论文67页),使用的训练集:Colossal Clean Crawled Corpus(C4,一个超大的训练集,大小有7P)
自督導式學習(四) - GPT的野望
(21年对GPT3的展望,不具体展开