热门推荐
【第一期AI夏令营丨自然语言处理】使用BERT模型解决问题
2024-11-04 22:47
  1. 导入前置依赖
  2. 设置全局配置
  3. 进行数据读取与数据预处理
  4. 构建训练所需的dataloader与dataset
  5. 定义预测模型
  6. 定义出损失函数和优化器
  7. 定义一个验证方法,获取到验证集的精准率和loss。
  8. 模型训练,保存最好的模型
  9. 加载最好的模型,然后进行测试集的预测
  10. 将测试数据送入模型,得到结果

当我们需要导入项目中的摸个函数时,应该这样操作

【第一期AI夏令营丨自然语言处理】使用BERT模型解决问题

from 文件夹名.某个py文件 import 某个函数

例如在当前目录下有一个FaceModel文件夹,文件夹下有一个faceModel.py, py文件下有一个predict函数,那应该如何操作呢

主要设置一些超参数。超参数是在开 始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。

数据预处理的常见步骤

  1. 数据清洗:检查数据中的缺失值、异常值、重复值等情况,并进行相应处理。可以使用插补方法填充缺失值,剔除异常值或者利用统计方法进行处理。
  2. 特征选择:根据实际问题和领域知识,选择最相关和有用的特征。可以使用相关性分析、特征重要性评估等方法进行特征选择。
  3. 特征缩放:将不同尺度或数量级的特征进行缩放,以保证模型的准确性和稳定性。常见的特征缩放方法包括标准化和归一化。
  4. 特征编码:将非数值型的特征转换为数值型,以便模型可以进行处理。可以使用独热编码、标签编码等方法进行特征编码。
  5. 数据集划分:将数据集划分为训练集、验证集和测试集。训练集用于模型训练,验证集用于模型调优和选择,测试集用于评估模型性能。
  6. 处理类别不平衡:如果数据集中存在类别不平衡问题,可以采取一些方法来处理,例如欠采样、过采样等。

具体的预处理方法和步骤会根据具体的数据和问题而有所不同。在实际应用中,根据具体情况选择适当的数据预处理方法非常重要,以提高模型的性能和准确性。

构建数据集,将数据集划分为训练集、验证集和测试集

接构造Dataloader,需要定义一下collate_fn,在其中完成对句子进行编码、填充、组装batch等动作

  1. 架构:BERT模型的核心是Transformer架构,它由多个编码器层组成。每个编码器层都由多头自注意力机制(Multi-Head Self-Attention)和前馈神经网络(Feed-Forward Neural Network)组成。
  2. 预训练阶段:BERT在预训练阶段通过两个自监督任务来学习文本表示:Masked Language Model(MLM)和Next Sentence Prediction(NSP)。
  3. MLM:模型随机地遮盖输入文本的一部分单词,并训练来预测这些被遮盖的单词。这样可以使模型学会理解上下文和句子中的关系以及词汇的表征。
  4. NSP:模型输入两个句子,并判断这两个句子是否相邻。这个任务可以使模型学会理解句子级别的关系和上下文之间的相关性。
  5. 微调阶段:在预训练阶段得到的BERT模型可以在特定的下游任务上进行微调。这些下游任务可能包括文本分类、命名实体识别、问答等。在微调阶段,BERT模型通过在下游任务上进行有监督学习来进一步优化和适应。
  6. 输入表示:BERT模型的输入通常是经过分词(tokenization)后的文本。BERT使用WordPiece分词技术将输入序列拆分为多个子词(subword)。每个子词都有一个唯一的标记,并且可以通过词嵌入得到对应的向量表示。
  7. 输出表示:BERT模型在每一层的输出都包含了每个输入的表示。通常情况下,我们只使用最后一层的输出作为输入文本的表示,也可以使用多层的输出进行组合。
  8. 上下文无关性和上下文敏感性:BERT模型通过上下文无关的方式进行预训练。这意味着模型可以独立地对每个输入进行编码,而不考虑其上下文信息。在微调和应用阶段,BERT模型可以根据需要进行上下文敏感性编码。

BERT模型的优点是能够学习到更好的语言表示,能够根据上下文理解词汇的含义和句子的关系,并在各种下游任务上取得了良好的性能。但它也有一些限制,例如计算资源要求较高,模型较大,需要较长的训练时间。

BERT模型在文本前插入一个[CLS]符号,并将该符号对应的输出向量作为整篇文本的语义表示,用于文本分类,如下图所示。可以理解为:与文本中已有的其它字/词相比,这个无明显语义信息的符号会更“公平”地融合文本中各个字/词的语义信息。

使用n_gram_range来改变结果候选词的词长大小。例如,如果我们将它设置为(3,3),那么产生的候选词将是包含3个关键词的短语。然后,变量candidates就是一个简单的字符串列表,其中包含了我们的候选关键词或者关键短语。

要找到与文档最相似的候选词汇或者短语。假设与文档最相似的候选词汇/短语,是能较好的表示文档的关键词/关键短语。为了计算候选者和文档之间的相似度,将使用向量之间的余弦相似度,因为它在高维度下表现得相当好。

所有的关键词/短语都是如此的相似,所以可以考虑结果的多样化策略。

结果的多样化需要在关键词/关键短语的准确性(accuracy)和它们之间的多样性(diversity)之间取得一个微妙的平衡(a delicate balance)。使用两种算法来实现结果的多样化。可参考基于上下文语境的文档关键词提取

  • Max Sum Similarity(最大相似度
  • Maximal Marginal Relevance(最大边际相关性

5.1 Max Sum Similarity(最大相似度

较高的nr_candidates值会创造出更多样化的关键词/关键短语,但这并不能很好地代表文档。

5.2 Maximal Marginal Relevance(最大边际相关性

最大边际相关性试图在文本摘要任务中最小化冗余(minimize redundancy)和最大化结果的多样性。

    以上就是本篇文章【【第一期AI夏令营丨自然语言处理】使用BERT模型解决问题】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/quote/6910.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多