生成式学习的两种策略:各个击破和一次到位

生成有结构的复杂物件

alt text

复杂物件都是小的元素构成,

比如语句是由token构成,其实就是“字”,token的意思word piece, 是介于词和词汇。比如unbreakable -> un break able(3个word piece)

ChatGPT生成物件的时候,其实是一个分类的问题,就是选择题,需要把所有的选项都列出来

中文的字是比较有机会穷举的,英文词汇是可以是无穷多,比如一个新的人名、新的地名

所以需要把单词或词汇进行拆分成word piece, 因为word piece是可以穷举的,从某种角度,中文更加适合生成式学习

又比如影响是由像素组成, 语音是由16k取样频率,每秒有16000个取样点

生成影片

[Imagen Video]https://arxiv.org/abs/2210.02303

alt text

生成影片的样例:https://imagen.research.google/video/

alt text

生成语音

生成人的声音

InstructTTS

alt text

alt text

可以通过自然语言去要求它的语气

alt text

生成声音

不局限于人声,可以是汽笛声,可以是人跑步声,可以是水滴声

Text-to-audio

alt text

策略1:各个击破 Autoregressive(AR)model

ChatGPT就是各个击破的方式, 给个句子,就一个字一个字的生成出来

生成影像,比如4*4,那就一个像素一个像素生成出来

alt text

策略2:一次到位 Non-autoregressive(NAR)model

一次把一个句子都输出出来,但是机器不知道要产生多长,这里有2种方法:

第一个方法:每次都输出固定的长度句子,但是这不现实,但是可以在输出的句子中查有没有"END"这个符号,如果有就把后面丢掉,如果没有就继续,这样感觉每次问的答案的长短都不一样

第二个方法:文字生成的模型输出一个数字,这个数字就是接下来要输出内容的长度

alt text

各个击破 vs 一次到位

生成速度

alt text

这就是为什么影像生成常用【一次到位】,相较文字,影像的元素更多。一张100*100图片,就有10000个像素,这个100*100图片还是画质比较低的。

生成质量

各个击破的生成的质量比较高,一次到位的质量相对较差

比如:请问胡歌的职业是什么?

如果是各个击破,机器会先产生的是一个机率的分布,从这个机率分布里面去做sampling(概率分布中抽取样本),开始问这个问题的时候,机器弄不清楚问的是哪个胡歌,第一个答案“演”的机率会很高,“老”的机率也会很高,假设“老”被选出来,因为sampling不一定是机率最高的,所以后面接的是“师”

如果是一次到位,一次把所有的分布都产生出来,第一个生成位置“老”和“演”的机率都会很高,第二个位置“师”和"员"的机率也会很高,接下来再做sampling,就有可能生成"老员",这就不是想要的

alt text

对比表

各个击破(Autoregressive,AR) 一次到位(Non-autoregressive,NAR)
速度
质量
应用 常用于文字 常用于影像

各个击破与一次到位结合

results matching ""

    No results matching ""