摘录自公众号「@跟我学机器学习」
第1节 BERT原理与预训练任务
本文是 BERT 精读系列第1讲,从 BERT 与 Transformer Encoder 的关系出发,系统讲清 BERT 论文中那张易混淆的结构图背后的真实网络组成(BertEmbeddings、BertEncoder、BertPooler),详解两大预训练任务的原理与动机:Masked Language Model MLM 随机掩盖 15% Token …
第2节 BERT 从零实现过程
本文是 BERT 精读系列第2讲,配套开源仓库 moon-hotel/BertWithPretrained 系统讲解如何用 PyTorch 从零实现 BERT 模型。覆盖工程目录结构(预训练模型、cache、数据集、model、Tasks、test、utils 七个模块)、BertConfig 参数管理、Token/Positional/Segment …
第3节 模型的保存与迁移
本文是 BERT 精读系列第3讲,作为 BERT 下游任务微调前的过渡篇,系统讲清 PyTorch 中模型保存与加载的三大运用场景(模型推理、再训练、迁移学习)。内容覆盖 nn.Module 参数字典 state_dict 的结构与遍历、torch.save/load 的两种方式(state_dict 与完整模型)、以及在 BERT 微调场景下如何将 …
第4节 基于BERT预训练模型的文本分类任务
本文是 BERT 精读系列第4讲,也是 BERT 下游任务微调第一篇,详细讲解如何基于 huggingface bert-base-chinese 预训练权重在文本分类任务上做微调。覆盖 BertForSentenceClassification 的网络构造(BERT + 分类层 + [CLS] 池化)、今日头条 382688 条新闻 15 类数据集的预处理 …
第5节 基于BERT预训练模型的文本蕴含任务
本文是 BERT 精读系列第5讲,详细讲解如何基于 huggingface bert-base-uncased 预训练权重在 MNLI 自然语言推断任务上微调文本蕴含模型。覆盖文本对分类与单文本分类的核心差异:Segment Embedding / token_type_ids 构造、premise 与 hypothesis 之间用 [SEP] 拼接 …
第6节 基于BERT预训练模型的SWAG选择任务
本文是 BERT 精读系列第6讲,详细讲解如何基于 huggingface bert-base-uncased 预训练权重在 SWAG 常识推理四选一任务上微调。覆盖问答选择与文本蕴含的核心差异:将问题与每个候选答案分别拼接成 4 个序列,得到形状 [4, hidden_size] 的 4 个 [CLS] 特征向量后接入分类层、SWAG 12 字段数据格式中 …
第7节 自定义学习率动态调整
本文是 BERT 精读系列第7讲,作为 BERT 第8讲 SQuAD 问答任务的过渡篇,系统讲清 Transformer 论文中提出的 Noam 动态学习率调整策略:从 warmup 公式 d_model^{-0.5} · min(step^{-0.5}, step · warmup^{-1.5}) 推导学习率先升后降的两阶段曲线,PyTorch 中 …