第32章:基于Fourier Transform的Transformer模型FNet架构内幕及完整源码实现
1,BERT中Attention本质和功能再思考
2,fourier transform数学原理剖析
3,使用fourier transform取代self-attention layer
4,为什么采用fourier transform会fewer parameters及more memory efficient?
5,fourier transform有效性带来的“mix” input tokens操作的思考
6,FNet处理longer input lengths的设计及实现
7,PreTrainedTokenizer源码完整实现剖析
8,get_special_tokens_mask源码完整实现剖析
9,tokenize源码完整实现剖析
10,FNetTokenizer源码完整实现剖析
11,FNetEmbeddings源码完整实现剖析
12,fourier_transform方法源码完整实现剖析
13,FNetBasicFourierTransform源码完整实现剖析
14,FNetFourierTransform源码完整实现剖析
15,FNetBasicOutput源码完整实现剖析
16,FNetOutput源码完整实现剖析
17,FNetIntermediate源码完整实现剖析
18,FNetLayer源码完整实现剖析
19,FNetEncoder源码完整实现剖析
20,FNetPooler源码完整实现剖析
21,FNetPredictionHeadTransform源码完整实现剖析
22,FNetLMPredictionHead源码完整实现剖析
23,FNetOnlyMLMHead源码完整实现剖析
24,FNetOnlyNSPHead源码完整实现剖析
25,FNetPreTrainingHeads源码完整实现剖析
26,FNetPreTrainedModel源码完整实现剖析
27,FNetForPreTrainingOutput源码完整实现剖析
28,FNetModel源码完整实现剖析
29,FNetForPreTraining源码完整实现剖析
30,FNetForMaskedLM源码完整实现剖析
31,FNetForNextSentencePrediction源码完整实现剖析
32,FNetForSequenceClassification源码完整实现剖析
33,FNetForMultipleChoice源码完整实现剖析
34,FNetForTokenClassification源码完整实现剖析
35,FNetForQuestionAnswering源码完整实现剖析
星空智能对话机器人的Gavin认为Transformer是拥抱数据不确定性的艺术。
Transformer的架构、训练及推理等都是在Bayesian神经网络不确定性数学思维下来完成的。Encoder-Decoder架构、Multi-head注意力机制、Dropout和残差网络等都是Bayesian神经网络的具体实现;基于Transformer各种模型变种及实践也都是基于Bayesian思想指导下来应对数据的不确定性;混合使用各种类型的Embeddings来提供更好Prior信息其实是应用Bayesian思想来集成处理信息表达的不确定性、各种现代NLP比赛中高分的作品也大多是通过集成RoBERTa、GPT、ELECTRA、XLNET等Transformer模型等来尽力从最大程度来对抗模型信息表示和推理的不确定性。
从数学原理的角度来说,传统Machine Learning及Deep learning算法训练的目标函数一般是基于Naive Bayes数学原理下的最大似然估计MLE和最大后验概率MAP来实现,其核心是寻找出最佳的模型参数;而Bayesian的核心是通过计算后验概率Posterior的predictive distribution,其通过提供模型的不确定来更好的表达信息及应对不确定性。对于Bayesian架构而言,多视角的先验概率Prior知识是基础,在只有小数据甚至没有数据的时候是主要依赖模型Prior概率分布(例如经典的高斯分布)来进行模型推理,随着数据的增加,多个模型会不断更新每个模型的参数来更加趋近真实数据的模型概率分布;与此同时,由于(理论上)集成所有的模型参数来进行Inference,所以Bayesian神经网络能够基于概率对结果的提供基于置信度Confidence的分布区间,从而在各种推理任务中更好的掌握数据的不确定性。
当然,由于Bayesian模型因为昂贵的CPU、Memory及Network的使用,在实际工程实践中计算Bayesian神经网络中所有概率模型分布P(B)是棘手的甚至是Intractable的几乎不能实现事情,所以在工程落地的时候会采用Sampling技术例如MCMC的Collapsed Gibbs Sampling、Metropolis Hastings、Rejection Sampling及Variational Inference的Mean Field及Stochastic等方法来降低训练和推理的成本。Transformer落地Bayesian思想的时候权衡多种因素而实现最大程度的近似估计Approximation,例如起使用了计算上相对CNN、RNN等具有更高CPU和内存使用性价比的Multi-head self-attention机制来完成更多视角信息集成的表达,在Decoder端训练时候一般也会使用多维度的Prior信息完成更快的训练速度及更高质量的模型训练,在正常的工程落地中Transformer一般也会集成不同来源的Embeddings,例如星空智能对话机器人的Transformer实现中就把One-hot encoding、Word2vec、fastText、GRU、BERT等encoding集成来更多层级和更多视角的表达信息。
拥抱数据不确定性的Transformer基于Bayesian下共轭先验分布conjugate prior distribution等特性形成了能够整合各种Prior知识及多元化进行信息表达、及廉价训练和推理的理想架构。理论上讲Transformer能够更好的处理一切以 “set of units” 存在的数据,而计算机视觉、语音、自然语言处理等属于这种类型的数据,所以理论上讲Transformer会在接下来数十年对这些领域形成主导性的统治力。
基于此,我们开发了全新一代围绕Transformer的自然语言处理课程:
NLP on Transformers 101
(基于Transformer的NLP智能对话机器人实战课程)
本课程以Transformer架构为基石、萃取NLP中最具有使用价值的内容、围绕手动实现工业级智能业务对话机器人所需要的全生命周期知识点展开,学习完成后不仅能够从算法、源码、实战等方面融汇贯通NLP领域NLU、NLI、NLG等所有核心环节,同时会具备独自开发业界领先智能业务对话机器人的知识体系、工具方法、及参考源码,成为具备NLP硬实力的业界Top 1%人才。
课程特色:
101章围绕Transformer而诞生的NLP实用课程
5137个围绕Transformers的NLP细分知识点
大小近1200个代码案例落地所有课程内容
10000+行纯手工实现工业级智能业务对话机器人
在具体架构场景和项目案例中习得AI相关数学知识
以贝叶斯深度学习下Attention机制为基石架构整个课程
五大NLP大赛全生命周期讲解并包含比赛的完整代码实现
参考文献
https://tensorflow.google.cn/tutorials/text/transformer
星空智能对话机器人系列博客
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 多头注意力架构-通过Python实例计算Q, K, V
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 多头注意力架构 Concatenation of the output of the heads
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 位置编码(positional_encoding)
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 KantaiBERT ByteLevelBPETokenizer
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 KantaiBERT Initializing model
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 KantaiBERT Exploring the parameters
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 KantaiBERT Initializing the trainer
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 KantaiBERT Language modeling with FillMaskPipeline
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 GLUE Winograd schemas and NER
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Workshop on Machine Translation (WMT)
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Pattern-Exploiting Training (PET)
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 The philosophy of Pattern-Exploiting Training (PET)
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 It‘s time to make a decision
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Text completion with GPT-2
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Text completion with GPT-2 step3-5
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Text completion with GPT-2 step 6-8
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Text completion with GPT-2 step 9
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Training a GPT-2 language model
-
NLP星空智能对话机器人系列:论文学习 Do Transformers Really Perform Bad for Graph Representation
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Training a GPT-2 language model Steps 2 to 6
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Training a GPT-2 language model Steps 7 to 9
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Training a GPT-2 language model Steps 10
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 T5-large transformer model
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Architecture of the T5 model
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Summarizing documents with T5-large
-
自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Matching datasets and tokenizers
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Standard NLP tasks with specific vocabulary
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 T5 Bill of Rights Sample
-
NLP星空智能对话机器人系列:论文解读 How Good is Your Tokenizer? (你的词元分析器有多好?多语言模型的单语性能研究)
-
NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Semantic Role Labeling (SRL).
-
自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 SRL(Semantic Role Labeling) Sample 2
-
自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 SRL(Semantic Role Labeling)
-
NLP星空智能对话机器人系列:NLP on Transformers 101 Transformers 101 第21章 基于Bayesian Theory的MRC文本理解基础经典模型算法
-
NLP星空智能对话机器人系列:NLP on Transformers 101 第7章 BERT Fine-tuning源码完整实现、调试及案例实战
-
NLP星空智能对话机器人系列:NLP on Transformers 101 第8章 轻量级ALBERT模型剖析及BERT变种中常见模型优化方式详解