<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>从零玩转 Bert 详解6大下游任务 on 《从零学AI指南手册》</title>
		<link>https://mlwithme.github.io/tutorials/bert/</link>
		<description>Recent content in 从零玩转 Bert 详解6大下游任务 on 《从零学AI指南手册》</description>
		<generator>Hugo</generator>
		<language>zh_CN</language>
		
		
		
		
			<lastBuildDate>Sun, 12 Jul 2026 18:55:31 +0800</lastBuildDate>
		
			<atom:link href="https://mlwithme.github.io/tutorials/bert/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>第1讲 BERT 原理与预训练教程：Masked LM 与 Next Sentence Prediction 图解</title>
				<link>https://mlwithme.github.io/tutorials/bert/bert-pretrain/</link>
				<pubDate>Sun, 12 Jul 2026 18:25:22 +0800</pubDate>
				<guid>https://mlwithme.github.io/tutorials/bert/bert-pretrain/</guid>
				<description>&lt;h1 id=&#34;第1节-bert原理与预训练任务&#34;&gt;第1节 BERT原理与预训练任务&lt;a class=&#34;anchor&#34; href=&#34;#%e7%ac%ac1%e8%8a%82-bert%e5%8e%9f%e7%90%86%e4%b8%8e%e9%a2%84%e8%ae%ad%e7%bb%83%e4%bb%bb%e5%8a%a1&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;在本系列文章中，我们将会以前面介绍的 &lt;a href=&#34;https://mlwithme.github.io/tutorials/transformer/&#34;&gt;「Transformer」&lt;/a&gt; 为基础来介绍整个BERT网络模型的原理。当然，为了使得大家能够更加清晰的理解BERT模型，这里同样也会以原理与实践相结合的方式来进行介绍，包括BERT模型的实现、常见下游任务的微调以及从零实现NSP和MLM预训练任务等。下面，让我们首先进入到第一部分原理的介绍。&lt;/p&gt;&#xA;&lt;h2 id=&#34;11-引言&#34;&gt;1.1 引言&lt;a class=&#34;anchor&#34; href=&#34;#11-%e5%bc%95%e8%a8%80&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;经过对Transformer的学习，我们总算是对Transformer有了比较清晰的认知。不过说起Transformer模型，其实在它发表之初并没有引起太大的反响，直到它的后继者BERT[1]的出现才使得大家再次回过头来仔细研究Transformer。因此，在接下来内容中，我们将主要从BERT的基本原理、BERT模型的实现、BERT预训练模型在下游任务中的运用、Mask LM和NSP的实现与运用这几个方面来详细介绍Bert。总的来说就是先介绍BERT模型的整体原理，再介绍如何在下游任务中运用预训练的BERT模型，最后介绍如何利用Mask LM和NSP这两个任务来训练BERT模型。&lt;/p&gt;&#xA;&lt;p&gt;关于Bert所取得的成就这里就不再细说，用论文里面作者的描述来说就是：BERT不仅在概念上很简单，并且从经验上来看它也非常强大，以至于直接刷新了11项NLP记录。&lt;/p&gt;&#xA;&lt;blockquote class=&#39;book-hint &#39;&gt;&#xA;&lt;p&gt;BERT is conceptually simple and empirically powerful. It obtains new state-of-the-art results on eleven natural language processing tasks.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&lt;p&gt;作者之所以说BERT在概念上很简单，我们猜测这是因为BERT本质上是根据Transformer中Encoder堆叠而来所以说它简单；而作者说BERT从经验上来看非常强大，是因为BERT在训练过程中所基于的Mask LM和NSP这两个任务所以说其强大。&lt;/p&gt;&#xA;&lt;p&gt;由于BERT是基于多层Transformer堆叠而来，因此在整篇论文中关于BERT网络结构的细节之处作者并没有提及。同时，由于论文配了一张极具迷惑性的网络结构图，使得在不看源码的基础上几乎很难弄清整个网络结构的细节之处。&lt;/p&gt;&#xA;&lt;blockquote class=&#39;book-hint &#39;&gt;&#xA;&lt;p&gt;BERT’s model architecture is a multi-layer bidirectional Transformer encoder based on the original implementation de- scribed in Vaswani et al. (2017) and released in the tensor2tensor library.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&lt;div align=center&gt;&lt;img width=&#34;300&#34; src=&#34;https://mlwithme.github.io/images/tutorials/202607121833.png&#34; alt=&#34;图 1-1. 原始BERT网络结构图&#34;/&gt; &lt;/div&gt;&lt;center&gt;图 1-1. 原始BERT网络结构图&lt;/center&gt;&#xA;&lt;p&gt;如图1-1所示就是论文中所展示的BERT网络结构图。看完论文后真的不知道作者为什么要画这么一个结构图，难道就是为了凸显“bidirectional”？一眼看去，对于同一层的Trm来说它到底代表什么？ 是类似于time step的展开，还是每个Trm都有着不同的权重？这些你都不清楚，当然论文也没有介绍。不过在看完这部分的源码实现后你就会发现，其实真正的BERT网络结构大体上应该是如图1-2所示的模样。&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
