一文搞懂大模型的预训练(Pre-training)

今天来聊一聊BERT和GPT的预训练,从而了解大模型的第四步:Pre-training。

预训练(Pre-training)是大语言模型(如BERT、GPT)训练的第一阶段,其核心目标是通过自监督学习海量无标注文本中学习通用的语言表示(Language Representation)。这一阶段的目标是让模型掌握语言的语法、语义、常识等基础能力,为后续的微调(Fine-tuning)打下基础。

BERT vs GPT

一、BERT(MLM + NSP)BERT的预训练:MLM与NSP基于Transformer编码器的双向架构,BERT通过掩码语言模型(MLM)和下一句预测(NSP)任务学习上下文语义。MLM随机遮盖15%的输入词,强制模型从双向语境中预测缺失词,突破传统单向模型的局限;NSP则通过判断句子对是否连贯,强化跨句推理能力。BERT: The Breakthrough in Bidirectional Language Understanding一、MLM(Masked Language Modeling) 在BERT的预训练中,模型通过Masked Language Modeling(MLM)任务学习双向上下文 ,即随机遮盖输入文本中15%的词,并基于被遮盖词左右两侧的上下文预测该词。
(1)任务:随机遮盖输入文本中的15%的词,要求模型预测被遮盖的词。
(2)示例:输入句子为“The cat sits on the [MASK]”,模型需要预测“[MASK]” 为 “mat”。MLM — Sentence Transformers documentation二、NSP(Next Sentence Prediction) BERT通过Next Sentence Prediction(NSP)任务,以50%概率输入连续句子和50% 概率输入随机句子,训练模型学习句子间的逻辑关系,以提升问答、文本分类等任务的性能。(1)任务:判断两个句子是否是连续的(50%是连续的,50%是随机的)。
(2)正例:“I like cats” + “They are cute.”(3)负例:“I like cats” + “The sky is blue.”img三、新手学习建议:


阶段1:理论入门(2-3天)

(1)目的:理解MLM和NSP的设计动机与核心逻辑。
(2)BERT论文:重点阅读《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》的 Section 3(预训练任务设计)。
(3)类比理解:MLM就像你在玩“填空游戏”,需要根据前后文猜出被遮盖的词(如“I like [MASK]” → “cats”);NSP就是判断两句话是否来自同一篇文章(如“I like cats” + “They are cute.”是连续的,而“I like cats” + “The sky is blue.”是随机的)。

阶段2:代码复现(5-7天)
(1)目标:通过代码理解MLM和NSP的实现细节。
(2)代码:无需从零实现,直接基于transformers库调用预训练模型微调。

from transformers import BertTokenizer, BertForMaskedLM, BertForNextSentencePrediction, Trainer, TrainingArguments
import torch
# 加载预训练模型和tokenizer
tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
model_mlm = BertForMaskedLM.from_pretrained("bert-base-uncased")  # MLM专用
model_nsp = BertForNextSentencePrediction.from_pretrained("bert-base-uncased")  # NSP专用(旧版BERT支持)
# 示例输入(MLM)
text = "The cat sits on the [MASK]."
inputs = tokenizer(text, return_tensors="pt")
outputs = model_mlm(**inputs)
predicted_token_id = torch.argmax(outputs.logits[0, -1]).item()
print(tokenizer.decode(predicted_token_id))  # 输出预测的词(如"mat")
# 示例输入(NSP)
sentence1 = "I like cats."
sentence2 = "They are cute."
sentence3 = "The sky is blue."
inputs_nsp = tokenizer(sentence1 + " [SEP] " + sentence2, return_tensors="pt")  # 正例
inputs_nsp_neg = tokenizer(sentence1 + " [SEP] " + sentence3, return_tensors="pt")  # 负例
model_nsp = BertForNextSentencePrediction.from_pretrained("bert-base-uncased")  # 注意:新版本BERT已合并MLM+NSP

二、GPT(CLM)
GPT的预训练:因果语言建模(CLM)

GPT的因果语言建模(CLM)通过单向自回归,擅长生成连贯文本,但无法利用后文,更适配“创作”任务;而BERT的掩码语言建模(MLM)类似双向“完形填空”,更擅长上下文理解,适配“理解”任务。img一、CLM(Causal Language Modeling)
在GPT的预训练中,模型使用**因果语言建模(CLM)通过单向上下文(仅前文)**预测下一个词(数学表达为 P(wt∣w1,…,wt−1)),像“逐字听写”或“打字机”一样,每次只能看到之前输入的内容,逐步生成后续文本。

GPT系列模型(GPT-1/2/3/4)均基于CLM,通过Transformer的单向注意力掩码实现。

(1)任务:基于前文预测下一个词,类似于人类逐字阅读文本的过程。
(2)示例:输入“The cat sits on the”,模型需要预测下一个词是“mat”。
img二、新手学习建议:

阶段1:理论入门(2-3天)
(1)目的:理解CLM的核心概念、数学原理及其与GPT的关系。
(2)BERT论文:重点阅读《Improving Language Understanding by Generative Pre-Training》(GPT-1原始论文)的 Section 2(模型架构与预训练任务)和《Language Models are Unsupervised Multitask Learners》(GPT-2论文),理解CLM在生成任务中的扩展应用。
(3)类比理解:CLM就像**你在写作文时,只能根据之前写的内容决定下一个词(如“The cat sits on the [?]”),无法回头修改或参考后文。

阶段2:代码复现(5-7天)
(1)目标**:通过代码理解CLM的实现细节,包括Transformer的单向注意力掩码。**
(2)代码:同样无需从零实现,直接基于transformers库调用预训练模型微调。

from transformers import GPT2LMHeadModel, GPT2Tokenizer
import torch
# 加载预训练模型和tokenizer
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")
# 输入文本(CLM任务)
input_text = "The cat sits on the"
inputs = tokenizer(input_text, return_tensors="pt")
# 生成下一个词
outputs = model.generate(**inputs, max_length=20, num_return_sequences=1)
print(tokenizer.decode(outputs[0]))  # 输出完整句子(如"The cat sits on the mat and sleeps.")

如何零基础入门 / 学习AI大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

全套AGI大模型学习大纲+路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

read-normal-img

640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈
基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉 福利来袭优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈

img

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

### 关于 BERT 预训练模型的理解 BERT 的全称是 Bidirectional Encoder Representations from Transformers,它是一种基于 Transformer 架构的预训练语言表示模型。以下是对其五个核心关键词的具体解释: #### 1. **Pre-training** 预训练是指通过大量的无标注语料库来学习通用的语言特征[^1]。这种过程使得模型能够捕捉到丰富的上下文信息以及词之间的关系。 #### 2. **Deep** “Deep”指的是模型具有多层神经网络结构。具体来说,BERT 使用了多层双向 Transformer 编码器堆叠而成,从而增强了其表达能力[^2]。 #### 3. **Bidirectional** 传统的语言模型通常是单向的(如从左至右或者从右至左),而 BERT 则采用了双向机制,在训练过程中可以同时利用前后的上下文信息来进行预测。这显著提高了对词语含义理解的能力。 #### 4. **Transformer** Transformer 是一种新型的神经网络架构,最初由 Vaswani 等人在《Attention is All You Need》一文中提出。相比于 RNN 或 LSTM,Transformer 更加高效并行化计算能力强,特别适合大规模数据集上的任务[^3]。 #### 5. **Language Understanding** 最终目标是为了提升机器对于人类语言深层次的理解水平。经过充分预训练之后得到的 BERT 模型可以直接应用于各种下游 NLP 任务上,并取得优异表现。 如果想实际操作或研究该模型,则可以通过公开仓库获取其实现代码与权重文件。例如,在 GitHub 上有项目提供了 PyTorch 版本实现 `NLP-BERT--Python3.6-pytorch` 可供下载使用[^4]。 ```python from transformers import BertTokenizer, BertModel tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertModel.from_pretrained('bert-base-uncased') text = "Replace me by any text you'd like." encoded_input = tokenizer(text, return_tensors='pt') output = model(**encoded_input) print(output.last_hidden_state) ``` 上述脚本展示了如何加载预训练好的 BERT 并对其进行简单测试运行的一个例子。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值