大数据创新论坛训练营笔记
·第一部分:基础模型简介
基础模型是人工智能未来发展的重要方向
构建深度学习模型的主流方式是监督学习,监督学习的基本前提是人工标注数据,但数据的生产周期长,造价高昂。
迁移学习:通过过去学到的知识处理新的问题
- 形成了两阶段学习框架
- 预训练阶段:从一个或多个源任务中捕获知识
- 微调阶段:将捕获到的知识迁移的新的目标任务上(得到下游任务模型)
有效解决数据缺失问题、加快训练速度、防止过拟合
重要问题:如何通过有限的人工标注数据,在特定任务上构建有效的深度神经网络模型。
从CV发迹
·预训练阶段:抽取通用的特征,不面向特定任务,可在多种任务中复用
·微调阶段:使用任务相关少量的数据,抽取与任务相关的特征
预训练模型的发展历程——发展阶段
预训练模型的发展历程——爆发阶段
从预训练模型到基础模型
基础模型的特点:
- 基础性:基础性表现为未完成性和通用性
- 未完成性体现在基础模型通常需要适应性的训练来适配下游任务
- 通用性体现在基础模型可以应用于多个下游任务
- 规模性:规模性体现在基础模型参数规模大,训练使用的数据量大,训练及推理过程中使用的计算资源多、耗时长、功耗大等方面
- 复杂性:复杂性体现在基础模型的结构复杂,使用的数据种类和面向的任务种类繁多,且逐渐向跨领域、跨模态方向发展。
能不能有一个基础模型,不用 Fine-tune,不使用标注数据或者仅使用极少的标注数据还可以应用于下游任务?
开发利用基础模型存在诸多难点和挑战
·第二部分:Transformer及预训练语言模型
·自然语言处理与深度学习概述
自然语言处理的发展历程
从规则驱动到数据驱动(规则->统计学习->深度学习)
·自然语言表示学习
·注意力机制与Transformer模型
注意力机制的提出
深度学习模型输入大量数据,在特定时刻,只有少部分数据重要
通过Attention机制的引入将模型的注意力聚焦在重要的输入上
自注意力机制
位置编码
·预训练语言模型
引入预训川练机制的原因
- 通用的语言表示:语言表示与下游任务无关
- 获得好的初始化:随机初始化效率低
- 可看做一种正则化方法:防止模型在小数据集上过拟合
如何评价预训练语言模型的效果?
经典的benchmark
- GLUE(https:/gluebenchmark.com/tasks)(语言理解测评基准集)
- SuperGLUE https://super.gluebenchmark.com
- CLUE https://www.cluebenchmarks.com
- CLUE1.0/1.1(中文语言理解测评基准集)
- ZeroCLUE(零样本学习)
- ewCLUE(小样本学习)
涉及任务类型
自然语言推断、文本蕴含、情感分析、语义分析、语义相似
如何进行预训练
监督学习:大量标注数据的任务(机器翻译、机器阅读理解)
无监督学习:密度估计,重构
重构的方式:自编码器
ELMo:
提出预训练上下文相关的语义表示
使用了两层双向LSTM
分别训练了前向和反向语言模型
自监督学习
典型任务:
Masked Language Modeling(MLM,掩码语言模型)
Next Sentence Prediction NSP
Permuted Language Modeling PLM
Replace Token Detection RTD)
Denoising Autoencoder(DAE)
掩码语言模型一MLM
序列输入给Encoder前,若干单词替换为[MASK]标记
模型通过序列其他未屏蔽词提供的上下文预测屏蔽的词
实现:
- 模型编码器后接分类层,通过输出向量*词向量矩阵,输出维度转换为词表维度
- softmax计算[MASK)为每个单词的概率
多种形式
- token、whole-word、n-gram、span、entity
一些问题
为什么Word2Vec难以完全解决一词多义的问题:
- 局部上下文限制:Word2Vec在训练时通常使用固定大小的窗口来考虑上下文词汇,这导致了局部的上下文信息,无法涵盖更广泛的语义关系和语境。
- 多义词的语境多样性:一词多义的词汇在不同语境中可能有不同的含义。Word2Vec无法根据不同的语境来为多义词生成不同的嵌入,因为它在训练时将每个词汇映射到唯一的向量表示。
- 语义联系丢失:由于Word2Vec只考虑局部上下文信息,它可能会在相似但不同词义的词汇之间丢失某些语义联系,导致难以区分不同的词义。
对于解决一词多义的问题,一些后续的模型和方法,如BERT(Bidirectional Encoder Representations from Transformers)和GPT(Generative Pre-trained Transformer),通过使用预训练的深度神经网络,在更大范围的上下文中捕获了更多的语义信息。这些模型在一些情况下能够更好地理解和区分多义词,但也并非完全克服了一词多义的问题,因为多义性在自然语言处理中仍然是一个复杂且有挑战性的问题。
多头注意力机制的好处包括:
- 丰富的信息表示:通过应用多个注意力头,模型能够从不同的角度关注输入数据的不同部分,捕捉更多的语义信息和关联。每个头可以专注于不同的特征、语义或上下文,从而丰富了信息表示能力。
- 提升泛化能力:多头机制可以使模型更好地适应不同输入样本,提升泛化能力。不同的头可以关注不同的特征,使模型在处理不同类型的输入时更具灵活性。
- 解决注意力瓶颈:单个注意力头可能会出现注意力瓶颈,难以处理复杂的语义关系。多头机制允许模型在多个方向上关注输入,从而减轻了单个头的负担,更好地捕捉不同层次的特征。
- 增强表示能力:多头机制有助于提取不同层次的特征,从低层次的语法结构到高层次的语义信息。这种层次化的表示能力使得模型能够更好地理解输入数据。
- 抑制噪声和干扰:通过多头机制,模型可以选择性地关注有用的特征,抑制噪声和干扰。这有助于提高模型在处理噪声或冗余信息时的性能。
总之,多头注意力机制允许模型从多个角度关注输入数据,捕捉丰富的信息,从而提高了模型的表示能力、泛化性能和语义理解能力。这使得多头注意力在许多序列建模和自然语言处理任务中都得到了广泛的应用。