bert学习

BERT

Google在2018年提出的​​预训练语言模型​​,通过双向Transformer结构和大规模预训练。

核心特点

双向上下文

与传统模型(如LSTM或单向Transformer)不同,BERT通过同时考虑单词的​​左右上下文​​来捕捉更丰富的语义信息。例如,对句子"银行存钱",BERT能结合"银行"和"存钱"双向理解词义。

  • 单向编码

编码过程中,模型只能利用到当前位置之前的文本信息。这种编码方式使得模型在处理文本时具有一种"前瞻性"或"回顾性",但缺乏全局的上下文理解能力。如:GPT

  • 双向编码

双向编码则允许模型在编码过程中同时利用到当前位置前后的文本信息,从而能够更全面地理解文本的上下文。
BERT通过掩码语言模型(MLM)的方式进行训练,即随机掩盖文本中的部分词汇,然后让模型预测这些被掩盖的词汇。

​Transformer架构​​

​Transformer架构​​

  • 三种模块

    • 最底层⻩⾊标记的Embedding模块。
    • 中间层蓝⾊标记的Transformer模块。
    • 最上层绿⾊标记的预微调模块。
  • 两种规模

    • Base版:12层Transformer,768隐藏层,12自注意力头,总参数量约为110M
    • Large版:24层Transformer,1024隐藏层,16自注意力头,总参数量约为340M
  • Embedding三部分组成

    • Token Embeddings:输入文本中的每个单词或字符转换为一个固定维度的向量。
    • Position Embeddings:ERT中的位置嵌入是可学习的,它会随着模型的训练而更新
    • Segment Embeddings:用于区分同一输入序列中不同句子的来源。

预训练+微调范式

先在大规模语料(如Wikipedia+BookCorpus)上预训练,再针对具体任务(如文本分类、问答)微调,减少任务特定设计。

预训练任务

​​Masked Language Model (MLM)

随机遮盖输入中15%的单词,模型预测被遮盖的词(如"猫坐在[MASK]上" → "垫子")。迫使模型学习上下文依赖。

​​Next Sentence Prediction (NSP)​​

下一句预测,旨在提高模型对句子间关系的理解能力。判断两个句子是否连续(如"天气真好"和"我们去公园"→是),提升句子间关系理解能力。

微调

  • 句对分类
  • 任务描述:句对分类任务涉及两个句子的输入,并需要模型判断这两个句子之间的关系或情感倾向等。
  • 应用场景:自然语言推断(NLI)任务,一句是否推出另一句。语义文本相似性(STS)任务,需要评估两个句子的语义相似度。
  • 输入处理:将两个句子(句对)作为输入,在两个句子之间添加特殊的分隔符[SEP],并在开头添加开始符[CLS],在末尾添加结束符[EOS]。[CLS]标记的输出表示将被用作句对分类的输入特征。
  • 模型微调:在预训练的BERT模型基础上,添加一个全连接层作为输出层,用于句对分类任务。
  • 特征提取:利用BERT编码器提取的句对表示,结合注意力机制等技术,捕捉两个句子之间的关系和交互信息,用于句对分类。
  • CLS\] 今天的天气真好。 \[SEP\] 适合去户外运动。 \[SEP

  • 模型输出是一个概率分布,如[0.85, 0.1, 0.05],分别对应蕴含、中立、矛盾的概率
  • 单句分类
  • 任务描述:单句分类任务是将单个句子作为输入,并输出该句子的类别或情感倾向。
  • 应用场景:如情感分析(判断文本是正面、负面还是中性)、垃圾邮件检测(判断邮件是否为垃圾邮件)等。
  • 输入处理:将单个句子作为输入,添加开始符[CLS]。
  • 模型微调:与句对分类类似,在预训练的BERT模型基础上添加一个全连接层作为输出层,用于单句分类任务。通过微调整个模型来优化分类性能。
  • 特征提取:利用BERT编码器提取的单个句子表示,捕捉句子中的语义信息,用于单句分类。
  • CLS\] 这部电影非常精彩!

  • 文本问答
  • 任务描述:文本问答任务涉及一个问题和一段文本(如文章或段落),模型需要从文本中找出问题的答案。
  • 应用场景:如机器阅读理解(MRC),自动问答系统(FAQ)等。
  • 输入处理:将问题和相关文档或段落作为输入,使用特殊的分隔符[SEP]将问题和文档分隔开。
  • 答案抽取:BERT模型通过编码器部分提取问题和文档的表示,然后可以结合指针网络等机制来定位答案在文档中的位置。在某些情况下,可能需要在BERT模型的基础上添加额外的层(如两个指针层)来指示答案的起始和结束位置。
  • 微调任务:针对问答任务进行微调,优化模型在定位答案位置方面的性能。
  • 问题:[CLS] 北京是中国的哪个省份? [SEP]
  • 文档:[CLS] 北京是中国的首都,位于华北地区,不是省份。 [SEP]
  • 起始索引:(在文档中的位置,假设从0开始) 23
  • 结束索引:(同样,假设从0开始) 25
  • 单句标注
  • 任务描述:单句标注任务是对句子中的每个词或子词进行标注,如命名实体识别(NER)、词性标注(POS Tagging)等。
  • 应用场景:在信息抽取、文本分析等领域有广泛应用。
  • 输入处理:将单个句子作为输入,不需要特殊的分隔符,但可能需要对句子进行分词处理以符合BERT的输入要求。
  • 序列标注:将单句标注视为序列标注任务,其中句子中的每个单词或子词都被分配一个标签。BERT模型通过编码器部分提取句子的表示,然后结合序列标注层(如CRF层或softmax层)来为每个单词或子词分配标签。
  • 微调模型:在BERT模型的基础上添加一个序列标注层,并通过微调来优化标注性能。微调过程中,模型会学习如何将句子的表示映射到对应的标签序列上。
  • CLS\] 苹果公司是一家总部位于美国加利福尼亚州库比蒂诺的科技公司。

  • 苹果公司:B-ORG, I-ORG
  • 美国:B-LOC
  • 加利福尼亚州库比蒂诺:B-LOC
  • 科技公司:B-ORG
  • BIO标注方案中,B表示实体的开始,I表示实体的内部,O表示非实体部分。此外,B和I后面通常会跟随一个表示实体类型的标签,如B-PER(人名)、B-LOC(地名)、B-ORG (机构)等。

关键创新

上下文词向量

同一单词在不同语境下有不同的向量表示(如"苹果公司"vs"吃苹果")。

通用性强

预训练后的模型可通过简单微调适配多种任务(如文本分类、命名实体识别、问答等)。

应用场景

  • 文本分类(情感分析、垃圾邮件过滤)
  • 问答系统(如SQuAD数据集)
  • 命名实体识别(NER)
  • 机器翻译、文本摘要(作为特征提取器)

优缺点

优点

  • 在11项NLP任务中刷新记录(发布时)。
  • 开源且提供多种尺寸模型(如BERT-base、BERT-large)。

缺点

  • 计算资源消耗大(尤其大型模型)。
  • 对长文本处理有限(因Transformer的固定长度限制)。
相关推荐
中杯可乐多加冰42 分钟前
OpenClaw到底能做什么?有什么用?先装这几个实用的Skills
人工智能
千寻girling1 小时前
一份不可多得的 《 Python 》语言教程
人工智能·后端·python
aircrushin3 小时前
从春晚看分布式实时协同算法与灵巧手工程实现
人工智能·机器人
恋猫de小郭3 小时前
Apple 的 ANE 被挖掘,AI 硬件公开,宣传的 38 TOPS 居然是"数字游戏"?
前端·人工智能·ios
银河系搭车客指南3 小时前
AI Agent 的失忆症:我是怎么给它装上"第二个大脑"的
人工智能
张拭心3 小时前
春节后,有些公司明确要求 AI 经验了
android·前端·人工智能
我的username4 小时前
极致简单的openclaw安装教程
人工智能
小锋java12344 小时前
【技术专题】嵌入模型与Chroma向量数据库 - Chroma 集合操作
人工智能
七月丶4 小时前
别再手动凑 PR 了:这个 AI Skill 会按仓库习惯自动建分支、拆提交、提 PR
人工智能·设计模式·程序员
用户5191495848454 小时前
CVE-2024-10793 WordPress插件权限提升漏洞利用演示
人工智能·aigc