NLP自然语言培训课程第24章:基于SQuAD对Bi-DAF进行MRC源码完整实现、测试和调试

159 阅读6分钟

(基于Transformer的NLP智能对话机器人实战课程)

One Architecture, One Course,One Universe

星空智能对话机器人的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中最具有使用价值的内容、围绕手动实现工业级智能业务对话机器人所需要的全生命周期知识点展开,学习完成后不仅能够从算法、源码、实战等方面融汇贯通NLP领域NLU、NLI、NLG等所有核心环节,同时会具备独自开发业界领先智能业务对话机器人的知识体系、工具方法、及参考源码,成为具备NLP硬实力的业界Top 1%人才。
 
课程特色:
101章围绕Transformer而诞生的NLP实用课程
 5137个围绕Transformers的NLP细分知识点
 大小近1200个代码案例落地所有课程内容
10000+行纯手工实现工业级智能业务对话机器人
 在具体架构场景和项目案例中习得AI相关数学知识
 以贝叶斯深度学习下Attention机制为基石架构整个课程
 五大NLP大赛全生命周期讲解并包含比赛的完整代码实现
 
 
 
北京时间每天晚21点,NLP逐行解密:算法、数学、源码。
 
知乎-B站搜索StarSpaceNlp加入直播。
 
YouTube搜索 StarSpace NLP加入直播。
 
所有直播永久免费!
 
以往直播课程回放地址:https://search.bilibili.com/all?keyword=%E6%AE%B5%E6%99%BA%E5%8D%8E&from_source=webtop_search&spm_id_from=333.851

课程 24 章:基于 SQuAD Bi-DAF 进行 MRC 源码完整实现、测试和调 ****

1,SQuAD训练集和验证集数据分析及answer的Index机制分析

2,从JSON文件中获取样本信息

3,Tokenization代码实现

4,遍历处理data中的paragraphs下context及qas

5,对data中answer的start index、text、end index的处理及word的处理

6,构建基于Batch的Iterator

7,Padding源码实现及测试

8,Character Embedding Layer对Char进行Vector编码实现和测试

9,Word Embedding Layer对word进行Vector编码实现及测试

10,dropout操作

11,Convolutions操作实现

12,Transformer数据流源代码剖析

13,Concatenate Context和Question完整源码实现

14,通过基于ReLU的highway network来整合信息完整源码实现及测试

15,highway network中的门控机制数学原理及其在AI中的广泛应用

16,通过LSTM对Contextual Embedding Layer进行编码完整实现及测试

17,Context Matrix和Question Matrix可视化分析

18,attention flow layer中相似矩阵S的源码实现

19,Context2Query完整源码实现及测试

20,Query2Context完整源码实现及测试

21,attention flow layer中信息前向和增强信息表示的G的融合源码实现

22,Modeling Layer完整源码实现调试分析

23,output layer中p1的计算实现

24,output layer中p2的计算实现

25,Cross Entropy Loss p1的细节说明

26,在验证集上进行Test源码完整实现

27,Mask机制的具体作用剖析及调试分析

28,对Answer进行Normalization操作

29,EM (Exact Match) 数学公式解析及源码实现

30,F1对MRC的应用数学公式解析及源码实现

31,Evaluation完整源码实现及调试

32,Soft Evaluation的重大意义思考

33,Bi-DAF全流程调试及深度分析

更多课程可以关注星空智能对话机器人的Gavin的公开课

以往公开课选段视频如下:

www.bilibili.com/video/BV1N3…

www.bilibili.com/video/BV1aS…


作者:天天天晴
链接:juejin.cn/post/703484… 来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。